Introduction: PerfEGGct: (Over) Engineering the Perfect Soft-Boiled Egg

Gone are the days of blindly timing and boiling eggs and being left with nothing but a bad yolk! As part of our final year mechatronics engineering project, we developed a device that measures the oscillation of an egg suspended on a spring. When a hard boiled egg is spun on a table, it rotates freely since the inside is completely solid. With a raw egg, the liquid yolk sloshes around and resists rotation. By using math and physics, we can analyze the rotational oscillation of an egg and determine the yolk consistency!

"If it's worth doing, it's worth overdoing." - Jaime Hyneman


This is a prototype and works 80% of the time. We only had three weeks to make this! If you have any ideas on how we can improve on this design, please leave a comment below :)


Software Design and Data Analytics - Justin Liang (Website, Github)

Mechanical and Software Design - Justin Lam (Website)

Step 1: Inspiration and Motivation

As part of our final year engineering course, we were tasked to create a mechatronics device of our choosing. This project was heavily inspired by Matthias Wandel and his boiled egg hardness tester. After seeing his video, we were set on designing a handheld device that would digitize and quantify the egg oscillations. Although one could simply plop an egg into a pot and set a timer to cook it, this method does not take into account the starting temperature of the egg, mass or size of the egg, amount of water used for boiling, and thermal conductivity between the pot and stove. By measuring the egg oscillations, you can determine the egg yolk consistency while it's being cooked (without breaking the egg open!). Thus, our journey began in completely over-engineering the rather simple problem of cooking a soft-boiled egg.

Step 2: Designing the Handle

The device was designed to be a handheld and battery operated. Because of this, the handle body had to be designed to be as small as possible in order to be comfortable to hold with one hand. Since we were using headers to attach the Arduino Pro Mini and Nokia LCD screen, we had to find a way to minimize this footprint. We designed the LCD screen to fit on top of the Arduino on the protoboard (Figure 1).

The rest of the electronic components were modeled in a similar method to determine the minimum volume that the handle would have to contain (Figure 2).

Once the minimum volume was determined, the handle body was designed around it with the intention of it being manufactured by 3D printing processes. This affects some design features (ie. the extrusions of the mounting holes) since 3D printers are best at reproducing features that are along the vertical axis. The region around the battery pack was slimmed down to indicate that is where user should grab the device. The handle body with the mounting features for electronic components are shown in Figure 3.

The fully integrated mechanical and electrical components are shown in Figure 4 and Figure 5. The electronic components are secured in the handle body using M2 and M3 fasteners. The USB port at the base of handle is from the USB battery pack, allowing users to charge their mobile phones while cooking eggs with our device.

After we were happy with the design of the device, we saved the parts as STL files and used our 3D printer to make the parts.

Step 3: Making the PCB

The PCB was designed to have a minimized footprint in order to fit on a 45mm x 45mm protoboard. Although the design process was rather painless, the actual assembly turned out to be slightly tricky since we had to work with through-hole components in a relatively tight space. Some clever soldering with jumper wires was required for a number of connections! The load cell, accelerometer, battery power, and button PCB were all connected with header pin connections. Headers were also used for the Arduino Pro Mini and LCD screen to make assembly easier and so we would be able to use the components for other projects down the road.

Step 4: Adding Buttons

We needed some way for the user to interact with the device, so we needed to add some buttons to our egg shaker. A small breakout protoboard was used so we would be able to have the buttons close to the top faceplate without having to move the entire electronics module there too. The header pin connectors were made by using hot glue to join the headers together.

Step 5: Testing and Assembling the Electronics

Once all the electronics were assembled, we verified the connections with a multimeter using a simple continuity test to make sure our soldering matched up with the schematic. Then we put it all together in the handle body and made sure everything fit together. Finally, we connected a (slightly modified) USB battery charger to the PCB and checked that everything turned on.

After verifying the operation of all the electronics, we fastened down the components for sturdy connections and installed the faceplate and LCD screen.

Step 6: Measuring Egg Oscillations - Trial #1

The mechanical components went through multiple revisions before the final design was satisfactory. The initial embodiment of the device incorporated a hall-effect sensor to measure the oscillation period. A column sleeve surrounding the spring (Figure 1) was required in order to constrain the oscillating shaft in order for the permanent magnet to be close enough to the hall-effect sensor for reliable readings. Two bearings were used to constrain the shaft with minimal friction (Figure 2).

Unfortunately, this design proved to be ineffective since the bearings and column sleeve contributed excessive friction to the oscillations. We needed a method to measure unconstrained oscillations, so we went back to the drawing board and did some thinking...

Step 7: Measuring Egg Oscillations - Trial #2

For our second iteration, we turned to using a 3-axis accelerometer. Using acceleration to measure oscillations increased the complexity of analysis, but it radically simplified the mechanical design. With this design, the only external contribution to the oscillations were the three wires connecting the accelerometer Vcc, GND, and Y-axis. Although this method was significantly better in allowing unconstrained oscillations, the stiffness from using 20 AWG was still too high and added noticeable stiffness to the rotating spring.

Thus began our quest for the thinnest wires possible! We proposed that using thinner and more flexible wires would decrease the amount of rotational resistance to the spring. To test our hypothesis, we stripped 18 AWG stranded wire and extracted the individual strands to use as wires. Since these wires were now exposed, we wrapped them with Kapton tape since it was the thinnest insulating material we had. Despite the danger of shorting our circuit with these wires, it vastly improved the free oscillations of the spring. The next day, we purchased a spool of 32 AWG magnet wire to replace the DIY Kapton tape wires (for safety reasons).

Step 8: Testing, Testing, Testing!

Our objective was to determine a correlation between the response of egg oscillations to the consistency of egg yolks. A raw egg oscillates less because the liquid yolk provides more damping, and a hard boiled egg oscillates more since the solid yolk has zero/minimal damping.

In order to consistently test the eggs, we rigged up a testing jig that uses a servo to torque the spring shaft and generate the initial oscillation. After we were satisfied with these results, we moved on to testing with hand jerking to simulate real use-cases.

Step 9: Final Device

After hundreds of testing and data analysis, we were able to determine yolk consistency with 80% accuracy. If you would like to learn more about the software algorithms behind this project, please visit our Github.

Through this project, we learned many valuable lessons in hardware development. The integration of mechanical and electrical components is easy when one person is doing it, but in practice there are multiple people working on these design components. Being able to design mechanical components with electrical hardware in mind and vice versa is an integral benefit of being in mechatronics, as it reduces the amount of headache and back-and-forth that is usually required between the two divisions.

The main takeaway we found is that the mechanical design causes a heavy influence on the electronics and software. We thought it would be trivial to measure the spring oscillation and correlate it with yolk consistency, but the issue was that many other frequencies were being picked up by the accelerometer (ie. jitter of the spring at rest). This made it difficult to reliably determine the yolk consistency since the measurements contained much more frequency information than just the effect of yolk consistency. In general, electrical and software systems cannot function effectively if the mechanical system is garbage.


ThomasK19 made it! (author)2016-04-20

Just as an idea: why don't you simply take a piezo element for measurement. They are very accurate to sense such motions as you are interested in.

Justin Lam made it! (author)Justin Lam2016-04-21

Hm we hadn't thought of using piezo elements to measure changes in motion. Sounds like we'll have to do some research into it for our next version :) Thanks for the tip!

ThomasK19 made it! (author)ThomasK192016-04-22

Yes. I had a similar situation where I first favored a gyro and then got the tip with the piezo. They are very cheap and very sensitive. Actually I think that the gyros internally use piezos to produce the measurements. You can glue a piezo on a short strip of steel where the actual force can be taken. I used a stripe cut from an old trowel.

Quadrifoglio made it! (author)2016-04-21

"Moderation is a fatal thing. Nothing succeeds like excess." - Oscar Wilde

An EGGstravaganza! I voted for it.

lapenta made it! (author)2016-04-20

although I think this is very cool, I manage to get my eggs just right by putting them on a small pot, put over the fire for 8 minutes and voil√°: a perfect soft-boiled egg. For sure I'll have to set all the parameters again on a new stove or pan.

Justin Lam made it! (author)Justin Lam2016-04-21

Yes we're aware that there are much simpler ways to cook eggs! We figured it'd be a fun little engineering project to use other methods to measure how cooked an egg is. In practice we'd probably still resort to using your timing method for simplicity :P

wannabemadsci made it! (author)2016-04-19

Very cool. Nice 3D printed case!

Very clever to figure out the consistency of the egg through oscillation. Of course you could use a neat kitchen gadget to get perfect soft-boiled eggs. But where would the fun be in that!

I like your hall effect and accelerometer solutions. Did you ever consider a non-contact optical solution? Have a light beam (or laser) pass through a gradient shaded plastic attached to your egg mechanism. Movement off the plastic up and down would vary the beam intensity.

Very nice engineering project!

Justin Lam made it! (author)Justin Lam2016-04-21

Thanks for the compliment! We thought about a few optical solutions (like using a rotary optical encoder), but we thought keeping the shaft aligned for the encoder would be troublesome. I'm sure there are other methods to accomplish it, but at the time we figured using an accelerometer would be the easiest to implement since it doesn't involve any extra mechanical design.

ThomasK19 made it! (author)2016-04-20

Hope you didn't get egg-ache during testing xD

About This Instructable




Bio: 'A smooth sea never made a skilled sailor.' - Someone famous, probably
More by Justin Lam:PerfEGGct: (Over) Engineering the Perfect Soft-Boiled EggBuilding a Carbon Fibre Bamboo Bicycle From ScratchLego Headphones
Add instructable to: