StickerBOM - adamgreig/agg-kicad GitHub Wiki

StickerBOM is a KiCAD BOM exporter designed for people stuffing boards by hand. It generates a PDF for printable sticky labels, where each label reflects one BOM line from a supplier. You then stick these labels on the bags from your supplier, and they show you where things go.

Example Label

images/stickerbom_photo.jpg

It works by creating a drawing of your PCB, with the relevant components highlighted. This works best if your parts have a drawing on F.Fab, but if not, it will render the pads and silkscreen instead, which seems to work well too.

images/stickerbom_example_2.png

You need to have supplier fields in your schematic item properties, but hopefully you were doing that anyway. If you are, you might consider xml2bom.py in this repository as well, which can generate quick-paste order formats for Farnell, DigiKey, and RS, plus it checks for consistency in footprints and order codes, and highlights parts with missing codes or footprints.

The .kicad_pcb must be in the same folder as the .xml file, and with the same name prefix.

Usage:

python scripts/stickerbom.py /path/to/project.xml bom.pdf

Or, double click the stickerbom.py file from your eeeschema BOM manager when adding a new plugin. Change the end of the command line from .bom to .pdf, and you're all set.

Each part in your BOM should have a custom field like "Farnell":"12345678". You can specify which custom field names are to be treated as suppliers and output at the top of the script, in case you just want to output for one supplier or need to exclude other custom fields. By default this is set to Farnell, RS, and DigiKey.

It's set up for Avery L7164 labels at the moment, but you can change this very easily in the settings at the top of the script. I recommend using reasonably large labels so you can clearly see the drawing!

Bugs/Issues

  • Doesn't support all possible graphics and pad shapes (just lines and arcs, and rectangle and circular pads, really)
  • Only as good as the data you give it
  • Less useful on really huge boards covered in similar parts where it just doesn't fit on the label very well