I have a very weird issue with my USB FTDI uart dongle and Raspberry Pi Pico connection.

The problem is that I can read data from the dongle, but not write to it. Raspberry Pi Pico operates at 3.3v and the dongle is configured to 3.3v.

RX on Pico (GP4) is connected to TX on the dongle TX on Pico (Gp5) is connected to RX on the dongle

Everything worked fine until yesterday but sending data to the dongle suddenly stopped working. I was using Arduino serial monitor with the baudrate set to 115200. Same as in my UART Micropython code on the Pico:

uart = UART(id = 1, baudrate = 115200, tx = Pin(4), rx = Pin(5))

I can read from uart on the Pico, but can't send anything. When I send something from my computer I can see the TX LED flashing on the dongle, but when I'm trying to write from Pico the RX LED is not flashing and there is no data coming to my PC.

Things I've tried:

  1. Double-check the wiring, very easy only 2 wires and they are both connected properly.
  2. Is Pico uart fried? Verified that it's not by connecting RX to TX and verifying that it can send serial data to itself.
  3. Is FTDI dongle fried? verified by doing the same thing - connect RX to TX and check that it echoes the same data.
  4. 5v/3.3v mismatch? Verified that the dongle is configured at 3.3v
  5. USB cable problem? Changed USB cable with the same result.
  6. Software issue on Pico? Tried different versions of Micropython, uploaded a simple c++ program which just writes data to the serial port - same result.

Any ideas what might be causing this? This exact same setup was working before yesterday.
Anything else I can check?
I'm waiting on the new FTDI USB dongle (even though this one can echo to itself, but at this point I'm desperate :)), but wanted to check if there is anything else I can try to debug this.

Cheers, Leonti

Below is the picture of the dongle I'm using:

FTDI dongle

  • \$\begingroup\$ Is there a GND connection between Pico and FTDI dongle? \$\endgroup\$ – Tagli Apr 6 at 8:31
  • \$\begingroup\$ Both are connected via USB, so they share a common ground (otherwise receiving data to the Pico wouldn't work either). But I also tried to connect their grounds just in case - it made no difference :( \$\endgroup\$ – Leonti Apr 6 at 9:07
  • \$\begingroup\$ I am experiencing Similar Issue. I can write to the Pico but i cant read data from it. Tried both Micropython, Circuitpython & C/C++ different cables but getting similar result. Any workaround of my Issue \$\endgroup\$ – Nyagaka Enock Jul 1 at 9:12
  • \$\begingroup\$ Haha, I just posted on your message, didn't see your comment until now :) \$\endgroup\$ – Leonti Jul 21 at 9:26

Switching to a different set of pins GP0 and GP1 for UART made it work, now I can communicate in both directions again.
So it seems like at some point port GP4 (UART1 TX) god damaged somehow. But not fully, because I can still send data to itself on Pico by shorting ports GP4 and GP5. Also, I can see a pulse on the oscilloscope when sending. So it seems like port GP4 is still working, but somehow it's less powerful now or something.

Maybe a sequence of connecting FTDI dongle matters? Maybe when Pico is powered on, but FTDI USB is not connected yet it's somehow drawing power from Pico ports and it caused damage to the port?

Not sure, but if it happened once I suspect it might be a matter of time before it happens again to the new port.

Edit: It did happen again, all of a sudden I could not receive anything from Pico, but could still write to it. After switching to yet another port (GP16/GP17) this time it started to work again. Let's see for how long. If it happens again, I'll try to replace the whole Pico board and see if it starts happening again.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.