ESP32 Cam und FTDI richtig verkabeln

ESP32 Cam FTDI – So verkabelst du einen Mikrocontroller, wenn er keinen USB-Port besitzt

Von René Aye
Letzte Aktualisierung: 08. Jan. 2025
7 min
Image

Das sehr weit verbreitete ESP32 Cam Board von AI Thinker hat keinen USB-Port. Aber wie bekommst du deinen Code auf das Board geladen? Wie kannst du deine ESP32 Cam flashen? Du benötigst dazu ein sogenanntes FTDI.

Was ein FTDI ist und wie man so ein FTDI an die ESP32 Cam anschließt, das schauen wir uns heute genauer an.

Die wichtigsten Fakten für dich zusammengefasst

Wie funktioniert Video-Streaming mit der ESP32 Cam

  • Nicht alle Mikrocontroller haben einen USB-Anschluss, den man zum Programmieren verwenden kann – so z.B. viele ESP32 Cam Modelle.
  • Wenn es keinen USB-Port gibt, dann kannst du ein sogenanntes FTDI verwenden, um Code auf den Mikrocontroller zu laden.
  • Ein FTDI ist ein "Übersetzer" zwischen dem USB und dem UART Standard.
  • Bei der Verkabelung mit einem FTDI muss man die RX- und TX-Pins über Kreuz verbinden.
Image
René AyeHead of Kurzschluss @ raydiy
Versorgt seine Microcontroller-Herde stets mit Strom und liebevollem Code.

Kein USB-Port! Was nun?

Es gibt Mikrocontroller, die haben keinen USB-Anschluss, um Code auf das Board zu laden. So zum Beispiel der Arduino Pro Mini oder das sehr weit verbreitete ESP32 Cam Board von AI Thinker.

Vermutlich lässt man den USB-Port aus Platzgründen und/oder aus Kostengründen weg.

Es gibt sogenannte FTDIs, die man dann nutzen muss. Im Grunde sitzen auf so einem FTDI Board genau die Bauteile, die aus oben genannten Platz-/Kostengründen weggelassen worden sind: Ein USB-Port und ein Chip, der als Übersetzer zwischen USB und dem Mikrocontroller dient.

Wenn du wissen willst, welche ESP32 Cam Modelle mit einem USB-Port ausgestattet sind: in meinem Einführungsartikel zum ESP32 Cam findest du 12 verschiedene Modelle in einer Vergleichstabelle. Dort habe ich u.a. aufgeführt, welche Modelle einen USB-Port haben.

 

Image
Von links: ESP32 DevKit mit USB-Port, ESP32 Cam ohne USB-Port, FTDI
AZ Delivery ESP32 Cam*

AZDelivery ESP32 Cam Modul + Bluetooth ESP32 5V Dual Core 32-bit CPU mit 2MP Kamera Entwicklungsboard kompatibel mit Arduino inklusive E-Book!

Amazon Link*
* Bei dem Link handelt es sich um einen Affiliate Link. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen.

Was ist UART und TTL?

Heutige Computer nutzen überwiegend USB, um mit anderen Geräten zu kommunizieren. Mikrocontroller wie Arduino und ESP32 kommunizieren mit einem weniger komplexen UART Standard.

UART steht für Universal Asynchronous Receiver/Transmitter. Es benötigt nur zwei Kabel, nämlich um Receiver (Empfänger) und Transmitter (Sender) zu verbinden. Dazu sind die RX- und TX-Pins da, die dir vielleicht schon mal auf einem Mikrocontroller aufgefallen sind.

Dabei wird der RX-Pin des Geräts A mit dem TX-Pin des Geräts B verbunden und der TX-Pin von Gerät A wird mit dem RX-Pin von Gerät B verbunden.

Image
RX- und TX-Pins müssen über Kreuz verbunden werden.

Damit unser Computer (USB) mit dem Mikrocontroller (UART) kommunizieren kann, benötigt es einen Adapter – quasi einen Übersetzer. Daher findet man FTDIs auch unter dem Begriff USB-UART-Adapter, USB-UART-Bridge oder auch USB-UART-Kabel.

UART nutzt das sog. TTL Protokoll (Transistor-Transistor Logic). Das ist ein serielles Kommunikationsprotokoll, ähnlich wie RS232. Da TTL auf Spannungen im Bereich 3,3 und 5 Volt und RS232 eher auf +/-13 Volt ausgelegt ist, hat man sich im Mikrocontroller-Bereich wohl für diesen Standard entschieden – 3,3 Volt und 5 Volt sind die üblichen Betriebsspannungen der Mikrocontroller (siehe auch mein Artikel: Stromversorgung von ESP32 und Arduino).

Daher findet man die FTDIs auch unter dem Namen USB-TTL-Adapter, USB-TTL-Bridge oder USB-TTL-Kabel.

Wofür steht FTDI?

FTDI ist eigentlich der Name einer Firma, die sich auf USB-Lösungen spezialisiert hat. Wenn du dir ein FTDI-Board unter der Lupe anschaust, findest du vermutlich schnell das Herzstück: den FT232 Chip von FTDI.

So hat es sich wohl „eingebürgert“, diese Adapter-Boards FTDI zu nennen – es ist wohl eine Gattungsbezeichnung (aka Deonym) geworden, wie z.B. Tempo, Tesa oder Labello.

Image
FT232RL Chip von FTDI

So verkabelst du einen FTDI mit einem ESP32 Cam Board

Im folgenden Diagramm siehst du, wie du den FTDI an das ESP32 Cam Board von AI Thinker anschließen musst.
Image
So wird ein FTDI an eine ESP32 Cam angeschlossen.

Der RX Pin beim ESP32 Cam Board ist mit UOR beschriftet und der TX Pin ist UOT. Entsprechend muss UOR mit dem TX Pin des FTDI Adapters und UOT mit dem RX Pin des FTDI Adapters verbunden werden.

Achte auf die Beschriftung der Pins auf deinem FTDI Adapter – die sind nicht immer gleich aufgebaut.

Natürlich musst du auch Ground verbinden.

Verwende einen FTDI, der auf 5 Volt ausgelegt ist. Ich empfehle einen FTDI zu nutzen, den man auf 3,3 Volt oder 5 Volt umschalten kann. In dem Fall solltest du den FTDI auf 5 Volt einstellen. Dann verbinde den 5 Volt Pin des FTDIs mit dem 5 Volt Pin des ESP32 Cam Boards.

ESP32 Cam Boot Modus aktivieren

Die meisten FTDIs haben zusätzliche Pins mit der Bezeichnung DTR und CTS. Die kannst du in diesem Fall einfach nicht beachten, da das ESP32 Cam von AI Thinker keine DTR und CTS Pins nach außen führt oder diese anders verwendet (das kann bei anderen ESP32 Cam Boards anders sein).

Deswegen kann das ESP32 Cam nicht automatisch in den Boot Modus gebracht werden (denn dafür sind DTR und CTS u.a. da). Der Boot Modus ist notwendig, damit Code auf das ESP32 Cam Board geladen werden kann.

Um ESP32 Boards in den Boot Modus zu bringen, muss in der Regel der GPIO Pin 0 mit Ground verbunden werden. ESP32 Dev Boards haben dafür in der Regel einen Boot Taster, um genau das zu tun.

Oft kann die Programmer-Software esptool.py das sogar automatisch regeln. Arduino IDE und PlatformIO nutzen esptool.py unter der Haube, um Code auf den Mikrocontroller zu laden. Dann muss man nicht einmal den Boot Taster drücken.

Beim ESP32 Cam von AI Thinker müssen wir den Boot Modus jedoch per Hand aktivieren. Ich habe mir dafür ein kleines Jumper-Kabel gecrimpt (weißes Kabel im Bild unten). Falls du Stiftleisten an deinem ESP32 Cam Board hast, kann man so einfach die zwei entsprechenden Stifte IO0 und GND verbinden.

Image
Fertige Verkabelung mit dem FTDI
Image
Fertige Verkabelung mit dem FTDI
Selbst gecrimptes Jumper-Kabel

Du könntest auch noch einen Taster in das weiße Kabel löten, dann wäre das genau der Boot Taster, den viele ESP32 Dev Boards besitzen. Falls du auch eigene Jumper-Kabel crimpen möchtest, hier habe eine Anleitung geschrieben, wie man eigene Stecker und Jumper-Kabel crimpt.

Nun kannst du ein USB-Kabel verwenden, um den FTDI mit deinem Computer zu verbinden.

In den folgenden Artikeln zeige ich, wie man Code mit der Arduino IDE auf die ESP32 Cam lädt. Und da ich großer Fan von PlatformIO bin, zeige ich natürlich auch, wie man Code mit PlatformIO und VS Code auf die ESP32 Cam lädt.

FTDI FT232RL USB zu TTL Adapter 3,3V + 5V*

AZDelivery Kompatibel mit FT232RL USB zu TTL Serial Adapter für 3,3V und 5V kompatibel mit Arduino inklusive E-Book!

Amazon Link*
* Bei dem Link handelt es sich um einen Affiliate Link. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen.

Kann man Code auch ohne FTDI auf die ESP32 CAM laden?

Es gibt noch zwei weitere Möglichkeiten Code auf die ESP32 Cam zu laden. Einmal mit einem sogenannten ESP32-CAM-MB Board oder man kann einen anderen Mikrocontroller verwenden.

Beide Methoden nutzen aber letztendlich auch die verbauten FTDI bzw. USB-UART Adapter. D.h. am Ende lautet die Antwort: nein, ohne FTDI geht es nicht.

Wenn du aber z.B. einen Arduino UNO hast, kannst du diesen als FTDI verwenden – du musst dir in dem Fall also keinen zusätzlichen FTDI Adapter zulegen, damit du die ESP32 Cam programmieren kannst.

ESP32-CAM MB*

MakerMind ESP32-Cam-MB USB-zu-TTL Modul für ESP32-CAM CH340G Breakout Board Micro-USB

Amazon Link*
* Bei dem Link handelt es sich um einen Affiliate Link. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen.