Warning
Draft
What?
The esp32, and in particular the Xiao Seeed esp32c6 (and esp32c3) are small, versatile and fast microcontrollers.
It’s a RISC-V processor with:
- wifi/bluetooth/zigbee/thread/matter
- all the interfaces one could possibly need: I2C/UART/SPI/GPIO/ADC/…
- battery charging circuit (100ma)
- sleep and deep sleep mode (down to ~15μA !!)
Why this device?
Compatibility
I’ve been using Rust for practically everything and wanted a device that had good compatibility. So there’s The Rust on ESP Book .
The ESP-IDF (IoT Development Framework) is primarily written in C and has great support for C++. So there are options.
Capability
I’ve used it for a plethora of projects:
- mobile thermometer (using bme280): uses deep sleep and wakes up every hour to send data to influxdb
- electronic dice (using msa311 triple-axis accellerometer) using i2c for msa311 and oled display
- remote power switch for my ASUS Z10Pe-D16 workstation (connected to StandBy power)
- LED strip controller with web interface
- Analog interface for a raspberry pi to measure power consumption using SCT-013 30A sensors
- remote scale to weigh gastanks using 4 50kg load cells in wheatstone bridge config
- Lithium-ion and lipo battery charger (esp32c3 has higher load current)
- wireless light switch over Thread for a room where the bed is in the only corner without lightswitches.
- car proximity detection using BLE for smart driveway lights
- home thermostat controller with relay, to replace the stupidly annoying BTicino BTL4441, as part of the home temperature system (zones, ..)
- …
Availability
The device is available through different sources at decent prices.
Where to start
- Xiao Seeed website for esp32c6
- Great online web interface to explore the device: ESPConnect
- Starterkit in C on github (under construction)
- ✅ with provisioning for wifi using wifi Access Point mode
- example implementations for
- ⬜ reading battery voltage using voltage divider (ADC)
- ⬜ i2c sensor
- ⬜ spi sensor
- ⬜ UART sensor
- ✅ webserver
- ✅ ntp time sync and uptime keeping
- …
- Starterkit in Rust (under construction)
Some alternatives considered
- Raspberry Pi Pico 2W
- stm32
- ATtiny
I’ll post links to the github repos of each project later. To be continued ..
jeroenflvr