Friday, August 15, 2008


RepRap Parts Lister Update

A while back, I created a little software project for RepRap called the Parts Lister. I was attempting to assemble my darwin, and I needed to know how many M8 nuts I needed. At that time, we had an HTML table with all the various assemblies broken out (X axis, Y axis, etc.). I had to go through each of the assemblies and tally up the total number of M8 nuts to make sure I was buying enough.

That experience drove me to create the parts lister, which is a database of all the various modules the RepRap project has created. This allows us to do lots of cool things, like generate parts lists with multiple suppliers that show you the totals, what parts are used where, etc. Its a nice little system.

Yesterday, I hacked on it and added a couple new features:

* You can now embed individual module part lists on any website using an iframe. the data itself actually lives in a Google Spreadsheet and gets imported to MySQL by a script we wrote.
Up until now, we were actually embedding each individual google spreadsheet on the appropriate page. This was nice, but it only told you what parts you needed. Now we can embed the part lister page on a module page, and it will not only show you what parts you need, but it will link you to a page where you can find out *where* you can get them from. I've updated the recent electronics pages with these embeds, so you can see them in action.

* I added support for our 'legend' table so that the main page of the part lister is no longer so cluttered. It now breaks down the various modules into 'Production', 'Beta', and 'Obsolete' components so that you can easily tell the difference between the various modules.

We're constantly striving to improve the RepRap project, and every little bit counts. If you have any suggestions, or you'd like to get involved, there are lots of opportunities, even if you don't know anything about electronics or 3D printers.


Hi Zach,

I'd love to pitch in once I get the hang of the components (I have a slight OCD about arranging things in an easy-to-understand order).

In the meantime though I have a question:

Is it currently possible to get a precise listing for what parts should printed and how much of each?

it seems to me that all printed parts are listed under "printing service".

I think this should be a priority for us.
someone who has built darwin perhaps?

I have commented before about how there are inconsistencies between the Source Forge site and the Google spreadsheet.

I wish there was something I could do but I really have no idea what parts are in the design and what parts are outdated...

I volunteer to do all the updating everywhere if someone can send me a real up-to-date printed parts list!

Let's get on this!
sorry to double post but it isn't possible to edit... :)

just to sharpen my point:
1)Source Forge Lists "Cartesian Bot 1.05" as the latest version
2)The Google Spreadsheet is "Cartesian Bot 1.0"
3)The Wiki doesn't list a version at all.

can someone please help me organize this?
I really really want to help!

crap. i just posted a big long reply, but it got eaten by airport wifi.

anyway, you can see a list of printed parts by looking up suppliers and clicking the "plus" sign next to the printed parts entry.

darwin is in a bit of a flux right now as we're fixing bugs and improving it as much as possible. hopefully we'll hit a v1.1 release soon and get all that stuff updated. you might be able to bug adrian and get an up to date list. i'm actually not fully up to speed on the mechanical / 3d side of things

anyway, thanks for the suggestions and the help. i'd love to get you involved if you're willing. the PHP code for the site is in subversion (trunk/reprap/web/parts-lister), and it imports the data from the public google docs if you want to mess around and maybe try to make it easier to look up parts. ;)
Funnily enough, I was working on something related the other day, which I suspect would be useful to others, and probably an good candidate for inclusion.

I'm new to buying components from catalogues, so I wrote a quick app in Java, that takes the items from a (manually keyed in) BOM, and the number of completed assemblies you want, and then outputs the ideal order(s) from one or more suppliers.

For example, I have ordered some Sanguino PCBs, and need to buy the rest of the components that make up the board.

In the UK, I was looking at several suppliers for the components, all of whom have different volume pricing limits and costs. Couple that with the fact that buying ten Atmega microcontrollers is cheaper than buying seven for one supplier, and another supplier has a cut off at 25, where the overall cost of 21 is higher than 25, and that some components come in minimum order sizes.

The amount of data is quite overwhelming. (Did I mention the confusion of having 1.23e93* different varieties of the same component, sometimes several from the same manufacturer?)

It uses flat files for each manufacturer, with each product's description, order ID, manufacturer and the manufacturer's ID on one line, followed by the minimum order quantity and the cost for that quantity band.

The real pig of a problem is collating the data. A task ideally done by several people, as and when the data is needed.

The next issue would be factoring in shipping costs, and adjusting the algorythm to factor in those costs too.

The code would be quite easy to convert to a little applet that grabs the supplier data files from the wiki for a given country.

The other option would be conversion to a servlet with a small applet front end that allowed users to add/remove/modify components and their cost bands. This option would be trivial.

Anyway the offer is there if you want the code.

P.S. If all the suppliers provide a consistent query protocol that I know nothing about, please let me know. :)

* There may be the tiniest bit of hyperbole in this statement; I leave it as an exercise for the reader to identify the point of exaggeration.

P.P.S. My capcha is "bumdocp", "bum doc" I assume is a computer generated commentary on what I am saying here, but what does the "p" stand for?
That is pretty awesome...

I see this as very useful perhaps for the RRRF where the profit margins are slim and every cent counts. (and the RRRF buys in bulk).

Still doesn't solve the "what parts do I need?" problem though... :)


this was my CAPTCHA:
Hi Zach,

The parts lister still has a problem with any part containing a / in its name. For example, the McWire page links to

which isn't reachable. Visiting

instead does work.

I mailed you about this and a couple of other issues on 4th July at 10:44 EDT.
Post a Comment

<< Home

This page is powered by Blogger. Isn't yours?

Subscribe to
Posts [Atom]