https://github.com/commaai/harness_tester_challenge
We designed a simple harness testing PCB and wrote some firmware for it. Can you figure out everything wrong with it?
https://github.com/commaai/harness_tester_challenge
Last synced: 8 months ago
JSON representation
We designed a simple harness testing PCB and wrote some firmware for it. Can you figure out everything wrong with it?
- Host: GitHub
- URL: https://github.com/commaai/harness_tester_challenge
- Owner: commaai
- License: mit
- Created: 2024-05-23T15:35:15.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2025-05-25T16:17:34.000Z (about 1 year ago)
- Last Synced: 2025-05-25T17:26:41.515Z (about 1 year ago)
- Language: C++
- Homepage: https://comma.ai/leaderboard
- Size: 5.5 MB
- Stars: 39
- Watchers: 8
- Forks: 15
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
We (mock) designed a simple harness testing PCB and wrote some firmware for it. Unfortunately, this board was designed and firmware was written on a Monday morning.
Can you figure out everything wrong with it?
## The Harness Tester
We currently ship hundreds of [car-specific harnesses](https://www.comma.ai/shop/car-harness) to users every month, consisting of more than [40 different types](https://github.com/commaai/hardware/tree/master/harness/v3).
As a simple wiring harness, we expect them to have a near-zero failure rate, so good testing is critical.
This tester is designed to be capable of quickly verifying which pins are connected to which other pins.
A quick list of design goals is listed here:
- 12V DC input with transient and reverse polarity protection
- compatible with harnesses with up to 40 pins (through a pin header)
- start button and RGB LED are the user interface
- microSD card to store test results along with the current time (for statistical purposes)
- receive time by acquiring a GPS lock (*ok, yes, this is just to make the board and firmware more interesting*)
## The challenge
The challenge consists of 3 distinct parts, each riddled with more than a few bugs:
- Schematic ([PDF](./schematic.pdf) / [Web](https://kicanvas.org/?github=https%3A%2F%2Fgithub.com%2Fcommaai%2Fharness_tester_challenge%2Fblob%2Fmaster%2Fkicad_files%2Fhardware_challenge.kicad_sch))
- PCB layout ([Gerbers](./gerbers.zip) / [Web](https://kicanvas.org/?github=https%3A%2F%2Fgithub.com%2Fcommaai%2Fharness_tester_challenge%2Fblob%2Fmaster%2Fkicad_files%2Fhardware_challenge.kicad_pcb))
- Firmware ([Source](./firmware/))
The board is designed in [KiCad 8](https://www.kicad.org/), and the full project is available in an [exported archive](./kicad_project.zip).
There are a handful of intentional, show-stopping bugs hidden in each part. Find them, and [send](https://forms.gle/US88Hg7UR6bBuW3BA) them over to us for verification!
We're not looking for improvements or fixes; just submit a list of bugs.
