My goal here was to create an LED strip which will light up in sync with the Pixmob LED bracelets, controlled by the IR senders inside the stadium. Additionally, all received signals are logged to a file (using SPIFFS).
Unfortunately, I did not get the chance to actually try it out (Vienna...).
PoC.mp4
The IR commands in this project are based on the pixmob-ir-reverse-engineering project, including the file in this issue.
receiver/effects.h
contains all signals (as uint64) which I've found the Eras Tour Bracelet to respond to.
- 1x Seeed Studio XIAO ESP32C3
- 1x Vishay TSOP4436 IR Receiver
- 1x Adafruit Mini Skinny NeoPixel RGB LED Strip (1m)
- 2x LIR2032H 3.7V 70mAh Coin Cell
- 2x Coin Cell Holder
Two LIR2032H cells (in parallel) are connected to the battery connector on the back side.
8 Neopixel LEDs draw about 55mA when set to RGB(45, 45, 45), so the 140mAh from the coin cells should last for about 2.5h. Since the LEDs won't be on the entire time and will be set to colors other than white most of the time, I'm hoping that this setup should last through the entire 3.5h long Eras Tour show. Of course, a better power supply would make things easier but I wanted everything to be as small as possible.
The LED strip is connected directly to BAT+
, D7
and GND
.
The IR receiver is connected directly to 3V3
, D10
and GND
.
- Arduino IDE 2.3.2 (Important, older versions do not work properly with the ESP32 Boards in my experience)
- ESP32 Boards Package 2.0.17
- Adafruit Neopixel 1.12.3
- Arduino-IRremote 4.4.0
In order to use SPIFFS, the partition scheme should be set to Default 4MB with spiffs
and the SPIFFS partition has to be formatted first. Running File->Examples->SPIFFS->SPIFFS_Test
once should do the trick.
receiver.ino
receives infrared signals and also saves them to the SPIFFS partition.
Every time setup()
is executed, a new file is created: 0.txt, 1.txt, and so on.
read_spiffs.ino
prints the content from all files on the SPIFFS partition.