Bench Validation Plan — First Assembled Prototype
Project: 12-24 -> esp controller
Purpose: Validate the first assembled prototype safely before field/machine integration.
Scope: 12V–24V input protection, LM2596 5V rail, ESP32 DevKit power interface, GPIO23 relay driver, INA219 relay-coil current measurement, relay dry-contact output, and dispenser coin-trigger integration.
Design modification status: Audit/test documentation only. This plan does not modify the schematic, PCB, BOM, or layout.
Safety Rules Before Starting
- Use a current-limited bench supply for all powered tests.
- Start at 12V with a low current limit before testing 24V.
- Do not connect the dispenser machine until all bench tests pass.
- Treat
RELAY_OUT as a dry-contact output only. It must not generate voltage by itself.
- Because the ESP32 DevKit can include onboard USB power, avoid connecting USB and external PCB power at the same time unless the specific back-power safety procedure below is followed.
- If any “Do not proceed” condition occurs, stop testing and investigate before continuing.
Recommended Equipment
- Bench DC power supply, adjustable 0–30V, current limit capable.
- Digital multimeter with continuity, resistance, and DC voltage modes.
- Oscilloscope with 10x probe and short ground spring/lead.
- Optional: electronic load or power resistors for loading the 5V rail.
- USB power meter or current-limited USB data isolator/test adapter, if available.
- Thermometer, IR camera, or thermocouple probe.
- Computer with ESP32 serial monitor/programming environment.
- Test leads, insulated clips, and a known-good external low-voltage continuity/load circuit for dry-contact testing.
- Dispenser/coin-trigger interface simulator or actual dispenser input for final integration.
1. Visual Inspection Before Power
Equipment needed
- Magnifier or microscope.
- Good lighting.
- Assembly drawing/BOM/schematic reference.
Setup
- Board unpowered.
- No USB connected to ESP32 DevKit.
- No external machine wiring connected.
Procedure
- Confirm correct polarity/orientation of J1, F2/PPTC, Q2 PMOS, D3 TVS, D6 zener, U1 LM2596, D2 Schottky, L1, C1/C2 electrolytic or polarized capacitors if applicable, U6 INA219, Q1 transistor, D1 flyback diode, K1 relay, and ESP32 DevKit headers.
- Inspect all solder joints for bridges, tombstoned passives, unsoldered pins, cold joints, lifted pads, or cracked components.
- Confirm field terminals are mechanically secure.
- Confirm silkscreen labels for input polarity and relay output are readable.
Expected result
- All components fitted in correct locations and orientations.
- No visible solder bridges, damaged parts, or assembly errors.
Fail condition
- Any polarity-sensitive part appears reversed.
- Any solder bridge or missing/incorrect part is found.
- Terminal polarity/labeling cannot be confidently identified.
Do not proceed condition
- Suspected short, reversed IC/diode/capacitor, wrong relay, wrong regulator, wrong MOSFET, or unclear J1 polarity.
2. Continuity Test With Multimeter Before Power
Equipment needed
Setup
- Board unpowered.
- No USB connected.
- No external machine wiring connected.
- Capacitors discharged.
Procedure
- Measure resistance/continuity from J1 P1 positive input to J1 P2/GND.
- Measure resistance/continuity from 5V rail to GND.
- Measure resistance/continuity from 3V3 rail to GND.
- Confirm J1 P2 is common with board GND.
- Confirm relay dry contacts are isolated from GND, 5V, 3V3, VIN nets, and ESP32 pins.
- Confirm RELAY_OUT P1/P2 are not shorted when relay is off, unless the relay contact arrangement intentionally uses normally-closed contacts. For this design, expected output is COM/NO dry contact, so off-state should be open.
Expected result
- No hard short from input positive to GND.
- No hard short from 5V to GND.
- No hard short from 3V3 to GND.
- J1 P2 has continuity to GND.
- RELAY_OUT contacts are isolated from powered PCB nets.
Fail condition
- Near-zero ohms or continuity beep between any power rail and GND.
- RELAY_OUT connected to any powered board net.
- RELAY_OUT contacts shorted in relay-off state.
Do not proceed condition
- Any power rail appears shorted to GND.
- RELAY_OUT is not isolated from PCB power.
3. Dry-Contact Isolation Test
Equipment needed
- Digital multimeter.
- Optional insulation tester only if appropriate for relay/contact ratings and board design; do not exceed component ratings.
Setup
- Board unpowered.
- No external machine wiring connected.
Procedure
- Measure resistance from RELAY_OUT P1 to GND, 5V, 3V3, VIN_RAW, VIN_FUSED, VIN_PROTECTED, and VIN_FILTERED.
- Measure resistance from RELAY_OUT P2 to the same powered nets.
- Measure resistance between RELAY_OUT P1 and P2 with relay off.
Expected result
- RELAY_OUT P1 and P2 show open circuit to all powered PCB nets.
- RELAY_OUT P1 to P2 is open when relay is off.
Fail condition
- Any measurable low-resistance path from relay contacts to board power/logic nets.
- RELAY_OUT P1/P2 shorted while relay is off.
Do not proceed condition
- RELAY_OUT is electrically connected to PCB-generated voltage or logic ground unexpectedly.
4. Reverse-Polarity Input Test
Equipment needed
- Current-limited bench DC supply.
- Digital multimeter.
Setup
- No USB connected.
- No external machine wiring connected.
- Bench supply current limit set very low, e.g. 50–100mA for initial test.
- Apply reverse polarity deliberately: supply positive to J1 P2 and supply negative to J1 P1.
Procedure
- Set supply to 12V and low current limit.
- Apply reverse polarity briefly.
- Observe supply current.
- Measure 5V rail relative to board GND.
- Measure 3V3 rail relative to board GND if accessible.
- Remove power immediately after confirming behavior.
Expected result
- Downstream 5V rail remains off, approximately 0V.
- 3V3 rail remains off, approximately 0V.
- Current remains limited to leakage or protection behavior, with no overheating.
- No component heats rapidly.
Fail condition
- 5V or 3V3 rail becomes energized under reverse polarity.
- Bench supply enters current limit hard or excessive current flows.
- Any component heats, smells, smokes, or discolors.
Do not proceed condition
- Any downstream rail powers up during reverse-polarity input.
- Any input protection component heats significantly.
5. 12V Power-Up Test
Equipment needed
- Current-limited bench DC supply.
- Digital multimeter.
- Optional oscilloscope.
Setup
- Correct polarity: J1 P1 = positive, J1 P2 = GND.
- No USB connected.
- No relay output wiring connected.
- Set supply to 12V.
- Start with conservative current limit, e.g. 200–300mA, then raise only if needed.
Procedure
- Power the board from 12V.
- Observe input current.
- Measure protected/filtered VIN if accessible.
- Measure 5V rail.
- Measure 3V3 rail on ESP32 DevKit if accessible.
- Observe for abnormal heating.
Expected result
- Input current is reasonable for idle board/ESP32 state.
- 5V rail is near 5.0V.
- 3V3 rail is near 3.3V.
- No component overheats.
Fail condition
- Supply hits current limit unexpectedly.
- 5V rail missing, too high, or unstable.
- 3V3 rail missing, too high, or unstable.
- Any component heats rapidly.
Do not proceed condition
- 5V exceeds safe downstream limits.
- 3V3 exceeds safe ESP32/INA219 limits.
- Input current is unexpectedly high or unstable.
6. 24V Power-Up Test
Equipment needed
- Current-limited bench DC supply.
- Digital multimeter.
- Oscilloscope recommended.
- Thermometer/IR camera recommended.
Setup
- Board already passed 12V power-up.
- Correct polarity at J1.
- No USB connected.
- No external machine wiring connected.
- Set supply current limit conservatively, then increase as needed.
Procedure
- Set input to 24V.
- Apply power.
- Measure input current.
- Measure 5V rail.
- Measure 3V3 rail.
- Observe U1 LM2596, D2, L1, input protection parts, and capacitors for heating.
Expected result
- 5V rail remains regulated near 5.0V.
- 3V3 rail remains regulated near 3.3V.
- No abnormal heating.
- Input current remains stable.
Fail condition
- 5V rail droops, overshoots, oscillates, or disappears.
- Excessive heating at LM2596, D2, L1, Q2, F2, D3, or capacitors.
- Supply current is unexpectedly high.
Do not proceed condition
- Any voltage rail is out of safe range.
- Any switching regulator component becomes too hot to touch quickly.
7. 5V Rail Voltage and Ripple Check
Equipment needed
- Oscilloscope with 10x probe.
- Short ground spring or very short ground connection.
- Digital multimeter.
- Optional electronic load or resistor load.
Setup
- Power from 12V first, then repeat at 24V.
- No USB connected.
- Probe 5V to GND close to the LM2596 output capacitor and again near ESP32 5V input.
Procedure
- Measure DC 5V with multimeter.
- Measure ripple on oscilloscope using AC coupling or suitable scale.
- Repeat at idle and during relay activation.
- Repeat during ESP32 Wi-Fi activity if firmware enables Wi-Fi.
- Repeat at 24V input.
Expected result
- 5V rail remains close to 5.0V under idle, relay activation, and ESP32 activity.
- Ripple and transient dips do not cause ESP32 reset or relay dropout.
Fail condition
- 5V rail dips enough to reset ESP32 or INA219.
- Excessive ripple, oscillation, or large switching spikes are observed.
- 5V rail overshoots above safe downstream limits.
Do not proceed condition
- ESP32 resets during relay or Wi-Fi current pulses.
- 5V rail is unstable or has large unexplained ripple.
8. ESP32 Boot Test
Equipment needed
- Computer with serial monitor.
- USB cable for DevKit.
- Bench supply.
Setup
- Preferred safe method: power the PCB from bench supply and use USB only if the ESP32 DevKit/back-power risk is controlled per Test 13.
- If there is no jumper/isolator/back-power protection, avoid simultaneous external 5V and USB until the USB/back-power procedure is followed.
Procedure
- Power the board from 12V input.
- Confirm 5V and 3V3 rails are valid.
- Observe ESP32 boot indicator/serial output if connected safely.
- Confirm firmware starts and does not reset repeatedly.
Expected result
- ESP32 boots reliably.
- Serial output or firmware status confirms normal startup.
- No brownout/reset loop.
Fail condition
- ESP32 does not boot.
- ESP32 repeatedly resets.
- 3V3 rail unstable.
Do not proceed condition
- Back-power path is uncontrolled and USB must be connected for debugging.
- ESP32 brownout messages or repeated boot loops occur.
9. Relay Activation Test From GPIO23
Equipment needed
- Firmware or test sketch capable of toggling GPIO23.
- Bench supply.
- Multimeter or oscilloscope.
Setup
- Power board from 12V first.
- No external machine connected to RELAY_OUT.
- Optional: connect multimeter across relay coil or transistor collector/emitter nodes if accessible.
Procedure
- Load firmware/test sketch that toggles GPIO23 at a slow rate, e.g. 1 second on / 1 second off.
- Confirm relay clicks on command.
- Measure 5V rail during relay activation.
- Repeat at 24V input.
Expected result
- GPIO23 activation energizes relay consistently.
- Relay releases when GPIO23 is inactive.
- 5V rail remains stable.
- ESP32 does not reset.
Fail condition
- Relay does not activate.
- Relay chatters.
- Relay remains stuck on/off.
- ESP32 resets when relay activates.
Do not proceed condition
- Relay activation causes 5V/3V3 collapse, excessive heating, or uncontrolled output behavior.
10. INA219 Current Reading Test
Equipment needed
- ESP32 firmware reading INA219 over I2C.
- Serial monitor.
- Multimeter if measuring shunt voltage.
- Optional oscilloscope.
Setup
- Board powered from 12V.
- Relay activation firmware available.
- INA219 library/test code configured for the expected shunt value:
RSHUNT = 0.22 ohm.
Procedure
- With relay off, read INA219 current.
- Activate relay from GPIO23.
- Read INA219 current while relay is energized.
- Optionally measure shunt voltage directly across RSHUNT.
- Repeat multiple on/off cycles.
- Repeat at 24V input, since relay coil is still on the 5V rail and should read similar current.
Expected result
- Relay-off current reading is near zero for the relay coil path.
- Relay-on current reading is plausible for the relay coil, expected around the relay coil current range.
- For a 0.22 ohm shunt, reference voltages are:
- 70mA → 15.4mV
- 80mA → 17.6mV
- 100mA → 22.0mV
- Reading is stable and repeatable.
Fail condition
- INA219 not detected on I2C.
- Current reading does not change when relay activates.
- Reading polarity is reversed from expectation.
- Measured shunt voltage does not match reported current.
Do not proceed condition
- Relay current path bypasses the shunt or INA219 readings are nonsensical.
- I2C errors cause ESP32 instability.
11. RELAY_OUT Continuity Test When Relay Off/On
Equipment needed
- Digital multimeter in continuity/resistance mode.
- Firmware/test sketch for GPIO23 relay control.
Setup
- Board powered from 12V.
- No external machine wiring connected.
- Multimeter connected across RELAY_OUT P1 and P2.
Procedure
- With relay off, measure RELAY_OUT P1 to P2.
- Turn relay on using GPIO23.
- Measure RELAY_OUT P1 to P2 again.
- Repeat several times.
Expected result
- Relay off: RELAY_OUT P1/P2 open circuit.
- Relay on: RELAY_OUT P1/P2 closed, low resistance/continuity.
- Behavior follows GPIO23 command.
Fail condition
- Contacts closed when relay is off.
- Contacts open when relay is on.
- Intermittent contact behavior.
- Contact resistance unexpectedly high.
Do not proceed condition
- RELAY_OUT does not reliably follow relay state.
12. Confirm No Voltage Is Generated on RELAY_OUT by the PCB
Equipment needed
- Digital multimeter.
- Firmware/test sketch for relay control.
Setup
- Board powered from 12V, then repeat at 24V.
- No external voltage connected to RELAY_OUT.
- Multimeter in DC voltage mode.
Procedure
- Measure RELAY_OUT P1 to board GND with relay off.
- Measure RELAY_OUT P2 to board GND with relay off.
- Measure RELAY_OUT P1 to P2 with relay off.
- Activate relay.
- Repeat all three voltage measurements with relay on.
Expected result
- Approximately 0V on RELAY_OUT relative to board GND and across P1/P2 because the relay contact is dry and no external voltage is applied.
Fail condition
- Any meaningful DC voltage appears on RELAY_OUT generated by the PCB.
- RELAY_OUT is referenced to 5V, 3V3, VIN, or GND unexpectedly.
Do not proceed condition
- RELAY_OUT produces voltage by itself.
13. USB / Back-Power Safety Test or Warning Procedure
Equipment needed
- USB power meter, current-limited USB source, or sacrificial/current-limited USB test adapter.
- Digital multimeter.
- Bench supply.
- Optional series Schottky diode or USB data-only adapter for safer test setup.
Setup
- This project powers the ESP32 DevKit through its 5V/EXT_5V pin. If the DevKit USB is connected while the PCB 5V rail is powered, a back-power conflict may exist unless a removable jumper, diode, ideal diode, fuse, or load switch is added.
- For the current prototype, treat simultaneous USB and external PCB 5V as unsafe unless verified with current limiting.
Procedure — warning-first method
- Do not connect PC USB while the board is externally powered unless necessary.
- If programming/debugging via USB is required, first power off the external 12V/24V input.
- Connect USB to the ESP32 DevKit only.
- Measure PCB 5V rail. If USB back-powers the carrier PCB, note this behavior.
- If simultaneous USB and external power must be evaluated, use a current-limited USB source or USB power meter, not a valuable PC USB port.
- With external PCB power off and USB connected, measure whether the carrier 5V rail becomes energized.
- With external PCB power on and USB connected through a protected/current-limited adapter, check for current flow into or out of USB 5V.
Expected result
- Preferred prototype-safe operating rule: do not connect ESP32 USB while external PCB power is applied unless a removable link/back-power protection is installed or removed appropriately.
- If USB is connected with PCB power off, any carrier back-powering must be documented as a known limitation.
Fail condition
- USB powers the carrier PCB unexpectedly and energizes downstream loads.
- External 5V back-feeds into the USB port.
- PC or USB source reports overcurrent or disconnects.
Do not proceed condition
- Any uncontrolled current flow occurs between USB 5V and PCB 5V.
- Testing requires connecting an unprotected PC USB port while external power is present.
Prototype-safe recommendation
- Use a removable jumper or solder bridge between
BUCK_5V and ESP32_EXT_5V, labelled:
“JP_ESP32_5V — install for field operation, remove when programming via DevKit USB”.
14. Long Pulse / Repeated Pulse Thermal Test
Equipment needed
- Bench DC supply.
- Firmware/test sketch for repeated relay activation.
- Thermometer, thermocouple, or IR camera.
- Oscilloscope optional for rail monitoring.
Setup
- Board powered at 24V input for worst-case buck input voltage.
- No external machine connected initially.
- Relay output may be unloaded for first test.
Procedure
- Run relay activation at realistic duty cycle for the dispenser application.
- Include long on-pulses representative of worst expected field use.
- Run repeated pulses for at least 15–30 minutes during prototype validation.
- Monitor temperatures of U1 LM2596, D2, L1, Q2, F2, D3, Q1, D1, K1, RSHUNT, and connectors.
- Monitor 5V rail for droop or reset events.
- Repeat with the expected external relay contact load only after dry-contact tests pass.
Expected result
- No component reaches unsafe temperature.
- Relay activates consistently.
- ESP32 remains running.
- INA219 readings remain plausible.
- 5V rail remains stable.
Fail condition
- Any component overheats or changes behavior with temperature.
- Relay drops out, chatters, or fails to release.
- ESP32 resets during repeated pulses.
- RSHUNT, Q1, D1, buck diode, inductor, or regulator temperature rises unexpectedly.
Do not proceed condition
- Thermal runaway, repeated resets, relay malfunction, visible discoloration, smell, or unstable 5V rail.
15. Final Machine Integration Test With Dispenser Coin-Trigger Input
Equipment needed
- Dispenser machine or validated coin-trigger input simulator.
- Multimeter.
- Optional oscilloscope.
- Bench supply or intended field supply.
- Firmware configured for final trigger behavior.
Setup
- Only perform after Tests 1–14 pass.
- Confirm RELAY_OUT is dry contact and generates no voltage.
- Confirm dispenser input voltage/current requirements are compatible with relay dry-contact rating.
- Connect RELAY_OUT across the dispenser coin-trigger input exactly as a switch/contact closure.
- Keep board powered from intended 12V–24V supply.
Procedure
- Power the controller normally.
- Confirm ESP32 boots and firmware is running.
- Trigger relay using final control logic or diagnostic command.
- Confirm dispenser detects the coin-trigger/contact closure.
- Confirm no unintended multiple triggers, stuck trigger, or missed trigger.
- Repeat for multiple cycles.
- Monitor 5V rail and board temperature during repeated operation.
Expected result
- Relay contact closure reliably triggers the dispenser input.
- No voltage is sourced from the PCB into RELAY_OUT except the external machine’s own circuit through the dry contact.
- No ESP32 resets or false triggers.
- Board remains thermally stable.
Fail condition
- Dispenser does not detect trigger.
- Dispenser triggers unexpectedly.
- RELAY_OUT applies voltage incorrectly.
- ESP32 resets during machine operation.
- EMI/noise from machine wiring disrupts operation.
Do not proceed condition
- Any unsafe interaction with machine wiring.
- Any evidence that RELAY_OUT is not isolated/dry-contact behavior.
- Repeated false triggers or uncontrolled relay operation.
Prototype Bring-Up Pass Criteria
The prototype may proceed to supervised field trial only if all of the following are true:
- Visual inspection passes.
- No shorts are found before power.
- Reverse-polarity test does not energize downstream rails.
- 12V and 24V power-up tests pass.
- 5V and 3V3 rails remain within safe operating range.
- ESP32 boots reliably.
- GPIO23 controls the relay reliably.
- INA219 current reading changes correctly with relay activation.
- RELAY_OUT behaves as an isolated dry contact and generates no voltage.
- USB/back-power limitation is either mitigated or handled with a strict warning/procedure.
- Repeated relay pulses do not cause overheating or resets.
- Final dispenser coin-trigger integration works reliably.
Prototype-Specific Warnings to Record
- Do not connect ESP32 DevKit USB and external PCB input power at the same time unless back-power protection or a removable 5V link procedure is implemented.
- Do not connect RELAY_OUT to any circuit until dry-contact isolation and no-voltage tests pass.
- Do not proceed to 24V testing until 12V testing passes.
- Do not connect the dispenser until all bench-level relay and rail stability tests pass.