1
1
# Lotus LED Matrix Module
2
2
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.
4
5
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
6
31
7
32
Requirements: Python and [ PySimpleGUI] ( https://www.pysimplegui.org ) .
8
33
9
34
Use ` control.py ` . Either the commandline, see ` control.py --help ` or the graphical version: ` control.py --gui `
10
35
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
+
11
55
## Building
12
56
13
57
Dependencies: Rust
@@ -20,7 +64,6 @@ cargo install flip-link
20
64
cargo install elf2uf2-rs --locked
21
65
```
22
66
23
-
24
67
Build:
25
68
26
69
``` sh
@@ -43,6 +86,9 @@ This can be done by pressing the bootsel button while plugging it in.
43
86
cargo run
44
87
```
45
88
89
+ Or by copying the above generated UF2 file to the partition mounted when the
90
+ module is in the bootloder.
91
+
46
92
## Panic
47
93
48
94
On panic the RP2040 resets itself into bootloader mode.
0 commit comments