Hey! This thing is still a Work in Progress. Files, instructions, and other stuff might change!

Revised Fully Printable Eggbot

by Glasswalker, published

Revised Fully Printable Eggbot by Glasswalker Mar 30, 2012


Liked By

View All

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

103154Views 18455Downloads


This is a fully printable eggbot, which was inspired by the original Eggbot as well as the other designs by Zaggo and Berserker.

I designed this one to be complete, and fully printable. And easily assembled. Also all parts are no larger than 100mm in any direction so should be printable on any 3D Printer out there. Lastly I wanted to keep the amount of plastic used to a minimum where possible.

It's intended to be printed in PLA on my Ultimaker.

It's unfinished in that I haven't printed it myself to test it. Normally I don't release things until they are "done" but since Easter is coming up fast, I thought I better get this one out there so hopefully some others can build one in time. I'm hoping to make mine this weekend, and will post pics once it's assembled.

It's intended to be used with the spherebot electronics and firmware. http://www.thingiverse.com/thing:7656

Hope you enjoy!

EDIT April 2 2012:
I've refined some of the parts. Updated STLs are uploaded. The Egg cup parts didn't work out as planned, replaced them with suction cup based ones. Also I strengthened and thickened up the Back Plate part as it was a little flimsy (still works in it's original form, as I left it on mine, but I figured it could use some strengthening for general use).

EDIT April 4 2012:
Ok another minor revision to a few parts. I've uploaded the new designs now. Also here are some pics of the finished build. I'm still just wrapping up the electronics. The changes I made were shortening the egg cup holders to allow for a larger egg to fit, and I had to adjust the arm pivot to allow the motor shaft to protrude through it. You will need washers on those screws now but it will allow a better depth adjustment for the pen to allow it to center up nicely on the egg (keeping the image from skewing when you print it).

EDIT April 4 2012:
Sketchup Sources uploaded.

EDIT March 21 2016
I know it's been a long time, and this design is apparently still popular, so I'm planning on doing a full refresh of this design. I'll be posting it sometime in the near future. I'll be completely overhauling it for better stability, printability, and I intend to make it fully Parametric for easier tuning/customization.

Also quick shameless plug, anyone looking for anything to be printed, please check out my 3D Hub at: https://www.3dhubs.com/ottawa/hubs/glasswalker


These are rough instructions since I have yet to build it myself, these will be updated once I've verified the build:

You will need:
2x NEMA17 Stepper motors
1x 9g hobby servo (Turnigy TG9e or HXT900 is what it was designed for)
All electronics for Spherebot (see link above)
2x 608ZZ "Skate Bearings"
Some M8 Threaded Rod
Several M8 Nuts
Several M4 screws and nuts
A few M4 washers
Some childrens suction darts (see photo, like nerf darts)
A spring (8mm internal diameter, and as long as you need for your frame size)
A Sharpie (fine tip)
An egg or small ball to draw on

Printed parts:
1x Back plate
2x End plates
1x Egg cup drive
1x Egg cup idle
1x Idler knob (optional to cover sharp ends of rod if kids will use)
2x Idler Bearing Plate
1x Pen Arm Shaft Coupler
1x Pen Arm Pivot
1x Pen Arm Top


  • Put 2 threaded rods through the back plate and tighten it down with nuts so it's in the center.
  • Assemble the two end plates using threaded rods through the 2 bottom, and the rear top hole (the motor mounts face the "front" side) So that the rear plate is between the 2 back plates. The completely flat side of the rear plate should face forward (with the "bumpy side" facing the rear of the machine)
  • bolt the motors onto the NEMA17 mount on one end plate (doesn't matter which) and the rear plate.
  • Press fit the egg drive cup onto the end motor
  • Press fit the arm shaft coupler onto the rear motor
  • Use an M4 nut and short screw to lock the shaft coupler onto the rear motor (the egg cup is just friction fit)
  • Fit 2 M4 nuts into the trapped nut slots on the shaft coupler, and then use line up the arm pivot and put 2 M4 screws through the slots into the trapped nuts (just loose for now you can adjust later)
  • Use an M4 screw, a couple washers in the middle, and a nut to create the hinge between the arm pivot and arm top parts. Tighten only minimally to allow free swinging with no resistance (use nylock nut or locktite to keep it from falling off)
  • drop an M4 nut into the arm top trapped nut hole near the end, and thread an M4 screw into it via the setscrew hole, this is for tightening onto the pen
  • Install the servo in the provided bracket on the arm pivot, so that the servo horn is inline with the arm top and can push it up and down with a little rotation.
  • press fit 2 608 bearings into the bearing plates (these should be tight, so you may need a little tape depending on your printed parts)
  • use 4x (or even 2x) M4 screws to screw the bearing plates in place of the second end plate's NEMA17 motor mount (make sure it's centered)
  • Feed a length of M8 rod through the bearings. it just sits loose
  • Thread (just twist the plastic part on the hole is just a little too small so it should thread onto the rod with some moderate force) the egg cup idler onto one end of the idler rod
  • Fit the spring between the idler cup and the bearing block. It should provide minimal force against the drive cup when empty, and should have enough strength to hold the egg without breaking it.
  • Screw the idler knob on the other end of the idler rod.
  • Attach the rubber suction cup portion on the end of the egg cup parts
  • Fit a sharpie, and wire up the electronics and you should be good to go!

All Apps

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

I know it has been a while for this thread but I am trying to make one of these for Easter. I've got the build of the parts down but I'm having some problems with the electronics. I think I have a handle on the firmware but I'm not positive. The biggest problem I'm having is with the Inkscape plugin. I've found the unicorn Inkscape plugin http://www.thingiverse.com/thing:5986 and Also one by evil mad scientist https://github.com/evil-mad/EggBot/releases/tag/v2.4.0. Can I use either? They each convert the files to g code but I'm not clear how to interface with the egg bot. thanks

Unicorn G-Code Extension for Inkscape

I think you mean Egg Plant good day sir #autocarrot

Iwin #stop

I recently built an eggbot using the files and links provided in this thing. For a couple of days, it worked outstanding. It moved with precision and accuracy, and I was able to create some impressive egg prints.
Now however, the pen stepper motor that controls left/right movements has began acting strangely. It moves inconsistently and often doesn't have enough power to move back and forth. I have tried replacing the motor, driver, and arduino- still weird motor activity. Does anyone have any suggestions?

You may have to adjust the current for the motor driver.

Thats most likely it. Another cureall is slowing the jerk and feedrate of the axis...

I made the pieces but I had to remodel them to 95mm to fit my printer.

Steppers and drivers are in the mail - Ill use a Arduino Pro MIni for this build...

What length should the threaded rod be?

I have the same question

Where can you find the M4 threaded rod? My local stores sell the standards like 1/4, 3/8, 1/2"

McMaster is a great source for any hardware needed for machines like these.

Great work,

I made an Eggbot too, this one ( http://www.thingiverse.com/make:53174http://www.thingiverse.com/mak... )

Only one problem, that I hope someone can point me in right direction with solving.

plotting on eggs, it looks like no microsteps is used and it's getting
rather bad quality, as shown on the picture. However the drivers, voltage, wires etc. should all be
in order. I checked everything like 20 times.

I use 200 step per
revolution motors, 1/8 stepper drivers. I replaced motors and stepper
drivers to be sure that it is not the problem.

I also tried
scaling up x10 a svg drawing before exporting to gcode - and setting the
zoom level accordingly, no improvements there ether.

So I assume that the problem is somewhere in the firmware, can someone have a look and verify if there is a problem there.
If its not the firmware, what could the problem be?


Im using http://feeder.pyfeeder.py for sending the gcode.


Revised Fully Printable Eggbot

Works nicely, thanks to the various tips around here. If anyone is interested I have a github fork of Zaggo's SphereBot code that works with newer Arduino IDEs (although the separate SoftwareServo library also needs to have #include "WProgram.h" replaced with #include "Arduino.h"), and has swapped the X and Y axes so that it is the same orientation as the Evil Mad Scientists Eggbot (means less fiddling when printing SVGs designed for it). https://github.com/Lenbok/SphereBot.githttps://github.com/Lenbok/Sphe...

Hi Lenbok!, i need a little hand here, when i try to compile the code with my UNO i get this:

'Timer1' was not declared in this scope
SphereBot.pde: In function 'void setup()':
SphereBot:131: error: 'Timer1' was not declared in this scope

i'm having troubles to find this too: "WProgram.h"

(although the separate SoftwareServo library also needs to have #include "WProgram.h" replaced with #include "Arduino.h")

This is my first Arduino experience, sory for my noobility :)

Did you install the TimerOne library that is mentioned in the readme.txt?

"WProgram.h" is what older versions (pre 1.0?) of the arduino IDE used - if you see any errors about that, you need to find the code that is trying to use it (there is one in the SoftwareServo library somewhere) and change it to say "Arduino.h". I'm not sure why they don't just update the version that is in the arduino playground so people can download a version that just works with the latest IDE.

Thank you for all of the above. I have downloaded your version of the firmware and done a verify compile using the Arduino Uno as the target. (I have had one of these in my toolbox for some time but never used it). Can you confirm that I am heading in the right direction:

  1. Print the Glasswalker STLs
  2. Use the firmware from your GitHub repo
  3. Wire things up as shown in the schematic in the http://pleasantsoftware.compleasantsoftware.com pages pointed to by Glasswalker via the Spherebot thing.

Looking forward to building this and to getting it working - vitamins not in my toolbox are on order.

got every thing set up and printed but my X axis wont do any thing. iv swapped the drivers, motors and the pin on the arduino. any one else have this problem?

am i missing where it says how long the m8 threaded rod needs to be cut to length

Printing this out now. Made 2 plates for all the parts. Really looking forward to making this work over the next month or two. This will be the first cnc machine I build from parts with my own grubby paws. Looking forward to learning small and scaling it up to full sized robot laser cutters and plasma cutters over the next couple of years. :D

I'm getting better results out of the hardware and the steppers move to the right coordinates and positions by hand. However, when i try to feed the spherebot with the sender code (OSX Lion), I get errors often - usually in the first few lines. The most common is Error at line 0: o: (a little o with a colon). Interesting, i get the same result with the ruby sender code. I've also tried slower baud rates (down to 19200, the default is 115200). I'm using the default firmware from the spherebot project.

Anyone else seen this or have some idea how to fix this?
thanks, rrhb

You have to use the python version if you are using a recent version of Arduino. It's somewhere in the comments to the various spherebot projects,

Printed everything, got motors, drivers and a spare controller. Just need to collect the hardware and assemble. My kids are pumped! :)

Hope they enjoy it! Be sure to post pictures when it's printing!

I made a slight mod to the pen-arm-pivot just to add some more material around the servo attach points... I did this after splitting the tops off the existing piece I printed. Once I assemble it and confirm it's good I'll upload for you. No point adding that as a derivative I don't think as it's a pretty minor mod.

Also it seems like you don't actually want the back plate in the centre of the structure. Your pics seem to show it closer to the end plate with the motor attached, and this is how I think I'll need to place mine as well from eye-balling it.

I'm not having good luck with my eggbot. The weight of the pen shaft axis is causing stuttering in the motor. The pen arm jiggles. It is particularly exaggerated when both motors are moving which caused me to support voltage or current. With no pen shaft that motor moves smoothly. it doesn't seem like much weigh. i've tried switching pololus, adjusting current, switching motors, even arduino/ramps, and this characteristic isn't changing. I'm using Zaggo's original code with zoom @ .02. The gcode produced produces ranges for the "eggbot coords" using unicorn/inkscape on a mac of -450-
gt;+450 in rotation (x) and -140-
gt;+140 in (y) pen arm.


That's very odd. These motors should have MORE than enough torque to move the head without stuttering. (by like a factor of 10 or more). Is there binding somewhere? I'm not sure what could cause this.

What motors are they?

sigh. I switched to a partially populated sanguinololu to control this (which believe is the most economical solution rather than a mega and a ramps board), and forgot to install the micro stepping jumpers which is why my bot was so twitchy. Seems nice and smooth now, thanks!

Awesome :) Glad you got it working!

We have now labeled the eggs in the fridge and have been busy printing world maps onto ping pong balls. :)

I would like to suggest removing the part I've highlighted here (in red) from the end plate design. The pen actually hits this area, limiting its range, and it would also save some plastic without really affecting the structural integrity. (We don't have threaded rod going across the top front --
I'm not sure it would even work with it installed -- and it doesn't look like others do, either.)

I agree about the proposed modification... i made that modification to mine the old fashioned way (hacksaw). :)

Its still very sturdy, and now I have more range.

I got impatient, so I went ahead and modified it and added it as a derivative. I have another variation of it that includes tabs for snapping in a small project board. (I'm using a Modern Devices RBBB to control it instead of an Arduino.) I have pictures posted, too.

We're printing my last part now... Do you have any recommendations for lengths of the threaded rods?

I am away from home so don't have mine handy. But I believe I used around 7" to 7.5" for my frame rods, a couple inches shorter for the idler rod. I believe.

Not 100% sure but that should be around right. you can always cut them a little longer than you need, so you can adjust down if need be.

Awesome -- thanks. The kids are busy assembling the bot now. :)

Anyone else getting a weird top layer on the end plate with slic3r?

That's odd... The file was literally a single contiguous 2D shape which was extruded. So it shouldn't have any bizarre geometry there. I sliced mine in KISSlicer, I haven't tried it in Slic3r so I can't comment. Perhaps someone else here has used it to slice the files.

You could try passing the STL through Netfabb free, or use the netfabb cloud service (which I've had good luck with STL wierdness, it seems extremely good at repairing even the most troublesome STL files).

The netfabb cloud service is at http://cloud.netfabb.com/http://cloud.netfabb.com/

Hope you get it to print!


Yep -- netfab worked. I started with some of the other parts, but alas -- now I'm nearly out of filament :/

Thanks for your great work on this -- can't wait to get it up and running!

cant get firmware to work arduino 1.0

Uploaded the 2 libraries one wasnt recognized

not sure which ide to use or which revision arduino?

In Arduino 1.0 you have to rename all includes of WProgram.h to Arduino.h

Im a noob and dont know what that means at all!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Any suggestions. I gotta study!

In the source files you will see occurrences of "WProgram.h" you need to edit the files and replace that with "Arduino.h" (I believe it's 2 occurrences with the spherebot firmware).

How long are the threaded rods?

Also can i use 5/16

what are the conversions to sae?


The rods I used were 5/16 SAE because I had them around. They are just a hair smaller than 8mm rods. I designed it for 8mm, but 5/16 should work fine. :)

The lengths I used for the frame rods is around 8"

The egg idler rod was a bit shorter, about 6"

Hmm for me it looks like all your nut traps and holes are way to small for M4 Screws and too big for M3 - did you form them for non-metric screws? No problem for the holes (using a drill) but the nut traps don#t work without heating them up and pressing the nut in that way which isn't that smart. did you use the exact dimensions from the nuts without giving a bit of extra space?

Yeah it's the slicer not compensating for extrusion width. A common problem with 3D Printing. Skeinforge supports a feature I think it's called Widen which compensates for hole size and such. I personally use KISSlicer which does a fantastic job. When I design a hole at 3mm it prints 3mm. (so to answer your question yes I design the holes to the exact spec. The trapped nut holes are designed to have clearance for the nut, but only about half a mm or so)

I'll upload the Sketchup files later tonight if I can find time :) so you can adjust if needed.

Thanks for the heads up!

Sketchup files uploaded as requested :)

Thanks Buddy, highly appreciated.

Thanks for your effort - i'm just waiting for things to come to my home (steppers, pololu,...) and will probably take the easter weekend to put something together. Any chance to get your source files? What did you use to construct? Sketchup? OpenSCAD? 8-)

I can post the skp files too, but I was going to wait until it was "done" (ie I've finished the electronics and printed on eggs with it) until then I'm just posting updated STL files and photos. Once it's done I'll release the sketchup sources.

hmm ok - i'll build mine on the weekend and hope everything fits. I thought having the skp files to edit some important stuff would be handy but you're the boss of course ;-)

Thingiverse is to 3d printing what smoke filled night clubs were to jazz. Awesome work!

I modeled this in Solidworks. Is this how it goes together?

Yes exactly! Can I use that image and add it to the thing directly? It will help with assembly instructions. I'll have pictures of the assembled bot by the end of the weekend (finishing off printing it right now).