inputmodule-control led-matrix -v leads to timeout error
I'm using Ubuntu 24.04.1. I downloaded the inputmodule software from this repo. I've also added the udev rules and run $ sudo udevadm control --reload && sudo udevadm trigger as mentioned in the readme:
$ ls -l /etc/udev/rules.d/50-framework-inputmodule.rules
-rw-r--r-- 1 root root 446 Nov 30 22:34 /etc/udev/rules.d/50-framework-inputmodule.rules
inputmodule runs and detects the led matrix input modules:
$ inputmodule-control -V
inputmodule-control 0.1.8
$ inputmodule-control -l
/dev/ttyACM0
VID 0x32AC
PID 0x0020
SN FRAKDEBZ0100000000
Product LED_Matrix_Input_Module
/dev/ttyACM1
VID 0x32AC
PID 0x0020
SN FRAKDEBZ0100000000
Product LED_Matrix_Input_Module
But when queering the modules, I receive a timeout error message (call including full backtrace (RUST_BACKTRACE=full)):
$ inputmodule-control led-matrix -v
Device Version: 0.2.0
thread 'main' panicked at 'Found no data!: Custom { kind: TimedOut, error: "Operation timed out" }', inputmodule-control/src/inputmodule.rs:352:10
stack backtrace:
0: 0x64a51b9c4ad0 - std::backtrace_rs::backtrace::libunwind::trace::ha9053a9a07ca49cb
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
1: 0x64a51b9c4ad0 - std::backtrace_rs::backtrace::trace_unsynchronized::h9c2852a457ad564e
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x64a51b9c4ad0 - std::sys_common::backtrace::_print_fmt::h457936fbfaa0070f
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys_common/backtrace.rs:65:5
3: 0x64a51b9c4ad0 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h5779d7bf7f70cb0c
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys_common/backtrace.rs:44:22
4: 0x64a51b96501e - core::fmt::write::h5a4baaff1bcd3eb5
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/fmt/mod.rs:1232:17
5: 0x64a51b9a0ae4 - std::io::Write::write_fmt::h4bc1f301cb9e9cce
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/io/mod.rs:1684:15
6: 0x64a51b9c5fd7 - std::sys_common::backtrace::_print::h5fcdc36060f177e8
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys_common/backtrace.rs:47:5
7: 0x64a51b9c5fd7 - std::sys_common::backtrace::print::h54ca9458b876c8bf
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys_common/backtrace.rs:34:9
8: 0x64a51b9c5d75 - std::panicking::default_hook::{{closure}}::hbe471161c7664ed6
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:271:22
9: 0x64a51b9c635a - std::panicking::default_hook::ha3500da57aa4ac4f
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:290:9
10: 0x64a51b9c635a - std::panicking::rust_panic_with_hook::h50c09d000dc561d2
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:692:13
11: 0x64a51b9c6184 - std::panicking::begin_panic_handler::{{closure}}::h9e2b2176e00e0d9c
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:583:13
12: 0x64a51b9c60e6 - std::sys_common::backtrace::__rust_end_short_backtrace::h5739b8e512c09d02
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys_common/backtrace.rs:150:18
13: 0x64a51b9c60d1 - rust_begin_unwind
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:579:5
14: 0x64a51b8c6d32 - core::panicking::panic_fmt::hf33a1475b4dc5c3e
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/panicking.rs:64:14
15: 0x64a51b8c70a2 - core::result::unwrap_failed::hdff5465d74574b44
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/result.rs:1750:5
16: 0x64a51b8fcd89 - core::result::Result<T,E>::expect::h09ad2071d782a90c
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/result.rs:1047:23
17: 0x64a51b8fcd89 - inputmodule_control::inputmodule::get_device_version::hb190c9fd686275ce
at /home/runner/work/inputmodule-rs/inputmodule-rs/inputmodule-control/src/inputmodule.rs:351:5
18: 0x64a51b8f85fd - inputmodule_control::inputmodule::serial_commands::haded42d84a5f6028
at /home/runner/work/inputmodule-rs/inputmodule-rs/inputmodule-control/src/inputmodule.rs:241:21
19: 0x64a51b8ff147 - inputmodule_control::main::hd73c270150b5884e
at /home/runner/work/inputmodule-rs/inputmodule-rs/inputmodule-control/src/main.rs:63:20
20: 0x64a51b8e18c3 - core::ops::function::FnOnce::call_once::h60cafe144945ca54
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/ops/function.rs:250:5
21: 0x64a51b8e18c3 - std::sys_common::backtrace::__rust_begin_short_backtrace::hf44eaa5f7d26e481
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys_common/backtrace.rs:134:18
22: 0x64a51b917789 - main
23: 0x7dae6522a1ca - __libc_start_call_main
at ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
24: 0x7dae6522a28b - __libc_start_main_impl
at ./csu/../csu/libc-start.c:360:3
25: 0x64a51b8c9d55 - _start
26: 0x0 - <unknown>
I am having the same issue on version 0.2.0. However, other commands do seem to work like:
inputmodule-control led-matrix --percentage 30
After some more testing, these commands do work:
--image-bw--start-game--stop-game
But these commands still don't:
-v--image-gray
Good to know, that I'm not alone on this. I initially didn't try other commands after -v didn't work for me.
So, tried again: The issue seems to be a bit arbitrary, or maybe a timing issue. I couldn't get --image-gray to work either. I tried --symbols heart a couple of times and sometimes it only appears on one side (having two led-matrix modules here). If I use --brightness 20 and right after -v, the -v does actually work for me. If I wait until the led-matrix modules turn itself off and try -v again, I still get a time out error again (and on one side the heart-symbol appears again...)...
Oh big update for me, I tried doing this in WSL by attaching the COM interface using the method explained here. This seems to work for some commands, but not others.
The solution (for me) is to do it natively on Windows because this project supports it. After building on Windows and using the .exe to control it, all commands appear to work as expected (except still -v for some reason).