Files
Adrian A. Baumann 8bdae1da9b Update docs and firmware for ESPHome bridge migration
- Replace gauge.py (MicroPython) references with gaugecontroller.yaml (ESPHome)
- Update CLAUDE.md and README.md to document ESPHome-native API integration
- Update LED wiring docs for separate main/indicator strips (D22/D36)
- Refactor Arduino firmware to drive two WS2812 strips independently
- Add per-gauge physical offset caching for main and indicator LEDs
- Frame-limit breathe effect (16ms) to reduce unnecessary strip refreshes
2026-04-29 19:03:22 +02:00

80 lines
2.2 KiB
Markdown

# arduino_gauge_controller
A dedicated gauge controller for Arduinos.
## Overview
This repository contains:
- `Gaugecontroller/Gaugecontroller.ino`: the Arduino Mega firmware for the stepper gauges, LEDs, and integrated HV5812-based VFD
- `gaugecontroller.yaml`: the ESPHome-based ESP32 firmware that exposes the gauges and VFD to Home Assistant via the native API
## VFD Support
The integrated gauge controller now includes a 4-digit VFD with:
- 4 alphanumeric digits
- decimal point indicator
- alarm bell indicator
On the merged Arduino firmware, the HV5812 control pins are:
- `D46` -> `DATA`
- `D47` -> `CLOCK`
- `D48` -> `STROBE`
- `D49` -> `BLANK/OE`
The standalone VFD sketch used `D51/D52/D53/D49`, but `51/52/53` conflict with the gauge stepper pins in the integrated controller.
## Arduino Serial Commands
The merged Arduino firmware accepts:
- `VFD`
clears the display and turns off decimal point and alarm bell
- `VFD 1234`
- `VFD 0123`
- `VFD DEAD`
- `VFD 8888.`
- `VFD BEEF!`
- `VFD 12AF.!`
Rules:
- up to 4 characters are displayed
- valid characters are `0-9`, `A-F`, and `-`
- `.` enables the decimal point
- `!` enables the alarm bell
- shorter values are right-aligned
- leading zeroes are preserved if they are part of the input
## Home Assistant Integration
The ESPHome firmware in `gaugecontroller.yaml` exposes entities to Home Assistant via the native API:
### Gauge Controls
- Number entities for each gauge's target value (with unit conversion)
- Number entities for speed and acceleration (diagnostic)
- Rezero buttons for each gauge and all gauges
### VFD Display
- `VFD Display`: text entity for the displayed value
- `VFD Decimal Point`: switch entity
- `VFD Alarm`: switch entity
The display is intentionally exposed as a text entity rather than a numeric entity so that:
- leading zeroes are preserved
- hexadecimal values like `DEAD` or `BEEF` work
- clearing the display is possible with an empty value
### LED Controls
- RGB light entity for each gauge's backlight with effects (Blink, Breathe, Double Flash)
- Binary light entities for each gauge's red/green indicators and status lights
### Diagnostics
- WiFi signal sensor
- Uptime sensor
- IP address and SSID text sensors
- Arduino Last Message sensor