Documented wiring and layout
This commit is contained in:
322
Rewire_checklist.md
Normal file
322
Rewire_checklist.md
Normal file
@@ -0,0 +1,322 @@
|
||||
# Rewire Checklist
|
||||
|
||||
This is a practical rebuild checklist for the current integrated setup:
|
||||
|
||||
- `Arduino Mega 2560`
|
||||
- `ESP32` running `gauge.py`
|
||||
- `HV5812P`
|
||||
- 4-digit VFD with decimal point and alarm bell
|
||||
- 3 gauge drivers
|
||||
- WS2812B LED chain
|
||||
|
||||
Use this to rebuild the bench wiring from scratch.
|
||||
|
||||
## 1. Power Off Everything
|
||||
|
||||
- disconnect all power supplies
|
||||
- disconnect USB power if it is currently feeding any board
|
||||
- do not move wires while the VFD high-voltage supply is live
|
||||
|
||||
## 2. Place The Main Parts
|
||||
|
||||
- place the `Arduino Mega 2560`
|
||||
- place the `ESP32`
|
||||
- place the `HV5812P`
|
||||
- place the 3 gauge driver boards
|
||||
- place the WS2812B strip connection point
|
||||
- place the VFD tube connection point
|
||||
|
||||
## 3. Establish A Common Ground First
|
||||
|
||||
Before anything else, create one common logic ground network.
|
||||
|
||||
Connect:
|
||||
|
||||
- `Mega GND` -> ground rail
|
||||
- `ESP32 GND` -> same ground rail
|
||||
- `HV5812P GND` -> same ground rail
|
||||
- `Gauge driver 0 logic GND` -> same ground rail
|
||||
- `Gauge driver 1 logic GND` -> same ground rail
|
||||
- `Gauge driver 2 logic GND` -> same ground rail
|
||||
- `WS2812B GND` -> same ground rail
|
||||
|
||||
If your VFD high-voltage supply has a ground/reference return:
|
||||
|
||||
- `VFD HV supply return` -> same common ground rail
|
||||
|
||||
Do not continue until this common ground is in place.
|
||||
|
||||
## 4. Wire The Arduino Mega Power
|
||||
|
||||
Connect:
|
||||
|
||||
- regulated `5V logic supply` -> `Mega 5V`
|
||||
- ground rail -> `Mega GND`
|
||||
|
||||
Do not use the Mega to power motors.
|
||||
|
||||
## 5. Wire The ESP32 Power
|
||||
|
||||
Power the ESP32 in the way your board expects.
|
||||
|
||||
Typical options:
|
||||
|
||||
- via board USB
|
||||
- via board `5V/VIN` if your ESP32 board has its own regulator
|
||||
- via regulated `3.3V` if it is a bare module that requires that
|
||||
|
||||
Also connect:
|
||||
|
||||
- `ESP32 GND` -> common ground rail
|
||||
|
||||
Do not feed raw `5V` into a bare `3.3V-only` ESP32 module.
|
||||
|
||||
## 6. Wire The ESP32 UART To The Mega
|
||||
|
||||
Connect:
|
||||
|
||||
- `ESP32 GPIO17 (TX)` -> `Mega pin 19 (RX1)`
|
||||
- `ESP32 GPIO16 (RX)` <- `Mega pin 18 (TX1)`
|
||||
- `ESP32 GND` -> `Mega GND`
|
||||
|
||||
This UART link is used by `gauge.py`.
|
||||
|
||||
## 7. Wire The HV5812P Logic Side
|
||||
|
||||
Connect:
|
||||
|
||||
- `Mega D46` -> `HV5812P DATA IN / DIN`
|
||||
- `Mega D47` -> `HV5812P CLOCK / CLK`
|
||||
- `Mega D48` -> `HV5812P STROBE / LATCH`
|
||||
- `Mega D49` -> `HV5812P BLANKING / OE`
|
||||
- `Mega 5V` -> `HV5812P VDD`
|
||||
- `Mega GND` -> `HV5812P GND`
|
||||
|
||||
Do not connect:
|
||||
|
||||
- `Mega 5V` -> `HV5812P VPP`
|
||||
|
||||
## 8. Wire The HV5812P High-Voltage Side
|
||||
|
||||
Connect:
|
||||
|
||||
- `VFD high-voltage positive supply` -> `HV5812P VPP`
|
||||
- `VFD high-voltage supply return / reference` -> common ground rail
|
||||
|
||||
At this stage:
|
||||
|
||||
- `VDD` must be `5V`
|
||||
- `VPP` must be your VFD high-voltage rail
|
||||
|
||||
## 9. Wire The HV5812P Outputs To The VFD
|
||||
|
||||
Connect these one by one:
|
||||
|
||||
- `HVOut1` -> VFD segment `A`
|
||||
- `HVOut2` -> VFD segment `B`
|
||||
- `HVOut3` -> VFD segment `C`
|
||||
- `HVOut4` -> VFD segment `D`
|
||||
- `HVOut5` -> VFD segment `E`
|
||||
- `HVOut6` -> VFD segment `F`
|
||||
- `HVOut7` -> VFD segment `G`
|
||||
- `HVOut8` -> VFD decimal point segment
|
||||
- `HVOut9` -> VFD alarm bell segment
|
||||
- `HVOut10` -> VFD digit 1 grid
|
||||
- `HVOut11` -> VFD digit 2 grid
|
||||
- `HVOut12` -> VFD digit 3 grid
|
||||
- `HVOut13` -> VFD digit 4 grid
|
||||
- `HVOut14` -> VFD indicator grid between digits 2 and 3
|
||||
|
||||
## 10. Wire The VFD Filament
|
||||
|
||||
Wire the VFD filament/heater exactly as required by your tube.
|
||||
|
||||
This checklist cannot specify the exact filament supply because it depends on the actual tube.
|
||||
|
||||
Required reminder:
|
||||
|
||||
- do not power the filament from an Arduino GPIO
|
||||
- use the correct filament supply for the tube
|
||||
|
||||
## 11. Wire Gauge Driver 0
|
||||
|
||||
Connect:
|
||||
|
||||
- `Mega D50` -> `Gauge driver 0 DIR`
|
||||
- `Mega D51` -> `Gauge driver 0 STEP`
|
||||
- `Mega GND` -> `Gauge driver 0 logic GND`
|
||||
|
||||
Then connect the motor side of that driver to:
|
||||
|
||||
- its motor power supply
|
||||
- its gauge motor
|
||||
|
||||
according to the driver board you are using.
|
||||
|
||||
## 12. Wire Gauge Driver 1
|
||||
|
||||
Connect:
|
||||
|
||||
- `Mega D8` -> `Gauge driver 1 DIR`
|
||||
- `Mega D9` -> `Gauge driver 1 STEP`
|
||||
- `Mega GND` -> `Gauge driver 1 logic GND`
|
||||
|
||||
Then connect the motor side of that driver to:
|
||||
|
||||
- its motor power supply
|
||||
- its gauge motor
|
||||
|
||||
according to the driver board you are using.
|
||||
|
||||
## 13. Wire Gauge Driver 2
|
||||
|
||||
Connect:
|
||||
|
||||
- `Mega D52` -> `Gauge driver 2 DIR`
|
||||
- `Mega D53` -> `Gauge driver 2 STEP`
|
||||
- `Mega GND` -> `Gauge driver 2 logic GND`
|
||||
|
||||
Then connect the motor side of that driver to:
|
||||
|
||||
- its motor power supply
|
||||
- its gauge motor
|
||||
|
||||
according to the driver board you are using.
|
||||
|
||||
## 14. Wire The WS2812B LEDs
|
||||
|
||||
Connect:
|
||||
|
||||
- `Mega D22` -> `WS2812B DIN`
|
||||
- `5V LED supply` -> `WS2812B 5V`
|
||||
- `WS2812B GND` -> common ground rail
|
||||
|
||||
If the LED chain is long or bright:
|
||||
|
||||
- do not power it from the Mega `5V`
|
||||
- use a proper external `5V` supply
|
||||
|
||||
## 15. Verify The Pins That Changed For The Integrated VFD
|
||||
|
||||
The VFD is no longer on the old standalone pins.
|
||||
|
||||
Old standalone pins:
|
||||
|
||||
- `D51` -> DATA
|
||||
- `D52` -> CLOCK
|
||||
- `D53` -> STROBE
|
||||
- `D49` -> BLANK
|
||||
|
||||
Current integrated pins:
|
||||
|
||||
- `D46` -> DATA
|
||||
- `D47` -> CLOCK
|
||||
- `D48` -> STROBE
|
||||
- `D49` -> BLANK
|
||||
|
||||
So make sure:
|
||||
|
||||
- nothing VFD-related is still on `D51`
|
||||
- nothing VFD-related is still on `D52`
|
||||
- nothing VFD-related is still on `D53`
|
||||
- only `BLANK/OE` remains on `D49`
|
||||
|
||||
## 16. Sanity Check Before Powering Logic
|
||||
|
||||
Check each item physically:
|
||||
|
||||
- `Mega D46` really goes to `HV5812 DATA`
|
||||
- `Mega D47` really goes to `HV5812 CLOCK`
|
||||
- `Mega D48` really goes to `HV5812 STROBE`
|
||||
- `Mega D49` really goes to `HV5812 BLANKING`
|
||||
- `Mega D50/D51` only go to gauge driver 0
|
||||
- `Mega D8/D9` only go to gauge driver 1
|
||||
- `Mega D52/D53` only go to gauge driver 2
|
||||
- `Mega D22` only goes to WS2812B `DIN`
|
||||
- `ESP32 GPIO17` goes to `Mega RX1`
|
||||
- `ESP32 GPIO16` goes to `Mega TX1`
|
||||
- all grounds are common
|
||||
- `HV5812 VDD` is `5V`
|
||||
- `HV5812 VPP` is high voltage, not `5V`
|
||||
|
||||
## 17. Power Logic Only First
|
||||
|
||||
Apply only logic power first:
|
||||
|
||||
- Mega power
|
||||
- ESP32 power
|
||||
- HV5812 `VDD`
|
||||
- WS2812 `5V`
|
||||
|
||||
Leave motor supply and VFD high voltage off for the first check if possible.
|
||||
|
||||
Verify:
|
||||
|
||||
- Mega boots
|
||||
- ESP32 boots
|
||||
- UART communication works
|
||||
|
||||
## 18. Power The VFD High Voltage
|
||||
|
||||
Now apply the VFD high-voltage supply to `HV5812 VPP`.
|
||||
|
||||
Verify:
|
||||
|
||||
- `VDD` remains `5V`
|
||||
- `VPP` is the expected high voltage
|
||||
- no logic wire is heating
|
||||
|
||||
## 19. Power The Gauge Drivers
|
||||
|
||||
Now apply motor power to the gauge drivers.
|
||||
|
||||
Verify:
|
||||
|
||||
- no driver fault LEDs
|
||||
- no motor heating or runaway movement immediately on power-up
|
||||
|
||||
## 20. First Functional Test
|
||||
|
||||
Test in this order:
|
||||
|
||||
1. confirm the ESP32 can talk to the Mega
|
||||
2. send `VFD 8888`
|
||||
3. send `VFD DEAD.!`
|
||||
4. test one gauge movement from Home Assistant or MQTT
|
||||
5. test one LED output
|
||||
|
||||
## 21. If Something Is Wrong
|
||||
|
||||
Use this triage order:
|
||||
|
||||
1. check grounds
|
||||
2. check `VDD` and `VPP`
|
||||
3. check Mega pin number mistakes
|
||||
4. check crossed UART lines
|
||||
5. check that the VFD is still on `46/47/48/49`, not `51/52/53/49`
|
||||
|
||||
## 22. Quick Reference
|
||||
|
||||
### Mega pins in use
|
||||
|
||||
- `D8` -> gauge 1 DIR
|
||||
- `D9` -> gauge 1 STEP
|
||||
- `D22` -> WS2812 DIN
|
||||
- `D46` -> HV5812 DATA
|
||||
- `D47` -> HV5812 CLOCK
|
||||
- `D48` -> HV5812 STROBE
|
||||
- `D49` -> HV5812 BLANKING
|
||||
- `D50` -> gauge 0 DIR
|
||||
- `D51` -> gauge 0 STEP
|
||||
- `D52` -> gauge 2 DIR
|
||||
- `D53` -> gauge 2 STEP
|
||||
- `D18` -> UART TX1 to ESP32 RX
|
||||
- `D19` -> UART RX1 from ESP32 TX
|
||||
|
||||
### VFD outputs
|
||||
|
||||
- `HVOut1..7` -> `A..G`
|
||||
- `HVOut8` -> decimal point
|
||||
- `HVOut9` -> alarm bell
|
||||
- `HVOut10..13` -> digit grids 1..4
|
||||
- `HVOut14` -> indicator grid
|
||||
Reference in New Issue
Block a user