We’re bitbanging, and it feels good. We always intended the sleep mask to have parameters that a user could customize, but didn’t really give too much thought as to how that was going to happen until a few weeks ago. Programing the chip with an ISP is feasible but not very user friendly, especially not for the non-arduino user. Then there is the default, use the two buttons on the mask to enter a debug mode and then count blinks and enter some ridiculous code of button presses to alter stuff. That also seemed like a terrible way to spend ones time.
Then the epiphany, we’ll put two light sensors on the mask and then you can blink the data in from any screen. It took a bit to get the correct light sensors (not all are tuned to ambient light), then we had to calibrate them to a computer screen or smart phone. A bit of code to get a website up and a bit more code to set one input as a Clock and one as a Signal and there you go. Now you can change your settings on any web enabled device with a screen and then simply blink them right over to the mask. You can see us debugging a breadboard version, where we used LEDs to signal if the arduino was receiving a bit when it should. White lights up the led, black and they stay dark. We also set up a handshake byte so the mask would know when to start analyzing data. Even though we made the thing, its still pretty amazing to see data get sent this way.