Overview
An ESP32-C3 Super Mini firmware project that reads several I2C sensors and drives dual OLED displays, built incrementally in stages with PlatformIO (Arduino framework).
Hardware
- MCU: ESP32-C3 Super Mini (
esp32-c3-devkitm-1) - I2C bus: SDA = GPIO8, SCL = GPIO9 @ 100 kHz
- Sensors: AS5600 magnetic angle (
0x36), MPU6050 IMU (0x68), INA219 power monitor (0x40) - Displays: main OLED SH1106 128x64 (
0x3D), debug OLED SSD1306 128x32 (0x3C) - Buttons: MODE (GPIO0), ZERO (GPIO2), active-low with internal pull-ups
Display modes
HEIGHT, CAMBER and BATTERY, with an AUTO mode. USB CDC is the primary debug output at 115200 baud.
Build & flash
# One-liner (auto-detects PlatformIO)
./upload.sh
# Or manually
pio run -e esp32-c3-super-mini -t upload && pio device monitor -b 115200
3-point height calibration
The firmware stores a piecewise-linear height calibration in NVS:
- Press ZERO to enter calibration mode.
- Place the tool at 7.00 mm -> ZERO (store A0).
- Place at 20.00 mm -> ZERO (store A1).
- Place at 30.00 mm -> ZERO (store A2), saved to NVS.
Normal display then reads out height in mm to two decimals.