11# Lotus LED Matrix Module
22
3- Project setup based off of: https://github.com/rp-rs/rp2040-project-template
3+ It's a 9x34 (306) LED matrix, controlled by RP2040 MCU and IS31FL3741A LED controller.
4+ Connection to the host system is via USB 2.0 and currently there is a USB Serial API to control it without reflashing.
45
5- ## Control
6+ Rust project setup based off of: https://github.com/rp-rs/rp2040-project-template
7+
8+ ## Features
9+
10+ - Reset into bootloader when firmware crashes/panics
11+ - API over USB ACM Serial Port - Requires not Drivers on Windows and Linux
12+ - Display various pre-programmed patterns
13+ - Light up a percentage of the screen
14+ - Change brightness
15+ - Send a black/white image to display
16+ - Go to sleep
17+ - Reset into bootloader
18+ - Scroll and loop the display content vertically
19+ - A commandline script and graphical application to control it
20+ - Sleep Mode
21+ - Transition slowly turns off/on the LEDs
22+ - Current hardware does not have the SLEEP# GPIO connected, can't sleep automatically
23+
24+ Future features:
25+
26+ - API
27+ - Send a greyscale image to display
28+ - Read current system state (brightness, sleeping, ...)
29+
30+ ## Control from the host
631
732Requirements: Python and [ PySimpleGUI] ( https://www.pysimplegui.org ) .
833
934Use ` control.py ` . Either the commandline, see ` control.py --help ` or the graphical version: ` control.py --gui `
1035
36+ ```
37+ options:
38+ -h, --help show this help message and exit
39+ --bootloader Jump to the bootloader to flash new firmware
40+ --sleep, --no-sleep Simulate the host going to sleep or waking up
41+ --brightness BRIGHTNESS
42+ Adjust the brightness. Value 0-255
43+ --animate, --no-animate
44+ Start/stop vertical scrolling
45+ --pattern {full,lotus,gradient,double-gradient,zigzag,panic,lotus2}
46+ Display a pattern
47+ --image IMAGE Display a PNG or GIF image (black and white only)
48+ --percentage PERCENTAGE
49+ Fill a percentage of the screen
50+ --clock Display the current time
51+ --gui Launch the graphical version of the program
52+ --panic Crash the firmware (TESTING ONLY)
53+ ```
54+
1155## Building
1256
1357Dependencies: Rust
@@ -20,7 +64,6 @@ cargo install flip-link
2064cargo install elf2uf2-rs --locked
2165```
2266
23-
2467Build:
2568
2669``` sh
@@ -43,6 +86,9 @@ This can be done by pressing the bootsel button while plugging it in.
4386cargo run
4487```
4588
89+ Or by copying the above generated UF2 file to the partition mounted when the
90+ module is in the bootloder.
91+
4692## Panic
4793
4894On panic the RP2040 resets itself into bootloader mode.
0 commit comments