Please let me introduce you to the EggBot. Read on and you’ll learn how to build a machine that paints Easter eggs. Because, why paint eggs by hand when you can build a machine to do it? You just need a 3D printer and some electronics.

Do you remember when you were a child, and your family gathered together Easter morning for the traditional decorating of Easter eggs? Your parents had boiled the eggs together with onion peels, to colour them dark yellow. Your mother had decorated the dinner table with Easter decorations, and everything was perfect and ready for what we Danes call Hygge.

But now I’m grown up. So I can do exactly what I want. And do I want to continue that tradition unchanged or spice it up with something more edgy and high-tech? Maybe yes. Maybe I’ll add one or two machines to the mix, a 3D printer, a robot and whatnot?

Yes! Let the robots take over your Easter traditions!

The EggBot was originally designed and made by the Evil Mad Scientist lab. In short, it is a plotter designed to paint on eggs or similar spherical objects. The EggBot is rather simple, with two stepper motors, one to rotate the egg and the other to move the arm from side to side. A servo motor lifts and lowers the pen drawing on the egg. Then there is a controller board to connect it all together and to receive command from a computer running the free and open source vector drawing program Inkscape, and a special plugin.

There are number of different iterations of the EggBot to choose from. Originally I wanted to find a model that could draw on bigger objects like Christmas ornaments. But I ended up choosing one of the simpler versions, designed by Attila Nagy with an electronics kit made by the company JJrobots. 
In contrast to many of the other EggBot designs, the main frame of this version is one 3D printed piece. Besides the electronics, the other parts can be 3D printed as well. That makes this EggBot really easy to build and source parts for. You just buy the electronics kit, and get your 3D printer started printing parts. Printing takes about 24 hours, with the frame of the EggBot taking around 19 hours to print on a Prusa i3 Mark III with 0,2mm layer height.

All the 3D printed parts finished printing.

I must admit I was a bit worried about using an egg for the first test. I decided to extend one of the mounting brackets so I could fit something a bit smaller than an egg inside the machine, a Foosball ball.

So now here at the office we have custom printed balls for our foosball table.


After the first tests I became a bit more confident and tried with real eggs, and I must say I am rather happy with the results.

This years egg production so far.

One of the drawbacks of this design is that it is not as adjustable as many of the others, so it can be a bit of a challenge to print on anything else than eggs.

But in my opinion that is more than compensated for by how easy it is to make. If you want to build one yourself you can buy the electronics here: https://www.jjrobots.com/product/sphere-o-bot/

The files for 3D printing can be found here: https://www.thingiverse.com/thing:1683764

And the assembly instructions can be found here: https://www.jjrobots.com/sphere-o-bot-assembly-and-user-guide/

Remember to read the part of the instructions that says Important Notice. Without the changes described in it, the software will not work.


I wish you all a happy and creative Easter.

We use cookies to give you the best online experience. By agreeing you accept the use of cookies in accordance with our cookie policy.

Privacy Settings saved!
Privacy Settings

When you visit any web site, it may store or retrieve information on your browser, mostly in the form of cookies. Control your personal Cookie Services here.

These cookies are necessary for the website to function and cannot be switched off in our systems.

In order to use this website we use the following technically required cookies
  • wordpress_test_cookie
  • wordpress_logged_in_
  • wordpress_sec
  • ct_checked_emails
  • ct_checkjs
  • ct_fkp_timestamp
  • ct_has_scrolled
  • ct_pointer_data
  • ct_ps_timestamp
  • ct_screen_info
  • ct_timezone

Decline all Services
Accept all Services