Turning PedalPCB Build Docs into Buy Lists

drew.spriggs

Active member
Howdy,

I've seen people post about this on FB/Reddit, so figure of all places here it will probably be useful too. While the build docs are pretty good, it is a bit frustrating not having values/quantities immediately available. I figured out an easy workflow to get them.

Download the build docs as a PDF, and open them in standalone Adobe (won't work from a browser). Copy/paste the part type colums and values straight into Excel or Google Sheets, then use Data>Split text to Columns to get everything in a usable column. From there, add a row next to the split data, and run the UNIQUE function (=UNIQUE(Range)) on the value column to grab each individual value from the list. From there, move a column over and use the CountIF function (=Countif($Range$, unique value)) to grab a count for each part. Make sure you use the $ command so the range doesn't shift, then you can just copy/paste down for as many rows as you have unique values.

Using this workflow, you can get a buy list in about 30s of work.

1706163774647.png
 
Even better would be if the docs divided the parts into stuff you already have a thousand of (10k resistors ) and shit yer definitely going to have to buy to build this (dual ganged pots in weird values and some transistor from 1967). :)
 
Howdy,

I've seen people post about this on FB/Reddit, so figure of all places here it will probably be useful too. While the build docs are pretty good, it is a bit frustrating not having values/quantities immediately available. I figured out an easy workflow to get them.

Download the build docs as a PDF, and open them in standalone Adobe (won't work from a browser). Copy/paste the part type colums and values straight into Excel or Google Sheets, then use Data>Split text to Columns to get everything in a usable column. From there, add a row next to the split data, and run the UNIQUE function (=UNIQUE(Range)) on the value column to grab each individual value from the list. From there, move a column over and use the CountIF function (=Countif($Range$, unique value)) to grab a count for each part. Make sure you use the $ command so the range doesn't shift, then you can just copy/paste down for as many rows as you have unique values.

Using this workflow, you can get a buy list in about 30s of work.

View attachment 66762
Nice!!! I already use a spreadsheet to inventory my parts (quantity on hand, quantity needed, order quantity), so if I could automate this step and add it to my current sheet, next steps would be to automate creating an order list. Nice!!
Thank you!
 
I used this the other day. Updated my spreadsheet in no time!

One caveat I should add: do NOT use tables if you use the “unique” function. It simply will NOT work within a table
 
Is there a good way to do this so it would also be in order if size ? Building 20 different pedals and trying to combine them all into one bom which i can do, but the parts are all over.
 
Thanks for sharing. I was doing a similar thing with unix commands ("cut" to split out the values and "sort | uniq -c" to count 'em).

I like spreadsheets though, so I'll try this next time.
 
I created an Excel template to organize the BOM.

It's still a work in progress but ultimately I'll have it to auto sum parts, populate quantities. Right now I have to manually count up the quantities for each component. I also have a column so I know what supplier I order the parts from.

Typically I have to source from Tayda and Mouser.

Once I get the spreadsheet ready for prod, I'll share here.
 
Man, if someone could make an AI bot that would scrape the build docs for every project an...
Nevermind.
 
I tried it to on Linux to get all the information but the format of the tables is sometimes off. Robert never answered my question if I could get all the files without crawling the shop. He NEVER answered :) Not even a „uhmmm nope“.
We should add all the dead end fx docs and from all the other pcb sellers…
 
I tried it to on Linux to get all the information but the format of the tables is sometimes off. Robert never answered my question if I could get all the files without crawling the shop. He NEVER answered :) Not even a „uhmmm nope“.
We should add all the dead end fx docs and from all the other pcb sellers…
very interesting suggestions to create a collection of parts inventory for different pedals.
 
I know that the intention for this thread was a collection per pedal but when you have all information you can do a single pedal collection, a drive collection, a collection of chorus parts etc.
 
No need to apologize! I bet I’m not the only person you receive messages :) In the meantime I downloaded almost every document with a script a few month ago.
But would it be possible to get all the docs in a let’s say special download area without having to check every pedal?
 
My current pattern has been to open the pdf,
copy the contents of the parts list,
paste into a text file,
run the following awk command:

awk '{count[$2]++;} END {for (word in count) print word, count[word]}' ./my-file.txt

and then I get output like this:

100u 1 470p 1 1n 1 47u 2 6n8 1 4n7 1 47n 5

and once I have all the pedals in my batch, I aggregate the outputs and compare to what I have in my inventory.

I could spend more time automating parts of it, but I automate stuff all day at work. I find it satisfying to write the output for a parts list in my notebook, and do the aggregation/inventory on paper. That may seem silly or slow, but historically both my work and hobbies require being on a computer, so the break from the screen is worth it.
 
I don’t have a process to convert the pdfs directly but I do use spreadsheets to order parts. I usually make a sheet per build and then another sheet where I aggregate all of them so I have a full list of parts for many builds. I can share my Google sheet if you guys are interested.
 
Back
Top