Introduction: Engraving Photos on an Egg

I know that there are already many existing works where eggs are engraved with a laser but I wanted to experiment with the possibility to engrave photos on an egg to see if it is feasible to get something similar to gray levels. I'd say the results are remarkable.


A CNC, if you don't have it why don't you think to build one ? Have a look to, I started from there

A laser mounted to it

A support connected to X or Y axis with an adapter

A little bit of foolishness :-)

Step 1: Building the Fourth Axis Support for Your CNC

This step is obviously not mandatory if you already have the fourth axis. In my case the CNC comes from the fantastic root-cnc project ( that I built several years ago, so I had to build the fourth axis from scratch.

You can see in the pictures the 3d-design and the cutting planes. It is designed to be cut from 8mm plywood.

One side houses a Nema 17 motor (more than enough to rotate an egg :-), on the other side I mounted a flange (KFL-000-10 mm) having an internal diameter of 10 mm. I used this flange just because I had it available but is certainly oversized.

In the pictures of the base I have indicated the pockets and their depth. Of course the position of the fixing holes depends on your CNC bed and should be adjusted accordingly.

A 10 mm threaded bar is inserted in the flange.

Step 2: Installing a Laser on Your CNC

The laser I used has a nominal power rating of 5.5W (although I have my doubts about the real power). You can find it on aliexpress, at this link

I installed the laser in a can of shaving foam and I built adapters for the spindle mount of my CNC (A Kress FM1050). This way it is quite quick to change the tool from the spindle to the laser and the can has just a diameter of 53mm, perfect for my setup :-).

On top of the can I installed a fan that sucks in the air, in this way you get the double effect of keeping the laser cold (essential for the life of a semiconductor laser) and sucking in the fumes (I usually connect a pipe to take the fumes out of the window) . The small console you see above contains an arduino and a display to constantly monitor the temperature of the laser and, if it exceeds 60 degrees celsius, pause the CNC. On the bottom there is a small fitting to pick up the fumes as close as possible to where they are generated thus avoiding to dirty the laser lens. Embedded in the fitting I designed an optical distance sensor, very useful to maintain a constant focusing distance and, concerning the egg, get a depth map.

Obviously you can use any other mounting method, but remember to keep the laser temperature under strict control.

Step 3: Adjusting the Step/mm in GRBL for the New Axes

If you are using GRBL and the X axis for the rotation, you have to adjust the $100 setting, i.e. the steps/mm, according to your microstepping setting for the axis trying to maintain the best possible aspect ratio.

In my case I have a NEMA17 motor doing 200 steps/revolution. If MS is the microstepping value, a revolution requires 200*MS steps.

I evaluated the egg (maximum) diameter as 45 mm, this means that the circumference is 45*PI=141.3 mm

So, in order to have a drawn circle to correspond almost to an etched circle we need to set $100= 200*MS/141.3, assuming the microstepping 32 (as in my case) we should set $100=45.29..

If we put 45 we will have a revolution corresponding to x=6400/45 = 128 that is a good approximation and gives nice numbers. Of course, you are free to adapt the numbers to the circumstances..., and to the eggs :-)

For my eggs also the "usable length" is about 45 mm.

The speed and the accelaration have to be adapted to the other axis settings, in my case I have

Speed (X axis): $110=3000

Acceleration (X axis) $120 =60

Don't forget to put $32=1 to enable the laser mode (in GRBL 1.1).

Step 4: How to "couple" the Egg ?

For this purpose you need something soft enough to not damage the egg. I used two rubber rollers that I recovered from a printer. These are the rollers used to feed the paper, see the picture. To mount the rollers on the motor's shaft and on the threaded bar I printed two adapter, the STL files are included.

Step 5: Generating a Depth Map of the Egg

To ensure a constant focusing distance it is essential to detect a depth map of the egg. This can be done simply using a depth sensor and the bCNC software ( that I use to drive my GRBL based CNC.

The autolevel function of bCNC in fact allows to detect a depth map. You can find more details about this function here :

In my case, not having a driver for the fourth axis, I connected the X axis to the motor responsible for the movement of the egg. The detected map must be read considering that the X axis indicates the angle of the egg.

The video shows the mapping and the bCNC windows filling the map in real time.

Step 6: Generating the GCODE of the Photo

First of all you have to select a photo suitable to be engraved. I suggest to have a black background as the laser etching make the egg white.

I have deformed the photo , to adapt it to the egg proportion by enlarging the top and the bottom, from the picture it should be clear what I mean.

For generating the GCODE you can use LaserGRBL (, it is free and it seems to produce good results. In the picture you can see the settings I used.

Remember to invert the picture before generating the GCODE !

Step 7: Prepare Your Egg

Of course it's better to have the egg empty, you just need to cut two holes on the egg axis, one for the air input, the other for the output of yolk and white :-)

I used my proxxon drill to make two small slots, useful to fit a wood stick in it.

Then, in order to get a decent contrast I painted the egg black. I used an airbrush that I normally use for my various hobbies.

Step 8: Engrave the Egg

We are ready for engraving the egg. Just load the Gcode on bCNC and press start. See the video (about ten time faster then the reality).

Step 9: Results

Here you can see some results, I find quite impressive the dynamic of the grey rendering. Look at the levels of gray in Carl Fredricksen's nose. Interesting, isn't it?

There are also a couple of vector based eggs, both using seamless patterns.

CNC Contest 2020

Participated in the
CNC Contest 2020