Die gesamte Serie lesen
Dieser Artikel ist Teil einer ausführlichen Anleitung dazu, wie wir mit Quilters physikgestützter Layout-Automatisierung einen Computer auf Basis des NXP i.MX 8M Mini nachgebaut haben.
Nach dem Erfolg des QSP32 wollten wir Quilters generativen PCB-Designer auf neues Terrain führen: eine IoT-Platine mit Energy-Harvesting-Funktion.
Hier ist der QSP32 Solar Boost!

Der QSP32 Solar Boost ist eine Leiterplatte, mit der sich solarbetriebenes Laden in beliebige IoT-Projekte integrieren lässt. Wie beim QSP32 wurde das Platinenlayout vollständig durch Quilters generatives Design erstellt, ohne menschlichen Eingriff.
Der QSP32 Solar Boost enthält das Modul ESP32-C3-MINI-1 sowie:
- Einen USB-2.0-zu-UART-Chip,
- Einen Spannungsreglerchip von 5V auf 3.3V,
- Einen Chip zur Gewinnung von Mikro- oder Milliwatt aus einem Solarpanel,
- Zugang zu GPIOs über Stiftleisten,
- Eine I2C-Schnittstelle für ein LCD,
- Einen kombinierten Sensor für Luftfeuchtigkeit, Temperatur und Druck
Ob Sie die Energieeffizienz optimieren oder umweltfreundliche Geräte entwickeln: Dieses Projekt zeigt, wie Quilter praktische Herausforderungen bewältigt und dabei viel Zeit spart.
Kurzfassung: Quilter hat das Layout hervorragend erstellt, ich ließ es bei Macrofab fertigen, und alles funktioniert wie erwartet!
Lesen Sie weiter für den vollständigen Projektbericht!
QSP32 Solar Boost blinkt „Hello World“
Entwerfen mit Quilter
Die Einrichtung eines Auftrags in Quilter umfasst zwei wesentliche Schritte:
- Eingabedateien hochladen (Schaltplan und Platinendatei), die Netzliste, Bauteilfootprints, Platinenkontur und die Position vorplatzierter Bauteile definieren.
- Randbedingungen definieren, die die wichtigsten physikalischen Anforderungen festlegen, die Quilters KI-Designer beim Layout beachten soll.
Eingabedateien
Ich habe einige Bauteile mit wichtigen Positionsanforderungen vorplatziert:
- Das ESP32-C3-MINI-Modul, weil die Leiterbahnantenne des ESP32 über den Platinenrand hinausragen sollte, um Signalstörungen zu reduzieren.
- USB- und Batterieanschlüsse: Diese gruppierte ich entlang einer gemeinsamen Kante.
- Drucktaster: Diese platzierte ich nahe am ESP32, damit sie gut zugänglich sind.
- Lötpunkte für das Solarpanel: Ich untersuche, wie sie sich in ein Gehäuse integrieren lassen.
Die übrigen Bauteile ließ ich für Quilter unplatziert. Rechts sehen Sie insgesamt 63 Bauteile: Ich platzierte 10 vor, sodass Quilter noch 53 Bauteile mit 265 Pins platzieren und routen musste.

Physikalische Randbedingungen
Beim QSP32 Solar Boost waren die wichtigsten physikalischen Aspekte:
- Hochstromnetze für die USB-C-Stromversorgung und die Li-Po-Ladeschaltung
- Differenzpaare für USB-Signale zwischen USB-C-Anschluss und UART
- Abblockkondensatoren für ausreichende Entkopplung und Filterung
💡
Als dieses Layout ursprünglich erstellt wurde (August 2024), unterstützte Quilter nur Hochstromnetze und Differenzpaare. Randbedingungen für Abblockkondensatoren gab es noch nicht.
Hier sind die Hochstromnetz-Vorgaben, die ich vor dem Einreichen des Layoutauftrags bei Quilter festgelegt habe.

Quilter hat jetzt eine Funktion für Differenzpaare! Obwohl Differenzpaare nur für schnelle, störempfindliche Kommunikationsprotokolle wie Ethernet oder USB erforderlich sind, definierte ich ein Differenzpaar an der USB-zu-UART-Brücke (USB zu seriell), um die Funktion zu testen.

Ausgabedatei
Zwei Stunden nach dem Hochladen meiner Eingabedateien wählte ich Kandidat 7 aus 12 Kandidaten, weil er meinen Präferenzen für ein einseitig bestücktes Layout, 4 Lagen und den Fertiger entsprach.

Hier ist das von mir gewählte Design.

Inbetriebnahme und Validierung
Nach dem Erhalt der bestückten Platine von MacroFab musste ich folgende Funktionen validieren:
- Spannungsregelung: stabile 3.3V für den ESP32
- Energy Harvesting über ein Solarpanel
- Serielle Kommunikation über USB mit meinem Computer
- I2C-Kommunikation über die herausgeführten Stiftleistenpins mit einem externen LCD
- Sensordaten über I2C: Druck, Temperatur, Luftfeuchtigkeit
Ich validierte Spannungsregelung, serielle Kommunikation und den BME280-Sensor des Solar Boost in einem Schritt: Ich programmierte einen Sketch zur Erfassung von BME280-Sensordaten in das ESP32-C3-MINI-Modul.
Die Programmierung und das serielle Auslesen im zweiten Bild unten zeigen, dass der Spannungsregler die USB-Spannung von 5.2V auf stabile 3.3V für den ESP32 regelt. Zur zusätzlichen Prüfung gibt es eine Betriebsanzeige-LED (D7) zwischen 3.3V und Masse, direkt unten abgebildet.


Energy Harvesting
Die Energiegewinnung erfolgt über den BQ25504: einen Aufwärtswandler, der Mikro- oder Milliwatt aus Quellen wie einem Solarpanel aufnimmt und verwaltet. Ich prüfte die Funktion mit einem kleinen Solarpanel (~1.25” x 2”) mit 3.4V Leerlaufspannung und 2.2V am maximalen Leistungspunkt (V @pmpp) sowie einem gepolten 470uF-Kondensator mit 6.3V Nennspannung.
Ich legte die Tastköpfe an den Kondensator und bewegte das Panel ins Sonnenlicht und wieder heraus. Der Kondensator lädt und entlädt sich schnell. Obwohl dieses Video um den Faktor 1000 beschleunigt ist, lässt sich das Signal deutlich erkennen.
Der QSP32 Solar Boost lädt und entlädt einen Kondensator über ein Solarpanel

LCD über I2C
Dieses LCD ist an herausgeführte Stiftleistenpins der Solar-Boost-Platine angeschlossen und zeigt Echtzeitdaten an, die über den I2C-Bus übertragen werden.
Ich programmierte einen einfachen Sketch zum Lesen und Anzeigen der Batteriespannung und bestätigte damit, dass das PCB-Layout korrekt funktioniert.

Designvalidierung
Der QSP32 Solar Boost funktioniert einwandfrei!
Nachdem die Funktion bestätigt ist, schauen wir genauer hin.
Signalintegrität: Differenzpaare
Quilter ergänzt laufend neue Funktionen. Da Quilter jetzt Differenzpaare unterstützt, nutzte ich diese Funktion für die Leiterbahnen zwischen USB und UART (orangefarbene Pfeile). Wie oben erläutert, benötigt die USB-zu-UART-Brücke diese Funktion nicht, aber ich habe sie trotzdem gern ausprobiert.

Quilter hat den FTDI-Chip hervorragend nahe am USB-C-Anschluss platziert. Diese Leiterbahnen verlaufen zwischen einem UART-Chip oben und einem USB-C-Anschluss unten. Die Differenzpaare sind für gute Signalintegrität präzise längenangepasst.
Ich legte Tastköpfe an DP_P und DP_N an (weiße Pfeile).

Diese Oszilloskopaufnahme zeigt die Differenzsignale der USB-zu-UART-Schnittstelle. Die rote (DP) und blaue (DM) Kurve haben wie erwartet entgegengesetzte Polarität. Die Signale sind sauber und zeigen gleichmäßige Signalintegrität.

Die Nahaufnahme dieser Differenzpaare sieht hervorragend aus! Es gibt kein Rauschen, und die Signale sind exakt gespiegelt.

Spannungsregelung
Der Strompfad des QSP32 Solar Boost beginnt mit USB-Strom (5.2V) über einen USB-C-Anschluss. Er führt zu einem 3.3V-Spannungsregler und wird auf 3.3V heruntergeregelt. ESP32s brauchen eine sehr stabile Versorgung, deshalb muss der Regler gut arbeiten.

Die meisten Regler benötigen Abblockkondensatoren am Ein- und Ausgang, um die zugeführte Spannung zu stabilisieren, zu entkoppeln, hochfrequentes Rauschen zu filtern und auf schnelle Laständerungen oder -anstiege zu reagieren.
💡
Als dieses Layout ursprünglich erstellt wurde (August 2024), unterstützte Quilter noch keine Randbedingungen für Abblockkondensatoren.
So platzierte und routete Quilter den Spannungsregler des Solar Boost mit seinen Ein- und Ausgangskondensatoren. Würde ich diese Bauteile selbst von Hand platzieren, würde ich die Anweisungen im Datenblatt befolgen.
Platzieren Sie externe Bauteile, insbesondere den Ausgangskondensator C13, möglichst nahe an den ICs und halten Sie die Verbindungen so kurz wie möglich.
Das schien allerdings keine Rolle zu spielen, denn überall auf der Platine, wo ich messen konnte, lagen recht stabile 3.3V an.

Einen Monat nach der Fertigung des Solar Boost kann Quilter Abblockkondensatoren jetzt über „Circuit Comprehension“ berücksichtigen.

Die blaue Kurve in dieser Oszilloskopaufnahme zeigt die Spannung auf der 5V-Leitung vom USB-C-Anschluss. Die rote Kurve zeigt den 3.3V-Ausgang des Spannungsreglers. Der 3.3V-Ausgang ist sehr sauber, was die Wirksamkeit des Filters belegt.

Signalintegrität: I2C
Zwei Geräte, das LCD und die drei Sensoren, kommunizieren gleichzeitig über diesen Bus. Ich zeichnete die Signale SDA (Daten, rot) und SCL (Takt, gelb) auf, während beide Geräte liefen. Die Signale wirken etwas verrauscht. Das liegt wahrscheinlich an den recht langen Anschlussdrähten (3”), mit denen das LCD verbunden ist.

Die Sensoren auf dem I2C-Bus per Software nicht zu initialisieren, änderte wenig (nicht abgebildet). Das physische Entfernen des LCD verringerte hingegen das Rauschen.
Das überrascht aus dem oben genannten Grund nicht: Das LCD ist über Anschlussdrähte mit externen Pads auf der Platine verbunden.
💡
Daraus ergeben sich zwei Erkenntnisse:
- I2C ist ein robustes Kommunikationsprotokoll, das Rauschen verträgt.
- Eine Platine lässt sich beliebig optimieren, doch Einflüsse außerhalb der Platine können und werden die Signalintegrität beeinträchtigen!


Zum Spaß untersuchte ich das Signal mit einem Saleae-Logikanalysator. Wir sehen die Sensoradresse 0x76 und eine Verzögerung von 8 Sekunden, die ich im Sketch programmiert habe. Wie erwartet erkennt der Logikanalysator die Signale korrekt als I2C!

Fazit
Ich wählte das ESP32-C3-MINI-Modul, weil es wesentliche Bauteile wie Antenne, Quarz, Lastkondensatoren und Abblockkondensatoren integriert. Mit den neuen Funktionen von Quilter freue ich mich darauf, ein vollständiges ESP32-Modul damit zu entwerfen.
Die nächste Revision des QSP32 Solar Boost wird auch die Funktion für Abblockkondensatoren nutzen! Quilters automatische Platzierung und Routing haben für diese Platine sehr gut funktioniert und mir mehrere Tage manueller Layoutarbeit gespart.
Designverbesserungen
- Beide Seiten des USB-C-Anschlusses verbinden, damit der Stecker in beiden Orientierungen funktioniert
- Pulldown-Widerstand an ADCs
- Zusätzlich zur USB-Versorgung für Batteriebetrieb konfigurieren
- GPIO0 ist falsch mit Q1 verbunden
- Den 4-Pin-Footprint von D1 für die Nutzung als RGB-Statusanzeige korrigieren
- D6 umdrehen (im Design verpolt)
- D5 wegen des Energieverbrauchs entfernen
- Werte der Konfigurationswiderstände am BQ25504 prüfen
- Unnötigen EN-Schalter entfernen
- Solarpanel versetzen
- Platine für den „Prototyp“ in Grün fertigen
Nächste Schritte
Aufbauend auf dem QSP32 Solar Boost werde ich seine Effizienz für Solaranwendungen mit geringem Leistungsbedarf verbessern. Mit einem Gehäuse, einem kleineren LCD und einer besseren mechanischen Halterung für das Solarpanel könnte daraus ein schönes kleines Produkt für verschiedenste sparsame Klimadatenerfassungen werden.
Links und Ressourcen
- QSP32 Solar Boost – Eingabedateien
- QSP32 Solar Boost – Ausgabedateien
- QSP32 Solar Boost – Arduino-Sketch
























