Sunday, June 26, 2011

How the Pancake Bot Works

The Pancake Bot (PB) is basically a 3 axis CNC made that uses the Z coordinate as the Pancake Batter Dispenser Control. This one just happens to be made out of LEGO.
The Pancake Bot is made up of the following parts:

1.  A set of linked base plates with 3 parallel tracks snapped on.  One track has a bunch of Technic, Gear Racks (1 x 4) riding along top which makes up the X axis.

2.  A moveable bridge that holds one NXT motor on one side and has free rolling wheels on the other.  The top of the bridge uses two tracks covered with gear racks that holds the Pancake Batter Dispenser Unit (BDU).  The track allows for Y Axis Control.

3.  A carrier gantry on top of the moveable bridge that rides on the gear racks and holds the PDU.

4.  The PDU consists of two ketchup bottles cut in half and glued together so you have two open ends.  This allows you to change the nozzle size on the bottom and allows for input of compressed air on top.

5.  Compressed Air Dispersal Apparatus (CADA) consists of an NXT Motor, two Pneumatic Cylinders, a tank and a bi-directional flexible switch.

The bi-directional flexible switch allows for the switch to be flipped based upon which direction the NXT motor turns.  If you notice in the video, on the close up of the motors turning, the cam is switching the flexible switch every time it rotates.  In the initial turn, the switch is flipped and stops and then continues to flex out of the way of the rotating cam.  When the motor turns the other way, the cam catches the switch, flips it back and changes the direction of the airflow.  It continues to flex as the cam passes over it.  This allows for air to be compressed when the motor turns clockwise, and then the air to be released when the motor turns counter-clockwise.
The reason I did this is because I only have 3NXT motors and needed to a way to change the direction of the air flow while at the same time, still compressing air.

The Program
Originally, the goal was to control this with Python NXT, an open source programming interface developed by Marcus Warner and the Python NXT group.  It worked like a charm at first but for some reason, I could no longer communicate with the brick, so I went back to using the less flexible LEGO Mindstorms programming.

The program itself is a variant of the the Etch-A-NXT program found in Extreme NXT, by By Michael Gasperi, Philippe E. Hurbain, and Isabelle L. Hurbain.  The original program just controlled two motors using an external text file.  I modified the program by adding the third motor.

The text file needed to draw with the Pancake Bot uses three coordinates, each with a character return afterwards.


This tells the NXT to rotate Motor A 360 degrees, Motor B 2400 degrees, and Motor C 500 degrees conterclockwise.  Depending on which gears you choose, one rotation can equal different numbers of units of movement.
I used the 8 tooth gear which with one rotation, moves 4 standard LEGO units.
Depending on the size of your electric griddle, you can calibrate how big you want your drawings.
A simple program in XL converts the LEGO units into degrees and outputs the text file.

Motor C in this case is the Z axis which controls the BDU.  It also acts as a timer for discharging the batter.

The parts that are exposed to the heat of the griddle are covered with a sheet of aluminum foil during cooking.  This reduces the chance of parts melting.

Making the batter.

The batter is made using Martha Stewart's Basic Pancake Recipe as the base.   I sometimes add cinnamon or different berries for flavors or color.
Once the batter is made it goes through a strainer and all the clumps are removed.  This makes the batter smooth and allows for continuous flow of the batter from the BDU.

Things to work on!
The BDU is not the best design but other attempts were not as successful for batter delivery.  I attempted using a standard RCX motor with a corkscrew that went to a funnel but the corkscrew was not as effective as using air pressure.
A corkscrew discharge would allow for controlled amount of flow vs. the air pressure discharge (10 turns equals 20cc's of pancake batter.  When you use the air pressure discharge you have the additional variable of batter viscosity and so any slight changes in batter recipe modifies the flow speed.
The advantage of the air pressure solution is that you don't need a mechanical means to extrude the batter, so even using a aquarium pump (thanks Bruce Shapiro from Egg-Bot) could be used to control the flow of the batter.


  1. This is so totally cool! It puts my pancake skills to shame. I might have to dig out my LEGO collection and see if I can build one, too.

  2. Terribly awesome!! :D Congratulations from Argentina!! ;)

  3. amazing work man,
    i like your idea of using 'old' lego technic pneumatic zylinders to create a compressor.

  4. Awesome work :)

    Submit this DIY at, if you haven't done so.Cool place for DIY projects and competitions.

  5. A great way too use the best toy ever

  6. congratulations!!!!!!!!! nice DIY project

    freom spain

  7. Jajaja está fantástico el aparatito y sin dudas que las niñas lo disfrutan casi tanto como tú

  8. Bring your projects to the embedded design community

    We need a Python NXT expert. And we want to know how you made that this machine.

  9. Gracias por compartir esta preciosa máquina.

    Es un honor para mi compartir y linkear esta entrada desde mi blog de LEGO TECHNIC!

    Muchas gracias, un trabajo excelente!

  10. Very cool project! I noticed your comment about switching from Python NXT to LEGO Mindstorms programming. We've seen very sophisticated NXT designs from engineers who use the free LabVIEW NXT Module to program the NXT brick. It is very robust and offers a lot more flexibility. You can download it here -

    Best of luck!

    Meghan Kerry
    Product Marketing Manager
    National Instruments

  11. This is really really awesome. I am an associate editor at, and we'd love for you to share this awesome project with our community of 10 million or so readers. Sharing with us could benefit you, as we are currently running a "make it move" contest with a cash prize and a bus pirate. Send me an email and we'll try to set something up.

  12. Hi Everyone, Thanks for your comments. It's been a couple of months since I've done anything with Pancake Bot but I've recently been working on a simpler version that I can put some plans out for people to make and I'm also interested in starting a kickstarter project to get a non lego version out.

    Also, I'm looking for some programming help with python to make it easier to draw fun shapes. Send me an email at pancakebot at

    @haphhazard, javis, jan, Thanks! I appreciate the comment. I'll see what I can do about instructions.

    @Alex, thanks, I didn't know they were old! I am working on making the bi directional switch instructions available soon

    @Nigel Would love to but I'm hoping to just post the instructions on my blog or put them out through a PDF.

    @Uncomplicated Scientist Thanks. I'm looking for some help on the programming side of things!

    @tetrixgear, luis, Parda Muchas gracias!
    @mkerry, I'll check it out
    @Michelle Pfeiffer. I'll see what I can do. 10 million people huh? Can you just send them over to my blog ;)

  13. Just saw this on techcrunch! I'm sorry you couldn't manage to keep nxt-python working...the motorcontrol module would have been perfect for this. Thanks for publishing instructions!

  14. Our pneumatic factory was founded in 2000,CHECK HERE. In decades of serving China pneumatic industry, we have built our reputation on product knowledge, world class suppliers, application support, and value add services. Our commitment to our employees, customers and vendors is the core of our business beliefs. In our factory, there are more than 80 front-line workers, 3000 squares working shop.Our main products are air Pneumatic Cylinder, solenoid valve and also a lot of pneumatic fittings like Air Gun.