I'm starting to log this project when already feature complete and tested. This is due to wanting a fully working prototype and roadmap for getting it made and ready for the event before taking funding.
That said, there is still a lot of work to do to make all the units and to improve them from the bare minimum to have working.
I'm currently on v0.2 of the hardware design, the main change from v0.1 was a change in pin usages. The pwm pins driving the led drivers would oscillate while the esp8266 was in program mode. This would turn all 12w of rgb led on, this caused the flash chip to die on the esp in some situations. Swapping pins to pins that don't do this (4, 5 and 15) has solved this.
The second change was swapping the led driver package as I could save ~£1.50 per unit with a different package from a different supplier. I also get a better yield when reflowing the larger leaded package.
On the software side the large amount of the initial work was just porting my arduino artnet library to use the esp8266. I'm using artnet to control the LUMOS Nodes as I come from a theatrical background and like the compatibility with existing lighting control methods. For the event however they will be controlled via a central server that will allow for outside control through different protocols.
On top of the basic control the units use the great WifiManager library by @tzapu to provide an AP mode to set the wifi settings without needing to reflash or connect over serial. https://github.com/tzapu/WiFiManager
They also have a heartbeat function that sends json data via a udp packet to the central server. This allows me to see an overview of the currently connected nodes, including battery voltage levels, ip and mac address. In the future this will expand to include more data.
The other main feature is an auto led shut off at one battery level to allow the node to broadcast a distress beacon for a while to allow me to come and change its batteries. Followed by a total shutdown at crytical battery level.
The 3rd part of the system is the central control system, this is written in node.js and currently features a page that publishes the heartbeats in an easy to read manner. This will see a lot of upgrades in the near future as it will be my main way to view the health of the system and to help me fix any issues that arise.
I'm also hoping for further funding to bring the number of nodes to 50, that won't currently fit on this screen without scrolling off the bottom, so a much nicer ui is on the cards!