https://github.com/wireviz/WireViz Skip to content Toggle navigation Sign in * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Resources + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} wireviz / WireViz Public * Notifications * Fork 202 * Star 3.8k * Easily document cables and wiring harnesses. License GPL-3.0 license 3.8k stars 202 forks Branches Tags Activity Star Notifications * Code * Issues 96 * Pull requests 10 * Actions * Projects 0 * Security * Insights Additional navigation options * Code * Issues * Pull requests * Actions * Projects * Security * Insights wireviz/WireViz This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. master BranchesTags Go to file Code Folders and files Name Name Last commit Last commit message date Latest commit History 375 Commits .github/workflows .github/ workflows docs docs examples examples src/wireviz src/wireviz tutorial tutorial .gitattributes .gitattributes .gitignore .gitignore LICENSE LICENSE requirements.txt requirements.txt setup.py setup.py View all files Repository files navigation * README * GPL-3.0 license WireViz PyPI - Version PyPI - Python Version PyPI - Downloads 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 + UTF-8 input and output files for special character support * Understands and uses color abbreviations as per IEC 60757 (black= BK, red=RD, ...) * 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 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 mm2 or AWG + Optionally auto-calculates equivalent gauge between mm2 and AWG * Is suitable for both very simple cables, and more complex harnesses. * 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 pinlabels: [DCD, RX, TX, DTR, GND, DSR, RTS, CTS, RI] X2: type: Molex KK 254 subtype: female pinlabels: [GND, RX, TX] cables: W1: gauge: 0.25 mm2 length: 0.2 color_code: DIN wirecount: 3 shield: true connections: - - X1: [5,2,3] - W1: [1,2,3] - X2: [1,3,2] - - X1: 5 - W1: s Output file: Sample output diagram Bill of Materials (auto-generated) Demo 02 [demo02] 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 Installation Requirements WireViz requires Python 3.7 or later. WireWiz requires GraphViz to be installed in order to work. See the GraphViz download page for 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 release The latest WireViz release can be downloaded from PyPI with the following command: pip3 install wireviz Installing the development version Access to the current state of the development branch can be gained by cloning the repo and installing manually: git clone cd git checkout dev pip3 install -e . If you would like to contribute to this project, make sure you read the contribution guidelines! How to run $ wireviz ~/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 Command line options * --prepend-file to prepend an additional YAML file. Useful for part libraries and templates shared among multiple cables/ harnesses. * -o or --output_file to generate output files with a name different from the input file. * -V or --version to display the WireViz version. * -h or --help to see a summary of the usage help text. Syntax description A description of the WireViz YAML input syntax can be found here. (Re-)Building the example projects Please see the documentation of the build_examples.py script for info on building the demos, examples and tutorial. Changelog See CHANGELOG.md Status This is very much a work in progress. Source code, API, syntax and functionality may change wildly at any time. License GPL-3.0 About Easily document cables and wiring harnesses. Topics hardware connectors wiring-diagram cables wiring-harness Resources Readme License GPL-3.0 license Activity Custom properties Stars 3.8k stars Watchers 84 watching Forks 202 forks Report repository Releases 5 tags Contributors 19 * @formatc1702 * @kvid * @Tyler-Ward * @n42 * @slightlynybbled * @aakatz3 * @zombielinux * @amotl * @stevegt * @martonmiklos * @gopiballava * @SnowMB * @flopp * @gstein + 5 contributors Languages * Python 100.0% Footer (c) 2024 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact * Manage cookies * Do not share my personal information You can't perform that action at this time.