Coder Social home page Coder Social logo

boms-away's Introduction

BOMs Away! - BOM/Component manager for KiCad

IMO, KiCad is one of the best EDA tools out there, with just one major problem: Bill of Materials management is rough. If you make more than 1 board a year, you probably know how frustrating it can be to get everything together for an order. There are multiple ways to export a BOM (each with their own ups and downs), and the process of selecting and entering components is excruciatingly manual.

You can of course create custom components on a per MPN basis, but this can be time consuming and forces you to maintain a large number of individual component libraries.

The goal of this app is to ease the bom management burden on designers who choose to use Kicad for their layout and schematic capture needs, allowing for faster, easier data entry, and to provide a part database for re-use in future designs.

Installation

With pyenv and pipenv installed, cd into the cloned directory and run:

PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install .
pipenv install

Then run the app with: ./wrapper.sh bomsaway.py

Requirements

  • python 2.7
  • sqlalchemy
  • wxPython (pip install should work on most platforms, otherwise, see wxPython.org

Deprecated:

  • kivy >= 1.9.0
  • kivy garden
  • navigationdrawer garden install navigationdrawer

Features

Self-curated component database

Simply enter a part's manufacturer, supplier, manufacturer PN, and supplier PN then click 'save to datastore'. Information is keyed off of component value and footprint, so future uses can simply use the part lookup button to retrieve the information. Multiple suppliers, manufacturers, and part numbers are supported.

Like-Part consolidation

Everybody miskeys from time to time, this feature detects (to the best of its ability) components that are the same, but simply have mislabeled values. For example: (10K, 10k, 10 K) will be consolidated into a single value selectable by the user.

*Only components that share a footprint are consolidated.

CSV Bom Export

Exports PCBNew style component agregate BOMs as CSV. Suitable for upload to digikey/mouser/octopart/etc

KiCad Backpropagation

All changes can be saved back to KiCad Schematics

Screenshots

Component Selection

Duplicate Component Resolution

Notes

This tool is opinionated!

The tool has to store its information somewhere, so it uses kicad's custom component fields. Currently, the fields SPN, MPN, SPR, and MFR are reserved for use. If these fields do not exist, they will be automatically added to each component as it is accessed. The tool does not attempt to do any import or translation of other existing fields (field remapping could be added in a future update).

Schematic saves are not automatic!

If you would like data propegated back to your kicad schematic, please select Save Schematic from the menu.

Changes

8/12/16

  • Properly handle multi-unit components. Now components with multiple 'units' (i.e. a quad op-amp in a single package, with 4 schematic symbols) will show as a single line-item.
  • If no extension is provided on a bom export, a .csv will be automatically appended to the exported file

8/11/16

  • Removed old Kivy based version
  • Moved datastore/config location to ~/.bomsaway.d (Note: Existing databases will be automatically migrated)
  • Added Recent File Functionality
  • Misc bugfixes

TODO

  • Semantic versioning + About page
  • Fix outstanding todo items in source
  • Add Unit tests
  • User Guide
  • Clean up user screens

Planned Features

Multi-supplier BOM export

Allow exporting of _bom.csv on a per vendor basis to allow ease of uploading/ordering

Octopart integration

Enable part price lookups and stock amount checking

Bom Price Breakdown View (after octopart)

View overall prices / quantity ordered

Feature wishlist

  • Part inventory accounting
  • Better UX :)

License

GPLv3, see LICENSE for details.

This project uses sch.py from kicad library utils (also GPLv3)

Contributing

Contributions welcome (and wanted!), please send a PR.

boms-away's People

Contributors

drinausaur avatar jameswalmsley avatar jeff-ciesielski avatar m-rest avatar nathantsoi 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.