Skip to content

v0.1.6

Pre-release
Pre-release
Compare
Choose a tag to compare
@JohnAZoidberg JohnAZoidberg released this 31 Aug 09:35
· 147 commits to main since this release

Changes

  • In addition to UF2 file, also build BIN firmware file on GH Actions
  • LED Matrix Firmware
    • Add more sleep modes (instant, fade, debug), default unchanged
    • Implement all letters in the embedded font
    • Go to sleep (LEDs off) if in USB suspend
    • Implement more advanced sleep behavior, see details below
    • Fix booting when sleep is on from the beginning (had a conflict between sleep and startup animation)
    • Use CRC checksum to verify serialnumber before it's used
    • Remove LED current scaling (resistor in previous hardware was too small and allowed for too high current)
    • Add command to allow changing LED PWM frequency
  • Python Script
    • Support Windows
    • Bundle GUI version into standalone .exe for Windows
    • Support multiple devices
    • Add support for custom text
    • Add back sleep/wake buttons to GUI
    • Denser GUI design

Hardware Compatibility

  • All hardware revisions
Changing Sleep State

What can change the sleep state

  • Hardware/OS triggers
    • SLEEP# pin
    • USB Suspend
  • Software/Firmware Triggers
    • Sleep/Wake or other command via USB Serial
    • Idle timer

Both of the hardware/OS triggers change the sleep state if they transition from one state to another.
For example, if USB suspends, the LED matrix turns off. If it resumes, the LEDs come back on.
Same for the SLEEP# pin.
If either of them indicates sleep, even if they didn't change state, the module goes to sleep.
If they're active, they don't influence module state. That way sleep state can be controlled by commands and isn't overridden immediately.

The sleep/wake command always changes the state. But it can't be received when USB is suspended.
Any other command will also wake up the device.

The idle timer will send the device to sleep after a configured timeout (default 60 seconds).
The idle timer is reset once the device wakes up or once it receives a command.