Skip to content

Commit ae8f2c3

Browse files
committed
WIP: Try to detect LED mapping
Signed-off-by: Daniel Schaefer <dhs@frame.work>
1 parent 45181b2 commit ae8f2c3

File tree

3 files changed

+47
-2
lines changed

3 files changed

+47
-2
lines changed

Cargo.lock

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ usbd-serial = "0.1.1"
3636
usbd-hid = "0.6.1"
3737
fugit = "0.3.7"
3838
# LED Matrix
39-
is31fl3741 = { git = "https://github.com/FrameworkComputer/is31fl3741-rs", branch = "sw-enablement" }
39+
#is31fl3741 = { git = "https://github.com/FrameworkComputer/is31fl3741-rs", branch = "sw-enablement" }
40+
is31fl3741 = { path = "/home/zoid/clone/rp2040/ledmatrix/is31fl3741" }
4041
# B1 Display
4142
st7306 = { git = "https://github.com/FrameworkComputer/st7306-rs", branch = "update-deps" }
4243
embedded-graphics = "0.8"

ledmatrix/src/main.rs

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use cortex_m::delay::Delay;
88
use defmt_rtt as _;
99
use embedded_hal::digital::v2::{InputPin, OutputPin};
1010

11+
use is31fl3741::addresses;
1112
use rp2040_hal::{
1213
gpio::bank0::Gpio29,
1314
rosc::{Enabled, RingOscillator},
@@ -414,6 +415,50 @@ fn main() -> ! {
414415
// Do nothing
415416
}
416417
Ok(count) => {
418+
let id = matrix
419+
.device
420+
.read_u8(is31fl3741::addresses::ID_REGISTER)
421+
.unwrap();
422+
let reg = matrix
423+
.device
424+
.read_register(
425+
is31fl3741::Page::Config,
426+
is31fl3741::addresses::CONFIG_REGISTER,
427+
)
428+
.unwrap();
429+
let open1 = matrix.device.check_open(&mut delay, 0x03, true).unwrap();
430+
let open2 = matrix.device.check_open(&mut delay, 0x07, true).unwrap();
431+
let open3 = matrix.device.check_open(&mut delay, 0x08, true).unwrap();
432+
let open4 = matrix.device.check_open(&mut delay, 0x0C, true).unwrap();
433+
434+
let short1 = matrix.device.check_open(&mut delay, 0x03, false).unwrap();
435+
let short2 = matrix.device.check_open(&mut delay, 0x07, false).unwrap();
436+
let short2 = matrix.device.check_open(&mut delay, 0x07, false).unwrap();
437+
let short3 = matrix.device.check_open(&mut delay, 0x08, false).unwrap();
438+
let short4 = matrix.device.check_open(&mut delay, 0x0C, false).unwrap();
439+
440+
let mut text: String<128> = String::new();
441+
write!(&mut text, "ID: {:02X}, Conf: {:02X}\r\n", id, reg).unwrap();
442+
let _ = serial.write(text.as_bytes());
443+
444+
let mut text: String<128> = String::new();
445+
write!(
446+
&mut text,
447+
"Open0x03: {:02X}, Open0x07: {:02X}, Open0x08: {:02X}, Open0x0C: {:02X}\r\n",
448+
open1, open2, open3, open4
449+
)
450+
.unwrap();
451+
let _ = serial.write(text.as_bytes());
452+
453+
let mut text: String<128> = String::new();
454+
write!(
455+
&mut text,
456+
"Short0x03: {:02X}, Short0x07: {:02X}, Short0x08: {:02X}, Short0x0C: {:02X}\r\n",
457+
short1, short2, short3, short4
458+
)
459+
.unwrap();
460+
let _ = serial.write(text.as_bytes());
461+
417462
let random = get_random_byte(&rosc);
418463
match (parse_command(count, &buf), &state.sleeping) {
419464
// Handle bootloader command without any delay

0 commit comments

Comments
 (0)