Wire Harness Testing Schematic and PCB Design -- 2

Job ID: 40258520

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