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.
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.
Jetzt anmelden
und kostenloses eBook bekommen!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.
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.
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.
So verkabelst du einen FTDI mit einem ESP32 Cam Board
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.
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.
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.
Links & Produktempfehlungen
Links zum Thema ESP32 Cam
Jetzt anmelden
und kostenloses eBook bekommen!