- 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
415 lines
14 KiB
Markdown
415 lines
14 KiB
Markdown
# Stripboard Layout Suggestion
|
|
|
|
This is a practical suggested layout for moving the current bench wiring onto stripboard. It is not a PCB netlist. It is a placement and routing plan intended to reduce wiring chaos while keeping the high-voltage VFD side separated from the low-voltage logic side.
|
|
|
|
Use this together with:
|
|
|
|
- [wiring.md](/home/adebaumann/development/arduino_gauge_controller/wiring.md:1)
|
|
- [Rewire_checklist.md](/home/adebaumann/development/arduino_gauge_controller/Rewire_checklist.md:1)
|
|
|
|
## Design Goals
|
|
|
|
- keep `5V logic` on one side
|
|
- keep `VFD high voltage` on the opposite side
|
|
- keep the `HV5812P` between those two domains
|
|
- bring all off-board wiring to clearly labeled edge connectors
|
|
- avoid crossing the gauge step/dir wiring through the VFD area
|
|
- make debugging possible with scope probes and a meter
|
|
|
|
## Recommended Board Strategy
|
|
|
|
Use one main stripboard for:
|
|
|
|
- Arduino Mega interface headers
|
|
- HV5812P and its support wiring
|
|
- connectors for the VFD tube
|
|
- connectors for the three gauge drivers
|
|
- connector for the WS2812 strip
|
|
- connector for the ESP32 UART link
|
|
|
|
Do not mount the Arduino Mega itself onto stripboard. Use pin headers or screw terminals so the Mega remains removable.
|
|
|
|
If possible, also do not mount the ESP32 directly unless you already have a reliable carrier board for it.
|
|
|
|
## Suggested Physical Zoning
|
|
|
|
Arrange the board in four zones from left to right:
|
|
|
|
1. `Mega / ESP32 low-voltage I/O zone`
|
|
2. `Gauge / LED connector zone`
|
|
3. `HV5812P driver zone`
|
|
4. `VFD high-voltage and tube connector zone`
|
|
|
|
That gives you a left-to-right flow like this:
|
|
|
|
```text
|
|
[ Mega / ESP32 ] [ Gauge + LED connectors ] [ HV5812P ] [ VFD + HV connectors ]
|
|
```
|
|
|
|
This is better than putting the HV5812 at the edge near the Mega, because the HV5812 is the boundary device between logic and high voltage.
|
|
|
|
## Board Orientation
|
|
|
|
Assume the stripboard copper tracks run horizontally.
|
|
|
|
Recommended use:
|
|
|
|
- horizontal tracks for local distribution
|
|
- vertical jumps made with insulated wire links
|
|
|
|
Cut tracks aggressively around the HV5812P so it does not accidentally join unrelated nets through the copper strips.
|
|
|
|
## Left Side: Mega / ESP32 Interface
|
|
|
|
Place a row of labeled pin headers or screw terminals for the signals coming from the Mega:
|
|
|
|
- `5V`
|
|
- `GND`
|
|
- `D22`
|
|
- `D46`
|
|
- `D47`
|
|
- `D48`
|
|
- `D49`
|
|
- `D50`
|
|
- `D51`
|
|
- `D52`
|
|
- `D53`
|
|
- `RX1`
|
|
- `TX1`
|
|
|
|
Place a second small header for the ESP32:
|
|
|
|
- `ESP32 TX`
|
|
- `ESP32 RX`
|
|
- `ESP32 GND`
|
|
|
|
Keep these headers near one board edge so you can unplug and rework them easily.
|
|
|
|
## Middle-Left: Gauge / LED Connectors
|
|
|
|
Place four connector groups near the Mega interface side:
|
|
|
|
1. `Gauge 0`
|
|
- `DIR`
|
|
- `STEP`
|
|
- `GND`
|
|
2. `Gauge 1`
|
|
- `DIR`
|
|
- `STEP`
|
|
- `GND`
|
|
3. `Gauge 2`
|
|
- `DIR`
|
|
- `STEP`
|
|
- `GND`
|
|
4. `WS2812`
|
|
- `DIN`
|
|
- `5V`
|
|
- `GND`
|
|
|
|
This keeps all low-voltage off-board connections together.
|
|
|
|
## Center: HV5812P Zone
|
|
|
|
Mount the `HV5812P` roughly in the center-right of the board.
|
|
|
|
Reason:
|
|
|
|
- logic-side control pins can approach from the left
|
|
- high-voltage outputs can leave to the right toward the VFD connector
|
|
|
|
Around the HV5812P:
|
|
|
|
- isolate each used pin with track cuts as needed
|
|
- keep short local links for `DATA`, `CLOCK`, `STROBE`, `BLANKING`
|
|
- keep `VDD` decoupling physically close to the chip
|
|
|
|
Recommended support parts close to the HV5812P:
|
|
|
|
- `100 nF` ceramic decoupling capacitor between `VDD` and `GND`
|
|
- one larger bulk capacitor on the `5V` rail nearby, for example `10 uF` to `47 uF`
|
|
|
|
If you already use any datasheet-recommended support parts for the HV side, place them in this same zone.
|
|
|
|
## Right Side: VFD Connector Zone
|
|
|
|
Put the VFD connectors on the far right side of the board, physically separated from the Mega headers.
|
|
|
|
Provide terminals or headers for:
|
|
|
|
- `HVOut1` -> `A`
|
|
- `HVOut2` -> `B`
|
|
- `HVOut3` -> `C`
|
|
- `HVOut4` -> `D`
|
|
- `HVOut5` -> `E`
|
|
- `HVOut6` -> `F`
|
|
- `HVOut7` -> `G`
|
|
- `HVOut8` -> `DP`
|
|
- `HVOut9` -> `BELL`
|
|
- `HVOut10` -> `GRID1`
|
|
- `HVOut11` -> `GRID2`
|
|
- `HVOut12` -> `GRID3`
|
|
- `HVOut13` -> `GRID4`
|
|
- `HVOut14` -> `GRID_IND`
|
|
|
|
Also provide separate terminals for:
|
|
|
|
- `VPP`
|
|
- `GND`
|
|
- filament connections
|
|
|
|
Keep the filament connections away from the logic-side headers.
|
|
|
|
## Suggested Power Buses
|
|
|
|
Use distinct buses and label them clearly:
|
|
|
|
- `5V LOGIC`
|
|
- `GND`
|
|
- `VPP`
|
|
|
|
Recommended physical arrangement:
|
|
|
|
- `5V` bus along the top-left area only
|
|
- `GND` bus available across the board
|
|
- `VPP` bus only on the far-right HV area
|
|
|
|
Do not run a long exposed `VPP` strip through the entire board. Keep the high-voltage distribution short and local to the HV5812 and VFD connector side.
|
|
|
|
## Suggested Routing
|
|
|
|
### Mega to HV5812
|
|
|
|
Route these as short direct runs:
|
|
|
|
- `D46` -> `DATA`
|
|
- `D47` -> `CLOCK`
|
|
- `D48` -> `STROBE`
|
|
- `D49` -> `BLANKING`
|
|
|
|
These should pass from the left interface zone into the HV5812 zone without crossing the VPP area.
|
|
|
|
### Mega to Gauges
|
|
|
|
Route these directly to the gauge connector blocks:
|
|
|
|
- `D50` -> gauge 0 `DIR`
|
|
- `D51` -> gauge 0 `STEP`
|
|
- `D8` and `D9`
|
|
If you are bringing these through the stripboard too, add them to the Mega header group and route them directly to gauge 1.
|
|
- `D52` -> gauge 2 `DIR`
|
|
- `D53` -> gauge 2 `STEP`
|
|
|
|
If `D8` and `D9` come from separate fly wires to the stripboard, keep them in the same low-voltage connector area as the rest of the gauge lines.
|
|
|
|
### Mega to WS2812
|
|
|
|
Route:
|
|
|
|
- `D22` -> main backlight/status strip `DIN`
|
|
- `D36` -> indicator strip `DIN`
|
|
- `5V` -> both strip `5V` inputs
|
|
- `GND` -> both strip `GND` inputs
|
|
|
|
Keep the LED connector in the low-voltage area.
|
|
|
|
### ESP32 to Mega
|
|
|
|
If the stripboard is acting as the interconnect backplane:
|
|
|
|
- `ESP32 TX` -> `Mega RX1`
|
|
- `ESP32 RX` -> `Mega TX1`
|
|
- `ESP32 GND` -> `GND`
|
|
|
|
## Track Cuts and Links
|
|
|
|
Recommended stripboard discipline:
|
|
|
|
- every IC pin should be visually checked for unintended strip continuity
|
|
- cut under or near pins wherever two adjacent pins must not share the strip
|
|
- use insulated jumpers for crossings instead of relying on long exposed component leads
|
|
- use a continuity meter after every 5-10 wires added
|
|
|
|
For the HV5812P specifically:
|
|
|
|
- assume most adjacent pins must not be left on the same uninterrupted strip
|
|
- cut first, then add intentional links
|
|
|
|
## Physical Separation Rules
|
|
|
|
Keep these separations:
|
|
|
|
- logic and UART wiring away from `VPP`
|
|
- VFD output traces away from ESP32 and Mega headers
|
|
- gauge step/dir traces away from VFD high-voltage outputs where possible
|
|
|
|
If you can, leave at least one empty strip gap between low-voltage and high-voltage routing regions, and more where practical.
|
|
|
|
## Labeling
|
|
|
|
Label the board directly with marker or printed tape.
|
|
|
|
At minimum label:
|
|
|
|
- `5V`
|
|
- `GND`
|
|
- `VPP`
|
|
- `DIN`
|
|
- `CLK`
|
|
- `STR`
|
|
- `BLK`
|
|
- `G0 DIR`
|
|
- `G0 STEP`
|
|
- `G1 DIR`
|
|
- `G1 STEP`
|
|
- `G2 DIR`
|
|
- `G2 STEP`
|
|
- `LED DIN`
|
|
- `RX1`
|
|
- `TX1`
|
|
- `A B C D E F G DP BELL G1 G2 G3 G4 GI`
|
|
|
|
This matters more than aesthetics. A labeled board is much easier to repair later.
|
|
|
|
## Practical Build Order
|
|
|
|
1. Place and mark the four physical zones.
|
|
2. Mount the low-voltage connector headers.
|
|
3. Mount the HV5812P.
|
|
4. Cut all required strips around the HV5812P before adding wires.
|
|
5. Add `GND` and `5V` low-voltage distribution.
|
|
6. Add Mega-to-HV5812 logic lines.
|
|
7. Add gauge and LED connector routing.
|
|
8. Add `VPP` and the VFD output connector routing.
|
|
9. Add the VFD filament connector.
|
|
10. Verify continuity and shorts before any power is applied.
|
|
|
|
## Recommended First Continuity Checks
|
|
|
|
Before power:
|
|
|
|
- `5V` is not shorted to `GND`
|
|
- `VPP` is not shorted to `GND`
|
|
- `VPP` is not shorted to `5V`
|
|
- `D46/D47/D48/D49` are only connected to the intended HV5812 pins
|
|
- `D50/D51/D52/D53/D8/D9` are only connected to the intended gauge connectors
|
|
- `D22` only goes to the WS2812 connector
|
|
- `RX1/TX1` are not swapped at the stripboard labels
|
|
|
|
## Suggested Board Size
|
|
|
|
For comfort rather than minimum size, use a board large enough to avoid crowding:
|
|
|
|
- roughly `100 x 160 mm` or larger if you want good service access
|
|
|
|
Smaller is possible, but with mixed logic, UART, gauge control, LEDs, and VFD high voltage, cramped stripboard becomes harder to debug than a rat's nest.
|
|
|
|
## Recommendation
|
|
|
|
If you want the cleanest result:
|
|
|
|
- use the stripboard only as an interconnect backplane
|
|
- keep the Mega, ESP32, and possibly the gauge drivers off-board on removable connectors
|
|
- keep the HV5812 and VFD connector area on the stripboard itself
|
|
|
|
That gives you most of the neatness benefit without forcing the whole system into one dense board.
|
|
|
|
## ASCII Top View
|
|
|
|
This is a suggested top-view arrangement, not a strict scale drawing.
|
|
|
|
```text
|
|
Top edge
|
|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
| [Mega Header Block] [Gauge / LED Connectors] [HV5812P Zone] [VFD Zone] |
|
|
| |
|
|
| 5V GND D22 D46 D47 D48 D49 D50 D51 D52 D53 RX1 TX1 |
|
|
| o o o o o o o o o o o o o |
|
|
| |
|
|
| [ESP32 Header] |
|
|
| TX RX GND |
|
|
| o o o |
|
|
| |
|
|
| [Gauge 0] [Gauge 1] [Gauge 2] [WS2812] |
|
|
| DIR STEP G DIR STEP G DIR STEP G DIN 5V G |
|
|
| o o o o o o o o o o o o |
|
|
| |
|
|
| +----------------------+ |
|
|
| | HV5812P | |
|
|
| | | |
|
|
| 5V LOGIC BUS ============================================>| VDD | |
|
|
| GND BUS ============================================>| GND |==============|
|
|
| | DIN CLK STR BLK | |
|
|
| | ^ ^ ^ ^ | |
|
|
| +--|----|---|---|------+ |
|
|
| | | | | |
|
|
| | | | +---- D49 |
|
|
| | | +-------- D48 |
|
|
| | +------------ D47 |
|
|
| +----------------- D46 |
|
|
| |
|
|
| VPP terminal |
|
|
| o |
|
|
| | |
|
|
| HV AREA | |
|
|
| kept to right side only | |
|
|
| v |
|
|
| A B C D E F G DP BELL G1 G2 G3 G4 GI
|
|
| o o o o o o o o o o o o o o
|
|
| [VFD output connector block] |
|
|
| |
|
|
| FIL_A FIL_B GND/HVRET |
|
|
| o o o |
|
|
| [filament / HV return terminals] |
|
|
| |
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|
|
Bottom edge
|
|
```
|
|
|
|
## Reading The Sketch
|
|
|
|
- left side:
|
|
all low-voltage headers from the Mega and ESP32
|
|
- center-left:
|
|
gauge and LED connector blocks
|
|
- center-right:
|
|
HV5812P
|
|
- far right:
|
|
VFD outputs, filament, and `VPP`
|
|
|
|
This keeps the dangerous and noisy wiring concentrated on one side of the board.
|
|
|
|
## Suggested Copper-Strip Use
|
|
|
|
If your strips run horizontally:
|
|
|
|
- use upper strips for low-voltage headers and distribution
|
|
- use middle strips for gauge and LED routing
|
|
- isolate the HV5812P pin rows heavily with track cuts
|
|
- use lower-right strips only for the VFD output area and `VPP`
|
|
|
|
## Suggested Connector Edge Placement
|
|
|
|
If you want the board to be easy to service:
|
|
|
|
- put Mega and ESP32 headers on the left edge
|
|
- put gauge and LED connectors on the bottom edge
|
|
- put VFD and high-voltage terminals on the right edge
|
|
|
|
That way:
|
|
|
|
- low-voltage control cables enter from the left and bottom
|
|
- high-voltage VFD wires leave only on the right
|
|
|
|
## Minimum Clearance Advice
|
|
|
|
On stripboard, do not pack the `VPP` and VFD output terminals tightly against the low-voltage headers.
|
|
|
|
Practical suggestion:
|
|
|
|
- leave at least several empty holes / one empty strip region between the HV5812 logic-side routing and the `VPP` / VFD connector zone
|
|
- if you have room, leave more than that
|
|
|
|
More separation is better than a dense layout here.
|