Workbench

Datum

Verfasst von

Workbench

QSP32 Solar Boost

Datum

Erstmals veröffentlicht

October 23, 2024

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!

QSP32-Solar-Boost-Platine mit Funkmodul, USB-C-Port und Stromanschlüssen.

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:

  1. Eingabedateien hochladen (Schaltplan und Platinendatei), die Netzliste, Bauteilfootprints, Platinenkontur und die Position vorplatzierter Bauteile definieren.
  2. 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.

Preview of my input board file to Quilter
Vorschau meiner Eingabe-Platinendatei für Quilter

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.

QSP32 Solar Boost high current net constraints
Hochstromnetz-Vorgaben für den QSP32 Solar Boost

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.

Differential Pairs specification input to Quilter
Eingabe der Differenzpaar-Spezifikation in Quilter

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.

Choosing a layout candidate
Auswahl eines Layoutkandidaten

Hier ist das von mir gewählte Design.

Output file in KiCad from Quilter
Quilters Ausgabedatei in KiCad

Inbetriebnahme und Validierung

Nach dem Erhalt der bestückten Platine von MacroFab musste ich folgende Funktionen validieren:

  1. Spannungsregelung: stabile 3.3V für den ESP32
  2. Energy Harvesting über ein Solarpanel
  3. Serielle Kommunikation über USB mit meinem Computer
  4. I2C-Kommunikation über die herausgeführten Stiftleistenpins mit einem externen LCD
  5. 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.

Power-on LED in orange rectangle
Betriebsanzeige-LED im orangefarbenen Rechteck
Serial monitor validates voltage, serial comms, and sensor data
Der serielle Monitor bestätigt Spannung, serielle Kommunikation und Sensordaten

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

The QSP32 Solar Boost set up to test with a capacitor and solar panel
Der QSP32 Solar Boost im Testaufbau mit Kondensator und 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.

LCD showing battery voltage over I2C
Das LCD zeigt die Batteriespannung über I2C

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.

Schematic view of USB-C connector and UART. Orange arrows point to differential pairs.
Schaltplanansicht von USB-C-Anschluss und UART. Orangefarbene Pfeile markieren die Differenzpaare.

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).

PCB layout view of USB-C connector pins on the bottom and UART pins on the top
PCB-Layoutansicht mit USB-C-Anschlusspins unten und UART-Pins oben

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.

Oscilloscope capture of Differential Pairs signals: DP (red) and DM (blue)
Oszilloskopaufnahme der Differenzpaarsignale: DP (rot) und DM (blau)

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

Oscilloscope closeup capture of Differential Pairs signals: DP (red) and DM (blue)
Oszilloskop-Nahaufnahme der Differenzpaarsignale: DP (rot) und DM (blau)

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.

Schematic view of USB-C, 3.3V regulator, and ESP32-C3-Mini
Schaltplanansicht von USB-C, 3.3V-Regler und ESP32-C3-Mini

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.

QSP32 Solar Boost voltage regulator component layout
Bauteillayout des Spannungsreglers im QSP32 Solar Boost

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

Screenshot of Quilter’s bypass capacitor placement feature
Screenshot von Quilters Funktion zur Platzierung von Abblockkondensatoren

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.

Voltage regulator 5.2V input (blue) and 3.3V regulated output (red)
Spannungsregler: 5.2V-Eingang (blau) und geregelter 3.3V-Ausgang (rot)

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.

I2C signal -SCL (yellow), SDA (red)- from an LCD and pressure, temperature, and humidity sensors.
I2C-Signal – SCL (gelb), SDA (rot) – von einem LCD sowie Druck-, Temperatur- und Feuchtigkeitssensoren.

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:

  1. I2C ist ein robustes Kommunikationsprotokoll, das Rauschen verträgt.
  2. Eine Platine lässt sich beliebig optimieren, doch Einflüsse außerhalb der Platine können und werden die Signalintegrität beeinträchtigen!
I2C signal -SCL (yellow), SDA (red)- from just the pressure, temperature, and humidity sensors.
I2C-Signal – SCL (gelb), SDA (rot) – nur von den Druck-, Temperatur- und Feuchtigkeitssensoren.
Close-up of I2C signals
Nahaufnahme der I2C-Signale

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!

I2C signal capture with logic analyzer
I2C-Signalaufnahme mit dem Logikanalysator

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

Quilter selbst ausprobieren

Project Speedrun zeigte, wie autonomes Layout in der Praxis aussieht und welche Zeitersparnis Quilter ermöglicht. Erleben Sie es jetzt mit Ihrer eigenen Hardware.

Jetzt starten

Validierung des Designs

Nach der Nachbearbeitung bleibt die entscheidende Frage: Funktioniert die Hardware? Beim Einschalten zeigen sich die meisten elektrischen Fehler. Auf diesen Moment freuen sich Ingenieure ebenso, wie sie ihm nervös entgegenblicken.

Weiter zu Teil 4

Nachbearbeitung des Designs

Autonomes Layout liefert ein vollständiges, DRC-geprüftes Design. Die Nachbearbeitung ist ein kurzer Präzisionsdurchlauf, der es für die Fertigung finalisiert.

Weiter zu Teil 3

Kompilieren des Designs

Nach der Vorbereitung wird das Design an Quilter übergeben. In klassischen Abläufen klärt hier ein Ingenieur die Entwurfsabsicht mit einem Layoutspezialisten. Quilter ersetzt dieses Gespräch durch Schaltungsverständnis: Sie laden das Projekt hoch, prüfen die Interpretation der Randbedingungen und starten den Auftrag.

Weiter zu Teil 2