screen-hopper
screen-hopper copied to clipboard
Debugging a Xiao RP2040 build
Thanks for this awesome project.
I've assembled the three-board version but it is unresponsive. I would be grateful for any suggestions for debugging.
Environment
Using the stock firmware from the repo, I flashed screenhopper_a.uf2
to a Pi Pico, forwarder.uf2
to a Pi Pico, and screenhopper_b.uf2
to a Seeed Xiao RP2040. I've included a photo of the wiring below.
I connected a USB hub to the Xiao (conveniently, via USB C). A Microsoft Ergonomic Keyboard and Logitech Trackball are attached to the hub. I was able to configure the device. See exported config below.
I used the schematic (pdf) mapping GPIO0 = TX, GPIO1 = RX, GPIO2 = SCK, GPIO3 = MOSI when connecting the Xiao. In case it matters, the TX and RX pins are marked as "UART" in the Xiao pinout, while the SCK and MOSI pins are marked as "SPI". Pinout included below.
Observed behavior
Keyboard and mouse are unresponsive. Num Lock does not turn on. Status light on hub is on.
Questions
(1) Is the Xiao a drop-in replacement for Pico in the screenhopper B role? Comments in #2 suggest it is a possibility, because the chip is RP2040 and the right pins appear to be exposed.
(2) Should screenhopper A+B continue to function (with one computer) when the forwarder and optocoupler are disconnected? I want to disconnect those components and eliminate them as a potential issue.
(3) How do I debug further? Is there a way to enable logging (a debug build?) to see what is or isn't happening?
Wiring
I butchered the soldering on the Xiao but have confirmed continuity to the best of my ability.
Xiao pinout
Exported config
{
"version": 4,
"unmapped_passthrough": true,
"partial_scroll_timeout": 1000000,
"interval_override": 0,
"constraint_mode": 2,
"offscreen_sensitivity": 4000,
"screens": [
{
"x": 0,
"y": 0,
"w": 16000000,
"h": 9000000,
"sensitivity": 4000
},
{
"x": 16000000,
"y": 0,
"w": 16000000,
"h": 9000000,
"sensitivity": 4000
}
],
"mappings": [
{
"source_usage": "0x00000000",
"target_usage": "0x00000000",
"layer": 0,
"sticky": false,
"scaling": 1000
}
]
}