This is a simple USB type-C and UTP cable continuity tester. It lights up the LED corresponding to the strand it is testing when there is an electrical connection. The tester is powered with 5V via the PD compliant USB type-C connector.
This project is build with the open-source EDA faebryk.
This project is usefull as a simple cable tester for UTP and USB type-C cables, however it is very easy to add additional connectors for different cable types due to faebryk.
The purpose of this project was mainly to showcase the funcionality of faebryk. The Cable tester is the very first PCBA manufactured from a faebryk design!
An example of the power of faebryk for PCB design
Auto placing components.
# Generate the netlist with faebryk
python ./source/faebryk/main.py
INFO:__main__:Backup old netlist at ./source/kicad/main/main.net.bak
INFO:__main__:Writing Experiment netlist to ./source/kicad/main/main.net
INFO:__main__:Opening kicad to import new netlist
Import the netlist at ./source/kicad/main/main.net. Press 'Update
PCB'. Place the components, save the file and exit kicad.
# Let faebryk auto-place your component in a parametric way
INFO:__main__:Writing pcbfile ./source/kicad/main/main.kicad_pcbAfter importing the generated netlist into KiCad, the layout looks like this:
Let faebryk do the parametric auto placing by using transform functions and coordinates:
# component, rotation
layout_rotation_degrees: List[Tuple[Component, int]] = [
(pr, 270),
(mos, 180),
(clr, 270),
(led, 0),
]
# left, up, right, down
component_clearances_mm = {
LED_FP: (2.25, 1, 2, 1),
RESISTOR_FP: (1, 0.5, 1, 0.5),
MOSFET_FPS[0]: (2, 3.25, 2, 3.25),
MOSFET_FPS[1]: (2, 3.25, 2, 3.25),
}And you will get a parametrized PCB layout:
See here for the instructions on how to install and edit this project.
If you want to build the physical output of this project you can find the build instructions here.
If you want to share your alterations, improvements, or add bugfixes to this project, please take a look at the contributing guidelines.
Community support is provided via Discord; see the Resources below for details.

