Package: wireviz
WireVizSummaryWireViz 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 toGraphViz. It handles automatic BOM (Bill of Materials) creation and has a lot of extra features.FeaturesWireViz input files are fully text basedNo special editor requiredHuman readableEasy version controlYAML syntaxUTF-8 input and output files for special character supportUnderstands and uses color abbreviations as perIEC 60757(black=BK, red=RD, ...)Auto-generates standard wire color schemes and allows custom ones if neededDIN 47100(WT/BN/GN/YE/GY/PK/BU/RD/BK/VT/...)IEC 60757(BN/RD/OR/YE/GN/BU/VT/GY/WT/BK/...)25 Pair Color Code(BUWH/WHBU/OGWH/WHOG/GNWH/WHGN/BNWH/...)TIA/EIA 568 A/B(Subset of 25-Pair, used in CAT-5/6/...)Understands wire gauge in mm² or AWGOptionally auto-calculates equivalent gauge between mm² and AWGIs suitable for both very simple cables, and more complex harnesses.Allows for easy-autorouting for 1-to-1 wiringGenerates 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.ExamplesDemo 01WireViz input file:connectors:X1:type:D-Subsubtype:femalepinlabels:[DCD,RX,TX,DTR,GND,DSR,RTS,CTS,RI]X2:type:Molex KK 254subtype:femalepinlabels:[GND,RX,TX]cables:W1:gauge:0.25 mm2length:0.2color_code:DINwirecount:3shield:trueconnections:--X1:[5,2,3]-W1:[1,2,3]-X2:[1,3,2]--X1:5-W1:sOutput file:Bill of Materials(auto-generated)Demo 02Source-Bill of MaterialsTutorial and example gallerySee thetutorial pagefor sample code,
as well as theexample galleryto see more of what WireViz can do.UsageInstallationRequirementsWireViz requires Python 3.7 or later.WireWiz requires GraphViz to be installed in order to work. See theGraphViz download pagefor OS-specific instructions.Note: Ubuntu 18.04 LTS users in particular may need to separately install Python 3.7 or above, as that comes with Python 3.6 as the included system Python install.Installing the latest releaseThe latest WireViz release can be downloaded fromPyPIwith the following command:pip3 install wirevizInstalling the development versionAccess to the current state of the development branch can be gained by cloning the repo and installing manually:git clone <repo url>
cd <working copy>
git checkout dev
pip3 install -e .If you would like to contribute to this project, make sure you read thecontribution guidelines!How to run$ wireviz ~/path/to/file/mywire.ymlThis will output the following filesmywire.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 embeddedCommand line options--prepend-file <FILE>to prepend an additional YAML file. Useful for part libraries and templates shared among multiple cables/harnesses.-o <OUTPUT>or--output_file <OUTPUT>to generate output files with a name different from the input file.-Vor--versionto display the WireViz version.-hor--helpto see a summary of the usage help text.Syntax descriptionA description of the WireViz YAML input syntax can be foundhere.(Re-)Building the example projectsPlease see thedocumentationof thebuild_examples.pyscript for info on building the demos, examples and tutorial.ChangelogSeeCHANGELOG.mdStatusThis is very much a work in progress. Source code, API, syntax and functionality may change wildly at any time.LicenseGPL-3.0