Introduction: CNC-machined Wooden Egg Speakers

To many people, a speaker is nothing more than a cheap piece of equipment they place somewhere on their desks so they can listen to some music or videos - not caring about looks or sound quality of the speaker whatsoever.

For other people, however - me included - a speaker is something that needs to be a great-looking design piece catching attention on the desk and the components for it are carefully selected and its dimensions precisely calculated for an optimal listening experience.

Quite a while ago, I saw a video about the Munro Sonic Egg 100 egg-shaped speakers on YouTube and ever since I had this crazy idea in my head, but was lacking the capabilities to make something similar.

A few weeks ago, however, I finished building my new CNC router and thought that the egg-shaped speaker would be an absolutely great way to explore the capabilities of my machine and learn many new techniques in CAD and CAM.

Follow along to see how I designed and manufactured this unique set of speakers...!

Supplies

  • CAD and CAM software (I used Autodesk Fusion 360 as an all-in-one solution)
  • CNC router
  • 3D printer
  • approx. 5x 800x200mm boards of Acacia wood
  • a pair of Dayton Audio RS100 speaker drivers
  • speaker terminals
  • 12 screws
  • some epoxy and CA glue

Step 1: CAD With Autodesk Fusion 360

In the following section I will be describing the process of designing and constructing my egg-shaped speaker box in the CAD section of Autodesk Fusion 360. Each step described is accompanied by an image in the image section of this step.

  1. Add an egg shape image as canvas on the xz-plane and create sketch
    • To begin with, I want to create the basic outer shape of the speaker - an egg. For this purpose, I download an image off the internet which shows how an egg is shaped (actually pretty complicated geometrically) and import it into Fusion 360 as a canvas ("INSERT"->"Canvas"). I put the canvas into the xz-plane and scale it as required - in my case I want my speaker to be 175mm wide at its widest point.
    • Next, I create a new sketch in the same xz-plane and trace the outline of the canvas using two circles and a Fit Point Spline.
    • Additionally, I add a vertical line down the middle which will become important in the next step.
  2. Revolve the sketched geometry
    • At this point it is time to make a 3-dimensional body from the previously made sketch. With the revolve tool ("CREATE"->"Revolve") I select the area defined by the circles, the spline and the vertical line as the Profile and the vertical line itself as the axis of rotation.
    • The previously sketched half-egg now gets revolved around its axis of symmetry a full 360°, forming an egg-shaped body.
  3. Defining the front baffle and rear plane
    • In order to create a flat spot (the so called front baffle of the speaker) on the front of the egg where the speaker driver and bass port can be mounted, I need to cut off a piece of the egg. To do that, I first construct an offset plane ("CONSTRUCT"->"Offset Plane") which is offset from the xz-plane (the center of the speaker) by a specific amount.
    • How large the offset needs to be depends on the diameter of the speaker driver used. Since my Dayton Audio RS100 has an outside diameter of roughly 98mm, I decide to construct the Offset Plane with an offset of 55mm from the center.
    • Additionally, I would like to have a flat area on the back of the speaker, where the speaker wire connectors can later be mounted. To cut off that part of the egg, another Offset Plane is required. Its position can be varied as well, however, since the stock material I am using has a thickness of 18mm, I offset this plane by a multiple of 18mm - in my case 7x18mm=126mm - from the previously constructed front baffle plane.
    • Lastly, the Split Body tool ("MODIFY"->"Split Body") is used to part off the sections. Within the tool, the egg-shaped body is selected as the Body to Split and the two previously created planes are selected as Splitting Tools.
  4. Creating a hollow body
    • Right now, the egg-shaped body is still an entirely filled body. For it to function as a speaker box, however, the inner volume needs to be hollowed out. Using the Shell tool ("MODIFY"->"Shell") makes this step really simple. I just select the entire egg-shaped body within the Shell tool and choose an inside thickness of 10mm. Done.
  5. Speaker and bass port cutouts
    • The last major features missing at this point are the cutout for the speaker driver as well as an opening for the bass port. To create these, I simply add a sketch to the previously created front baffle, make a 3mm deep and 98mm diameter recess ("CREATE"->"Extrude") and a cutout for the speaker driver. Above it, I also extrude a 35mm hole into the front baffle which the bass port will later be attached to. I add a large fillet so the opening flares out evenly and doesn't have a sharp edge.
  6. Slicing the speaker box up
    • Since the speaker will be made up of individually CNC routed layers of Acacia wood, the CAD model needs to be sliced into these layers. Similar to the process described in (3.), I create 6 Offset Planes, using the front baffle as the reference plane. The chosen offset for each plane is (1,2,3,4,5,6)-times 18mm.
    • After all Offset Planes are created, I use the Split Body tool ("MODIFY"->"Split Body") again, to choose the Body to Split and all previously created planes as the Splitting Tools.

At this point, the outer shape of the wooden egg-shaped speaker is fully designed and the speaker box has been split into slices which are ready to be further processed in Autodesk Fusion 360 to make them ready for manufacturing.

Step 2: CAM With Autodesk Fusion 360

In the previous step I described, how I designed the main body of my egg-shaped wooden speakers. Now it is time to get the CAD model ready for manufacturing on my CNC router and since Autodesk Fusion 360 comes with its own CAM tool, I can stay within the same program to do everything that still needs to be done which I really like! Again, the image section of this step contains images, showing details of what I describe in words in the following section.

Preparing the manufacturing CAD model

  1. Moving slices to new Fusion 360 model
    • In order to make setting up the toolpaths for manufacturing of the 7 individual wooden slices easier, I decided to copy the slices from the previously created CAD model into a new file. To do that, I opened a new file in Fusion 360 and used one new Base Feature ("CREATE"->"Base Feature") for each slice. I placed all the slices next to each other, on the xy-plane and with enough space between them to add some auxiliary sketches.
  2. Adding auxiliary sketches
    • To help with setting up the CAM setups and toolpaths later on a few sketches are needed. First of all, I add a sketch to the bottom of each speaker slice with a rectangle of 200mm in width (width of stock) and the required minimum length with the slice centered within it.
    • Another feature in the sketch are the two circles, 10mm in diameter, 185mm apart over the stock width and centered along the length. These circles will become the holes for two locating pins, allowing accurate rotation of the stock material for the two-sided CNC operations.
    • The last feature on this sketch plane is a point in the center of the aforementioned rectangle. This point is right inbetween the two circles and will become the first stock material origin in the CAM setup.
    • A second sketch plane is added on the opposite side of each speaker slice. This sketch only contains a projection of the point I just created in the first sketch and will become the stock origin in the CAM setup of machining the second side.

CAM setups and operations

The required setups and operations for each of the 7 slices are very similar. I will therefore describe on exemplary setup. To make my life easier during manufacturing, I decided to program every single operation with the same tool; a 6mm 2-flute cutter made for machining wood. This saves me from having to re-zero my machine z-axis after every toolchange and will make machining go much quicker and more automatic. With fine enough step-downs, the curved surfaces have an amazing finish right out of the CNC machine and sanding after assembly will be required anyways.

  1. First machining setup
    • To configure the first machining setup, I switch from the Design section of Fusion 360 over to the Manufacture section. I then add a new setup, which includes choosing the "Fixed size box" type of stock material. The size corresponds to the size of the respective rectangle I chose in each of the auxiliary sketches previously.
    • In addition to the stock size, the setup origin needs to be set. I choose the sketch point in the same sketch as the rectangle on the bottom of the slice - bottom meaning, that the z-axis needs to be pointing upwards "through" the speaker slice.
  2. Locating holes: 2D Pocket
    • The first operation on the first setup involves cutting a 2D pocket which will be used to re-locate the stock material for the second machining setup of each speaker slice.
    • As the geometry for the 2D Pocket operation, I select the two 10mm circles in the sketch on the bottom of the stock material.
    • Generally, I choose -0.25mm from the Selected Contour as the Bottom Height (to make sure I'm just barely but definitely all the way through the material) for this operation. The only exception to that is the setup for the very first speaker slice. In that case I choose a Bottom Height of -10mm in order to have my CNC machine cut the locating holes into my waste board, which I can insert some dowel pins into when flipping the stock material to the second side.
  3. Inside pocket: 3D Adaptive Clearing
    • During the first setup, generally the inside of the speaker is supposed to be hollowed out. To do this, I chose a 3D Adaptive Clearing operation.
    • Machining boundary: Selection - the inner perimeter of the speaker slice on the top of the slice with the tool inside the boundary
    • Bottom height: 0.2mm from the Model bottom - this is to avoid machining away a large area of my waste board, which would change the bottom height of the stock material for later operations seen within the absolute coordinate system of the machine. This way, a thin layer of wood either stays in place and can be removed afterwards easily, or as most of the time, it rips out cleanly during machining
    • Fine Stepdown: 0.5mm - this was in my opinion the sweet spot between visibility and roughness of the curved inner profile and machining time. Since the inner volume of the speaker won't ever be seen, this does not need to be picture perfect and I really didn't want to waste too much machining time on it.
  4. Second machining setup
    • Each speaker slice also involves a second machining setup, which is required to machine all features which can only be reached from the bottom of the stock material - namely: the outside curved surface of the egg-shaped speaker box.
    • Stock size and settings are the same chosen for the first machining setup above.
    • The difference is in the setup origin. I am planning to flip the stock material along the y-axis of my machine - this is the line going up and down the stock material right inbetween the two locating holes that were routed as the first operation. As the setup origin, I choose the single projected sketch point on the other side of the speaker slice model. The y-axis needs to point in the same direction as it did in the first machining setup, while the z-axis and the x-axis will be pointing in the opposite direction.
  5. Clearing space for the tool: 2D Contour
    • In order for the subsequent operation defining the pretty looking outside surface of the speaker, I found it best to clear away some material first using a 2D contour. This saved me from having frequent "Crashes between stock material and the tool" which happens with Adaptive toolpaths to me quite regularly
    • Geometry: As the contour to be used I select the large outside perimeter of the speaker slice on the bottom of the model
    • Bottom Height: 2mm from the Selected Contour - I want 2mm of wood to stay in place along the entire perimeter, which will keep the part from breaking loose prematurely during machining
    • Stock to Leave: 2mm Radial, 0mm Axial - by setting a 2mm radial stock to leave, I make my CNC machine route a slot which is offset outwards by 2mm. This will make a lot of sense during the next operation
  6. Machining the outer curved surface: 3D Adaptive Clearing
    • This is probably the most critical operation of the whole project because it defines the outer appearance of the egg-shaped speaker. Since the outer surface is 3d-curved, I chose an Adaptive toolpath again.
    • Machining boundary: Silhouette, tool outside boundary, 2mm additional offset - allowing the tool to go up to 2mm outside of the model silhouette is only possible because the stock material in that area was cleared out during the previous contour operation. This offset allows the tool to enter the stock material to be removed from the outside, without accidentally plunging into the stock material at full depth.
    • Bottom Height: again, 2mm from the Model bottom - this is still because there needs to be remaining material in order to prevent the speaker slice from breaking loose
    • Fine Stepdown: 0.15mm - this stepdown is much smaller than the one I chose for machining the inner surface, because this time, any stairstepping left after machining will need to be hand-sanded away and I really wanted to make that as easy on me as possible! A stepdown of 0.15mm was again the sweetspot for me between machining time and effort required afterwards.
  7. Cutting the slice loose: 2D Contour
    • Another 2D Contour operation brings the in general required operations to the end. Since all the features have been machined at this point, I can finishing cutting the slice out of the stock material.
    • Geometry: The same outside perimeter selected in (5.)
    • Tabs: Triangular, 15mm width, 2.25mm height, placed manually at 8 positions around the perimeter - this keeps the finished slice from being able to move and accidentally be hit by the tool which would ruin the pretty surface finish.
    • Bottom Height: -0.25mm from the Selected Contour - this is to make sure that I am all the way through the stock material
  8. Special cases
    • The (7) steps described above were required for every single one of the seven speaker slices.
    • In addition to these operations, only the front baffle required some special operations which I had to program in order to route out the recess for the speaker driver and the flared-out bass port.
    • The recess was done with two simple 2D Pocket operations, the bass port with an additional 3D Adaptive Clearing operation

Time to finally move on to machining...!!

Step 3: Machining of the Egg-slices

Preparing the raw stock material

According to the sketched and programmed stock sizes for each of the seven speaker slices, I cut sections off of the large 800x200mm 18mm-thick Acacia boards so the pieces would fit onto the worksurface of my CNC router.

I quickly sanded off the oil-finish that is applied to the boards by the hardware store for the pieces that would later become the front baffle and rear section of the speaker since their surfaces would be the ones seen from the outside of the speaker later on.

Machining, machining, machining

The total machining time for each speaker is roughly 9 hours with a feedrate of usually 2000mm/min for the adaptive toolpaths and 1500mm/min for the slotting operations with a maximum stepdown of 3mm.

Not everything went perfectly, I had to re-do two of the slices because my machine screwed up, but apart from that, the machining part was relatively incident-free.

The most annoying part was that during machining of the first speaker, my dust collector died and I was in need for some spare parts. Unfortunately I couldn't wait for them to arrive because I had to meet the deadline of the CNC Contest here on Instructables, which is why you will see a huuuuuuuge pile of dust building up inside my CNC enclosure!!

Step 4: Assembly of the Individual Slices

With a chisel I am easily and quickly able to break the tabs that are still connecting the machined speaker slice with the remaining stock material. At this point I make the decision that it will be safer to leave the small leftovers from the tabs in place for now and clean them up later in order to reduce the risk of splintering out a section of wood that should've stayed in place and end up with a dent in the outside surface of the egg.

Therefore, it is time to get out the woodglue and some clamps. Before applying the glue, I rough up the mating surfaces with some coarse sandpaper so they will bond better.

In order to get an accurate result, I glue up the slices in pairs so that there's only one "wet" glue joint at the time moving around. This makes the process take a bit longer, but save me from having to do a lot more smoothing out of inaccuracies later.

Step 5: Finishing the Outer Surface of the Egg

After the glue has dried, I start with cleaning up the outer surface of the speaker box.

Firstly, I use the chisel again to finish removing the tabs required while machining and evening out other rough spots. Next, it is time to get to sanding. Since the surface of the egg is rounded in all directions, this unfortunately needs to be all done by hand. I start out with some rough 80-grit sandpaper, then move on to 240-grit and finally go over everything once more with 400-grit sandpaper to get an incredibly smooth surface.

At this point, it's time for one of the most satisfying steps of all woodworking projects: applying finish. In this case, I use some simple wood oil from the hardware store. Just check out the before-and-after pictures, how amazingly the different wood grains pop after applying the oil!

Step 6: 3D Printing the Bass Port and Other Accessories

Now that the egg-shaped body for the pair of speakers is all built, I can move on to some of the details still missing.

First of all, there is the bass port. In the front baffle of the speaker I have made a flared-out hole with a diameter of 35mm. In order for this to actual function as a bass port, there needs to be a pipe behind the opening which needs to be tuned to a specific, speaker driver dependent, resonance frequency by making it the right length.

Since the inside of this pair of speakers is egg-shaped just like the outside, it's a bit awkward to fit a straight pipe in it. For that reason I decided it would be best to 3D-print the bass port since I would be able to make it the exact shape required.

Using the fully assembled CAD model of the speaker I made at the beginning of the project, I added a new sketch plane down the middle of the speaker vertically. On that plane, using the Fit Point Spline tool ("CREATE"->"Fit Point Spline"), I sketched a path of 250mm length which follows the profile of the inside of the speaker box nicely. Next, I created a new sketch on the inside of the front baffle, projecting the port opening onto it and adding a 2mm offset circle around it. I then sweeped ("CREATE"->"Sweep") this ring profile along the previously drawn spline. Lastly, I had to make the decision to split the full 250mm length into two sections and print them independently, because otherwise I would not be able to install the entire pipe through the speaker driver opening in the front baffle of the already fully assembled speaker box.

After printing, I glued the upper section in place on the inside of the front baffle first and then after the glue had set, I attached the lower section to the upper one with more glue. Not quite ideal, but it'll do the job I think.

Additionally, I wanted to attach the speaker driver to the egg-shaped box with 6 black M4 screws instead of doing it the way I had done it on my previous speaker builds, using spray-painted wood-screws. Since the metric screws would require some nuts from the inside of the speaker, I quickly designed a circular "nut trap" piece.

One thing I really like about Fusion 360 also is how easy the process from idea to reality is using a 3D printer. The 3D model of the bracket was done in about 2 minutes, then I simply right-click on the body and choose "Save as STL". In the pop-up dialog the slicer program Cura is already pre-set and a click on okay launches Cura with the 3D model on the build plate. Usually the slicer settings from the previous print are still valid, so I can immediately save the GCode file for the 3D printer, then upload it to the Raspberry Pi attached to my Creality Ender 5 3D printer over Wifi and start the print right from the browser. A few minutes later the part is ready to be taken out of the printer. That's what makes rapid prototyping soooo fun!!

I glue the 6 M4 nuts into the pair of 3D printed half-circles with some CA glue and then attach the whole assembly to the inside of the speaker with a bit more glue.

Almost there... home-stretch!

Step 7: Wiring the Speaker Drivers

Before I can actually put the speaker drivers in place there's one last thing missing: some speaker wire connectors in the back. I quickly drill two holes through the back of the two speakers and thread the connectors through. From the inside, I then solder a section of speaker wire to the two connectors.

At this point, everything that needs to go there has been installed inside the speaker and I can finally close it up. After soldering the other end of the speaker wire to the terminals of the Dayton Audio RS100 speaker driver, I screw it in place with 6 black M4 bolts.

Step 8: Making a Speaker Base

As I am sure you are well aware, an egg really doesn't like standing upright on its own. That means that my egg-shaped speakers will require some sort of base they can sit on.

To design this base, I went back to the assembled CAD drawing of the egg-shaped speaker in Fusion 360 and constructed a new plane below the speaker with a 10° angle so that the speaker would later be angled back a bit and therefore point right at me, sitting at my desk.

On that plane, I sketched two circles, one with a diameter of 100mm, the other one inside of it with a diameter of 80mm. I then extruded that ring upwards, towards the bottom of the speaker until the entire outer perimeter of the ring touched the speaker, making sure to choose New Body as the option in the Extrusion tool. Using the Combine tool ("MODIFY"->"Combine"), I selected the ring body I just made as the Target Body and all 7 speaker slices as the Tool Bodies. Additionally, I set the operation mode to cut and made sure to check the Keep Tools box.

With this step, the ring body parts intersecting with the speaker box itself are removed and I am left with a perfectly shaped ring which will allow the rounded bottom side of the egg to sit in securely.

Now originally I had planned to cast this speaker base from concrete. To do that, I modeled the negative of the speaker base body, printed it on my 3D printer and cast some regular concrete in that mold. Unfortunately, the concrete shattered when demolding it and for deadline-reasons I wasn't able to try again. Since having a concrete base should have some significantly positive effect on the accoustic decoupling between the speaker and the surface it is sitting on, I am planning to retry the molding process in the near future.

For the meantime however, I simply printed two of the speaker bases from black ABS on my 3D printer and they have proven to work very well already!

Step 9: The Result

Finally, I have made the speaker from my imagination into a reality. Even though quite a bit of work with chisel and sandpaper was required to bring this project into its beautiful final state, only the use of CNC-controlled machines like my CNC router and 3D printer have made this possible.

Being able to use a CAD software like Autodesk Fusion 360 to model a 3-dimensional object and then sending the digital model to those machines, capable of either additive or subtractive manufacturing techniques and seeing the model come to life is so much fun!

I am very happy with the sound quality of this new pair of speakers and as far as their look goes, they have exceeded my expectations.

CNC Contest

Judges Prize in the
CNC Contest