Upverter Conversion Tool for PCBmodE
PCBmodE is an unusual ECAD package that doesn't know nets, traces, or even schematics. It's a collection of JSON files that get converted into SVG or gerber files.
There are some limited tools to convert SVG files back into JSON, too. Consider it like forward- and back-annotation.
The end takeaway is that these circuits are drawn, not engineered.
Because PCBmodE has no concept of schematics or netlists, doing complex circuits is a non-starter. Wiring up LEDs to batteries is one thing, but complex fanouts from large microcontrollers is difficult, to put it mildly.
This is a conversion tool to Upverter's OpenJSON format and turn it into a set of board files that PCBmodE can read.
It largely works, but it's not 100%.
Not all elements are supported yet - Currently only components, component instances, vias, traces, pours, outlines.
Silkscreens, shapes, designators, and metadata(like schematics shown on docs!) are all totally possible.
Pours have no concepts of nets, so they will not automagically merge with their pads.
The latest(as of July '18) dev branch of PCBmodE must be installed.
pip install git+https://github.com/threebytesfull/pcbmode.git@improve-test-coverage
Then clone and run this repo on the sample inputs:
git clone https://github.com/JarrettR/PCBupvE.git
cd PCBupvE
python main.py -f .\test_data\688cbc7ec09544c0_15226514270000_openjson.upv
Somethig like the following output should happen:
Input file loaded, OpenJSON format version: 0.3.0
Processing categories...
component_instances - 11 component instances processed of 23
components - 14 components processed of 16
design_attributes - Not yet implemented
layer_options - Not yet implemented
layout_bodies - Not yet implemented
layout_body_attributes - Not yet implemented
layout_objects - 4 vias processed
module_instances - Not yet implemented
modules - Not yet implemented
named_regions - Not yet implemented
nets - 52 nets unprocessed, still todo
paths - 1 paths processed of 1
pcb_text - Not yet implemented
pins - Not yet implemented
pours - Not yet implemented
rulers - Not yet implemented
shape_poses - Not yet implemented
shapes - Not yet implemented
trace_segments - 124 trace_segments processed
version - Nothing to be done
Done!
And you'll have a selection of JSON files in the boards folder.
Run PCBmodE from the same directory:
pcbmode -b yourboard -m
And continue on your PCBmodE workflow! An SVG should have been generated in boards\yourboard\build\yourboard.svg
Original Test:
Physical board:
Upverter Test PCB:
Converted SVG: