Skip to content
joymonkey edited this page Apr 13, 2024 · 14 revisions

The WReactor32 is based around the ESP32-WROVER module. The successor to the Reactor Zero, this came about due to sourcing issues with the Zero's most important component; the SAMD21G18. This may have been a blessing in disguise, as it's forced us to up-rev to a much sleeker, more powerful board with a ton of features and a taste that kids love! New hardware design aside, the big bonus here comes from some very clever firmware that was written for us by Skelmir over on the Astromech.net forum.

WREACTOR32 PCB

Initial board design is based around an off-the-shelf Lolin D32 Pro board, which incorporates the WROVER module with a USB circuit, an SD card reader, and breakout for the I2C pins.

Web Interface

To get to the boards web interface, connect your computer or phone to the "R2D2" wifi access point, using password "Astromech" and then point your web browser to 192.168.4.1

From this page you can make adjustments to the logic display settings, upload new firmware, adjust Marcduino related behavior, reset everything, and play around with logic patterns and animation sequences.

Resetting Wifi Settings & Disabling Wifi

The "Wifi Rst" button on the board can be used to manually change wifi settings or disable the wifi features entirely. These features were added in the 20211016 firmware update.

  • Hold the "Wifi Rst" button for 2-4 seconds will toggle wifi on or off and reboot the board.
  • Hold the "Wifi Rst" button for 5+ seconds will reset wifi settings (SSID name & password) back to defaults, and enable wifi.

Manual Adjustment

We now use 3 buttons and one trimpot to manually configure logic display settings. Hold Adj.Front or Adj.Rear for a second to enter adjustment mode for either display. With each short press of the same Adj button, the adjustment mode will cycle through "Shift Color Hues", "Adjust Brightness", "Adjust Fade Speed", "Adjust Pause Time". A short press of the Palette button will cycle through the preset color palettes. Once settings are to your liking, hold the Adj button again for over a second and the settings will be saved.

Updating Firmware

Firmware can be updated via SD card, or OTA (over the air) via the web interface. Compiled firmware files can be found here.

If using an SD card, save the compiled firmware file as LEngine.bin in the root of the SD card. Press the reset button (next to the USB connector) and the board will start to itself. This will take about 60 seconds, and during this time the board may appear to have frozen, give it some time and when complete the board should restart and begin the usual logic display patterns, and status LED blinking again.

To do an OTA update, connect to the board as described above in the 'Web Interface' section. Go to the Setup->Firmware page. Click the 'Choose File' button and point it towards your LEngine.bin firmware file. Click the 'Reflash' button and the file will begin to transfer over wifi and be flashed to the board. During this process the Logic Displays will show a bar graph indicating progress, and the board will restart once complete.

The Arduino IDE can also be used to customize, compile and upload new firmware to the board via USB. In some cases IO0 pin will need to be connected to GND to put it into upload mode. IO0 is also known as Serial2 TX on our WReactor32 board.

Skelmir's firmware source can be found here. You will also need the FastLED library, and Skelmir's ReelTwo library from here. From the Arduino IDE, you'll need to add the official ESP32 boards json in Preferences (link) (don't choose the latest version as it may have problems with the FastLED library, version 1.0.6 of the EPS32 Boards is known to be good), then under Tools->Board you'll want to choose ESP32/Lolin D32 Pro, and change PSRAM to enabled.

See the Pages above for info relevant to the Logic Engine.

Here are some handy external links...

Clone this wiki locally