Firstly thanks for this awesome product, its been working great!
I’d like to attempt to control the Lumazoid remotely with a ESP8266,
in order to control the various parameters for colors, sensitivity, patterns.
I’m looking for any suggestions on implementing this, I’m fairly comfortable with arduino and the ESP.
Should the approach here be to communicate with the atmega over I2C/SPI,
and have the values in the eeprom updated, or do you think this is feasible?
I’ve always like the idea of controlling the Lumazoid remotely, but what makes it tricky is that the Lumazoid is very very busy the whole time doing things that hardware interrupts would disrupt. The Lumazoid first samples the audio as fast as it can to fill a 256 sample buffer using the free running ADC, and during this time, interrupts are disabled. That means that no SPI, I2C, or Serial will work. Next, the Lumazoid does the computation to figure out what to draw, then sends the data out to the LED strip. I think interrupts are disabled during the LED communication because the timing is critical.
It’s not impossible, but not trivial. One approach would be to have the Lumazoid tell the ESP that it is ready for information (over Serial is the easiest), then read any data the ESP has for it. This would take some time, but not too long. It would introduce a larger “gap” between sampling phases. This gap (while performing computation and drawing on the LEDs) is why you see a beat missed sometimes. The reactivity of the Lumazoid is not perfect because of this.
Hope that helps a little, or at least explains why it’s tricky.