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.


Saturday, August 31, 2024

Ryobi battery conversion for DeWalt

I've had this NiCad powered Dewalt DC825 for many years and replaced the batteries several times. It was my first cordless tool set and I still have many of the tools that came with it. I was annoyed by Dewalt's choice to use a different battery connector when they switched from NiCad to LiPo. At the time there wasnt a simple adapter to power my 18v tools with their fancy new 20v max battery, or I was too stubborn to look for one. For a while I grudgingly bought new 18v NiCads to keep the tools running.

Eventually I decided to go with Ryobi for my next generation of LiPo power tools. The batteries on my Dewalt are starting to fail again: failing to charge, not keeping a charge and being dead when I need them. I don't want to buy a Ryobi impact driver either, because I'm cheap and the Dewalt still works.

... so I made this unholy combination:

Is it a DRyobi or a RyWalt?

Wednesday, August 14, 2024

android vr still sucks


I've been anxiously awaiting decent VR tech since long before the Oculus Rift.  I had hoped that after so many years the technology would finally become usable.  The current technology is close, but it still sucks.

There are plenty of other reviews for the available VR options on Android so I will try to keep this brief.

Google Cardboard + knockoffs are probably the best bang for your buck.  They can be more comfortable than the Daydream View and benefit from the large-ish ecosystem of google cardboard apps.  My face hurt after only a few minutes of trying the Daydream so I didn't spend much time in it.  The carboard/daydream apps still suck, by the way.  If you like looking at cartoons through screen doors you might enjoy all that.

Samsung GearVR is the most comfortable headset that I've tried.  The headset fits well, keeps light out and is quite immersive.  The Oculus apps suite is still maturing and there are many experiences to choose from.  I liked this headset the most but still couldn't wear it for more than 20 minutes at a time.  And, of course, you still get the terrible "screen door" effect.  Perhaps pixel density on Android devices is still too low?

Focus is a common problem for all three headsets.  As I look to the edges of the "screens" things get blurry.  Only the center is in focus, so I have to move my head around a lot instead of just looking left or right.  For example, try reading the menu at the bottom of Oculus home without pointing your head at your crotch.

There is currently no realism in Android VR.  All apps are "low poly" or "lo fi", presumably due to processing limitations on mobile platforms.  VR on PC might be a different story today, but when the Oculus Rift Developer Kit came out it was the same thing.  The comfort and focus issues might be close to resolved but the visual quality has a long way to go.

2020 update: I need corrective lenses with different prescriptions for each eye, this is probably why VR headsets give me a headache. Maybe. 

2024 update: Meta Quest 2 sucks too, mostly for the same reasons. They wanted $80 for a usb c cable to connect it to a PC and require a pro gamer video card, so that was not an option. 

Wednesday, September 14, 2022

espresso machine hacks

intro.

Fancy coffee machines are extremely expensive and basic models do not offer much in the way of instrumentation. For my first foray into the coffee world, I wanted to see what was happening without spending hundreds (or thousands) on a professional coffee machine.

Good coffee starts with predicability. Pressure and temperature must be regulated accurately to extract the perfect flavors and texture for espresso.

This Delonghi pump espresso machine works well for a first machine but left me desiring more accurate temperature control and pressure feedback.

finale.

Here is the last picture first, showing the final features.  I've added a pressure gauge and temperature controller.  The pressure is mostly the same for all coffees using the built-in coffee holder but I'll be fixing that soon by moving to a bottomless portafilter.  

pump espresso machine with added temperature controller and pressure gauge

inizio.

These are the stock internals of the coffee maker.  The purpose of this picture is to help me figure out how to reassemble everything and reverse engineer the wiring.  Here we can see two separate temperature controlled switches which control power input to the boiler.  One switch is for "brew" and the other is "steam".  I'll be replacing the "brew" temperature switch with an external temperature controller. 

stock boiler

potenza.

Here I am working out the wiring details.  Later this will help to insert the temperature controller.  I wanted a temperature controller to perform my own (less professional) experiments with extraction temperature.  The front panel selector sends power to the stock temperature switches which are NC or Normally Closed until the desired temperature is reached, then they open and disconnect power to the boiler. 

boiler wiring

pressione.

Espresso pressure is one of the most important factors in making a great cup of espresso. The pressure is created by the pump in an espresso machine and it forces hot water through the coffee grounds at a high pressure. This pressure is what extracts the coffees oils and flavors, giving espresso its signature taste.  
If the pressure is too low, the espresso will be weak and watery. If the pressure is too high, the espresso will be bitter and have a burnt taste. The perfect pressure for espresso is around 9 bars (130 psi). Fancier espresso machines have a pressure gauge to give the operator some feedback about this metric.

This machine has a spring limit setup inside the boiler which forces the pressure up to 90 psi before exiting into the coffee.  The pressure is predictable but not adjustable.   

exploring pressure gauge location

calore.

The temperature controller requires an external relay, in this case an SSR or Solid State Relay to switch on and off the boiler.  This replaces the "brew" temperature switch from the boiler.  I left the "steam" switch in place to allow an easy switch to "steam mode" from the front panel switch.  You can see the heatsink for this SSR the first picture of this post.  It turns out the heatsink is not necessary for heat dissipation. It does help hold the SSR in place and looks awesome anyway... 

added temperature control relay

filtro.

A portafilter is a key part of any espresso machine. Its the part that pulls the espresso shots out of the machine. Its also where you add the beans to the machine.

The Delonghi "2 cup" filter has one tiny hole at the bottom which makes it a "pressurized" filter.  The entire contents are pressurized up to ~160psi during extraction.  As long as the coffee is not overly packed, this pressure level is reliable.  If the tiny hole clogs, the boiler pressure races above 200 psi while no coffee is coming out. 

termine. 

The next steps are to add the "bottomless" portafilter and perfect the tamping technique.  With this non-pressurized portafilter, the tamped coffee grounds will more directly affect the extraction pressure.  A finely ground coffee with an accurate tamping should produce an extraction around 130psi. 
 

Thursday, March 11, 2021

rip sadie


Sadie passed away just before turning 13 years old.  We already miss her dearly.  She was a good dog and we have many wonderful memories with her.  

:_(

<3


Friday, February 26, 2021

keep trying

I'm still around, making stuff.  I switched back to OpenSCAD to complicate things and because I like starting over. 




Thursday, August 20, 2020

cyberdesk: my cyberdeck inspired raspberry pi terminal


This build was inspired by movies like Blade Runner and various projects and articles featured on hackaday.  It is a desk-bound Raspberry Pi 3 and tiny monochrome crt monitor.  Salvage items such as door hinges and light switches found a new home.  A moving VESA mount adds some mobility.