FireBeetle 2 ESP32-C6 als günstiger Sensor für die ESP32 Wetterstation

Der Nachbau der ESP32 Wetterstation ist im Grunde recht einfach. Die Beschaffung der Sensorplatinen gestaltet sich jedoch etwas schwieriger, da diese erst bei einem Hersteller wie JLCPCB bestellt werden müssen. Es ist jedoch nicht garantiert, dass immer alle Bauteile verfügbar sind und vor allem sind Bestellungen in kleinen Stückzahlen recht kostspielig. Meine zehn Platinen haben mit Versand etwa 200 Euro gekostet, dazu kommen dann noch die Kosten für den Zoll.

Vor Kurzem bin ich jedoch auf das FireBeetle 2 ESP32-C6 Board von DFROBOT gestoßen, das sehr interessant klingt. DFROBOT hat mir freundlicherweise einige Boards zur Verfügung gestellt, um eine kostengünstigere und einfacher nachzubauende Version des Sensors zu entwickeln.

Der ESP32-C6

Der ESP32-C6 kombiniert erstmals in der ESP32-Familie den schnellen und effizienten Wi-Fi 6-Standard mit der offenen RISC-V-Prozessorarchitektur, die bereits in den Modellen ESP32-C2, ESP32-C3 und ESP32-H2 zum Einsatz kommt. Der Wechsel von der proprietären Xtensa-Architektur zu RISC-V in den neueren ESP32-Modellen bietet eine Reihe von Vorteile:

  • Offenheit und Flexibilität: RISC-V ist eine offene Befehlssatzarchitektur, die von einer breiten Gemeinschaft entwickelt und unterstützt wird. Dies ermöglicht eine größere Flexibilität und Anpassungsfähigkeit im Vergleich zu proprietären Architekturen wie Xtensa.
  • Kosteneffizienz: Da keine Lizenzgebühren anfallen, können RISC-V-basierte Prozessoren kostengünstiger hergestellt werden.
  • Zukunftssicherheit: Die wachsende Popularität von RISC-V und die breite Unterstützung durch die Industrie stellen sicher, dass diese Architektur auch in Zukunft eine wichtige Rolle spielen wird.

Die wichtigsten Merkmale des ESP32-C6

Der ESP32-C6 bietet eine Reihe von Funktionen, die ihn zu einer attraktiven Wahl für eine Vielzahl von IoT-Anwendungen machen:

  • Zwei RISC-V Kerne: Ein leistungsstarker Kern mit bis zu 160 MHz Taktfrequenz für anspruchsvolle Aufgaben und ein stromsparender Kern mit bis zu 20 MHz Taktfrequenz für den Betrieb im Hintergrund.
  • Speicher: Der Chip verfügt über 320 KB ROM, 512 KB SRAM und unterstützt externen Flash-Speicher.
  • Wi-Fi 6 (802.11ax): Ermöglicht schnellere Datenübertragungsraten, höhere Kapazität und bessere Leistung in Umgebungen mit vielen Geräten.
  • Bluetooth 5 (LE): Unterstützt Bluetooth Low Energy für energieeffiziente Verbindungen mit Smartphones, Wearables und anderen Geräten.
  • 802.15.4-Protokoll: Ermöglicht die Integration in Mesh-Netzwerke wie Zigbee und Thread, die insbesondere für Smart Home-Anwendungen relevant sind. Die Unterstützung von Thread ist dabei von besonderer Bedeutung, da es das primäre Netzwerkprotokoll für den neuen Smart Home-Standard Matter darstellt.
  • Umfangreiche Peripherie: Der ESP32-C6 bietet eine Vielzahl von Schnittstellen, darunter SPI, UART, I2C, I2S, RMT, TWAI, PWM, SDIO und Motor Control PWM.
  • ADC und Temperatursensor: Ein integrierter 12-Bit-ADC und ein Temperatursensor erweitern die Einsatzmöglichkeiten des ESP32-C6.

Das folgende Diagramm zeigt einen Überblick des ESP32-C6:











...

Espressif’s ESP32-C6 Wi-Fi + Bluetooth ® Low Energy + 802.15.4 SoC


Espressif’s ESP32-C6 Wi-Fi + Bluetooth® Low Energy + 802.15.4 SoC...










...










...










...



CPU System




CPU System...

Wireless MAC and

Baseband

Wireless MAC and...
RF
RF

HP RISC-V

32-bit

Microprocessor

HP RISC-V...

LP RISC-V

32-bit

Microprocessor

LP RISC-V...
Cache
Cache
JTAG
JTAG
ROM
ROM
SRAM
SRAM

LP

Memory
LP Memory
Wi-Fi MAC
Baseband
Wi-Fi MAC...
Wi-Fi MAC
Wi-Fi MAC
Bluetooth LE
Baseband
Bluetooth LE...
802.15.4
Baseband
802.15.4...
Bluetooth LE
Link Controller
Bluetooth LE...
802.15.4
MAC
802.15.4...
2.4 GHz Balun + Switch
2.4 GHz Balun + Switch
2.4 GHz Transmitter
2.4 GHz Transmitter
2.4 GHz Receiver
2.4 GHz Receiver
RF Synthesizer
RF Synthesizer










...



Peripherals




Peripherals...
SRAM
SRAM
TWAI®
TWAI®
GDMA
GDMA
SDIO 2.0
Slave
SDIO 2.0...
LED PWM
LED PWM
PARLIO
PARLIO
System Timer
System Timer
I2C
I2C
I2S
I2S
PCNT
PCNT
Brownout
Detector
Brownout...
ETM
ETM
MCPWM
MCPWM
General-Purpose
Timers
General-Purpose...
GPIO
GPIO
UART
UART
RMT
RMT
Temperature
Sensor
Temperature...
ADC
ADC
USB Serial/
JTAG
USB Serial/...
Main System
Watchdog Timers
Main System...
LP IO
LP IO
RTC Watchdog
Timer
RTC Watchdog...
Super
Watchdog
Super...
eFuse
Controller
eFuse...
LP UART
LP UART
LP I2C
LP I2C










...
Power Management
Power Management










...
Security
Security
Power Management Unit
Power Management Unit
SHA
SHA
RSA
RSA
ECC
ECC
AES
AES
Digital
Signature
Digital...
HMAC
HMAC
RNG
RNG
Clock
Glitch Filter
Clock...
TEE
Controller
TEE...
Secure
Boot
Secure...
Flash Encryption
Flash Encryp...
APM
APM
Modules having power in specific power modes:

Modules having power in specific power modes:
Active
Active
Active, Modem-sleep
Active, Modem-sleep
Active, Modem-sleep, Light-sleep
Active, Modem-sleep, Light-sleep
All modes
All modes
optional in Light-sleep
optional in Light-sleep
optional in Deep-sleep
optional in Deep-sleep

Der ESP32-C6 bietet ein flexibles Energiemanagement durch Anpassung von Taktfrequenz, Wi-Fi-Modi und Leistungsaufnahme interner Komponenten. Zur Vereinfachung stehen vordefinierte Modi zur Verfügung, die verschiedene Kombinationen von Komponenten mit Strom versorgen:

  • Aktiver Modus: Alle Komponenten sind aktiv, um Datenverarbeitung, Senden und Empfangen von Daten zu ermöglichen.
  • Modem-Sleep-Modus: Die Haupt-CPU bleibt aktiv, kann aber mit reduzierter Taktfrequenz arbeiten. Die Funkverbindungen können durch periodisches Ein- und Ausschalten der HF-Schaltungen aufrechterhalten werden.
  • Light-Sleep-Modus: Die Haupt-CPU wird angehalten, kann aber optional mit Strom versorgt werden. Low-Power-Komponenten und die Low-Power-CPU können periodisch aktiviert werden. Der Chip kann durch verschiedene Mechanismen aufgeweckt werden, während Funkverbindungen aktiv bleiben können.
  • Deep-Sleep-Modus: Nur das Low-Power-System bleibt aktiv. Die Daten der Funkverbindungen werden im Low-Power-Speicher abgelegt, um eine schnelle Wiederherstellung beim Aufwachen zu ermöglichen. In diesem Modus beträgt die Stromverbrauch lediglich 7 µA.

Diese flexible Steuerung der Leistungsaufnahme ermöglicht es, den ESP32-C6 optimal an die jeweiligen Anforderungen anzupassen, wodurch er sich besonders gut für den Einsatz in batteriebetriebenen Geräten eignet.

Das FireBeetle 2 ESP32 C6 Board

Es gibt inzwischen schon viele Entwicklungsboards mit dem ESP32-C6 am Markt. Das Board von DFROBOT hat jedoch einige Eigenschaften, die es ideal für den Einsatz als Sensor für die Wetterstation machen:

  • Geringer Stromverbrauch mit 16 uA im Deep-Sleep-Modus.
  • Stromversorgung über USB-C oder Lithium-Ionen-Akku
  • Eingebauter Laderegler zum Laden des Akkus über Solarzellen
  • Spannungsteiler zur Überwachung der Batteriespannung

Das Board bietet auch eine GDI-Schnittstelle für die einfache Verbindung zu Displays, was ich im Moment aber noch nicht verwende. Aber es wäre sicher interessant, auch am Sensor selbst eine kleine Anzeige für die aktuellen Messwerte des Sensors zu haben.

Alle technischen Details sind in einem Wiki beschrieben und es gibt auch einige Arduino und MicroPython Tutorials.

FireBeetle 2 ESP32 C6

Dadurch dass das DFROBOT Board bereits viele Komponenten integriert, fehlen nur noch der der DIP Schalter zur Einstellung der Sensor-Nummer und der BME280 zur Erfassung von Temperatur, Luftfeuchtigkeit und Luftdruck. Dazu habe mir einen Prototyp mit einer Lochrasterplatine zusammengelötet, die einfach auf das Board gesteckt werden kann:

Die Platine wird zwar keinen Schönheitspreis gewinnen, aber sie funktioniert. Da sich inzwischen immer mehr Menschen in meinem Umfeld so eine Wetterstation wünschen, wäre es wohl vernünftig, auch eine passende Platine zu entwerfen. Ich werde den Artikel aktualisieren, falls es soweit ist.

Natürlich habe ich auch den Stromverbrauch des Firebeetle Boards mit dem Power Profiler-Kit II vermessen. Hier sind die Ergebnisse. Zunächst der Verbrauch im Deep-Sleep-Modus:

Stromverbrauch Deep-Sleep-Modus

Der Wert von 18.13 µA ist nur knapp über der Angabe von DFROBOT, aber bei mir kommt ja auch noch der Stromverbrauch des BME280 dazu.

In der aktiven Phase sieht der Stromverbrauch folgendermaßen aus:

Stromverbrauch aktiver Modus

Beim Senden der Daten erreicht das Board hier mit 439 mA einen recht hohen Wert. Der ESP32 auf meinem selbst entworfenen Board erreicht hier nur 309 mA.

Der wirklich interessant Wert ist aber der Durchschnitt über das 10 Minuten Intervall, mit dem der Sensor arbeitet:

Durchschnittlicher Stromverbrauch

Der Wert von 80,81 µA ist beinahe identisch zu meinem Board, das einen Wert von 80,40 µA hat. Somit ist diese Kombination also bestens als Sensor für die Wetterstation geeignet. Auch der Preis für diese Version des Sensors ist deutlich niedriger als mein eigenes Board. Der FireBeetle 2 ESP32-C6 kostet nur knapp 5,90 Euro, dazu kommt noch der BME280, den man auf AliExpress schon für 2,60 Euro bekommt und der DIP Schalter, der etwa 16 Cent kostet. Insgesamt also unter 10 Euro. Allerdings sind hier mögliche Versandkosten nicht miteingerechnet.

Den Code für den Sensor habe an den ESP32-C6 angepasst und er ist auf GitHub verfügbar.

Bei Gelegenheit werde ich auch noch ein passendes Gehäuse entwerfen. Es müssen aber nur die Bohrungen für die Platine angepasst werden, der Rest ist identisch.

Konversation wird geladen