P-CUBE Speaker System
I designed this set of hi-fi speakers to be printable on small-bed 3D printers, even as small as the Prusa Mini. It's a sub-woofer and satellite speakers, usable as a 2.1 stereo system, or a home cinema system.
Frequency response is 35Hz - 20kHz, with the sub-sat crossover at around 140Hz. The subwoofer is 50cm tall with a 18 x 18 cm footprint, the satellites are 65mm cubes, with stands or a wall mounting bracket. The speakers can be driven by a standard home cinema amplifier, a low cost 2.1 Class D amp, or a DSP based amp with the project code provided. The system will play loud but not deafening in a 2.1 set-up with two satellites, you can double up on the satellites if you want more volume. Either the sub or the satellites could be taken alone and partnered with other speakers with appropriate frequency response.
The sub-woofer acoustic design is based on the highly respected Voxel sub-woofer by renowned speaker designer Paul Carmody, and the satellites are my own design.
I've tried to design this so that it doesn't need any painting or post processing in order to look good. All the photos here show the natural print finish, straight off the bed.
All of the 3D model stl files are available for free on my Thingiverse page:
Supplies
Satellite Drivers (per satellite):
1x Tectonic TEBM28C10-4/A
https://www.parts-express.com/Tectonic-TEBM28C10-4...
1x Dayton Audio ND65-PR 2-1/2" Aluminum Cone Passive Radiator
https://www.parts-express.com/Dayton-Audio-ND65-PR...
Sub-woofer Driver:
1x Tang Band W5-1138SMF 5-1/4" Paper Cone Subwoofer Speaker
https://www.parts-express.com/Tang-Band-W5-1138SMF...
Other required components:
Speaker wire
M3 Screws (preferably cap head) 8mm, 10mm, 20mm
M3 Nuts (+optional washers)
M3 threaded heat-set inserts
Glue; epoxy (preferred) or super-glue
Blue-tack
2-3kg of printer filament.
Speaker binding posts or terminal panel
Optional components:
Round recessed speaker terminal (recommended)
https://www.parts-express.com/Round-Speaker-Termin...
Dayton DSP amp kit
https://www.parts-express.com/Dayton-Audio-DSPB-25...
https://www.parts-express.com/Dayton-Audio-DSPB-10...
Lepai Plate amp
https://www.parts-express.com/Lepai-LP210PA-2x30W-...
Plaster of Paris, or other filler material
Tools:
3D printer with a minimum of 180x180x180mm print volume
2.5mm hex driver (either an Allen key or a ball-head driver may be required to reach the screws for the stands and louvers)
Soldering iron or crimp kit for speaker spade terminals
Soldering iron or similar for heat set threaded inserts
Acoustic Design - Satellites
My goal with the satellites was to get great performance in a small package, with response below 150Hz. The satellites each use a full range Tectonic BMR 28mm driver, paired with a Dayton Audio passive radiator, tuned to 142Hz. The acoustic volume is 0.18 liters. Before finalizing on the drivers, I used WinISD (free software) to model performance using the manufacturers quoted specifications. WinISD predicted a -3dB point of 142Hz. (I've attached an image of the WinISD plots.) Next, I designed a simple test box where I could adjust the enclosure volume with filler blocks, I used this to try out a few different configurations. I was very pleased with the sound from the configuration that WinISD had pointed me to in the first place.
Confident that I had a good acoustic design, I went about designing the final speaker. I wanted the box to be as compact as possible, so a cube was the obvious choice. I also wanted it to print in a minimum number of pieces, with no supports. I ended up with a two part design with the front panel gluing into the main housing. One of the nice things about small speakers is they don't need massively thick walls and plastic is a great material for them. (The reason you don't see large speakers made of plastic mainly because it would be more expensive than making them out of MDF or plywood, it's not because you can't make good speakers with plastic.) I settled on a 4mm wall with a shelf brace half way up. If you want to know more about bracing in loudspeaker design, there's some great information here:
https://www.audioholics.com/loudspeaker-design/det...
It's pretty common to make the front panel of a loudspeaker thicker than the other panels, since it is the part which is most prone to resonance. So I made the front panel 6mm thick, it glues into the main enclosure with a tongue and groove joint, for a reliable seal. The rear panel is formed mainly by the metal frame of the passive radiator. The cable exit had to come out of the side because there is literally no room for it on the rear panel! I made some cute little cantilevered stands which print on their sides without supports. (The resonant frequency of the speaker on the stand is well below the cut-off frequency of the satellite speaker, so the cantilever should have no effect on sound quality.)
I designed a push fit grille to match the visual style of the sub-woofer without degrading the sound quality. (Horizontally, there is no occlusion of the driver by the grille, up to about 85 degrees off axis, so it doesn't interfere with the excellent dispersion pattern of these BMR drivers.)
Having built the speaker I verified the response with a calibrated microphone and the excellent free software package Room EQ Wizard (REW). The behavior is very close to the modeled data, with the -3dB point at around 140Hz, the -6dB point actually outperformed the model, coming out at 114Hz. There is a baffle step rise in response above 2kHz, which is as expected from the size of the front baffle, but this balances the gentle roll off of the driver above 3kHz.
I'd say the only real weak point of this design is the increasing excursion below 100Hz, which can be seen on the attached WinISD Cone Excursion plot. The top-right graph shows that below 100Hz, a 10W input will drive the cone beyond its it rated Xmax (the red line), that does not mean the driver is necessarily damaged by this, only that its motion will no longer be linear, which leads to distortion. This will significantly limit the volume which can be achieved without distortion if the driver is used without a crossover to block inputs below these frequencies. Fortunately, there are easy ways to achieve that these days, without an expensive and bulky analog crossover network, including a 2.1 amp with built in filters, or a DSP, see the section on amplifier selection for more details. This speaker has very smooth distortion free sound which has to be heard. I think it offers remarkable performance for the size and great value for the component cost of less than $20, (perhaps a dollar or two more if you include the plastic).
(I made three stand variants, two heights of horizontal stand and one angled 15 degrees up. Also, a simple cover for the cable exit, if you want to sit the cube directly on a shelf. I also designed a tilt and swivel wall mount bracket, which can be installed with completely hidden cabling.)
Acoustic Design - Sub-woofer
The subwoofer is a ported design using a Tang Band W5-1138SMF 5-1/4" driver, in a 7liter volume, tuned to around 38Hz. The driver has 40W continuous power handling with 9.25mm x-max, which translates to "very loud" for anything of this size. The recipe was first designed by Paul Carmody in 2006, he called it the Voxel. It has been reproduced in many variants, and is considered a classic in the world of compact sub-woofers. I believe this is the only 3D printed Voxel design, at the time of writing.
This is the original publication of the Voxel design:
http://techtalk.parts-express.com/forum/tech-talk-...
I copied the acoustic design without modification and verified the tuning with impedance measurements in REW. My goal with the mechanical design was the create a cool looking Voxel to match the design of the satellites and which could be printed in multiple pieces on a small printer. The largest component is 178x178x180mm and will fit on a Prusa-Mini, and most other consumer printers.
The configuration is a 50cm tall tower with 17.8 x 17.8cm footprint. The driver and the port are hidden behind louvered grilles. The walls of the enclosure are 11.5mm thick and there are three shelf braces spaced along the height of the enclosure. I have provided two versions, one with solid walls, and one with pockets which can be filled with plaster of Paris, concrete, epoxy or anything else. The main advantage of filling is needing less plastic, and reducing the print time. 3D printed walls with sufficient infill (>50%) have been shown to be a perfectly good acoustic material:
The potential for port noise (aka "chuffing') at high volumes is the acknowledged limitation of the Voxel design. To combat this, I made the port flared at both ends with a Polk style conical turbulence mitigation feature between the port and the plate that forms the base of the speaker. I settled on that configuration after reading this paper:
https://jahonen.kapsi.fi/Audio/Papers/AES_PortPape...
I measured the response of the speaker using REW again, this shows the expected response from just below 35Hz up to around 150Hz. (The wobbles in this plot are largely room effects, I measured this indoors because I don't happen to have an anechoic chamber!)
Printing and Assembly - Satellites
Parts (per speaker):
Drivers:
1x TEBM28C10-4/A
https://www.parts-express.com/Tectonic-TEBM28C10-4...
1x ND65-PR
https://www.parts-express.com/Dayton-Audio-ND65-PR...
Printed Parts:
- 1x Main body
- 1x Front baffle
- 1x Stand of your choice
- 1x Grille
Hardware:
- 10x M3*8mm screws
- Speaker wire
The enclosure prints in two parts, the main body and the front baffle (a hi-fi term for the front panel). The front baffle glues onto the main body. Print these parts with 3 or more perimeters with >40% infill. No supports are required.
Print the grille, if desired, and select one of the stands or the wall mount. (It is worth watching the first layer of the grille go down, to make sure all the spars stick to the bed properly.)
Print orientations are shown in the diagram. One complete satellite with stand will need ~120g of filament. Mix and match the colors of each component to taste.
Assemble in this order, referring the the cross section diagram above:
- Glue front baffle to main body with epoxy or superglue.
- Feed speaker wire through the hole in the body, apply spade terminals, if desired.
- Connect or solder the TEBM28C10 driver to the cables, observing polarity.
- Screw the driver into the front baffle using 4x M3 screws. The driver has an integrated foam gasket.
- Push-fit the protective front grille.
- Set the cable positions appropriately inside the chamber, so they don't rattle, and seal the hole around the cable exit with blue tack or silicone sealer.
- Remove the wing-nut and the threaded disk weight from the back of the passive radiator (PR), no additional mass is required for this design. (At first glance the threaded disk may appear to be stuck to the driver, it isn't, you may need to very carefully nudge it with a pair of pliers to get it loose. The attached image shows the PR with the weight removed.)
- Screw the PR into the rear face with 4x M3 screws. Use the foam gasket which came with the PR. If you have lost this, cut some fresh foam, or use blue tack to provide a seal.
- Screw on your stand of choice with 2x M3 Screws, or the wall bracket, running the cable through the guide. (It may be difficult to screw the stand in if you are not using hex head screws.)
I like to make these with about 30cm of cable coming out of them and then use WAGO connectors, or a terminal block the connect them to the ends of longer speakers cables, but the length of cable is up to you.
I have also made a dual driver version of the speaker enclosure (2 drivers and 2x PR's). I haven't built that myself, but it should work just fine, if you are making that, you should wire the two drivers in series, being sure to match the polarity. It will give you twice the power handling of the single driver version. The frequency response is unchanged.
Optional - Satellite Wall Mount
If you are using the wall mount, about 15cm of cable will take you from the speaker into the body of the wall mount. There is room inside the wall mount to fit WAGO connectors or a terminal block to connect to the ends of cables, either coming out of your wall or from the cable exit to the bottom of the bracket. Wall mount print orientations are shown in the slicer image. No supports are required, but you may want to use some for the speaker interface (shown in green), if you want the holes to look neat and tidy. You can also try printing this part on its side with a single support under the upper lug. There are sacrificial membranes in the screw holes, which you will need to poke out. Make sure not to put supports inside the cable guide, or you'll never get them out.
Assemble the wall mount:
- It's best, but not essential to run the cable through first
- Screw the speaker interface part to the bottom arm of the bracket with 2 M3 screws
- Screw the arm of the bracket into the cylindrical body with 1 M3 screw, (this screw comes in from above) a 12mm screw would be ideal for this, but you'll probably get away with shorter.
- Screw the wall interface to the wall
- Slot the bracket over the wall mount, feeding the cable in as you do
- Make the cable connections inside the cylindrical body of the bracket
- Thread the lid onto the cylinder
Sub-woofer - Parts and Printing
This is not a difficult print, but it is a big job, 3kg of filament or more. You may want to consider using a 0.6mm or larger nozzle, it can drastically reduce print time compared to a 0.4mm nozzle. I was able to print the main body sections in ~12h each on my Railcore with a 0.6mm nozzle, that was using the versions with the pockets, which I filled with plaster of Paris. (PrusaSlicer tells me printing the solid version on a Prusa mini with a 0.4mm nozzle and 60% infill will take ~3days and use 1.4kg of filament.)
The list of parts for the sub is quite long:
Driver:
-
Tang Band W5-1138SMF 5-1/4"
https://www.parts-express.com/Tang-Band-W5-1138SMF...
Alternative:
Tang Band W5-1138SM 5-1/4" (this Neodymium version sounds identical, but costs more)
Printed Parts:
- Top enclosure half
- Bottom enclosure half - with your choice of terminal type
- Front Baffle and Rear Baffle
- 2 halves of the port, plus the center section and threaded joiner
- 8x Louvered grilles (4 for each end)
- 1x end plate
- 1x end plate with port guide
- 2x end plate trim
Hardware:
- 16x M3x20mm screws with nuts (+washers optional)
- 28 M3 threaded heat-set inserts (I used the brand Hilitchi from Amazon)
- 40 M3x10mm screws (you can get away with slightly shorter or longer screws in many places)
- 16 M3x8mm screws for the louvres
- ~3kg filament
- Binding posts:
https://www.parts-express.com/Round-Speaker-Termin...
or
https://www.parts-express.com/gold-binding-post-ba...
Alternatives are available cheaper on Amazon, if you buy in quantity
Material selection:
PLA and PETG will both work well. I would not recommend ABS, just because you are likely to have bed adhesion problems with a print this large. I used straight PLA for one half and CF filled PLA for the other half.
Tips for printing louvers:
Make sure your filament is dry, to avoid stringing. Be reasonably careful handling these once printed, if you bend them the wrong way, they will break.
Tips for printing the port sections:
These are the only part where you don't need to use very high infill. The flared ends are thick in order to avoid using supports, not because they need to be particularly strong. I suggest 3 walls and 30% infill on the port.
Sub-woofer - Assembly
Assembly:
Keeping the enclosure airtight is critical, any leaks will cause hissing noises. Blue tack is an excellent material for speaker enclosures, it's durable, re-workable and non-messy. If this is your first time using heat-set threaded inserts, search for a guide on YouTube and practice on some test parts rather than your 3-day long print.
Once you have the parts, assemble in this order:
- Optional: fill the cavities with plaster of Paris or another material of your choice, and wait for it to set/dry/cure as appropriate.
- Use a soldering iron to heat-set the threaded inserts into the main body sections (8 each) and the end plates (4 in one, 8 in the other), see diagram.
- Screw the two body sections together with M3 screws and nuts. Before screwing, use glue or blue tack to seal between them. The glue is only to provide the seal, so you could even use wood glue or silicone sealer.
- Fit the speaker terminals of your choice.
- Screw the sections of the port together tightly, screw the port into the rear baffle. (You may want to glue these joints once you are happy everything is working.)
- Screw the front and rear baffles into the housing, using blue tack or some other material for a good seal. The photo shows what a blue tack seal should look like.
- Connect the drive unit, observing polarity, fit it and screw into place, making sure these is a good seal. The drivers comes with a foam seal, I found this didn't work perfectly, so I used blue tack again, shown in the photos.
- At this point, you can test the sound of the system, listen for any leaks or for the cable rattling inside. Using a continuous tone from a sine wave generator will may make it easier to locate where the problem is. (There are loads of tone generator webpages to choose from.)
- Assemble the louvers for each end, 2 M3 screws between each section, these screws should be no more than 8mm long, see diagram.
- Screw the louvres onto each end of the sub, with M3 screws, (consider using some blobs of blue tack between the louvres and the frame, if you hear any rattles). These holes are quite deep, so you will likely need a real Allen key, rather than a hex bit.
- Screw the end plates to the louvres. 8 M3 screws each end. The end plate with the conical feature is for the port end. Do not use this on the speaker end, it may destroy the speaker!
- Fit the trim pieces over the end plates. I suggest fixing these with blue tack, so you can disassemble everything, if you ever needed to.
Tuning:
This default port length should be well tuned, without any modification. However, if your driver is out of spec, or you're trying an alternative driver, you can use the different length inserts to adjust the port length. (I wouldn't recommend trying to build this with a different model drive unit, unless you have some experience, and you are able to simulate the performance before you start.)
Amplifier Selection, Connection, and Optional DSP Configuration
As I mentioned earlier, the limitation of this design the the LF handling of the satellite speakers. If you are using them at moderate volume you can get away with any old 2.1 channel amplifier, but these speakers definitely deserve something better. Fortunately lot's of options exist, and there is fun to be had along the way.
Amplifier power rating:
The satellites are 4 Ohm, rated at 10W continuous, 20W peak, this means you want an amplifier capable of at least 20W per channel, preferably 30W or more. (If you wire two satellites in series per channel you'll have 8ohms and 40W peak handling, so you really want at least 50W per channel on the amp.) The sub-woofer is 4 ohm, 40W continuous and 80W peak. You'll get away with a 50W output, but you want a 100W amplifier if you want to exploit the full potential of the sub. Remember, an amplifier can only deliver as much power as the power supply can provide. Check your amp's guidelines, but you'll want >19V, >4A if you want to exploit the full potential.
Here are some amplifier options, listed from worst to best, in my eyes:
1. Use the equalizer on your PC's soundcard to cut output below 100Hz.
This is only a solution if you want to use the satellites alone, without the sub-woofer.
2. Use a multi-channel PC soundcard with a "small speaker" setting for the left and right channels.
This should be a viable solution, but you'll need a 3 channel amplifier, because most 2.1 amps do not let you provide a separate input for the sub-woofer channel. Probably best to buy two 2channel amps or one 2 channel and one single channel.
3. Home cinema amp with a "small speaker" setting for the left and right channels.
You'll need to check what the cut off frequencies are, but this is a viable solution. Probably most expensive of the options, unless you already have the amp.
4. 2.1 channel amp with high pass filtering for the left and right channels
This looks ideal, but I have not tried it myself, ($35 at time of writing):
https://www.parts-express.com/TPS3116D2-Class-D-2....
This one comes in a plate format, ($42):
https://www.parts-express.com/Lepai-LP210PA-2x30W-...
This is basic but does the job, I have tested it. I made a version of the bottom half of the enclosure with an opening for this amp. However, a word of warning: the amp unit I had was not airtight, and air leaking around the phono sockets made a hissing sound. I may have been unlucky with my unit, but I'd recommend not printing the enclosure with the cut out for the amp unless you have already tested it. Instead, make a separate box for the amp.
5. Design a passive crossover filter
You're on your own here, not really my field.
6. Use a DSP based amplifier system with 3 or more outputs
This is the ideal solution, there are several to choose from and loads of great resources online. You can tweak to your heart's content. If you like playing around with different speakers, it will pay for itself in the saved cost of crossover components.
Choosing a DSP:
In his "Mr. Speaker" project, Ssashton gave an excellent run down of getting started with a DSP amp, (Step 4 onwards):
https://www.instructables.com/Mr-Speaker-3D-Printe...
Ssashton's electronics will work directly with this project, but you'll need to change the crossover frequency in software. His wiring diagram in Step 9 is also directly applicable for the P-CUBE system:
/proxy/?url=https://content.instructables.com/F1G/PM2R/KCRNYCB...
Here are a few of the DSP boards you have to choose from:
Best value DSP solution:
Ssashton used one of these (~$20) and separate amplifiers:
https://www.aliexpress.com/item/32807805635.html
Easy to configure integrated DSP and amp:
I use one of these 100W DSP sub amps (~$35):
https://www.parts-express.com/Dayton-Audio-KAB-100...
with one of these 2x 50W Bluetooth amps (~$44):
https://www.parts-express.com/Dayton-Audio-DSPB-25...
And this kit to connect them:
https://www.parts-express.com/Dayton-Audio-DSPB-EC...
You also need this board to program the DSP:
https://www.parts-express.com/Dayton-Audio-DSPB-IC...
This gives me Bluetooth and line level input, with a single power input and single power switch. You don't even need to do any soldering. I love this setup, and highly recommend it. I've provided a sigma studio file for this setup, with a 140Hz crossover and these controls on the potentiometers: Master volume, sub volume, satellite volume.
This site has loads of great resources specifically for this range of products, (the Dayton Audio boards are actually rebranded Sure boards):
https://suredsp.ratz-it.de/index.php?title=Hauptse...
MINIDSP family:
MiniDSP have a range of products, I believe they are simple to use, but it is a closed software system so you have less functionality. They are also more expensive, this is their cheapest product which will do the job ($100):
https://www.parts-express.com/miniDSP-2x4-Digital-...
Arylic DSP board with Airplay, WiFi Multiroom, Internet Radio:
This is seems like a very capable solution which will allow you to produce an entire smart speaker network. I believe it is also a closed software system, and doesn't support Sigma Studio:
https://audioxpress.com/news/arylic-introduces-new...
Configuring the DSP:
In the DSP software, set up a simple crossover with a frequency between 125Hz and 155Hz. The higher end of that range will improve your power handling, but may make it easier to hear where the sub is placed. You probably want to choose based on where your sub is located relative to the satellites.
In my opinion, if you choose a DSP system, you are entering an exciting new world of DIY audio possibilities. The project opportunities are endless.
Conclusions
This speaker system has been great fun to design, and I'm very happy with the result. I'm speaking as someone who has put a fair amount of money into hi-fi over the years. This is a good set of speakers that happen to be 3D printed, not a novelty 3D printed audio project. If you decide to build this, I hope it serves you well. Please share some pictures of your build. If you have any questions about the design or modifications, just ask.
All of the 3D model stl files are available for free here:
https://www.thingiverse.com/thing:4706916
Also, check out my other designs on Thingiverse:
https://www.thingiverse.com/zx82net/designs
Follow me on Instagram for updates on new projects:
https://www.instagram.com/zx82net/
And here's a short video of the P-CUBEs operating with and without the sub-woofer, with some royalty free music, (this is best listened to with headphones):
Some credit where it is due:
Thanks to Paul Carmody for the Voxel design:
https://sites.google.com/site/undefinition/diy
Thanks to Hexibase, who first gave me the inspiration to 3D print a speaker:
(He also has a YouTube channel.)
And thanks to a number of members of the PartsExpress Techtalk forum, who have provided useful advice during this project: