Documented wiring and layout
This commit is contained in:
90
README.md
90
README.md
@@ -1,3 +1,91 @@
|
||||
# arduino_gauge_controller
|
||||
|
||||
A dedicated gauge controller for Arduinos.
|
||||
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
|
||||
- `gauge.py`: the ESP32 / MicroPython MQTT bridge that exposes the controller to Home Assistant
|
||||
|
||||
## 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 Entities
|
||||
|
||||
The MQTT bridge publishes Home Assistant discovery entities for the VFD:
|
||||
|
||||
- `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
|
||||
|
||||
## MQTT Topics
|
||||
|
||||
Using the configured `mqtt_prefix` from `config.json`, the VFD topics are:
|
||||
|
||||
- `<prefix>/vfd/set`
|
||||
- `<prefix>/vfd/state`
|
||||
- `<prefix>/vfd/decimal_point/set`
|
||||
- `<prefix>/vfd/decimal_point/state`
|
||||
- `<prefix>/vfd/alarm/set`
|
||||
- `<prefix>/vfd/alarm/state`
|
||||
|
||||
Example with the default prefix `gauges`:
|
||||
|
||||
- `gauges/vfd/set`
|
||||
- `gauges/vfd/decimal_point/set`
|
||||
- `gauges/vfd/alarm/set`
|
||||
|
||||
Example payloads:
|
||||
|
||||
- publish `0123` to `gauges/vfd/set`
|
||||
- publish `ON` to `gauges/vfd/decimal_point/set`
|
||||
- publish `OFF` to `gauges/vfd/alarm/set`
|
||||
|
||||
The MQTT bridge then converts that into the correct Arduino serial command such as `VFD 0123.`.
|
||||
|
||||
Reference in New Issue
Block a user