WireViz
Summary
WireViz is a simple yet flexible, YAML-based markup language for documenting cables, wiring harnesses and connector pinouts with beautiful graphical output (SVG, PNG, ...) thanks to GraphViz.
Features
- WireViz input files are fully text based
- No special editor required
- Human readable
- Easy version control
- YAML syntax
- Understands and uses color abbreviations as per IEC 60757 (black=BK, red=RD, ...)
- Optionally outputs colors as abbreviation (e.g. 'YE'), full name (e.g. 'yellow') or hex value (e.g. '#ffff00'), with choice of UPPER or lower case
- Auto-generates standard wire color schemes and allows custom ones if needed
- Understands wire gauge in mm² or AWG
- Optionally auto-calculates and displays AWG equivalent when specifying mm²
- Allows more than one connector per side, as well as loopbacks
- Allows for easy-autorouting for 1-to-1 wiring
Note: WireViz is not designed to represent the complete wiring of a system. Its main aim is to document the construction of individual wires and harnesses.
Examples
Demo 01
nodes:
X1:
type: D-Sub
gender: female
pinout: [DCD, RX, TX, DTR, GND, DSR, RTS, CTS, RI]
X2:
type: Molex KK 254
gender: female
pinout: [GND, RX, TX, N/C, OUT, IN]
wires:
W1:
mm2: 0.25
length: 0.2
color_code: DIN
num_wires: 3
shield: true
connections:
- # format: connector->wire->connector
- X1: [5,2,1]
- W1: [1,2,3]
- X2: [1,3,2]
- # format: connector->wire or wire->connector
- X1: 5
- W1: s
- # loop: connector-connector
- X2: 5
- X2: 6
Output file:
Demo 02
More examples
See the example gallery and included readme file.
Status
This is very much a work in progress.
License
GNU GPLv3
Languages
Python
100%

