PicoRX icon indicating copy to clipboard operation
PicoRX copied to clipboard

PicoRX hangs when trying to connect to a Linux MX USB port

Open sweiland-openrails opened this issue 10 months ago • 10 comments

I have a strange problem. I've yet only build the digital part of PicoRX: the rpi pico, rotary encoder, display and buttons.

I compiled and uploaded pico2rx.uf2. When connected to a Linux MX computer USB port it hangs and the display is showing the PicoRX splash screen halfways. When I just connect it to a phone charger it works ok. I then see the frequency and it changes when turning the rotary encoder. Command lsusb gives a line, so it is connected:

Bus 003 Device 024: ID cafe:4011 dawsonjon PicoRX

When using the pre-compiled uf2 files, it works also ok, both of them. When I compare the downloaded pico2rx.uf2 and the compiled pico2rx.uf2, they both are of the same size. The contents is different.

I see this problem only when connecting to Linux MX. Connecting to Windows 10 is ok.

Anyone an idea what could be the problem?

sweiland-openrails avatar Mar 06 '25 13:03 sweiland-openrails

I have a very similar issue if I compile with the latest version of SDK. I'm working through it, but don't have a solution yet. For now, the best workaround is probably to roll back to an earlier version of SDK.

dawsonjon avatar Mar 06 '25 14:03 dawsonjon

Ok, thanks for your quick answer. I'll try a previous version of the SDK.

sweiland-openrails avatar Mar 06 '25 14:03 sweiland-openrails

I have a very similar issue if I compile with the latest version of SDK. I'm working through it, but don't have a solution yet. For now, the best workaround is probably to roll back to an earlier version of SDK.

I'm facing the same issue and I think this is reported here. Seems to be fixed in TinyUSB master. It's marked as a milestone for pico-sdk 2.1.2, so probably we just need to wait.

mryndzionek avatar Apr 25 '25 06:04 mryndzionek

New pico-sdk was released today, but the issue is still there.

mryndzionek avatar Jul 29 '25 12:07 mryndzionek

I saw the issue too late and unfortunately posted another one (#249). Have the same behavior on Linux, but on Windows 10 USB will not work too. E.g. record the PicoRX audio stream with audacity on Windows will fail, with error -9999 from audacity.

Has anyone had success with a custom build and an older SDK? Which version? I use 2.2.0, but currently I can't downgrade to an older one in vs code. It always automatically switches back to 2.2.0.

wdoe15 avatar Oct 10 '25 11:10 wdoe15

I saw the issue too late and unfortunately posted another one (#249). Have the same behavior on Linux, but on Windows 10 USB will not work too. E.g. record the PicoRX audio stream with audacity on Windows will fail, with error -9999 from audacity.

Has anyone had success with a custom build and an older SDK? Which version? I use 2.2.0, but currently I can't downgrade to an older one in vs code. It always automatically switches back to 2.2.0.

If I remember correctly the issue occurred first time in SDK 2.1.0. You need to use an older version, or alternatively update just the tinyusb library in SDK 2.2.0. TinyUSB commit b5d4d0f works fine. If VSCode enforces versions then bad luck. I would say don't use it. Download the SDK yourself and configure via PICO_SDK_PATH variable.

mryndzionek avatar Oct 10 '25 12:10 mryndzionek

Thank you for fast comment. Do you mean update TinyUSB e.g. with git clone (url = https://github.com/hathach/tinyusb.git) --branch master to path = lib/tinyusb within the SDK 2.2.0?

wdoe15 avatar Oct 10 '25 15:10 wdoe15

After installing SDK there already should be a lib/tinyusb directory. It's a submodule. If you don't have it, just run git submodule update --init --recursive. Then you just need to go inside lib/tinyusb and do git checkout b5d4d0f.

mryndzionek avatar Oct 10 '25 16:10 mryndzionek

Great, USB works now, thank you very much! Strange that the fix wasn't included in the SDK.

wdoe15 avatar Oct 11 '25 07:10 wdoe15

Great, USB works now, thank you very much! Strange that the fix wasn't included in the SDK.

Yeah, I think they just didn't have the time to test and verify. I'm sure it will we included in some future SDK release.

mryndzionek avatar Oct 11 '25 08:10 mryndzionek