Releases: FrameworkComputer/inputmodule-rs
v0.2.0
Changes:
- LED Matrix
- Update to latest Rust stable 1.74.0
- Reduce maximum brightness even further
- In debug mode (DIP switch 1 active) turn on all LEDs by default
Latest LED Matrix Downloads
v0.1.9
Changes
- LED Matrix
- Restrict power consumption to 250mA
Special firmware versions
- LED Matrix all LED's on with 100/255 or 255/255 max brightness settings, no sleep timeout
ledmatrix_v0.1.9_100brightness.uf2
(Roughly 250mA current draw)ledmatrix_v0.1.8_255brightness.uf2
(Roughly 500mA current draw)
v0.1.8
Changes
- LED Matrix Firmware
- Add more startup animations
- Three Game of Life animations
- Pong game
- Snake game
- Breathing animation
- Scrolling zigzag
- Increasing percentag (old startup animation)
- Reduce default brightness from 20% to 10%
- Update dependencies
- Add more startup animations
- LED Matrix Python Tool
- Fix many commands that were recently broken
- Add video playing option
- QT PY Firmwarwe
- Add reference firmware for QT Py RP2040
v0.1.7
Changes
- Build using
cargo-make
to make it simpler between Linux and Windows - LED Matrix Firmware
- Add debug mode that will display sleep reason in sleep (Enable via command or on DVT module by DIP switch)
- Separate firmware for EVT module with 10k LED resistor (instead of new 27k resistor)
- Separate firmware for EVT module because DVT module has different LED layout
- Update LED Layout for DVT changes
- Disable SW9 in DVT since it isn't used and can cause noise if not connected
- Python Script/GUI
- Fix snake game, broken in v0.1.6
- Show firmware version
- On launch, set brightness slider to module brightness
Hardware Compatibility
- Multiple LED Matrix firmware builds
ledmatrix_10k.uf2
(Hardware with 10k resistor, has firmware current limit)ledmatrix_evt.uf2
(Hardware with 27k resistor, no current limit)ledmatrix.uf2
(Latest Hardware - Aug 28)
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.
v0.1.6
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.
v0.1.5 Alpha
Changes
- Update branding
- Add MIT license
- Use st7306 library from crates.io
- Update dependencies
- Reduce build time
- Distribute release binaries
- B1 Display
- Allow set/get of FPS and power mode
- Allow updating animation frequency
- Add heuristic to allow for greyscale images
- Enable displaying animated GIFs
- LED Matrix
- Allow setting animation frequency
- Add optional command to display audio input waveform
- Go to sleep when SLEEP# pin is low (laptop is asleep)
- Ignore SLEEP# pin when it's not connected (old hw rev)
- Limit maximum brightness to not exceed 500mA current draw (for first BizLink hw rev)
- inputmodule-control tool
- Statically link vcruntime140.dll to make it work on fresh windows install
Hardware Compatibility
- All hardware revisions
- First hardware revision does not have the sleep pin, so it won't immediately to sleep when the laptop's lid is closed
v0.1.4 standalone windows
Same as v0.1.4 but the tool can run on Windows without anything installed.
v0.1.4 Alpha
Changes:
- Add lots of documentation
- inputmodule-control
- Make
--list
output nice - Supports controlling the B1 Display
- Standard commands: bootloader, version, sleep
- Specific commands: Display on/off, invert colors on/off, display image file
- Controlling LED matrix
- Support conway's game of life
- Add
--wait-for-device
to make it useable as a system service
- Make
- LED Matrix
- Add new game: Conways' Game of Life. Can be started with built-in pattern or current pattern
- Fix commands that return data to the host (like getting current brightness)
- Implement command to quit games
- Starts up with a loading animation
- B1 Display
- First version with support for the display
- Starts up wit the screensaver (Framework logo moving around)
v0.1.3 Alpha
Changes:
- Move code into separate cargo workspaces
- Import rust cli into here (not yet built by CI)
- Implement full uppercase font
- Run command on all modules of the same type
- Proper support for the B1 Display
- Support for the C1 Minimal Module
- Starts up with RGB LED set to green
- Has API to set RGB LED brightness and color (same brightness command as LED Matrix
- Supports sleep mode (shuts off RGB LED)
- LED Matrix
- Implement Snake and Pong in firmware
v0.1.1 Alpha
Changes:
- Tons of new features in
control.py
, including snake game! - New Firmware features
- Implement sleep mode which refuses commands except waking and turns off LED Controller to save power
- Allow receiving and displaying greyscale image
- Improve drawing speed by drawing entire matrix in just 2 I2C commands, instead of 306
- Read serial number from flash, if present