[Work In Progress] Audio "Input" Module

I am a really big fan of the modular concept of framework in general and especially of the FW16. Additionally the open information access to mechanical and electrical data makes it easy to develop hardware. When the first reviews went online, I saw the LTT video and heard the comment the the speakers had room for improvement. Once I got my FW16 I thought the speakers are fine, but why not give the the modularity a try to give the FW16 exceptional audio performance - and the idea was born to add front facing audio “input” modules.
The idea is simple: find a speaker that fits the size constraints and drive it with an appropriate DAC and amplifier. For the speaker I just searched for the largest inductive speaker on digikey at the time, that would fit the chassis. The CS38-02P50-02-1 would fit easily and with a rated output power of 2W and 3W peak it uses all the available height for some serious air pressure. As a DAC/amp combo the MAX98357A was chosen. Its main advantages are the simplicity of only having one chip that receives digital I2S signals, it being able to run directly with 5V from the notebook and it not needing many additional components on the PCB. It is also well documented by Adafruit. Now the only thing missing was a carrier PCB and a USB to I2S bridge.
This last task was made very easy by framework due to the availability of KiCAD files on their GitHub, which I am very thankful to have. I just had to add the DAC/amp chip and the speaker to the already existing input module example, as the example already includes a RP2040 which can be used as a USB audio bridge.
After ordering the components, assembling the PCB and getting the pico-playground audio DAC example running, I was able to successfully test the PCB. I was both internal and the additional speaker at the same time, and as expected, the high frequencies (including voices) were clearer with the new speaker. The lower notes are still better to be left to the original speakers, as the new PCB lacks the needed mechanical coupling for them and starts to rattle in the chassis below approx. 400Hz. But this should be easy to handle by adding appropriate dampening and software equalizer to steer the frequencies. The current idea is to let the built in speakers handle the lows to mid frequencies, which they are well capable of and add the new speaker for the mid to high frequencies, which have a large benefit from the front facing direction.
This the current state of the project and now I am curios what you guys think.
Do you like the idea? Do you have any improvements?
Things that are still in progress:

  • improved synchronization of speakers
  • specific EQ curves for internal and additional speakers
  • improved mechanical coupling to prevent rattle
6 Likes

this is unfathomably cool! does it work with the speakers already in the laptop or separately?

It’s fabulous!

They fully fit within the input module height limitations, 3.7mm I understand?

If this is ever offered for sale this may be another “shut up and take my money” moment. I am the worst.

Nice! Framework mentioned something similar as a possibility in their patent for the Framework Laptop 16 (relevant image below). When I’ve mentioned in the past that its possible people in these forums have insisted that it would require defying physics.

Framework’s patent also proposed putting a subwoofer in the expansion bay.

Nitpick: The height limitations is 3.7 mm “for items like keys that can be pressed”. For rigid objects that can damage the display (if the screen flexes into the object) the limit is 3.1 mm.

However these speakers are 2.25 mm (according to a quick Google search), so the PCB just needs to be less than 0.85 mm thick to fit within that 3.1 mm (although I wouldn’t be surprised if pushing it to 3.2 or 3.3 mm is probably fine since these are near the edges so the screen shouldn’t flex in much).

That things sick!

1 Like

Moved all my replies to one post, to prevent spamming:
@HardHat_Media Thank you. The laptop detects it as a separate output device, as it is connected via USB. But the operating system can handle putting out the audio to multiple devices, it just need some synchronization improvements as it currently has a few ms separation, which have to be compensated manually.

@MJ1 Thanks, and yes, it even fits the the tighter 2.35mm height limit and can therefore be used safely as the thickest part (excluding the chip area which has more space below) is the speaker itself with only 2.25mm.

@Kyle_Reis I didn’t know that there was a patent for the FW16 which covers front facing speakers or a patent in general, thats good to know. I agree with you that it is definetly (well, now obviously) possible to build such a module if we set our expectations right. And thank you for looking up the height for @MJ1

@lbkNhubert Yeah, I thought so myself. I am kind of hoping that framework will release a first party version which is a little more polished. Until then my DIY solution will have to hold up. I am planning to release all data on GitHub soon, then you can build one for yourself.

2 Likes

thats so cool!!! this is so awesome