3.0.0-beta5 | I lied, there's more new stuff!
Pre-releaseWaveform Mode broke for now, but this version is now fully compatible with the new web configuration tool I wrote @ settings.sensorybridge.rocks!
3.0.0-beta4 includes several additions and fixes, and one subtraction:
Additions
led_color_order=[GRB, RGB, BGR]
is now a UART command, along withled_count=[int]
Sets the LED strip lengthled_interpolation=[true/false]
Toggles linear interpolation on/off when running outside the native resolution of 128 LEDsbass_mode=[true/false]
See for yourself!- CHROMA knob is finally back! The top 10% puts you in Chromatic Mode where colors are automatically decided by notation, and the bottom 90% gives you access to the full hue range, making the modes show a color picked by YOU!
- Holding both top buttons down while plugging in the unit will now force it to factory reset, in case something ever goes wrong
- UART menu input is now sanitized to prevent out-of-bounds access
- An absolute fuckload of infrastructure that works with settings.sensorybridge.rocks and eventually a WebSockets app!
Fixes
- Noise cal forces LED on if in standby mode
- Made "low" threshold for Sweet Spot calculated at runtime during noise cal
Subtractions (for now)
- I broke Waveform Mode somehow and I should just rewrite it again anyways, it needed help
As with previous beta updates, Erase All Flash Before Sketch Upload: ENABLED needs to be set in Arduino, as these new features have shifted the contents of config.bin in LittleFS, making older versions invalid.
To learn more about what 3.0.0-beta has added or changed so far, please refer to the previous 3.0.0-beta releases.
Update Process
To update your Sensory Bridge firmware to the 3.0.0-beta5, download the "Source code (zip)" at the bottom of this page, extract it, and open the "SENSORY_BRIDGE_FIRMWARE.ino" in Arduino IDE.
If you don't yet have ESP32-S2 in your Arduino Board Definitions, follow the steps on this page:
https://learn.adafruit.com/adafruit-metro-esp32-s2/arduino-ide-setup-2
Install FastLED Dependency
If you don't have it installed in your copy of Arduino yet, you'll need it for Sensory Bridge to compile.
- Go to Sketch > Include Library > Manage Libraries
- In the window that appears, search for "FastLED" (by Daniel Garcia)
- Install the latest version
Board Settings
Finally, make sure that all of your board settings match this image:
Your Serial port (i.e. "COM10") will likely differ from mine.
IMPORTANT PLEASE READ
To use this beta firmware, you need to make sure the following setting is enabled in Arduino:
Erase All Flash Before Sketch Upload: ENABLED
This will erase your 2.0.0 config.bin and noise_cal.bin files in your Sensory Bridge's storage, because they are incompatible with this version and can cause your device to not boot correctly. A more graceful solution is in the works to detect config file versions and refuse incompatible ones.
"USB CDC On Boot: Enabled" is quite important, as this is what will allow you to flash firmware over USB again next time and use the UART menu. If this is not enabled, the next time you want to update your firmware you'll need to hold down the BOOT button on the bottom of your Sensory Bridge while plugging it in to be able to flash it again as normal.
Arduino IDE 2.x Fixes
Unfortunately, the new Arduino IDE 2.x has some issues that I'm hoping are fixed in a future update, because they can break this updating process and all of the new features are weighed down by annoying changes from the Legacy IDE. Here's how to fix those:
DISABLE DEFAULT COMPILATION WARNING BEHAVIOR
(This will make the firmware actually usable)
- In the Arduino 2.x IDE, click "File > Preferences"
- Set "Compiler Warnings" to "Default"
- This is because some external dependencies in the code such as FastLED trigger ignorable warnings
- Arduino IDE 2.x treats all warnings as errors by default. (WTF)
DISABLE WORD WRAPPING
(This will guarantee code and docs are more readable, it's 2023, 80-column monitors aren't a thing. No IDE needs word wrapping enabled by default, that's dumb.)
- In the Arduino 2.x IDE, hit F1
- In the textbox that appears, type "wrap"
- You'll see a result for "View - Toggle Word Wrap"
- Click this item
- Repeat at least once until buggy word-wrapping is actually disabled