Bolt Identifier Product Design

MIT's Product Design and Development class final project

Like many engineers, I find it rewarding when an idea I contributed to becomes a reality, and other people can use it and enjoy it. This is best realized through a product development process, which encompasses ideation, concept generation, engineering design, and prototyping.

During my graduate program at MIT, I participated in PDD, or Product Design and Development. This (extremely well run!) course taught the fundamentals of product development though an Agile and iterative process, where two week sprints delineate project updates and reflections.

The course first began by collecting “opportunities”, interesting findings or potential problems suggested by the class. From this set of opportunities, students in the course would vote on which seemed as if it had the most potential to be solved with a product.

To form each project group, students would select their favorite “opportunity.” I selected “fastener organization”, outlining the problem of sorting through miscellaneous fasteners to find the right one you need. As someone with a bucket of random bolts (metric and standard), I knew this problem well. It is difficult to find the exact thread you need as many metric and standard fasteners are very close to each other.

I was joined by 8 other talented and wildly intelligent group members with backgrounds in industrial design, business, and engineering.

The first step was refining our problem statement and conducting interviews with people who faced this problem and determined that hobbyists, DIY-ers, and small shops formed our target market.

From here, we generated several possible directions:

Original prototype

After developing some basic prototypes for each idea, we determined that the best solution would be the accuracy of an optical system, with the form factor of a mechanical sifting system. A fully automatic optical sorting system would be prohibitively slow, complicated, and sensitive. A mechanical sifting solution would indole the user placing a bolt into the sifter for it to be sorted, but likely not accurately.

We converged to an optical identification system, rather than an optical sorting system. Allowing humans to do the coarse selection and manipulation of bolts.

Humans are good at picking up things, not good at accurately identifying sizes to fractions of a millimeter.

This allowed us to solve the true problem of not being able to identify exactly what type of fastener you have just picked up.

With this, we developed our first “works like” prototype which demonstrates and tests the functionality but does not look like a finished product.

Original prototype

The concept involved a Raspberry Pi with a high resolution camera pointed at a backlit stage with fiducial marks that could measure the bolt diameter and pitch when presented. Our thought was that this product could be mounted in a workshop and the user could find a few bolts they weren’t sure about and very quickly know the exact thread type.

I worked a lot on the software at this stage (with plenty of help of course). The algorithm is as follows:

  • Take a photo of the bolt with the registration mark in view, do some image processing to remove noise and bump the contrast
  • Count the number of black pixels line by line and store in a matrix
  • Establish the number of pixels in X and Y that represent the fiducial mark: a square of a known size, so a correlation between pixel count and length can be established
  • Do some signal processing (Kalman filter) on the portion of data that represents the thread and find the distance between each thread to get the pitch
  • Use the pixel count at the top and bottom of each peak (representing the major and minor diameter) to find the bolt diameter
  • Feed both the observed pitch and diameter into respective models based off of training data to get a more “true” measurement, helping to remove optical aberrations
  • Use a decision tree to select the closest match in our library of metric and standard fastener sizes (including fine and coarse pitch!)

Software Software

We were able to reliably distinguish bolts from #4-40 all the way to 1/2-20. Our benchmark was distinguishing between 1/4-20 and M6x1, which have a diameter difference of 0.36mm!

Original prototype
It also runs DOOM

During the development of the initial works-like prototype, other team members set out to develop the “looks-like” prototype. This exploration helped define the user experience of the product, how it was used, the size, and how the user interacted with it.

There was a lot of sketching, prototyping, and experimenting that went into this, but here are some of the final candidates.

Original prototype
Looks like prototypes

The product is about 10 inches tall and is intended for wall mount or tabletop use in a workshop. The user places a bolt into the tray, and presses a button. A screen then presents the diameter and pitch.

Original prototype
The flow of the product

Now it was time to consolidate the works-like and looks-like prototypes into more polished package. We opted to 3D print the enclosure on my Prusa FDM printer and print some of the lighting components on a Form 3 using the clear resin.

Original prototype
The schematic of the finished product

I worked a lot on developing the enclosure and packaging for the electronics, trying to figure out how to manufacture this while securely mounting the various PCBs, camera, and wiring.

Original prototype
Under the hood
Original prototype
All put together
Original prototype
3D final product rendering