Ich bin schon seit längerem auf der Suche nach einer Thermalkamera für mein Labor. Leider sind brauchbare Kameras relativ teuer und mit der Zeit hat mich der Gedanke gereizt selber eine Kamera zu bauen. Da ich durch ein anderes Projekt in der Vergangenheit noch einen Lepton 3.5 Sensor in meiner Schublade liegen hatte, beschloss ich dieses Projekt in die Tat umzusetzen.
Die initialen Anforderungen für die Kamera waren schnell definiert:
- Sollte auf einem ESP32 basieren, da ich etwas Performance und WiFi benötige und Low-Power egal ist. Da ich keine Lust auf einen alten ESP32 hatte, habe ich mich für einen ESP32-S3 entschieden. Dies sind bis dato (der P4 ist noch nicht gut verfügbar) die leistungsstärksten Chips mit den meisten I/O
- Ein Slot für eine SD-Karte soll vorhanden sein um Bilder abzuspeichern
- LiPo-Akku und eine Ladeschaltung sollen ebenfalls vorhanden sein
- Ich benötige ein Display mit Touch für die Bedienung
Als Display habe ich mich für ein 320×240 Display mit einem ILI9341 Display-Controller und einem XPT2046 Touch-Controller entschieden. Die Auflösung erschien mir als ausreichend und Module mit diesen Komponenten sind gut verfügbar. Den Slot für die SD-Karte nutze ich nicht, da mir die Position nicht gefällt und ich lieber das MMC-Interface der MCU nutzen wollte. Display und Touch sind per SPI angeschlossen.
Das Lepton-Modul wird entsprechend der Referenzbeschaltung am zweiten SPI angeschlossen. Eine Application Note von Flir empfiehlt eine strikte Trennung von anderen Busteilnehmern, da der VoSPI, also das Videointerface des Moduls, zwar technisch ein SPI ist, aber die Kamera nicht mit mehreren Teilnehmern klarkommt und der Bus permanent von der Kamera genutzt wird.
Als Batterie nutze ich einen 140 mAh LiPo-Akku aus einem anderen Projekt. Dazu dann noch einen BQ25186 Laderegler und ein paar LDOs für die Spannungsversorgung des Lepton-Moduls und einen Step-Down-Konverter für den ESP32. Dazu dann noch einen Portexpander für ein paar mehr I/Os, eine LED für Statusmeldungen, ein Taster für irgendwelche Funktionen und das Programmierinterface, welches als Würth REDFIT IDC ausgelegt wird, damit ich mir eine Stiftleiste spare und das Kabel lässt sich wunderbar mit einem ESP-PROG verbinden. Eine RTC von Micro Crystal rundet das ganze Design ab.
Basierend auf diesen Anforderungen habe ich einen Prototypen für die Platine entworfen. Dieser Prototyp soll primär zur Softwareentwicklung dienen. Die Platine ist als 4-Lagen Board ausgelegt und wurde bei PCBWay gefertigt und bestückt.
Bei der Inbetriebnahme der Platine haben sich gleich mehrere Fehler und falsche Annahmen offenbart…
- Ich habe MOSI und MISO beim Display verwechselt -> Doofer Fehler, ließ sich aber fixen
- Der ESP32-S3 kann zwei SPI nutzen, wobei das MMC-Interface einen SPI belegt. Da der andere SPI zwingend für das VoSPI der Lepton-Kamera genutzt werden muss und keine anderen Busteilnehmer erlaubt, habe ich keinen SPI für das Display mehr frei (außer ich nutze mehrere Pins für einen SPI, was aber blöd in der Handhabung ist)
- Als Lösung für das Problem habe ich ein Modul für eine SD-Karte per Fädeldraht an den SPI angeschlossen, nur um dann herauszufinden, dass der genutzte Bustreiber den SPI, genauer MISO, kaputt macht und somit die SD-Karte nicht funktioniert, wenn man mehr als einen Busteilnehmer verwendet (danke AZDelivery für diese wunderbare Qualität und das tolle Design der Elektronik…)
- Der LiPo Akku ist gnadenlos unterdimensioniert. Keine Ahnung wieso ich den gewählt habe (ich schätze weil er rum lag…)
- Der LiPo-Charger ist falsch gewählt. Zu komplex und die Funktionen benötige ich alle nicht. Hier reicht eine simplere Variante
- Der Taster ist so platziert das er vom Display verdeckt wird, sprich ich kann ihn nicht nutzen *hust*
- Der resistive Touch ist viel zu ungenau. Kleine Buttons im UI lassen sich sehr schlecht drücken. Hier soll ein kapazitiver Touch bessere Ergebnisse liefern
- Die LED hätte lieber eine RGB-LED sein sollen
Nach ein paar händischen Änderungen funktioniert die Platine dann doch ganz gut als Startplattform für die Softwareentwicklung der Kamera (dazu später mehr).

Während der Inbetriebnahme sind mir zudem einige neue Ideen für die Revision 1 der Kamera gekommen:
- Eine zusätzliche RGB-Kamera mit Blitz wäre gut um eine Bildfusion von Thermal und RGB zu bekommen. Diese Technologie wird u. a. von Flir unter dem Namen „MSX“ verkauft und sieht interessant aus

- Ein interner Temperatursensor ist Pflicht um die Genauigkeit der Lepton zu verbessern
- Statt einem Button sollen es vier werden. Außerdem soll ein 5-Wege Taster genutzt werden um ein Steuerkreuz, wie man es von Digitalkameras kennt, zu realisieren
- Die Taster und die LED sollen unter dem Display angeordnet werden. Wegen der unterschiedlichen Höhen und der mangelnden Verfügbarkeit von 320×240 Displaymodulen mit kapazitiven Touch macht es Sinn dafür ein separates PCB zu designen
- Um auf der sicheren Seite zu sein sollte ich eine ordentliche Pegelwandlung einbauen. Die Transistoren auf dem Development-Board funktionieren zwar, sind aber nicht ganz ideal
- Die Batteriemessung mittels ADC wird durch eine Fuel-Gauge ersetzt. Das spart etwas Strom und ist genauer. Außerdem kann ich damit auch Alarme nutzen
- Es gibt ein ESP32-S3 Modul mit 32 MB Flash und 16 MB PSRAM. Schadet nicht etwas mehr zur Verfügung zu haben



