Build Docs Component Counter / Shopping List Generator

finebyfine

Well-known member
This is my bill of materials component counter / shopping list generator.


After a few threads on the topic, I decided to polish up the script I use myself to share it. I originally made it to print off 3x5 part list notecards so I wouldn't have full page BOMs all over my bench.

It was made with a heavy focus on PedalPCB build docs but has worked for me for others. As long as a BOM is one component per line, it'll work. It works for PedalPCB line item table based build docs and for the simpler list style ones. Just copy and paste everything but electromechanical into one textarea, and then copy the electromechanical into the other. You can copy and paste the headers too, it'll ignore them. It catches different unit naming conventions and combines them.

Options to output the shopping list with your preferred ohm and farad convention (4u7 vs 4.7u), condense neighbor components down to ranges (R1-R11 4k7), condense semiconductors into one category, highlight same component values in the component position lists, and to use checkboxes for list bullets.

Hope this is useful to anyone, and if there's any issues you run into using it please let me know and I'll get on it. It's been my passion project while USPS is delayed on my latest PCB order :)
 

dlazzarini

Well-known member
This is my bill of materials component counter / shopping list generator.


After a few threads on the topic, I decided to polish up the script I use myself to share it. I originally made it to print off 3x5 part list notecards so I wouldn't have full page BOMs all over my bench.

It was made with a heavy focus on PedalPCB build docs but has worked for me for others. As long as a BOM is one component per line, it'll work. It works for PedalPCB line item table based build docs and for the simpler list style ones. Just copy and paste everything but electromechanical into one textarea, and then copy the electromechanical into the other. You can copy and paste the headers too, it'll ignore them. It catches different unit naming conventions and combines them.

Options to output the shopping list with your preferred ohm and farad convention (4u7 vs 4.7u), condense neighbor components down to ranges (R1-R11 4k7), condense semiconductors into one category, highlight same component values in the component position lists, and to use checkboxes for list bullets.

Hope this is useful to anyone, and if there's any issues you run into using it please let me know and I'll get on it. It's been my passion project while USPS is delayed on my latest PCB order :)
This is really cool thanks for sharing. I’ll give it a go when I start building again.
 

Feral Feline

Well-known member
...
Options to output the shopping list with your preferred ohm and farad convention (4u7 vs 4.7u), condense neighbor components down to ranges (R1-R11 4k7), condense semiconductors into one category, highlight same component values in the component position lists, and to use checkboxes for list bullets.
This is super-coollio. Many thanks for sharing this.
 

finebyfine

Well-known member
Would anyone be interested in the source code for this? The last time I looked at this (probably a week after I posted it) I remember catching a slight bug but can't for the life of me remember what it was.

It's really just a ton of regex searches that get piped into arrays and then reformatted, all written in everyone's least favorite scripting language - but my favorite: php
 

Bricksnbeatles

Member known well
I missed this when it was first posted, but this seems pretty cool! I’ll have to give it a go next week when I have more time to mess around
 

finebyfine

Well-known member
That's pretty cool, but there's a missing output option....

🔲 Check my inventory to see if I already have that part

:eek::p:ROFLMAO:

Hahaha that’s exactly why I never use it, unless its a unique IC or an off value I probably have it on hand already
 

finebyfine

Well-known member
I'd love to see it. :)

I went through for 5 minutes trying to add comments to help decipher it for someone else but could barely make sense of it for myself, I'll clean it up a little more and then throw it on github soon
 

apc42069

Well-known member
This is my bill of materials component counter / shopping list generator.


After a few threads on the topic, I decided to polish up the script I use myself to share it. I originally made it to print off 3x5 part list notecards so I wouldn't have full page BOMs all over my bench.

It was made with a heavy focus on PedalPCB build docs but has worked for me for others. As long as a BOM is one component per line, it'll work. It works for PedalPCB line item table based build docs and for the simpler list style ones. Just copy and paste everything but electromechanical into one textarea, and then copy the electromechanical into the other. You can copy and paste the headers too, it'll ignore them. It catches different unit naming conventions and combines them.

Options to output the shopping list with your preferred ohm and farad convention (4u7 vs 4.7u), condense neighbor components down to ranges (R1-R11 4k7), condense semiconductors into one category, highlight same component values in the component position lists, and to use checkboxes for list bullets.

Hope this is useful to anyone, and if there's any issues you run into using it please let me know and I'll get on it. It's been my passion project while USPS is delayed on my latest PCB order :)
dude this rules, thank you!
 

andare

Well-known member
I finally tried it and it doesn't work for me. When I copy and paste the PDF from Preview (on a Mac) it takes the type column as well (1/4w resistor etc) and it doesn't paste into separate lines.
Copying from Adobe Acrobat is a bit better but there are still components missing.

User error for sure.
 
@finebyfine I finally got a chance to use your Component Counter and I had to go search for this thread and thank you. It worked great for me (using a Chromebook and a PedalPCB build). I'll try some other branded PCBs before I put in my next big Tayda order.
 

szukalski

Well-known member
Got any of those sweet github links?

I have something similar that I am building with a slightly different angle (see signature). I am building a repository of pedals stored as json with all components, as well as schematics and vero if they exist. You can use these as a source for a multi-pedal build and generate a BoM. It's in a usable state now, just made my first real BoM for Tayda.

In the future, I would like to make it searchable (I have these parts, what can I build?) and API-driven to interface with an inventory system (I built these pedals, subtract the parts from my inventory).
 
Top