Pages

Monday, April 28, 2025

hacking in my own line-out to a "smart" speaker

Intro

The Yamaha MusicCast speakers and AVRs are great. The speakers can connect to streaming services or stream audio over bluetooth or wifi or link to an AVR to stream whatever is playing on your main system. They can also function as wireless rear/surround speakers. Overall MusicCast is pretty handy and so far it has kept me from designing a whole new pi-based streaming setup. 

Yamaha MusicCast multiroom rendszer | av-online.hu


Purpose

The purpose of this hack is that I have some larger audio amplifiers that are not MusicCast enabled and I want to send audio to them. I use MusicCast for everything else so it does not make sense to have two different audio streaming setups.Yamaha actually makes a device WXA-50 to make this work which is just a MusicCast receiver and that device has line-outs for you to use your own amplifier. This might be the reason the speakers do not provide line-out themselves.

Yamaha WXA-50 MusicCast Wireless Streaming Amplifier WXA-50DS

Anyway I do not own one of those. My speakers are WX-010 and they only have ethernet, power and micro-usb (what does that one do?) connections. For a long time I have wanted to take audio out of the speaker and amplify it. 

Yamaha WX-010 Black MusicCast WX-010 Netzwerklautsprecher schwarz: Amazon.de: Audio & HiFi

 

Challenges

The problem is that the MusicCast speakers take digital audio over i2s from their wifi module and send it into the Yamaha YDA174 amplifier. That amplifier does not have line-level output and it does some DSP/EQ stuff to filter the audio output. The speaker box has a woofer and a tweeter and these are the only analog signals coming out of the amplifier on board. 

The DSP is a problem because I want unfiltered, raw line-out audio for my lager stereo. I do not want to amplify the already filtered analog signals. The datasheet was a fun read but overall not helpful as the signals I want are on the input side of this chip.

background image

 

Solution

Adafruit sells a DAC PCM5102 for exactly this purpose. The DAC receives a digital audio signal (i2s) and outputs an analog line-level signal for use with an external amplifier. I just had to find the i2s signals inside the speaker's main board. This was quite a challenge. Fortunately the board inside has some test pads. Unfortunately they were tiny and I would have to solder wires to each one in order to probe their signals with the oscilloscope.

These are the points that I am interested in: SDI1, SDI2, MCK, SDO1, SDO0(?), BCK, WCK:

This is by far the smallest thing I have soldered.

I used a USB microscope, blue tack and lots of flux to solder these tiny (<1mm) wires to test points on the target board. Check out how big the stripped wire looks under the microscope!

All 5 of these turned out to be a waste of time. 

Eventually I found the 3 signals that I needed (WCLK, BLCK, DATA) were exposed on the other side of the board! 


 I quickly jumpered the pins to the DAC and it worked!!

I could hear audio in the headphones. I turned the speaker volume down to 0 in the MusicCast app and the volume in the headphones didn't change. Woohoo! I also connected my amp to the headphone jack and it sounded excellent. This was a very happy moment but there was still a lot to figure out as far as finishing the install.


Conclusion

I needed to package the DAC or somehow mount it to the speaker. I did not want to embed the DAC inside the speaker, although that would have been a very professional solution. Instead I exposed the digital signals and power lines outside of the speaker enclosure and mounted the DAC externally. 

 
Here I am working in OpenSCAD to design a mounting board. Did you know that OpenSCAD can export to PDF? You need to use projection() to convert your 3D object to 2D first, but then it works. Thanks https://www.jeffgeerling.com/blog/2021/how-export-2d-illustration-3d-model-openscad! I printed the design on paper first before going to the 3D printer. It looks like my measurements were correct so next I printed up a small mounting board.

3D printing the mount went smoothly. 

Why does it feel like every project requires new/unique fasteners?? None of my hardware fits this guy?

I did eventually find some tiny M2 bolts to hold the DAC onto the mount and an extra long 1/4"-20 bolt to mount the whole thing to the speaker.

The speaker has a threaded hole in the back for wall mounting so I used that to hold my external DAC. 


I made a professional looking connector and hot glued the hole to protect the wires and seal the speaker back up.

You're just going to have to trust me that it is all working in this picture. Looking legit!


Fin.


No comments:

Post a Comment