Skip to main content
Topic: DirtyBOM/DirtyAssembly testers? (Read 8947 times) previous topic - next topic

DirtyBOM/DirtyAssembly testers?

Getting stuff manufactured is tough. One thing I've struggled with is specifying parts in a way that Seeed knows which parts could be substituted with cheap local unbranded "cockroach" or "jellybean" or "duff" parts.There's also a huge information asymmetry where it is almost impossible for a designer outside China to know how to spec parts that are common and dirt cheap.

In my "get stuff made" presentation there's a couple slides about the level of detail I use to try to hit the sweet spot. Chips get full part numbers. Resistors and capacitors NEVER get a proper part number, there's too much risk the sourcing agent will price based on buying that part number from a foreign source at 17% VAT. 

Transistors and voltage regulators are tougher. How do you make it clear to your sourcing partner that you simply need a 150mA SOT-23-5 3.3volt regulator with enable? An NPN with BEC pinout >5V and >100mA? There's a million part numbers that satisfy the minimum requirements for most open hardware projects but none are standard! Which is cheap in China? The part numbers I used to source from Mouser and Digikey sure aren't the stuff that's cheap and common. We've been using the Richtek - RT9193-33GB and Torex - XC6219B332MR for voltage regulators which are much improved version of the MIC-5205 @ 200ma and ceramic capacitor compatible, but I only know that because I live in the damn market.

You know your design inside and out, every trace, every via, every design decision made to address every constraint. Then an agent sources parts without even the faintest knowledge. It is also highly likely that your sourcing contact is not an engineer, possibly a business English major or just someone with a knack for English. How would they ever be able to make informed decisions about parts? Of course if you're really doing an initial batch of 100,000 then you pay someone to DFM it properly, but that's not what we're talking about.

For agents in China, sourcing sucks. It can take 4-8 hours to quote a simple board. Finding parts, calling manufacturers back and forth, navigating distributors, and followup questions. That's a lot of upfront work to build 100-500 units, and profit of a couple hundred bucks! There's a reason you almost need an introduction and reference to get a quote out of Seeed at times.

Watching agents in the 'hood I'd say less than 1 out of 10 requests for a quote ends with a sale.  There's a lot of tire kickers and lookie-loos in the hacker arena who are super excited about their project and "just wondered" how much it might cost to build.  And yes, everybody promises to place a huge order immediately, or place a second huge order after a test run. Agents know this NEVER HAPPENS and usually ignore RFQs with stuff like that.

In the early days of Dangerous Prototypes our quotes were black boxes. We got a number for 100/500/1000. If it seemed off by a huge amount it was impossible to know which part was the culprit. I'd ask if there was a part that caused the quote to be so high, then Seeed would come back with a lower price without explanation until it kinda looked right. Talking to several people it seems like Seeed and the other local hardware shops are giving full quotes now, which is great news for designers. 

Somewhere in this I tried to identify the major issues I've witnessed and experienced in the hacker hardware manufacturing scene:

* You know your design intimately, but someone with no knowledge chooses what parts to build it with
* You don't know what cheap, plentiful domestic parts are a compatible replacement for the stuff you got from Mouser or Digikey
* Quoting is time consuming and expensive for sourcing agents, they often won't reply to RFQs without a reference
* Quotes are sometimes opaque. You have no idea which component is blowing the budget.

At the second Open Hardware Summit I gave a talk with Eric @ Seeed. Eric introduced his initial ideas for the Open Part Library to help solve the low volume hardware problem. Everything on the OPL is cheap, RoHS, highly available in China, and suppliers have been vetted. Seeed also makes these parts available as a kit so hackers can actually get their hands on them for prototyping. The OPL ballooned up to 1200 parts until earlier this year when they pared it down to 400 components (a big chunk seems to be connectors).

Seeed is using the OPL to hand assemble prototypes in one's and twos. By limiting the universe of parts, they can stuff boards for people more efficiently. There was recently a complaint posted in a blog comment (and several other sites) about the hand assembly service. While I won't deny the poster his dissatisfaction, he seemed completely oblivious to the complexity of the process. Two Seeed people replied to the comment, with the interesting tidbit that they had been using HQChip and Digikey's API to search and match parts not in the OPL. HQChip and Digikey would actually sell in 5s and 10s, while most suppliers deal in reels. They also said they'll no longer work "off OPL" because it was a nightmare for Seeed and the customers (but they get my respect for trying!).

Now let me list some realities of the Chinese part market:
*There are no product and price lists. You have to ask for each part and you get a custom price on the spot. If you ask again later they will ask what you were quoted before, they just make up the price as they go along.
*Sometimes there's no part numbers. Connectors, buttons, switches are notorious for sketchy cad drawings with no part number at all, but they're the cheap parts you actually want to spec for your design!
*Just because you see it on Taobao doesn't mean it is available in China. Taobao has tons of end run clearance stuff that might be one (or 100) of a kind. You cannot use it to estimate the availability of a part in China.
*The price on Taobao is not the price. Every page has a warning to chat for an actual price. You cannot use it to estimate the price in China

All of this is just to say it makes sense that Seeed would use expensive international companies like Digikey and HQchip, it would be the only way to get reliable price and availability information.

On the other side of the world super long time Dangerous Prototypes friend LongHornEngineer appears to be working in the highly funded startupy MacroFab assembly and fulfillment service. They're trying to build a Seeed Studio (with nifty API!) in Texas, a place globally recognized for cheap components and electronics manufacturing. I understand they're plugged into the Octopart API for components. Octopart always seemed like a solution in search of a problem, maybe this is it.

So, as with DirtyPCBs, I spent some time thinking about the assembly problem and knocking some poorly written scripts together. I wanted to make something to fix the information asymmetry, put the person most knowledgeable about the design in charge of part selection, and move the upfront cost of sourcing onto the buyer. DirtyBOM/DirtyAssembly is my interpretation of a solution for manufacturing 100 - 1000 units.

DirtyBOM/DirtyAssembly is highly experimental and open only by invitation. We are not going into the assembly business, hell we aren't even making our _own_ hardware, this was just an itch that had to be scratched.

Part selection

First we scanned every catalog we could find even without price lists, and scraped HQchips and a few taobao shops. We managed a HUGE library of parts, a survey of the market essentially, but the signal to noise ratio was extremely high. How is anyone supposed to choose a part from that mess?

Next we gave the OPL a try. It's a pretty good selection for prototyping, but it lacks completeness for manufacturing.We had to grow our partlist much bigger, but we stuck with the Seeed-tested parts where we could.

In the end I looked over our Dangerous Prototypes partlist wiki and grouped everything into part families. Then for each family we sourced a "complete set" of values in common sizes. Where possible we also include a no-name local manufacturer (cheap) and an established brand (expensive):

Capacitors ceramic 0402 0603 0805 1206 pF - uF range
Capacitors electrolytic SMD/PTH 1uF - 330uF (Samsung and "duff" local brand)
Capacitors tantalum 1uF-47uF (AVX and "duff" local brand)
Voltage regulators: sot-23, sot-23-5, sot-223, DPACK, D2PACK, TO-92, TO-220 in 1.2V, 1.8V, 2.5V, 3.3V, 5V, 9V, 12V, ADJUSTABLE
etc, etc, etc

The result is, I think, a very nicely curated set of parts with high availability and reliable major suppliers. I'll write about each family and manufacturer on the blog, and that will also appear in the part library pages to help choose hard to substitute parts like transistors and voltage regulators and diodes.

A quick look around


Browse partlist by manufacturer or type, or search for parts.


Part details and comments.


Upload your BOM as a CSV file. DirtyBOM doesn't force you to use any particular format. All the columns from whatever you upload will be included in the BOM. Columns named "QTY" or "Quantity" are automatically imported as the part quantity.


Add/edit/delete rows of the BOM. The view is super huge and really only suitable for wide displays. There's an experimental "narrow" view that we'll improve in the future.

Obviously the part library won't have full coverage of the universe of parts. For this we added a request quote "?" button for each item in the BOM. The sourcing team (Xiao Tang) gets an email and will attempt to find a supplier.

Whenever possible we'll add complete families of parts at once. If you request a quote on a PIC 24fj64ga002-i/ss we'll try to add all PIC 24s available from our supplier. When a supplier is found, you'll get an email with the details automatically.

We won't hesitate to refuse any order with a hard to source part or a part in short supply. There's no point in fighting this battle with people.


Match parts in your BOM to the part library with a live search. Three prices are shown: Unit cost, Setup cost, and Placement cost. Most passive parts are free, but if you don't use our standard values (10K/100nF/etc, list coming) we charge a setup fee equal to one reel. There is no reason for us to warehouse end runs of of odd valued resistors when a full reel is only a few bucks. If you want to use that 4.7K resistor you're gonna have to buy a whole damn reel for $3...


Attach PCB files and choose options.


BOMs can be saved as different versions and shared publicly.


The cost to manufacture 100 and 500 units is automatically calculated. The pricing formula is a work in progress and after some testing we'll publish it for even more price transparency.


DirtyBOM/DirtyAssembly is open by invitation only. We're looking for a few really friendly testers to play with it. It would be super nice to actually push a project through, but just testing the system is also helpful. Please let me know your new site login name here I'll add you as invitations open.
Got a question? Please ask in the forum for the fastest answers.

Re: DirtyBOM/DirtyAssembly testers?

Reply #1
Hi Ian,
I'd love to play around with this.  I've been getting quotes for my pcb assembly at 10 different PCBA shops in China and would be able to tell you how this compares price wise. 


EDIT: my dev site login is the email: raykholo at gmail dot com

Re: DirtyBOM/DirtyAssembly testers?

Reply #2
I love to jump on the wagon. With a small design and all chinese components :)

Are we ready for an other arm developmentboard?

Re: DirtyBOM/DirtyAssembly testers?

Reply #3
Added you both. Please let me know if you have any problems or questions.
Got a question? Please ask in the forum for the fastest answers.

Re: DirtyBOM/DirtyAssembly testers?

Reply #4
I loaded up the BOMs from eagle for my 2 microcontroller boards (exported as VALUES, CSV so that should be correct) and the BOM view on the site is blank.  These are 50+ lines in the BOM.  Nothing loading, not even after some time has passed and I refreshed the page.  Will gladly send you these files in private if you need.

I then loaded up a simple ESP8266 breakout adapter I did - just the ESP-12F, 5 10k resistors, and a 5 pin right angle male header.

Screenshot:  http://

The estimated PCB cost is always 11.9500  for HASL and 26.95 for ENIG  :)  Did not change based on board dimensions entered.
I sent Xiao Tang hunting for an ESP-12F and for the header.  You will want to deal with headers before launching this.  I'm not sure if the factory uses breakaway headers that the thru hole populating/ soldering worker would be snapping apart or if you'd go source the exact size for every job... but I think you should get 2.54mm straight male header, straight female header, right angle male header, and right angle female header into the library and charge per pin.  Otherwise "sourcing" will get a ton of emails seeing as how so many pcbs need to connect to something else.

Also, if you can see my screenshot, I have a really wide screen.  What I'd like is an extended price at the end of each line: 
qty * (unit cost + placement cost) + setup cost.  Would make the "big picture" much easier to understand.


Re: DirtyBOM/DirtyAssembly testers?

Reply #5
I'd love to test the DirtyAssembly service. I did my first batch with MacroFab and am curious how it compares. Thanks! I go by tannewt on both the forums and the regular site.

Re: DirtyBOM/DirtyAssembly testers?

Reply #6
I'd love to give a try with a small board currently quoting. Username bigjosh. Thanks!

Re: DirtyBOM/DirtyAssembly testers?

Reply #7
[quote author="raykholo"]I loaded up the BOMs from eagle for my 2 microcontroller boards (exported as VALUES, CSV so that should be correct) and the BOM view on the site is blank.  These are 50+ lines in the BOM.  Nothing loading, not even after some time has passed and I refreshed the page.  Will gladly send you these files in private if you need.[/quote]

Thank you for testing and feedback. Yes, could you please send the BOMs to ian @ this site .com?

Header is a big omission. We were working out a deal with a factory (nobody wants to give full price lists) and they just stopped responding. I had Xiao Tang scrape the price list from one of our supplier's websites though, and will upload them in the next hour. This should add male, female, vertical, right angle 1x 2x in 2.54 and 2.0 and 1.27mm. Also JST PH and XH series connectors and ICD connectors.

The other huge omission is connectors like USB and power, and buttons. All of our suppliers have them, none have a meaningful part number or datasheet so it has been lost in the shuffle.

Please forgive us for not answering quote requests at the moment, everyone is busy filling in the standard stuff this week.

bigjosh and tannewt thank you for volunteering. I will add you after an update on monday. I want to get ray's suggestions and bugs worked out before we take on more testers.
Got a question? Please ask in the forum for the fastest answers.

Re: DirtyBOM/DirtyAssembly testers?

Reply #8
Hi Ian, You mentioned this a while back and I never got around to emailing you to offer to test it - please add me when you are next adding testers. I sell stuff in the UK to railway modellers that I make myself, if I can get it made in China then it would save me a load of time and hassle! Got some fairly simple ones I can push through, only caveat is that my stuff is fairly specific when it comes to LED colour, I can't just accept any crap, needs to be fairly well specced in terms of output and wavelength / CIE value.

Will that be an issue?

There is plenty of other stuff I do that doesn't have these caveats but these little LED boards I sell loads of and are fairly simple so would be a good, quick test.

Re: DirtyBOM/DirtyAssembly testers?

Reply #9
Hey everyone,
I'm a hobbyist and I'm pretty new to this. I've made my own PCBs, but it's always been a hassle to solder the stuff on them. Today I started looking for a service that will assemble the PCB for me and ran into this. I love DirtyPCBs and it would be great if I could also get my PCBs assembled there. Could I join the beta to try it out? Or would you recommend another service more suitable to a first-timer that wants extremely low volumes (< 10)?


Re: DirtyBOM/DirtyAssembly testers?

Reply #10
@sghughes42 - there is a "?" button on the BOM editor. Just include a full manufacturer part number in your BOM and hit the quote button, we'll try to source it here. LiteOn is a cheap and accessible brand of LED in China if you already have a partnumber for that brand.

@Stavros - unfortunately I'm aiming for 100 minimum. Sorry if that wasn't clear, I realize I didn't really specify and sent a mixed message. Price to do <10 will be same as doing 100. Seeed studio does a hand assembly thing that might be a good fit for you.
Got a question? Please ask in the forum for the fastest answers.

Re: DirtyBOM/DirtyAssembly testers?

Reply #11
> @Stavros - unfortunately I'm aiming for 100 minimum. Sorry if that wasn't clear, I realize I didn't really specify and sent a mixed message. Price to do <10 will be same as doing 100. Seeed studio does a hand assembly thing that might be a good fit for you.

@Ian: Thanks for clarifying, just had the same question nagging me.

@Stavros: I've just used the Seeed assembly service the first time and sent them two projects for assembly. So far the experince is good. On the cost side you pay the PCB, what's in the BOM, a $25 setup fee and $15 per board (mine were small boards with around 15 components). You can only have them assemble the components from their OPL parts list, but it has all standard parts and even some specials. Some discussion about this here: viewtopic.php?t=8403&p=65021#p65021

Re: DirtyBOM/DirtyAssembly testers?

Reply #12
@markus_b: Thanks for the tip, that's very reasonable for small runs. I'll check it out, thanks again!

Re: DirtyBOM/DirtyAssembly testers?

Reply #13
Tactile switches are going up shortly:

4.0x4.0mm SMD
6.0x6.0mm SMD&PTH, Right angle, caps
12.0x12.0mm SMD & PTH, caps

These seem to be the bog standard ones. There's really no good part numbering system and all the local manufacturers just call them "Tactile switch 6x6, 4mm tall" on their datasheets. DTSx- is the diptronic part number which is as close to a standard as I know of, but mouser and digikey both don't carry these parts so it seems dated. Also the DTSx- part numbering only allows for 5 heights (4.3,5,7,9.5,13mm) and five operating force level but there are many, many more than that out there.

I used a synthetic part numbering system for everything except the exact clones of the button cap compatible parts.
Got a question? Please ask in the forum for the fastest answers.

Re: DirtyBOM/DirtyAssembly testers?

Reply #14
Hey Ray - Fixed the problem for your big BOM. A database field was too small for the user input and it wasn't being sanity checked by the script. I've fixed the DB issue on the live site so you can upload it now. Edward will add input checks and sanitizing today and tomorrow. Thanks for finding the first user reported bug!
Got a question? Please ask in the forum for the fastest answers.