Wire Harness Testing Schematic and PCB Design -- 2
Budget: €30 – €250 EUR
1) Project goal
Design a single PCB device for testing cable harnesses up to 25 wires, where both ends of the same harness are connected to the board:
Side A: 25 lines (A1..A25)
Side B: 25 lines (B1..B25)
Total: 50 signal lines on the PCB.
The detailed test logic (continuity/shorts/mapping) will be implemented in firmware later. For this phase, the key deliverable is robust hardware (schematic + PCB) prepared for such testing.
2) Scope of work (hardware only)
Electrical schematic
PCB layout
Production files: Gerbers + drill
BOM (with specs and acceptable alternatives)
Assembly files (pick&place/positions) preferred
Short mapping table: MCP23017 pins → A/B line numbers
(Firmware is NOT required in this phase. Optional “I2C scan / basic blink” is a bonus.)
3) Main hardware requirements
MCU
ESP32-WROOM (preferred for availability and support)
I/O expansion
Use MCP23017 (I2C) I/O expanders — I already have these and want them used
Quantity: minimum 4× MCP23017 (64 I/O total → spare pins)
Unique I2C addresses via A0/A1/A2 (e.g. 0x20, 0x21, 0x22, 0x23)
Power input
Supply input: 9–32 V DC
On-board step-down regulation to stable 3.3V (for ESP32 + MCP23017)
Input protection:
reverse polarity protection
TVS on input
fuse / polyfuse
proper filtering and EMI-aware layout
4) Connectors (mandatory)
Pluggable / detachable terminal blocks, 3.5 mm pitch
Two connector groups:
Side A: 25 pins (A1..A25)
Side B: 25 pins (B1..B25)
Clear silkscreen labeling on PCB: A1..A25 and B1..B25
5) User interface (mandatory)
TEST push button (momentary) – will trigger test in future firmware
LEDs:
Green LED = PASS/OK
Red LED = FAIL/ERROR
Power LED (POWER)
6) ESP32 pin assignment (required – proposal)
I2C (MCP23017)
SDA = GPIO21
SCL = GPIO22
I2C pull-ups: 4.7kΩ to 3.3V on SDA and SCL
TEST button
GPIO27 (input)
Pull-up (10k to 3.3V or internal pull-up), button to GND
Optional debounce capacitor ~100nF
LEDs
GREEN = GPIO25
RED = GPIO26
POWER LED: always-on from 3.3V/5V rail (does not need MCU control)
Note: avoid ESP32 strapping pins in ways that can affect boot (GPIO0/2/12/15 etc.) for LEDs/buttons if it risks boot issues.
7) Critical requirement: protect ALL A/B lines from accidental 12V / 24V
On the A and B connectors there may be accidental external DC voltage present (12V or 24V) depending on what the harness is connected to. The design must ensure:
ESP32 and MCP23017 are not damaged
input voltages are clamped/limited to safe levels
device remains functional after such an event (within reasonable energy/time assumptions)
Minimum required protection per each line (A1..A25 and B1..B25)
330Ω series resistor on every line (mandatory; placed close to the connector)
Additional protection components sized so that 12/24V will not harm the electronics (designer must calculate currents):
clamp to 3.3V/GND (ESD/TVS/diode clamping) with proper current limiting, and/or
buffering/isolation stage if it’s more reliable/cost-effective
The schematic must include a short note specifying the assumed abuse case, e.g.
“Accidental 24V DC applied to a single line for a few seconds” and show the design rationale (safe clamp current).
8) USB programming / service (mandatory)
On-board USB connector (USB-C preferred) for ESP32 programming and service UART
Add a USB-to-UART IC (e.g., CP2102/CP2104 or CH340, designer to choose proven/available part)
Preferred: auto-programming support via control lines to:
EN/RESET
BOOT (GPIO0)
so flashing can be done without manual button sequences
Add ESD protection for USB D+/D- lines (good practice)
9) PCB requirements
4 mounting holes
EMI-aware routing (switching regulator kept away from sensitive signal routing; proper ground strategy)
Clear documentation in silkscreen and in the project notes
10) Deliverables
KiCad/Altium/Eagle(Fusion360) project: schematic + PCB
Gerbers + drill files
BOM with specifications and alternatives
Pick&place / assembly position files (preferred)
MCP23017 → A/B lines mapping table
Design a single PCB device for testing cable harnesses up to 25 wires, where both ends of the same harness are connected to the board:
Side A: 25 lines (A1..A25)
Side B: 25 lines (B1..B25)
Total: 50 signal lines on the PCB.
The detailed test logic (continuity/shorts/mapping) will be implemented in firmware later. For this phase, the key deliverable is robust hardware (schematic + PCB) prepared for such testing.
2) Scope of work (hardware only)
Electrical schematic
PCB layout
Production files: Gerbers + drill
BOM (with specs and acceptable alternatives)
Assembly files (pick&place/positions) preferred
Short mapping table: MCP23017 pins → A/B line numbers
(Firmware is NOT required in this phase. Optional “I2C scan / basic blink” is a bonus.)
3) Main hardware requirements
MCU
ESP32-WROOM (preferred for availability and support)
I/O expansion
Use MCP23017 (I2C) I/O expanders — I already have these and want them used
Quantity: minimum 4× MCP23017 (64 I/O total → spare pins)
Unique I2C addresses via A0/A1/A2 (e.g. 0x20, 0x21, 0x22, 0x23)
Power input
Supply input: 9–32 V DC
On-board step-down regulation to stable 3.3V (for ESP32 + MCP23017)
Input protection:
reverse polarity protection
TVS on input
fuse / polyfuse
proper filtering and EMI-aware layout
4) Connectors (mandatory)
Pluggable / detachable terminal blocks, 3.5 mm pitch
Two connector groups:
Side A: 25 pins (A1..A25)
Side B: 25 pins (B1..B25)
Clear silkscreen labeling on PCB: A1..A25 and B1..B25
5) User interface (mandatory)
TEST push button (momentary) – will trigger test in future firmware
LEDs:
Green LED = PASS/OK
Red LED = FAIL/ERROR
Power LED (POWER)
6) ESP32 pin assignment (required – proposal)
I2C (MCP23017)
SDA = GPIO21
SCL = GPIO22
I2C pull-ups: 4.7kΩ to 3.3V on SDA and SCL
TEST button
GPIO27 (input)
Pull-up (10k to 3.3V or internal pull-up), button to GND
Optional debounce capacitor ~100nF
LEDs
GREEN = GPIO25
RED = GPIO26
POWER LED: always-on from 3.3V/5V rail (does not need MCU control)
Note: avoid ESP32 strapping pins in ways that can affect boot (GPIO0/2/12/15 etc.) for LEDs/buttons if it risks boot issues.
7) Critical requirement: protect ALL A/B lines from accidental 12V / 24V
On the A and B connectors there may be accidental external DC voltage present (12V or 24V) depending on what the harness is connected to. The design must ensure:
ESP32 and MCP23017 are not damaged
input voltages are clamped/limited to safe levels
device remains functional after such an event (within reasonable energy/time assumptions)
Minimum required protection per each line (A1..A25 and B1..B25)
330Ω series resistor on every line (mandatory; placed close to the connector)
Additional protection components sized so that 12/24V will not harm the electronics (designer must calculate currents):
clamp to 3.3V/GND (ESD/TVS/diode clamping) with proper current limiting, and/or
buffering/isolation stage if it’s more reliable/cost-effective
The schematic must include a short note specifying the assumed abuse case, e.g.
“Accidental 24V DC applied to a single line for a few seconds” and show the design rationale (safe clamp current).
8) USB programming / service (mandatory)
On-board USB connector (USB-C preferred) for ESP32 programming and service UART
Add a USB-to-UART IC (e.g., CP2102/CP2104 or CH340, designer to choose proven/available part)
Preferred: auto-programming support via control lines to:
EN/RESET
BOOT (GPIO0)
so flashing can be done without manual button sequences
Add ESD protection for USB D+/D- lines (good practice)
9) PCB requirements
4 mounting holes
EMI-aware routing (switching regulator kept away from sensitive signal routing; proper ground strategy)
Clear documentation in silkscreen and in the project notes
10) Deliverables
KiCad/Altium/Eagle(Fusion360) project: schematic + PCB
Gerbers + drill files
BOM with specifications and alternatives
Pick&place / assembly position files (preferred)
MCP23017 → A/B lines mapping table