What’s the right wedding gift with 30 days of lead time when your friends are stranded across the Canadian border because of a global pandemic but they’re willing to risk it all for love and get married in a DMZ? I went with an Ikea cutting board. Well—to start.

It turns out that in places where border boundaries are blurred the acoustic offerings are slim. Without loud music (and strong drinks) no party is bompin, and without a bompin party, it’s not a wedding, so there was really only one thing to do: make a matching & linkable set of portable, hi-fidelity bluetooth speakers:


Cost of parts: $150 (ea.)
Loudness: 96dBSPL, 1m, @ 10% THD, A-weighted
Frequency Response: 50Hz to 20kHz ±5dB (but look at the curves down below)
Connectivity: Bluetooth 5.0
Battery: 3S Lithium-Ion, 37Wh
Runtime: 10 hours at “half volume” input (92dBA output)
Amplifier: 2x50W TPA3116D2 running @ 24V
Difficulty of Build: Dummy high—approx 120hrs from start to finish, requiring 2 CNCs and a 3D printer

In a lot of ways, this was a 2020 capstone project for me: to make something that’s loud, compact, and full of deep bass, with a 30-day conception to finish timeline, I had to pull out at least half of the dirty tricks I’ve learned over the last six years. Here’s how it went down.


When it comes to compact loudness with a lot of bass, excursion and efficiency are the belles of the ball, and although I simulated almost every 2-4″ driver I could find, the Dayton ND91-4 drivers (descended from long-gone AuraSound’s Neo-Radial IP) are nearly unbeatable when you factor in magnet strength, Fs, Xmax, price and weight. E.g. Peerless SLS-85S25CP04-04’s (catchy name huh) are potentially 1dB louder for a similar box size but weigh 285% more, while the Fountek FR89EX win for Xmax but need too much back volume and are 2dB less efficient…etc and so on. Just trust me on this one. In a 1.5-2.5 litre box: ND91-4, tuned low.

Tweeters are a fair sight more efficient, so down selection should be mostly driven by crossover frequency, dispersion and ease of integration. The ND91s break up right after 3kHz:

While the ND16/ND20 tweeters are truly amazing, they have to be crossed higher, and they come with a bunch of extra plastic, which clashes with the ultra compact layout I pushed.  LaVoce’s TN100.70 did the trick and can be crossed over at 1.5kHz, which was perfect—the lower a tweeter can be crossed (disclaimer: within its volume displacement limit), the better. Finally, the TN100.70 dispersion is on par with the ND20FA tweeter @ 20kHz (-15dB):

As for the port, in order to maintain compactness and b-b-bass, I had to fit 250mm of port into a 2.5L box while keeping a holdable 4-inch width so I folded it around the ND91 and then crushed the port geometry until it fit in between the driver and borders of the speaker. Tweeter in green, port/body in pink, and woofer in yellow below:

Driving the woofer and tweeter is a 3S 3500mAh battery pack (I use LG 18650s that I order B2B from the factory) paired to a 2x50W Class D TPA3116 D2 amplifier through DC-DC step up converter for maximum power delivery. WONDOM makes a wonderful TPA3116 board with the DSP integrated, which merges with their 3S MPPT Battery Management Board, although to my late-stage chagrin neither of the boards have a step up to power the TPA chipset at an adequate 24V.


With the acoustic design tucked away 15 days from the deadline, it was time to build. The octagonal outer shell is just a set of 22.5° mitres, tape-clamped, with the patent-pending dual-bevel 8th wall precision cut to match:

The front face was a 2 sided CNC operation, which required calibrating features for aligning the Shaper Origin I used.

Merging the two pieces with the speakers and the front mounted the port was rather easy except for some minor mishaps with a few missing microns; the t-nut I planned to use to rear-mount the woofers were exactly 300 microns short of the planned front face thickness, so after sanding I had two t-nut holes showing on the front face. The port itself had to be printed in 3 pieces because of the complexity of the geometry to fit it both on the border and between the woofer and the back panel:

With space at a premium, but also for aesthetics, I used an LED array for status lights and integrated the on switch into the potentiometer. With that in mind, I also fabbed an ultra slim 6mm bracing/sealing ring for the rear panel mounting, as a butt joint would’ve been ugly but the shell was too thin/weak for threaded inserts. Those loose microns got me again and the flange on the port interfered with the built dimensions of the rear panel, so I slotted that out, but after some truly painstaking finagling of circuit boards, 5 days before the wedding ship date, I was ready for sound test.

That’s when I realized neither the BMS nor the Amp was using a boosted rail which was causing very noticeable voltage clipping, so I had to rip everything open and shove not only a DC-DC buck converter but a giant LC ripple filter (1.3mH L and 100µF C) onto the voltage rail. The only DC-DC buck converters I had in house were straight outta Hua Qiang Bei which means the were both cheap and poorly designed. Buck converters are in general awesome, and about as efficient as one could hope (for 12 to 24V boost, I saw ~85% efficiency depending on load), but the switching causes a lot of load-dependent ripple, which adds both noise and intermodulation into the signal chain. But with that bullet bitten, and with 1 day until ship, it was time to tune. And boy does this design sound good. Sparing the details of the tuning, here’s the final frequency response with a -3dBFS sine sweep @ half input “volume.”

The 2nd harmonic distortion looks pretty high @ 50Hz but this is mostly due to the aggressive non-linear processing I added in for extra kick; a more reasonable measure of THD in this scenario are the 3rd order harmonics, which I kept below 8%. The dips in the mid band (400Hz, 800Hz) are regrettable from a data standpoint (probably due to product baffle dimensions) but overall, these speakers deliver supple bass, smooth vocals, crisp treble, and excellent definition from 50Hz all the way to 20kHz. I added a little bit of level-dependent EQ, so at maximum volume these speakers are loud enough to kick off a backyard party, and at reasonable volumes they deliver a little extra extension for a very full, deep, frequency response. In my book, a thermos-sized speaker that can fill a room down to 50Hz ticks the “bigger than it looks” box; even from another room I found my self saying “damn, these sound good.”


There are far more than five senses available to you in this awful wonderful human sensorium and one of them is the sense that You Could’ve Done Better. But this was not one of those times.

You ever see something and think “I bet I could make that, but better, and more cost-effective”? You ever think “I could make a portable, hi-fi, PA speaker with shit-your-pants bass, noise-complaint SPL, and art-gallery looks”? You ever sit at home and wonder “what if I went all out? What if it was way too big and way too loud and way too pretty?” Yeah, me too. This time I did it.


This was probably a time that I should’ve done less, but didn’t. In scoping out a project on commission I usually discuss

  • Portability
  • Loudness
  • Bass/quality
  • AssAesthetics

The discussion should and usually does occur late at night over libations which contributes to some amount of scope creep—in a good way—and in this case we started at:

  • Portable enough
  • Loud enough the neighbors want to come to the party too
  • Yass bass
  • Museum worthy

I was thinking of a very reasonable design—1 cu ft, 36V battery, maybe 2 W6-1138 (but with Neo woofers for weight). But then something terrible happened. I saw a targeted Facebook ad for the Soundboks 2; it was was full of shitty marketing claims and absurd dBSPL/battery life statements and poorly mixed dubstep (like, dubstep is fine, just don’t mix it badly or use it to tout sound quality). Here are some reference claims:

I’m not an acoustic engineer, but—wait, no, no I am. These are bullshit metrics. What kind of half-assed sound company specifies a “dB” value but no reference for the units (SPL? Re?), distance, or weighting (A? K?). I could fart at 122 “dB: for a battery life of 40 hours if I’d put the mic by my arse.

For the un-initiated this is the equivalent of saying “Oh yeah my car is really fast, it’ll do 120.” 120…what? MPH? KPH? Like when you drive it? Or when you throw it off a cliff?

Anyway fair to say this bothered me slightly and the new goal was to make a speaker that was better than the Soundboks 2. A portable party in a box. My specific objective goals were:

  • 122dBSPL (Re) @ 1m in the passband
  • Passband 40Hz to 20 kHz
  • f3 @ 38 Hz
  • Directivity controlled ± 4 dB up to 15 kHz

*For the sake of clarity, if not otherwise specified, all dB numbers in this document will be dBSPL @ 1m relative to 20 µPa.


Speakers assembled to front face


On the spectrum of “large/efficient” and “small/inefficient” for a constant bandwidth target, there are three main real-life ways to achieve this in the range of “reasonably portable.”

“Pro” speakers in a large box, i.e. lots of magnet, low moving mass, stiff surround. Think FaitalPro12XL

  • + efficient as hell
  • – generally 8 ohms
  • – $$
  • – Fs is often quite high

“Tang band” style in small box, i.e. lots of magnet, lots of coil, tons of moving mass, allowing for really low free-air resonance and massive linear excursion space.

  • + compact 
  • + always impressive for size
  • – $$
  • – low efficiency

“Dayton Audio” style in a medium box: Medium BL, medium mms, heavy magnet

  • + cheaper
  • + pro-sumer design means well controlled directivity, well designed in-band response
  • + reasonably efficient
  • – heavy
  • – has potential to be “worst of both worlds”

Here’s a quick comparison of the three designs plotted at a very reasonable 100Wrms:

Simulated FR @ 1Wrms

The Iron Law clearly demonstrated here: The Dayton design is in the middle for sensitivity but sacrifices on size to get extra bass. The Tang Band, which will never have the sensitivity of the DA or the FP design, loses a little bass to be small, but has overall good LF extension. The Pro design is huge and efficient but loses on LF extension. But wait! This is battery powered! We’re voltage limited! How do 2 4 ohm drivers shake out against 1 8 ohm driver?

@ Battery Nominal Voltage

The Dayton Audio design clearly wins out (dotted lines are theoretical response vs Pmax/Xmax limited response). The final question: can we kill the Soundboks? If we disregard all concerns for safety, in theory—nearly:

At 1100 Watts of input power (rms), 2 DCS205s are capable of outputting 121.2 dBSPL @ 1m @ 100Hz. The Xmax limitation cuts heavily into the bass output below that. But this design will sound better, look better, and be smaller, so DCS205 it is!

The final choice for bass—sealed, ported or passive? A simple one; sealed sucks for battery-powered. The port would’ve had to have been huge to handle the requisite volume velocity with grace, so after modeling every single DSA, I opted for 2x DS315 12″ PRs + 100g to tune to 38 Hz. These are quite wonderful passives—huge xmax, Rms for days, low enough Fs, and their ID matches the DS205s.

Full send:


Knowing that we’re in the neighborhood of 115 dBSPL@1m @ 50V input makes things a bit tricky from 300Hz to 20kHz. Pro sound options are mainly focused on output efficiency, with the sacrifice being directivity and flatness of response (DA PK165-8 below, which had neither the efficiency nor the response I was looking for):

What a terrifying directivity curve

which would essentially demand that you cross it over at 2kHz—untenable for a tweeter capable of 115 dBSPL.

Luckily, there weren’t that many options, and when one can’t sacrifice loudness, quality, or size (i.e. directivity), you must pay a lot of money. I landed on the beautiful and beautifully expensive FaitalPro M5N8 which measures like:

Their claimed efficiency of 99dB @ 1W/1m is a little short of the truth (95dB@1W/1m) but they manage an easy 117 dBSPL with xmax and plim constraints:

Throw it in (a 3D printed back volume to separate it comes in later):


There was really only one option: the Peerless by Tymphany BCS25SC08, a silk dome tweeter + a (small) horn for efficiency. 98 dB, 100W of power handling (they get ragged before that, though), and the horn rather small so the directivity actually rather pleasant (this is in 30 deg intervals compared, the midrange plot was at a 45 deg intervals).

Throw that in the bag too:

And then for a back volume, the passives:

Next up is the electrical design. Stay tuned!


Did you know
you can squeeze
oil from stone?

With enough heat / pressure
+ a dash of wanton capitalism
And you can coerce shale to cry

Teardrops are always surprisingly hot
Though less valued than shale’s
The process feels similarly igneous

I scream at the wheel
through tears taken from me:
I imagine you in the passenger seat

next to me
holding me steady
a drink

“Well, sure, it hurts—”
you start gently,
full of kindness,

and then you look at me
with eyes like we could take on
an errant volcano, with aplomb

And you say

I’m gone now
You can’t change that.
But you can do anything

So what are you going to do now?


have you ever felt like outer space     here’s a lame
buddhist riddle    what is the sound of
silence   when I was 13    I chose a name
to write on the world    to fill in the silent space
with paint     unaware of irony then    but I
was still clever    my name is    A    B   S   E   N   T

last night close my eyes    but I still think of you    
j’hallucine       hello Alice    no let me explain 

      it starts with     !     roaring     
tastes loud     like the
heart of a star dying       where
gold is made     what is my size    I am the
wrong size    
    my body the magnitude of Creation
my arm is a spiral arm  my feet are
still in bed    the only landmark is 
sound who
is roaring   who is yelling like
time as it greedily gobbles lives
swallows worlds     this is nothing
so pretty as the sound of Death who is
sonorous and deep like the tomb of god
falling shut     no this is the sound of god
preying  anti noise the shout of   the
void   Hungry    it is creeping     looking    
for me

Dublin night, walking home, You
ketamine? Guinness.

ours    we are exactly who we need to be     we
are exactly where we need to be

In this memory I am
So happy

I would change nothing. But remembering it
in bed now, I trip. Don’t worry girl, it’s
not you. Just all the small things     I’ve been
through    eh

It’s a sober and vivid hallucination,
a combinatorial flashback. Not a dream.
I roll over to write this and I feel my arms
swing     the span of solar systems    everything
i touch unfathomably far away     i have PTSD   
when i think of you       i hallucinate        
in space          

in between dimensions
      break here in case of emergency   
thoughts too   break       my body 
slides?  a part 

the fracture flows    a razor sharp crack across the
diagonal of your body   your left lower corner:
your pinky toe but not like not ah   not   the
location does not exist or should not   imagine
um imagine if you had become a flat square
for all eternity    i did it once it was
terrible   no uh imagine um your left leg but
maybe behind you as if you had broken it

the right top corner: above your right eye by
where your uncertainty lives  offset and always a
bit perpendicular to your other eye   as if you
had broken that bit too     

not that the right eye points in a different
direction    your left eye just sees half-
dimensions   useful for imitating Picasso    
less useful when drunk     the right eye sees
wholly     it got the extra bits   

anyway that’s
where the right corner is it’s offset up a bit
and perpendicular or something I don’t know
I’m not a poet    I’m just hallucinating

as the crack flows   lightning-fast very sharp
corner to corner    i disrupt into parts   
the way a mirror does     something that
once was whole and full    which held worlds   
now is unbearable to look into    fragments 
scattering reflection    in- 
complete pieces    

each split   like fission   takes something from
this world   you never get back   if you just
put the pieces back together    like a mirror   
you are left   with less    just look at yourself

the lines that split are incredibly thin    but if
you are not careful or cared for,    if you are
not whole   

then there is empty space   

and  it shouts 
the void    is hungry    it comes through   in
between the pieces of me    it crawls through
those cracks    fast   faster than you can mend   
faster than you breathed me in   faster than
you forgot me   and once here    it will not
leave :  
negative creep

in negative creep you write this     but a person
who cares?     they say     if you are not
whole     there is a thing called kintsugi         to
repair broken pottery with gold in the cracks    
first you need acceptance and glue    but then
when you hallucinate     you can look amongst
the screaming stars      to find your pieces 

and there you may even find a lil bit of gold