Giter Site home page Giter Site logo

pcbupve's Introduction

PCBupvE

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.

Status

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.

Installation

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

Images

Original Test:

SVG layout

Physical board:

Physical

Upverter Test PCB:

Assembled

Converted SVG:

Assembled

More Information

https://jrainimo.com/build/?p=1672

pcbupve's People

Contributors

jarrettr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.