WiFi speaker upgrade and Home Assistant TTS

A while ago I picked up a wi-fi enabled speaker from Target or Kmart for $50. It was advertised as on special for $80 down from $160, so I figured how bad could it be? Then when scanned in it came up as $50 so even better.

The speaker natively has Spotify connect and DLNA support, I don’t really have anything that streams to DLNA, so Spotify connect was what I had planned for it.
I did hope that I could get Home Assistant talking to it over DLNA but couldn’t find any DLNA components so wasn’t too confident on that.
The speaker itself feels well built, looks pretty decent, and sounds okay. It’s a bit bass heavy, and the PSU always sparks when you connect it (why is it 15v? Why not 12v???)
I used it for a day or two then it kind of got abandoned, as nice as a wifi speaker is, when it’s limited to just Spotify that’s less than amazing.
So fast forward a few weeks, I remembered that I have some Chromecast audio laying around doing nothing.
I had purchased them to test out the multiroom audio playback, something that has always interested me.

But after testing it out I didn’t really have a need for it.

I’m not walking around my apartment enough.

And the tv already has a regular Chromecast.
So the audios were just sitting on my modem in a triangle.
I grabbed one and hooked it up to the aux input on the wifi speaker to see how it sounds, and well, having the ability to stream content from almost any multimedia app, website or device is much more appealing than just Spotify.

Oh right I should mention that the speaker has a tendency to just, enter a sleeping state, where it disconnects from wifi, and doesn’t reconnect until you wake it up (I had to power cycle it ?)

This makes it REALLY annoying to use.
So I set out in a venture to install my Chromecast audio inside the wifi speaker,
What follows is a whole lot of work and overengineering that for the most part ended up being redundant.
I disassembled the wifi speaker and found that it does indeed have the rated speakers, and a fairly sized mainboard.

It had a wifi add on board too.

I left this in there so it will still function as its original purpose.

The plan was to disassemble the Chromecast audio, and solder wires between the aux port on the speaker and the Chromecast.

All the tests I did on this gave me faint audio on the right channel, and slightly louder audio on the right channel.

I couldn’t figure out why this was happening, as I traced all the connections and they were all correct ?

The only thing I can think of was maybe the wire is too high loss ?

Idk it was crappy hook Up wire.

Anyway I ended up just using the Chromecast short 3.5 cable. And melting a hole to plug it into the speaker.
For power I had to be a bit more creative, I wanted to run it off the existing power supply so it would be self contained.

A quick look at the main board of the speaker reveals a header with an i2c? Port on it. Including 3.3v VCC and GND!

I made a quick micro USB to wire lead and hooked up the Chromecast to the 3.3v line to see if that was enough to power it up.

Unfortunately it seems Chromecast needs more current than this port could give.

The Chromecast would power up then keep cycling between orange and white led, I think this is some sort of insufficient power indicator. Else it was just rebooting over and over haha.
Next I tried hooking up a 3.3v to 5v boost converter to see if it was just the low voltage causing the problem, but this has the same effect.

I concluded that this connector probably didn’t have enough current to power the Chromecast, which normally wants at least a good 5v 700-1000mAh of current.
I decided I would have to pull my power from the main +15v input, which obviously has to be stepped down.

So I grabbed a AMS1117 5V voltage regulator, which from memory the data sheet says can handle up to 12v (she’ll be right mate) and can output up to 1amp
Hooking this up between the 15v main input and and h Chromecast seemed to result in the same thing as before though …
It’s at this point I was wishing I had a nice big LM7805 or something.
I did however have an “adjustable voltage regulator module” from aliexpress, which was big and beefy. I wired this up to the 15v and then hooked up my multimeter to its output, it was showing 15v.

I turned it’s pot until it was a stable 5.02v which is close enough and then wired the micro USB to that.

Hooked up the Chromecast and it worked !!!

I shoved it all inside the speaker and reassembled it all.
With the speaker reassembled I gave it a test and all looked great!

Well worked great.
I remembered then, that Home Assistant had the ability to sent TTS to my TV Chromecast, I had disabled discovery of Chromecast because it kept showing up in the main view and nothing was using it,

I wondered if it could send TTS to the Chromecast audio??

So I re enabled discovery of Chromecast and restarted Home Assistant to see if it would pick it up. It did! And I had the option for TTS!

I did some setup stuff in Home Assistant that I didn’t document, but it was pretty straightforward!
Now I can send verbal notifications to the speaker’s by calling the tts service in home assistant, specifying the speaker media_player.wifi_speaker and giving it a message!

I also put another Chromecast Audio hooked up to a small Bluetooth speaker via a 3.5mm cable in the bathroom, so I can have notifications in there (this is also the only room with a sensor node at the moment!)

a notification in there could be: If the humidity reaches 100% and the window is detected as closed, verbally say ‘Please ensure window is opened to prevent mould build up’

or something like that.


Home Assistant is also able to message me via Facebook Messenger, which is handy for notifications away from home!
I might do another write up on Home Assistant another time though, once I fully understand it!


Thanks for reading 🙂

Some pictures follow: