Skip to content

Latest commit

 

History

History
105 lines (76 loc) · 2.99 KB

readme.md

File metadata and controls

105 lines (76 loc) · 2.99 KB

WireViz

Summary

WireViz is a tool for easily documenting cables, wiring harnesses and connector pinouts. It takes plain text, YAML-formatted files as input and produces beautiful graphical output (SVG, PNG, ...) thanks to GraphViz. It handles automatic BOM (Bill of Materials) creation and has a lot of extra features.

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
    • DIN 47100 (WT/BN/GN/YE/GY/PK/BU/RD/BK/VT/...)
    • IEC 62 (BN/RD/OR/YE/GN/BU/VT/GY/WT/BK/...)
  • 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
  • Generates BOM (Bill of Materials)

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

WireViz input file:

connectors:
  X1:
    type: D-Sub
    subtype: female
    pinout: [DCD, RX, TX, DTR, GND, DSR, RTS, CTS, RI]
  X2:
    type: Molex KK 254
    subtype: female
    pinout: [GND, RX, TX]

cables:
  W1:
    gauge: 0.25 mm2
    length: 0.2
    color_code: DIN
    wirecount: 3
    shield: true

connections:
  -
    - X1: [5,2,1]
    - W1: [1,2,3]
    - X2: [1,3,2]
  -
    - X1: 5
    - W1: s

Output file:

Sample output diagram

Bill of Materials (auto-generated)

Demo 02

Source - Bill of Materials

Tutorial and example gallery

See the tutorial page for sample code, as well as the example gallery to see more of what WireViz can do.

Usage

$ python3 wireviz.py ~/path/to/file/mywire.yml

This will output the following files

mywire.gv         GraphViz output
mywire.svg        Wiring diagram as vector image
mywire.png        Wiring diagram as raster image
mywire.bom.tsv    BOM (bill of materials) as tab-separated text file
mywire.html       HTML page with wiring diagram and BOM embedded

Status

This is very much a work in progress. Source code, API, syntax and functionality may change wildly at any time.

Requirements

Developed and tested using Python 3.7; might not work with older Python versions.

License

GNU GPLv3