Introduction: Eggbot

About: Ngo active in the field of digital mediation, based in Toulouse, France

The eggbot is a mini cnc machine capable of drawing on spherical objects such as eggs, christmas decorations balls, etc. Users can produce their own digital drawings and the machine will transfer them on spherical objects.


List of material

To create your own eggbot you will need:

Step 1: Position the Bearings

Position the bearings on each side of the eggbot part depicted below

Step 2: Assemble the Two Sides

Assemble the two sides, the rear of the eggbot and the supports for the two sides (purple 3D printed parts in the picture below) together, using threaded rods and M8 bolts. You will need about 20 bolts, 1 M2x14 screw and 1 M2 nut to achieve this.

Step 3: Mount the X-axis Motor to the Left Side of the Eggbot

Use 3 M2x7 screws and 1 M2x14 screw + 1 M2 washer to mount the X-axis motor to the left side of the eggbot.

Step 4: Mount the Y-axis Motor to the Back of the Eggbot

Use 4 M2x10 screws and 4 M3 washers to mount the Y-axis motor to the back of the eggbot.

Step 5: Place 2 M2 Nuts Inside the 3D Printed Part Depicted Below. Then Mount the Latter to the Y-axis Engine

Place 2 M2 nuts inside the 3D printed part depicted below. Then mount the latter to the Y-axis engine (M2 nuts facing the rear of the eggbot).

Step 6: Attach the Servo Arm

Use 2 M3x10 screws + 2 M3 washers to mount the part mentioned above to the servo arm.

Step 7: Mount the Servo Arm to the Y-axis Motor

Mount the servo arm to the Y-axis motor.

Step 8: Assemble the Support for the X-axis

Assemble the support for the X-axis motor and the M8X10 threaded rod. You will be placing your spherical objects in between these two items.

Step 9: Wiring

Connect the cables of each stepper motor to the motor shield. connect the X-axis motor to M1 and M2 (left side of the motor shield) and the Y-axis motor to M3 and M4 (right side of the shield). Connect the cables in the same order for each motor. For example red, blue, black and green from left to right, i.e. red and blue on M1 and M3, black and green on M2 & M4.

Connect the servo motor to “servo 1” on the shield, with the brown cable (ground) on the left and the yellow cable (signal) to the right. Finally, connect the power supply to the power pins of the shield.

Step 10: Program Your Eggbot

You will need to program the arduino board in order to use the eggbot.

Use arduino IDE interface to upload this code into the arduino board.

Step 11: Verify That It Is Working

Click the serial monitor button in the upper right of the IDE.

Make sure you have “Newline” and "115200 baud” selected in the lower right drop downs.


Type “G0 X1600” into the top field. The egg motor should spin 180 degrees with the side facing you traveling down (counter clockwise looking at the face of the motor).

Type “G0 X0”, it should rotate back to the starting position.


Manually center the pen arm.

Type “G1 Y480”. The pen arm should travel counter clockwise (to your left) to its limit. Make sure it’s not hitting anything.

Type “G1 Y-480”, the pen arm should now swing all the way to the right. Again, make sure it isn’t hitting anything. If your motors are not moving in these directions, it is okay as long as they are BOTH moving in the “wrong” direction. Otherwise, everything will come out backwards. If they are moving as described above, UP is to the left, towards the motor. If only one axis is not moving as above, then you need to flip the wires for that axis.


Recenter the arm with “G1 Y0”, then enter “M300 S100”. That will lift the pen to the top of its default travel.

Enter “M300 S115”, that should gently lower the pen a little bit.

“M300 S100” should pop the pen back up quickly.

Mount an egg and pen, and lower it slowly using M300 commands until the pen is close to but not touching the egg. When the egg rotates, it can vary a little bit, so you don’t want to be too close, but you want to minimize the gap. This should be your default pen up position.

Then slowly lower the arm until it contacts the egg, and add a little extra to apply some pressure. That will be your pen down position.

Set your pen up position using M303 Pxxx, M500.

The pen is clamped to values from 100 to 130 by default. If you need to extend these, you can use “M301 Pxx” to decrease the pen up value and “M302 Pxxx” to increase the pen down value. M500 to save the results for the future.

Step 12: Transfer Your Digital Designs Onto Spherical Objects Using the Eggbot

You will be using inkscape to create your digital designs, and RepetierHost to operate the eggbot.

Download inkscape and RepetierHost if you haven’t done so yet.

Download the Unicorn G-Code plugin for inkscape, and install it.

You can now create your own designs on inkscape.
Under File, Document Properties, Page, set a custom size of 3200 width, 800 height in units px

Your document will look something like this

If you type any text, make sure to convert it to path before exporting the design for the eggbot. Path>Object to path.

Once you’ve finished working on the design, you will need to turn your drawing into g-code for the eggbot.

To do so, choose File>Save as. Under type, select Makerbot Unicorn G-Code

When prompted by the software, provide the following values:

In case you get this error message, it’s probably because you forgot to convert some text into path. Path>Object to path.
Once you’ve successfully turned your design into g-code, launch Repetier Host and open your g-code.

Connect the eggbot, and click on print.