A USB Cable Diagnostic Instrument — Real-Time Topology & Traffic Visualization
The EPIC Cable Gradiator is a professional-grade desktop instrumentation tool that visualizes USB cable topology, conductor continuity, and live traffic as dynamic light gradients on a 16×10 WS2812B-2020 LED matrix.
Instead of squinting at a multimeter or wrestling with finicky diagnostic dongles, simply drop your cable across the flanks and read its anatomy as raw light. Four operating modes automatically detect cable configuration, from passive charging to active SuperSpeed pass-through.
Target audience: Hardware engineers, electronics hobbyists, electronics shops, and anyone with a "mystery cable drawer."
- 4-Layer SMT PCB with 100% single-sided component placement
- 160 Addressable RGB Pixels (WS2812B-2020) for real-time visualization
- Dual 16-Channel Analog Multiplexers (CD74HC4067) scan both USB flanks simultaneously
- Hardware Safety: Every scan line passes through a series 10 kΩ resistor — electrically safe against any USB compliance cable
- Automatic Mode Detection — no manual switching required
- CHARGE Mode: Supercap charging progress bar
- LOOP Mode: Static conductor map (cable grading)
- PASS-THRU Mode: Live traffic waterfall
- ERR Mode: Immediate contradiction alert
- I2C Power Monitoring (INA226 @ 0x40) — supercap voltage and live current
- 7-Segment Telemetry Display (HT16K33 @ 0x70) — voltage/current/cable type codes
- Rotary Encoder + 2 Tactile Buttons for menu navigation
- 10 Farad Supercapacitor (user-installable DNP) — 52 seconds holdup time at full load
- ESP32-S3-MINI-1-N8 MCU — firmware on this repo
- CC-BY-NC-SA Licensed — fully open-source hardware & software
cable-gradiator/
├── firmware/ # ESP32-S3 Arduino firmware
│ ├── cable_gradiator.ino
│ ├── config.h
│ ├── cable_scan.h/cpp
│ ├── led_matrix.h/cpp
│ ├── display.h/cpp
│ ├── power_monitor.h/cpp
│ └── hmi.h/cpp
├── kicad/ # KiCad 10 native files
│ ├── cable-gradiator.kicad_pro
│ ├── cable-gradiator.kicad_sch (root)
│ ├── cable-gradiator-power.kicad_sch
│ ├── cable-gradiator-usb-flanks.kicad_sch
│ ├── cable-gradiator-scan.kicad_sch
│ ├── cable-gradiator-leds.kicad_sch
│ ├── cable-gradiator-metrology.kicad_sch
│ └── cable-gradiator.kicad_pcb
├── gerbers/ # Manufacturing files (Gerber + drill)
├── bom/ # Bill of Materials
│ └── BOM-ECG-2026-V2.csv
├── docs/ # Technical documentation
├── .gitignore
├── README.md (this file)
└── LICENSE (CC-BY-NC-SA)
-
Clone this repository:
git clone https://github.com/epicwinpromedia/cable-gradiator.git cd cable-gradiator -
Install ESP32 Arduino Core (2.0+) via Board Manager
-
Install FastLED 3.6.0+ via Library Manager
-
Open firmware:
# Open firmware/cable_gradiator.ino in Arduino IDE -
Flash:
- Select Board:
ESP32-S3 Mini - Click Upload
- Select Board:
- KiCad Files: Hierarchical 6-sheet design in
/kicad/ - Gerbers: Ready-to-order files in
/gerbers/ - BOM: LCSC-indexed parts in
/bom/BOM-ECG-2026-V2.csv - Supercaps: DNP (user-installable) for factory assembly
- Recommended: Order from PCBWay with 4-Layer SMT + DNP handling
Live VBUS on Slot 1, no cable → Progress bar fills Red → Yellow → Green
Cable from left to right flank, no VBUS → Static color-coded conductor map
Host + Client inline with VBUS → Waterfall scroll of live current
Contradictory topology → "FAIL" in red, frozen display
| Parameter | Value |
|---|---|
| MCU | ESP32-S3-MINI-1-N8 |
| LED Matrix | 16×10 WS2812B-2020 (160 pixels) |
| Scan Engine | 2× CD74HC4067 (32 lines) |
| Power | TPS54302 buck (VBUS → +5V/2A) |
| Supercap | 2× 10F / 2.7V BCAP0010 |
| Discharge | TPS63021 buck-boost |
| Monitor | INA226 I2C @ 0x40 |
| Display | HT16K33 I2C @ 0x70 + KEM5641AW 7-seg |
| Board Size | 106 mm × 80 mm (4-layer) |
| Connectors | 2× USB-C, 2× USB-A, 2× Micro-USB |
- Content-blind: No packet capture capability
- Real-time display only: No storage
- Hardware tell-tale LED: Outside MCU control for pogo backpack detect
- 100% single-sided SMT placement
- Consolidated passive pools
- PCBWay Standard SMT compatible
- 90 Ω controlled-impedance differential pairs (SuperSpeed)
- Unbroken GND reference plane beneath high-speed traces
- Multi-point power injection on +5V rail
- 10 kΩ series resistor on every scan line
- Max 1.67 mA even at 20V PD vSafe
- Intrinsic overcurrent protection
- config.h — Pin definitions, constants, state machine
- cable_scan.h/cpp — Dual-mux engine, conductor inference
- led_matrix.h/cpp — FastLED wrapper, mode renderers
- display.h/cpp — HT16K33 I2C driver
- power_monitor.h/cpp — INA226 I2C, VCAP readout
- hmi.h/cpp — Encoder + button handlers
- cable_gradiator.ino — Main loop, state machine, NVS persistence
- Hardware & Firmware: CC-BY-NC-SA 4.0 (see LICENSE file)
- Dependencies: FastLED (MIT), ESP32 Arduino Core (Apache 2.0)
- Designer: B. L. Harris, EPIC WIN Pro Media
- Manufacturer: PCBWay
Bug reports and feature PRs welcome! Please maintain code structure and add tests where applicable.
- PCBWay Contest: https://www.pcbway.com/activity/2026-kicad-pcb-design-contest.html
- Project Showcase: https://www.pcbway.com/project/shareproject/Cable_Gradiator_615d8346.html
- KiCad Docs: https://docs.kicad.org/
- FastLED: http://fastled.io/
- ESP32-S3: https://www.espressif.com/products/socs/esp32-s3/
Status: ✅ Production Ready — Complete, tested, ready for manufacturing.
Designed with ❤️ for the PCBWay 2026 KiCad Design Contest