Cook-Me-Pasta: Pasta and Dumpling Cooking Machine!

Recently I constructed a rather interesting machine. The machine was the result of several factors:

  • Last spring a project vacuum was created after I finished the Granite Mini-Mill. The granite mini-mill was very legitimate, and therefore it was time to create something illegitimate. Preferably, something really, really illegitimate.
  • Time is finite. This is a stunning realization: a person only has about 400,000 woken hours in their lifetime. Given this finite time, it is natural to prioritize doing the things that one likes to do and procrastinate on the others. One thing I don’t really like doing is cooking. I seem to always get hungry at the most inopportune moments. However, I really like making CAD models.
  • I had some 2.007 stock and parts laying around. I also really enjoyed designing and building my 2.007 robot.  I liked the way it was designed and styled.
  • Summer was coming up, meaning no meal plans. But, H-Mart dumplings are cheap.
  • I like the look and style of the Wintergatan Mable Machine, its pretty cool. The thing is a mess but is more or less well contained and does a very specific function, and does it well. It has many actuators.
  • I like things which are mechanismically complex and have a lot of parts, and just wanted to see if I could make something cool with a lot of coordinated moving parts.
  • Aaron told me it was a dumb idea and therefore I had to do it. Every single appliance in Aaron’s house is OP AF, and therefore I had to one-up him!

The result of these realizations, plus a fair amount of time:

DSC00765

Here is the final CAD model:

Pasta Machine Final

The machine is designed very similarly to my 2.007 robot. Frame elements are all sheet metal parts either screwed directly to each other or held apart with standoffs. There are zero 3d milled parts in the CAD, all parts are designed to be either waterjet, 3d printed, or turned on the lathe. This means fabrication is quick.

The machine consists of several parts, all of which are needed to cook pasta. On the left is a stirring motor (MASLAB motor!) which is strong enough to stir the pasta. This motor is on an arm which can lower and raise so that the pot can be removed. In the middle is a salt shaker which dispenses salt into the water. I feel like I always forget to add the salt when I cook pasta by hand, and thus the pasta tastes like crap. This machine does it automatically, so it is impossible to forget. On the right is a pasta hopper, which adds the pasta once the water is boiling.

A few technical details on each part, figured it couldn’t hurt to go into a bit more detail than usual as I did spend quite a bit of time on this project.

The stirrer:

stir 1 stir 2

The stirrer arm is made from 1/8″ aluminum. It is mounted to a 3d printed bracket which is glued to the servo horn. The servo is a VS-11 full size servo, as I knew the maslab motor would be heavy and that this thing would have to handle a fair amount of force. Stirring heavy dumplings takes a far amount of force so I mounted a second bearing on the outside suspended by a 3d printed arm. All of this is mounted to a piece of sheet metal, bent in many places to increase strength.

The Salt Dispenser:

salt 1

This design is what is currently on the machine, but it doesn’t work great. First, the ramp isn’t steep enough, and second it spills salt everywhere. I’ll have to think of something better for the future.

The ramen tray:

ramen tray

The place where the raw food is added. The tray sits on top of an irregular four bar linkage, because I wanted the food to not be steamed while the water heated but then it obviously had to move toward the pot to dump. This four bar linkage worked out great both in cad and in real life. It is driven direct drive with a VS-2A servo on the back linkage. All parts are made of bent 1/16″ aluminum sheet metal, except the servo horn adapter which is 3d printed.

The frame:

whole 1

I knew from the start that most of the stuff was going to have to mount up near the top of the pot, so I made a main utility plate raised on standoffs 15mm from the top of the pot. The 15mm clearance is so that if the pot boils over the utility plate is above everything and remains (relatively) clean.

Chronology:

This project went through several starts and stops, each where significant progress was made. I started the CAD on March 3rd, and went pretty hard for the next month. At the end of that month, I had this:

V1s (oldest)

The salt shaker is an older, more complicated version that included a strain guage to measure the mass of the salt. Also present is an olive oil bottle which could add oil but this functionality was never finished. The stirrer and the ramen adder are almost identical to the final version. But right at this point I got lazy and moved onto other projects, namely this motor controller which took up the rest of spring and the majority of the summer. The pasta machine project was further halted when all of the waterjets I had access to exploded, pretty much “RIP In Peace”ing the project for the foreseeable future. The fate of the dumpling maker lay in question. Yet, I began gathering parts on my shelf, including a maslab motor and driver as well as some servos.

Many people thought the project was kind of stupid (which it was) so I kept it on the DL. I cooked a lot of dumplings for lunch during my summer, and each time I manually cooked the dumplings I remembered that doing this manually was stupid. But I was preoccupied with motor science, so whatever.

The pasta/dumpling maker project was kicked back into gear when a friend of mine who had CSAIL waterjet access offered to waterjet the parts. I updated the CAD over a few nights to include a deck for mounting the electronics as well as a servo for manually turning the burner knob.

v1(v2)

This was pretty stupid, but I was scared of working directly with 120v. In later versions I ditched this for a solid state relay.

v1(v2) close

With the motor project winding down in mid-august, It was time to move from CAD to real life and the project kicked back into gear. I turned some standoffs on the lathe and built a stirring paddle for the maslab motor. I mounted the motor to a piece of 8020 and clamped that to a huge block of aluminum. I found that optimal stirring speed was achieved with about 3.5 volts.

IMG_4732

First Stir! I also mounted a thermocouple to measure temperature but the readings were very noisy.

IMG_4736

The friend who offered to waterjet the parts disappeared off the face of the earth, so I decided to cut the parts myself on the MITERS CNC. Some of the original parts had to be slightly modified to fit within the build volume of the CNC. I ditched the base plate, meaning that now everything mounted directly to the sheet metal of the burner. I shortened the utility plate. The hopper had to shrink by 10mm as well. Both parts had about 5mm on either side while cutting in the CNC. Here is the final CAD.

Pasta Machine Final 2

And from the back.

Pasta Machine Final 2 back

Stock Sizing. If I had cut the parts perfectly the first time, all parts would have fit perfectly on this sheet.

IMG_4842

I was briefly distracted by a gorilla riding the PedalKart at the activities midway:

IMG_4848

But then I got back to CNCing. I used a 1/16″ endmill, which in retrospect was quite small. I double-sided taped the parts to Ben’s jig plate. I had a TON of problems. First of all, we ran out of no-name double stick tape, so I switched to using the nice 3M brand stuff. BUT, it turned out that the coolant in the mill dissolved the adhesive on the new tape. So my first several parts came unstuck while milling.

IMG_4851

I was able to save the utility plate, but had to cut off the back right corner because it was all cut up. Not a big loss, no important things there. I tried no coolant on the next couple of parts, but then the endmill instantly gummed and snapped.

IMG_4852

I cut and bent up the aluminum stirrer frame:

IMG_4863

Drilled some holes in the burner and started assembly!

IMG_4864

IMG_4865

With the frame assembled I moved onto the first cook in the machine. The stirrer raise/lower thing wasn’t printed yet so I just clamped the stirrer arm to the utility plate with a quick-grip. I wired up a maslab motor driver and an arduino and ran the first controlled stir.

I actually cooked quite a few meals with this setup.

IMG_4868

I couldn’t find any VS-11 servo horns around MITERS, so I asked Papallardo for a spare-Thanks! With the servo horn I mounted the stirrer arm properly:

IMG_4882

Now it could raise and lower! Again, I cooked several meals this way. Felt kinda like iron man 3 in the fight where he escapes the villa, as parts of his suit arrive discontinuously.

IMG_4884

The pasta machine stayed this way for a while while I built a new skateboard (details TBA)!!

I made a little electronics deck and moved to the STM32F401 Nucleo. I made a little perfboard breakout to run the servos. I slaved the servos to timer 3. Originally the plan was to set up all the PWM outputs manually, but I couldn’t get it to work so I used mbed’s PwmOut to enable the timer and pin, and then just messed with the prescaler and ARR values. To change the servo setpoints I just set the CCRx registers. This took a little bit of time to make work but I got it going after a week.

IMG_4941

Another real point of pain was wiring in the temperature sensor. I sampled some LMT01LPG temperature sensors from TI. They are two wire temperature sensors in a TO-92 package- a thermistor, great! WRONG!!!! Instead the output is an ” ‘easy-to-use’ pulse count current loop interface”???!!!??WTF???!!!??

temp sensor

Yeah ‘easy-to-use’ my a$$. I was able to get it to run on my oscilloscope but I couldn’t get the voltage swing to match the voltage needed to toggle the GPIO of the nucleo. So, I had to use a little comparator board. Then, I wrote some code to count the pulses using timer 2. Probably could have done it with just a normal GPIO but it turned out the timer code was pretty similar to some code I wrote for the velocity sensing saga.

She Runs!!! I gave 5v power to the whole thing with a 5v wall wart.

IMG_4947

Even without the dumpling dumper I cooked quite a number of dumplings. It was pretty nuts- apart from manually adding the dumplings it would run more or less automatically. After the first automatic meal I looked at it and just thought “whoa this thing exists, and it just cooked me dumplings.” At this point the comments changed from “wow that’s dumb” to “whoa that’s cool.”

Salt shaker and bottom of the hopper mounted.

IMG_5013

The actual hopper itself got super messed up when I tried to bend it- the bend was adjusted wrong and so it basically cut a side off. I sheared and bandsawed out a new one and folded it correctly, then mounted it.

IMG_5016

Whoa. She exist.

IMG_5022

IMG_5027

So I cooked some meals. Its really a nice looking machine, and its quite useful too. There are a few more things to do: wire in the solid state relay, physically attach the wall wart and do 120v power distro, and add a switch for pasta vs dumplings mode. But for now, this machine really works.

Design/Build Time Lapse:

Here are some good photos from Ben’s camera.

DSC00765

DSC00772

DSC00776

DSC00778

DSC00779

DSC00780

Dumplings Inserted!

DSC00793

Done!

DSC00798

😀

DSC00800

Master Ben enjoys the dumplings.

DSC00804

Definitely a guud robot.

One Night Project: Analog Current-Mode Hysteresis Brushed Motor Controller

Hysteresis Best-Teresis. Tonight I built a current-mode controller for brushed motors. Instead of going the traditional route using a microcontroller controlling PWM through a PI loop, I used only a comparator and an op amp. I had a hunch that this would work while being exceedingly simple. My hunch turned out to be correct, and […]

October, and a New Motor Controller

October has been a month of pretty hardcore board layout fun. Two days ago I submitted a 3pcb order with 5 WHOLE BOARDS. First up, a new ESC, ESC Mk 2: Second up, basically the same board but without the microcontroller: Third up: an NRF24L01+ controller board, using an STM32F303. Fourth up: another NRF24L01+ controller […]

Motor Control: The Velocity Estimator Saga

Last time, I’d managed to make current control work on my new board, and now it was time for servo position control. After a bit of hacking around and trying random PID gains, I wrote some code to generate a position profile for the motor to track. Using this framework I could easily run sinusoid or step response tests and […]

Motor Controller: Board 5!!!

When we left off last time, I’d dealt with a bunch of issues with misused current sensors. Here is a photo of the lovely Motor Science Rig in all its glory, taken with Bayley’s ViewCamera. With the current sensors installed properly, it was time to move from voltage-mode FOC to current-mode FOC. I had some minor issues doing […]

FOC PART 4: More Hardware Debugging!!!

The Motor Science Rig. When I left off last time, I had bestowed the ADCs with capacitor-based magic which caused them to function properly. The next step was to hook up the current sensors and forcefully request that they, too, function properly. Wary of hardware problems, I collected some data before jumping straight to current-mode FOC. Through […]