I'm using this FTDI on a Raspberry Pi 3 Model B to connect an arduino board via USB.
can I do the same thing on a Raspberry Pi Zero W using this
USB OTG Micro USB to Mini USB to connect the FTDI to the Raspberry Pi Zero W Micro-USB port?

- 173
- 1
- 4
- 14
1 Answers
You don't need anything (except the basic cable) to connect an Arduino to any model of Pi using the USB jacks at both ends. USB is 5V logic and both devices can use it as a UART, so the FTDI in your setup is superfluous unless you are using a 3.3V logic Arduino (most of them aren't, but that is ambiguous in your question).
So, to connect most models, you would need a USB A (the Pi) to USB B or mini B (the Arduino, depending on model) cable.
To connect a Zero, you would need an OTG cable; I don't know how common they are with B/mini-B jacks on the other end, so you might need to use an adapter (or OTG hub) for that.
If you are using a 3.3V Arduino and you don't want to just connect it directly to the Pi's TX/RX pins, yes you could use that FTDI if it works already with a Pi 3.
Note that the Zero can't provide nearly as much power as the Pi 3. It should be okay for an Arduino but not necessarily if there is anything drawing power from that.
the Arduino is this 5v flight controller. so I can power it directly by using e.g. 8th UART pin (TX) to Arduino RX ? and defining port in python, instead of /dev/ttyUSB0 what should I use?
RX/TX are data exchange, not power. You could power from the Pi's 5V, but there is not much point if the logic level of the data pins is different -- the Pi uses 3.3V, and most Arduino's use 5V. However, if that Arduino does use 3.3V logic (some of them do), then you could connect the RX/TX pins directly and use 5V + GRD directly from the Pi and eliminate the FTDI.
Unfortunately I can't tell from looking at either device whether this is definitely so and it is not clearly stated one way or another on the product pages. A device's power and logic levels are not necessarily the same (e.g., Pi's are 5V power devices but use 3.3V logic on the breakout).
BTW, "TTL" stands for "transistor-transistor logic", i.e., it's the same as the "logic level" I'm referring to. A "USB to TTL adapter" (which is used to describe your FTDI) implies the output isn't 5V. However, since "TTL" doesn't indicate any particular voltage all by itself, it isn't clear. The risk if the Arduino is 5V would be damaging the Pi if you connect the data pins directly.

- 58,859
- 17
- 112
- 227
-
the Arduino is this 5v flight controller. so I can power it directly by using e.g. 8th UART pin (TX) to Arduino RX ? and defining port in python, instead of /dev/ttyUSB0 what should I use? – Miky Jun 02 '18 at 13:54
-
Okay, unlike a normal Arduino that does not have a USB jack -- you really should have mentioned that in the original question as the reason for the FTDI. I suppose I could have deduced from looking at the FTDI though. Anyway, I've added some stuff above about that. – goldilocks Jun 02 '18 at 14:15
-
I explained bad, I power the Arduino from a 5v 3A BEC and I use the FTDI only for logic. I meant can I use e.g. 8th UART pin (TX) to Arduino RX for data exchanging? as they seem to be doing here – Miky Jun 02 '18 at 15:12
-
Yes, if you are sure the device you have is also 3.3V logic ("logic levels", TTL, etc. refer to data lines). Otherwise you need a level shifter: https://raspberrypi.stackexchange.com/a/49775/5538 ...In which case you might as well stick with the FTDI (although if space is an issue with the bulky USB plug, a shifter is considerably smaller). – goldilocks Jun 03 '18 at 12:18