Skip to content

3.0.0-beta3 | Stargates, Transitions, and Bass Mode

Pre-release
Pre-release
Compare
Choose a tag to compare
@connornishijima connornishijima released this 20 Jan 01:01
· 38 commits to main since this release

Starting to look REAL GOOD!


3.0.0-beta3 includes several additions and fixes:

Additions

  • The Sweet Spot LEDs are back! Like before, a low reading indicates audio is too quiet for the auto-ranger, and a high reading means you're close to audio clipping levels.
  • New UART commands for configuring the Sweet Spot:
    • sweet_spot_min=[int or 'default']
    • sweet_spot_max=[int or 'default']
  • Bloom Mode now uses exponential scrolling, increasing in speed as it approaches the edge of the display. This has a lovely 2001 "Stargate Sequence" effect, especially with its increased saturation!
  • Modes and noise calibration now use fading transitions across the board, no more harsh instant switching
  • The Chromagram (and modes derived from it, like Bloom Mode) can now be set to a bass-only mode via UART with the command chromagram_bass=true. This will restrict the Chromagram response to only the bottom octave of the spectrogram, which makes for a more interesting show on hip-hop or techno tracks!
  • Double-click of MODE button is now possible due to how transitions are handled, but is not yet assigned a function.
  • Raw waveform and smoothed amplitude join the Spectrogram and Chromagram readings as available for light show mode development

Fixes

  • FastLED.setBrightness() no longer occurs in knobs.h, where the PHOTONS knob is read. Instead, it's now in show_leds(), in led_utilities.h
  • Possible dynamic range of audio has doubled
  • Sensory Bridge now waits 10 seconds after the last mode change to save to LittleFS

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-beta3, 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:

FIRMWARE SETTINGS

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