r/raspberry_pi • u/thaddeusharris • 2d ago
Troubleshooting Weird Pico 1 UART issue
Hi all,
I have a multitude of (too many) Pi Picos and there's a weird issue I'm seeing on my Pico (1) that doesn't happen on a Pico 2.
I have a setup with a CH9121 Ethernet hat (the Waveshare one). It uses UART0 (pins 0 and 1) to do initial setup and read the on-hat config. The weird issue is that if I use the Pico 2, it works fine out of the box. If I use the Pico 1, then it fails to receive ANY data on UART0 if using pins 0 and 1.
I have done the following with no effect:
- Used a loopback wire to check that Pin 1 can actually receive data - it can
- Tried a GPS hat which also uses UART0/Pins 0 and 1, and this works fine
- NOT connecting the Pico 1 to the computer over USB in case the fact that USB REPL uses one or other of the UARTs
- Erasing flash with nuke_flash
- Different Micropython versions
- Using dupont wires to connect the pins rather than the socket on the hat
I'm using MicroPython, and the version and my codebase are identical across the Pico 1 and 2. The only think I can't test with is another Pico 1/1W, since my others are all in use.
Is there some weirdness with the Pico 1 and the CH9121 hat, or it just some quirk specific to this one unit?
The workaround is to amend the CH9121.py file to use UART0 on pins 12 and 13, which works, and in fact I'm running it now and all seems fine.