Introduction: 3D Printing a Stealth Home Theater

Kids playroom by day, home theater by night.

We love to watch movies in the kids playroom at night on a projector with a pull-down screen. We recently decided to add surround sound to make it even more awesome. Our goal was to create the best, most immersive movie experience possible without putting ugly speakers everywhere.

In the end we were able to 3D print our way to a 5.1.2 Dolby Atmos home theater. All of the speakers are finished with gray fabric that blends with the white walls. The speakers were designed in Tinkercad. SpeakerSim, WinISD, and Xsim were used for the electrical and acoustic design. In-room testing was conducted using Room EQ Wizard (REW). All software used in the creation of the speakers is available for free.

This Instructable shows how to build the 3 kinds of speakers used in the home theater. The main speakers are more traditional boxes, but are small enough to fit inconspicuously inside a 9 1/2" deep bookshelf. The surround speakers are extremely shallow rounded squares designed to mount flush against a wall. The overhead speakers can be mounted on a wall against a ceiling.

The CX120 main speakers can be made for just over $100/each. The TEBM46 surround speakers can be made for about $50/each. The total cost of this build is about $500, extremely competitive for a complete 7-channel surround sound system.

The speakers can even be mixed and matched as needed. For a cheaper, lower profile system, you can use the TEBM46 surrounds all around. For a more powerful system for a larger room, you can use the CX120 speakers all around.

Read on for more!

Supplies

Bill of Materials for 3 CX120 Main Speakers + 2 TEBM46 On Wall Speakers + 2 TEBM46 Corner Mount Speakers

The total cost for all seven speakers is approximately $500:

3 x Dayton Audio CX120-8 4" Coaxial Driver with 3/4" Silk Dome Tweeter 8 Ohm - $33/each

3 x Dayton Audio DNR-1.2 1.2 Ohm 10W Precision Audio Grade Resistor - $1.50/each

3 x 4.0uF 100V Electrolytic Non-Polarized Crossover Capacitor - $0.67/each

3 x Jantzen Audio 1.0mH 15 AWG P-Core Inductor Crossover Coil - $18/each

4 x Tectonic TEBM46C20N-4B BMR 3" Full-Range Speaker 4 Ohm - $21/each

8 x ZIRO PLA Marble Filament 1.75mm,3D Printer Filament PLA 1.75mm Marble Color 1KG(2.2lbs),Marble - $22/roll

1 x Flushbay Speaker Grill Cloth Linen Speaker Fabric Protective Dustproof Mesh Cloth Stereo Fabric Replacement for Home Speakers, Media Cabinet, Stage Speakers, KTV Boxes Repair 19.7’’x57.5’’(Light Grey) - $14

1 x Bullz Audio BPES16.25 25' True 16 Gauge AWG Car Home Audio Speaker Wire Cable Spool (Clear Red/) - $7

1 x SMARTAKE 100 Pcs 10 x 2.6 mm Refrigerator Magnets, Small Round Fridge Magnets, Multi-Use Premium Neodymium Office Magnets for Fridge, Whiteboard, Billboard in Home, Kitchen, Office and School (Black) - $16

1 x Hilitchi 40 Pcs Binding Posts Terminals 4mm Banana Plug Socket (20pcs) + Red and Black Gold Plated 4mm Banana Plugs(20pcs) for Arduino - $13

1 x Fairfield Poly Fil Premium Fiber Fill, 32-Ounce - $13

1 x Parts Express #6 x 3/4" Deep Thread Pan Head Screws Black 100 Pcs. - $5

1 x Sutemribor 320 Pieces M3 Stainless Steel Button Head Hex Socket Head Cap Bolts Screws Nuts Assortment Kit + Wrench - $11

Not included in the BOM above, but required for assembly:

3D printer with a 24 cm x 20 cm print bed, 3D printing tools, CA glue (super glue), solder, soldering iron, wax paper, weights, needlenose pliers, phillips screwdriver, sharp scissors for cutting grill cloth, a small piece of 1/8" thick hardboard for mounting crossover components, zip ties, drill + bits, wood clamps

Not included in the BOM above, but required for a complete Dolby Atmos home theater:

5.1.2 channel home theater receiver (Denon, Yamaha, and Onkyo are all popular budget brands), subwoofer, power strip for electronic components, 100+ feet of speaker wire terminated with banana plugs, cable hiding solution, HDMI cables, TV or projector and screen, video source

Step 1: Front Channel Speaker Design

All three of the front speakers are the same design to ensure that the front soundstage is acoustically seamless. Of the three speakers the center channel has the most design constraints:

  1. It must fit in a 16" gap below the bottom of the pull-down screen, but be high enough off the floor such that it doesn't get muddied by sound reflections off of the floor. The final design can fit in a gap of 5".
  1. The speaker must sound the same horizontally and vertically. This meant either using a single full-range driver, a coaxial two-way driver, or a single midrange closely spaced to the tweeter.
  1. The speaker must have bass extension down to 80 Hz for integration with a separate subwoofer. This requires a certain internal volume for the enclosure, plus additional volume for the drivers, crossover network, bracing, and ports.

Speaker Driver Selection

For speaker drivers I went to the Parts Express website and downloaded .frd and .zma files for all of the 3-4" speakers I could find. I loaded each driver into the excellent free SpeakerSim Speaker Simulation Software. Here I was able to generate a model of potential speaker designs in a simulated room and get an idea of how the sound would change as I combined different woofers, tweeters, crossover electronics, and speaker placement. For the front speaker I chose the Dayton CX120-8 coaxial driver. An 80 Hz-capable vented enclosure with this driver can made made small enough to fit onto my 3D printer. The coaxial driver acts as a natural waveguide to control dispersion, which is important for both the center and the right channel to minimize reflections off of the floor and right wall.

Crossover Design

The CX120-8 speaker has both a 4" paper cone woofer and a 3/4" silk dome tweeter housed in a single frame. It doesn't come with a crossover, so we will build one from scratch. After experimentation and listening tests the crossover was simplified to a single 1 mH inductor for the woofer, and a 1.2 Ohm resistor in series with a 4 microFarad capacitor for the tweeter.

Mechanical Design

In order to extend down to the 80 Hz crossover frequency the woofer needs to be placed in a ported enclosure. WinISD showed that this could be accomplished with a 3.2 liter internal volume, aided by a 1.2 cm wide x 12 cm tall x 22 cm long slot port wrapped inside the enclosure. Using Tinkercad, an enclosure was created with rounded edges that could be 3D printed on a Prusa Mk3 print bed. The design is 3D printed in three parts: body, lid, and grill.

Simulated Performance

The following plots are shown above:

  1. In-Room Frequency Response Plot - The predicted in-room frequency response isn't perfectly flat. It has a smile-shaped curved with a dip between 1000-2000 Hz, and a rising high end. Fortunately, this should be easily corrected using an AV receiver's equalization to bring the high frequencies down.
  2. Cone Excursion Plot - Cone excursion will likely be the limiting factor when this speaker is played loudly. It is important to listen to make sure that you aren't overdriving the woofer.
  3. Impedance Plot - At a minimum impedance of 6 ohms, this will be an easy speaker to drive for any amplifier.
  4. Port Calculator - The port has a maximum airspeed of > 18 m/s only below 80 Hz. Since the subwoofer will be handling lower frequencies this speaker shouldn't audibly "chuff" through its port.

Step 2: 3D Printing the Front Channel CX120 Speakers

The left, center, and right channel speakers are the biggest prints of this project. They need a 3D print bed size of at least 24 cm x 20 cm. They will print on a Prusa Mk 3, but not on an Ender 3. Please see the STL files included at the bottom of this step.


For this step you will need:

  • A 3D printer with a print bed of at least 24 cm x 20 cm
  • 2 x 1 kg rolls of filament (1 full roll for CX120 base.STL, CX120-grill.stl, and m3screwplugX15.stl, plus another 300 g for CX120 Lid.stl)***


BASE:

Dimensions: 230 mm x 190 mm x 125 mm

This is a big print! The main enclosure assembly takes 72 hours and 900 grams of filament at 30% gyroid infill. You will need a printer that is reliable enough to handle a large job. Be sure to put on a fresh 1 kg spool for each new speaker base that you print.

Print without supports, raft, or brim for a clean finish. Removable supports are built in to the STL file for the speaker driver hole. I printed the base and lid with extra thick layers on top and bottom for extra rigidity.


LID:

Dimensions: 230 mm x 190 mm x 8 mm

This is a smaller print, but it still takes about 10 hours and 300 grams of filament. It should be printed top down to ensure that the mating surface has a clean finish and fits well with the main enclosure.

Print without supports, raft, or brim.


GRILL:

Dimensions: 200 mm x 130 mm x 5 mm

The grill can be printed light and fast, but still at a 0.20 mm layer height to ensure the magnets slide into the slots. It should print in just a few hours with less than 100 grams of filament. The print's appearance doesn't matter. The grill will be wrapped with speaker grill cloth.

Print face down without supports, raft, or brim.


SCREW PLUGS:

Dimensions: 8 mm diameter x 3.4 mm high

You will need 15 of these plugs per speaker to cover the M3 screws used to secure the lid to the base. They are tiny so print a few extra!

Print face down without supports, raft, or brim.


I used Ziro Marble PLA because it looks great and minimizes layer lines. It also blends with the decor in my living room.


***3 speakers can be printed with 4 rolls of filament.

Step 3: Cleaning Up the 3D Prints of the CX120 Speakers

For this step you will need:

  • 3D printed base and lid for CX120 enclosure
  • tools for cleaning up a 3D print: sidecut pliers, scissors, small files, hot glue gun or old junky soldering iron, dental tools


When you pull the 3D printed speaker base off of the printer you will first need to remove the supports for the speaker driver hole. Scrape away excess material and make the hole round enough to fit the CX120-8 driver in the slot. I used a pair of side cut pliers to scrape and a junky old soldering iron to melt any flaws away.

Try inserting the driver in the hole. It probably won't fit initially, so be patient and remove material slowly until it fits. Once you have verified that the driver will fit, remove the driver and perform the next step.

NOTE - Fluctuating temperatures and high humidity over the 73 hour print time caused my final enclosure to warp and string while printing. The print didn't fail, but it turned a perfect circle into an oval. I used a Dremel to trim away more than 2 mm of material from the bottom to fit the driver.

Step 4: Add Magnets to Speaker Base

For this step you will need:

  • 3D printed base and lid for CX120-8 enclosure
  • (4) 3 mm x 10 mm diameter neodymium magnets
  • (4) additional magnets to hold the installed magnets in place while glue dries
  • CA glue ("super glue")


WARNING - If you place magnets without paying attention to orientation you won't be able to attach the magnetic grills. Be careful with this step!

If you have a compass, use it to find the "North" side of your stack of 3 mm x 10 mm diameter magnets. Mark the North side for future reference. If you don't have a compass, pick a side of the stack and carefully mark it for future reference. You will be using 12 magnets per speaker, and all of the magnets need to be aligned when installed.

  1. Add a dab of CA glue in each magnet slot (a total of 4 slots) on the front of the 3D printed speaker base.
  2. Insert one magnet in each slot, verifying that the "North" or marked side is facing out.
  3. Immediately put another magnet on the outside of the speaker to hold the internal magnet in place while the glue dries.

Step 5: Solder Wires to CX120 Speaker Drivers and Binding Posts

For this step you will need:

  • spool of speaker wire
  • side cutters
  • wire strippers
  • solder
  • soldering iron
  • CX120-8 driver
  • one pair (red and black) binding posts


  1. Cut and strip three 10" lengths of speaker wire.
  2. Solder one set of wires to the woofer driver terminals. Red = positive, black = negative.
  3. Solder one set of wires to the tweeter driver terminals.
  4. Solder one set of wires to the tabs on a pair of red and black binding posts.

Step 6: Install CX120 Speaker Driver and Binding Posts

For this step you will need:

  • 3D printed base with magnets installed
  • CX120-8 driver with wires attached
  • one pair of binding posts with wires attached


  1. Once the magnets are in place and the glue is dry, you can insert the CX120-8 driver into its hole. Use #6 pan head wood screws to hold secure the driver in place.
  2. Unscrew the binding posts, press fit them into the back of the 3D printed base, then secure them in place with the provided hardware. Be sure your red wire is attached to the red terminal, and the black wire is attached to the black terminal.

Step 7: Assemble the Crossover

For this step you will need:

  • 110 mm x 90 mm x 3 mm (1/8") thick piece of hardboard
  • pencil or pen
  • drill with 1/8" drill bit
  • needlenose pliers
  • side cutters
  • (8) 4" zip ties
  • 1.0 mH inductor
  • 4.0 microfarad capacitor
  • 1.2 Ohm resistor

To mount the crossover you can use any material you like, just as long as it is 1/8" thick and a 90 mm x 110 mm rectangle. The exact dimensions aren't critical, just as long as you are within a few millimeters either way. I had a large sheet of hardboard that I cut down with a jigsaw to make boards for all three speakers.

  1. Mark an 80 mm wide section in the middle of the board in pencil (see photo). This is where the electronic components will go.
  2. Layout out the capacitor, inductor, and resistor as shown in the photos.
  3. Mark and drill mounting holes for the zip ties.
  4. Attach zip ties, inserting components into zip tie loops. Pull the zip ties tight with pliers, then trim the extra zip tie material with side cutters.
  5. Solder the one resistor lead to one capacitor lead.
  6. Solder the other resistor lead to one inductor lead.

The crossover board is complete and ready to install!



Step 8: Solder the Crossover to the CX120 Speaker

For this step you will need:

  • soldering iron and solder
  • completed crossover board
  • speaker with drivers and binding posts installed

The crossover will redirect the signal from the binding posts to the woofer and tweeter. The woofer will get the low frequencies filtered by the inductor. The tweeter will get the high frequencies filtered by the capacitor.

In the photo the tweeter wires are on the left, and originate from the hold in the middle of the CX120 magnet. The woofer wires are on the right.


  1. The black wire coming from the black binding post will need to be split out to the black wires of the woofer and the tweeter. To do this you will need to solder the tips of all three black wires together.
  2. The red wire from the red binding post will need to be split to the capacitor and inductor. The easiest way to do this is to simply solder the red binding post wire between the inductor and the resistor. (see photo)
  3. Solder the red wire from the tweeter to the free lead on the capacitor.
  4. Solder the red wire from the woofer to the free lead on the inductor.
  5. Test the system by attaching your speaker to your AV receiver on a LOW VOLUME. If the speaker sounds terrible now it might be because you have the red woofer wire attached to the capacitor and the red tweeter wire attached to the inductor. If so, desolder the wires and resolder them correctly.

Step 9: Assemble the CX120 Speaker

For this step you will need:

  • speaker already soldered to crossover board
  • 3D printed lid
  • 0.5 lbs of poly fill stuffing
  • mallet
  • wood block for tapping things into place
  • (15) M3 screws
  • (15) 3D printed screw plugs
  • screwdriver

WARNING - Test your speaker often to make sure it sounds as it should. With the lid off you will hear very little bass. With the lid on tight the bass should become rich and full. If it doesn't you might have made a mistake in your crossover.

  1. Slide the soldered crossover board into its slot.
  2. Stuff the speaker with poly-fill as shown, keeping the fill away from the port slot.
  3. Use a mallet to gently tap the lid into place.
  4. Use M3 screws to screw the lid tight.
  5. When you are happy with the sound, press fit the screw plugs into place to cover the screws.

Step 10: Add Magnets to Grill

For this step you will need:

  • 3D printed grill
  • (8) 10 mm diameter x 3 mm thick neodymium magnet marked with "North" direction
  • CA glue (super glue)

WARNING - It is critical that you glue the magnets into the grill in the correct orientation. If not, the grill will not attach to the speaker.

  1. Add a dab of CA glue in each magnet slot (a total of 4 slots) in the slots in the grill.
  2. Before inserting each magnet, ensure that it is aligned and will stick to its corresponding magnet in the speaker grill base.
  3. Insert one magnet in each slot, verifying that the "North" or marked side is facing out.
  4. Immediately put another magnet on the inside face of the grill to hold the internal magnet in place while the glue dries.

Step 11: Cover the Speaker Grill

For this step I recommend following the instructions in the "Cloth Covers For 3D Printed Speaker Grills" Instructable. The photos above show each step of the process.

Step 12: CX120 Speaker Complete!

Congratulations!

This is the biggest speaker and the most difficult build. If you are like me you built 3 of these for your left, center, and right channels. They can also be used as surround speakers on stands if you would like all of your speakers to match.

Step 13: Surround Speaker Design

The four surround speakers use the same wide-dispersion BMR driver to provide uniform sound even when you are sitting way off axis. This is critical for our space because we need speakers that can be mounted flush to the wall almost directly above the couch.

I used Tinkercad to create two physical designs using the same Tectonics TEBM46 BMR speaker driver. The two designs are very similar acoustically. They have the same internal volume of 0.85 liters, with an 18 cm long port with a cross section of 8 cm^2.

The "On Wall" TEBM46 is a 7.5 inch x 7.5 inch x 2 inch deep rounded square. The corner-mount TEBM46 is designed to fit between a soffit and a wall and is used as an overhead speaker in our room. It is 9 inches long and will take up about 5 inches of linear distance on the wall and ceiling. Both designs have integral keyhole mounts for #6 wood or drywall screws. There is zero gap between the speakers and the wall when mounted.

According to WinISD models both designs should have a frequency response of 110 Hz - 20,000 Hz. They are larger than many "home theater in a box" surround speakers, but they can play lower and have a sound that belies the size of their tiny speaker driver. The TEBM46 driver has a very respectable efficiency of 88 dB / 1 Watt. This is a great match for the CX120 main speakers. The TEBM46 is only 4 ohms, so it will play louder at a given setting on the volume knob, so it will be necessary to run the AV receiver's automated speaker calibration to bring the surrounds down to the same volume as the main channels.

Because they use a single speaker driver with a flat frequency response they don't need a crossover or filter. This keeps the costs way down. A single TEBM46 speaker can be made for about $50.

Step 14: 3D Printing the Surround and Overhead Speakers

The surround and overhead speakers are smaller than the main speakers, but they still require about 2 days of printing time and over a half spool of filament. The On Wall version can be printed on an Ender 3, requiring a print bed of 20 cm x 20 cm. The Corner Mount version needs a bigger print bed of at least 24 cm x 20 cm. I used my Prusa Mk3 for both speakers.

For this step you will need:

  • A 3D printer with a print bed of at least 24 cm x 20 cm for the Corner Mount or 20 cm x 20 cm for the On Wall version
  • 1 kg roll of filament (a little over half a roll for each speaker, plus another 100 g for its grill)

Print with a layer height of 0.20 mm to ensure the correct hole size for the grill magnets. I used gyroid infill with extra thick walls and top and bottom layers for rigidity.

Step 15: Add Magnets to Speaker

For this step you will need:

  • 3D printed speaker
  • CA glue (super glue)
  • (8) 10 mm diameter x 3 mm thick neodymium magnets.

WARNING - If you place magnets without paying attention to orientation you won't be able to attach the magnetic grills. Be careful with this step!

NOTE - This is a repeat of "Step 4 - Add Speakers To Base". It is repeated here in case you decided to not build the CX120 main speakers.

If you have a compass, use it to find the "North" side of your stack of 3 mm x 10 mm diameter magnets. Mark the North side for future reference. If you don't have a compass, pick a side of the stack and carefully mark it for future reference. You will be using 12 magnets per speaker, and all of the magnets need to be aligned when installed.

  1. Add a dab of CA glue in each magnet slot (a total of 4 slots) on the front of the 3D printed speaker base.
  2. Insert one magnet in each slot, verifying that the "North" or marked side is facing out.
  3. Immediately put another magnet on the outside of the speaker to hold the internal magnet in place while the glue dries.



Step 16: Install Electrical Components

For this step you will need:

  • spool of speaker wire
  • side cutters
  • wire strippers
  • solder
  • soldering iron
  • TEBM46 Driver
  • one pair (red and black) binding posts
  1. Cut a 12" length of speaker wire. Strip and tin both ends.
  2. Solder one side of wires to the driver terminals. Red = positive, black = negative.
  3. Solder other side of wires to a red and a black binding post.
  4. Install binding posts in speaker, making sure they are as tight as you can get them.


Step 17: Add Magnets to TEBM46 Speaker Grill

For this step you will need:

  • 3D printed grill
  • (8) 10 mm diameter x 3 mm thick neodymium magnet marked with "North" direction
  • CA glue (super glue)

WARNING - It is critical that you glue the magnets into the grill in the correct orientation. If not, the grill will not attach to the speaker.

  1. Add a dab of CA glue in each magnet slot (a total of 4 slots) in the slots in the grill.
  2. Before inserting each magnet, ensure that it is aligned and will stick to its corresponding magnet in the speaker grill base.
  3. Insert one magnet in each slot, verifying that the "North" or marked side is facing out.
  4. Immediately put another magnet on the inside face of the grill to hold the internal magnet in place while the glue dries.


Step 18: Cover the Speaker Grill

For this step I recommend following the instructions in the "Cloth Covers For 3D Printed Speaker Grills" Instructable. The photos above show each step of the process.

Step 19: Final Assembly

For this step you will need:

  • speaker with binding posts attached and connected to TEBM46 driver
  • 0.1 lbs of poly fill stuffing
  • (4) M3 screws
  • screwdriver

WARNING - Test your speaker often to make sure it sounds as it should. If the speaker driver doesn't tightly seal with the face of the speaker you will hear very little bass.

  1. Stuff the speaker with poly-fill as shown, keeping the fill away from the internal port tube.
  2. Use M3 screws to screw the TEBM46 driver tight.
  3. If you haven't done it already, add another set of magnets on the exterior of the speaker attached to the magnets you glued in earlier. These will act as a space for the grill, and will also help the grill hold on tighter to the speaker.
  4. Attach the magnetic grill.


Step 20: TEBM46 Speaker Complete!

Congratulations!

These speakers are very versatile. If you are like me you built 2 of the On Wall version for side surround duty on the rear wall, and 2 of the Corner Mount version as overhead speakers.

Since both designs are similar acoustically feel free to print what you need and place them where they make sense in your room. Heck, if you really need on wall speakers you could even use these on the front wall as your main channels. Just be sure to set your crossover to at least 110 Hz!

Home and Garden Contest

Second Prize in the
Home and Garden Contest