Skip to content
Upverter Conversion Tool for PCBmodE
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs Updated docs to new features Jul 19, 2018
outputs Create output folder May 25, 2018
LICENSE Updated docs to new features Jul 19, 2018 Fix coordinate issues Jul 18, 2018 Fixed some more location bugs May 25, 2018
defaults.json Outline should usually be editable Jul 18, 2018 Fix coordinate issues Jul 18, 2018 Trace_segment format approximately right, need to double check units May 19, 2018 Removed arc paths debugging lint Jul 26, 2018


Upverter Conversion Tool for PCBmodE

The hook

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.

The problem

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.

A solution

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+

Then clone and run this repo on the sample inputs:

git clone
cd PCBupvE
python -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

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:

SVG layout

Physical board:


Upverter Test PCB:


Converted SVG:


More Information

You can’t perform that action at this time.