When Google halted production of the Chromecast Audio at the start of 2019, there was a (now silent) outcry. Fans of the device loved the single purpose audio streaming dongle that delivered wide compatibility and drop-dead simplicity at a rock bottom $35 price. For evidence of this, look no further than your favorite auction site where they now sell for significantly more than they did new, if you can even find an active listing. What’s a prolific hacker to do about this clear case of corporate malice? Why, reinvent it of course! And thus the Otter Cast Audio V2 was born, another high quality otter themed hack from one of our favorite teams of hardware magicians [Lucy Fauth, Jana Marie Hemsing, Toble Miner, and Manawyrm].
The Otter Cast Audio is a disc about the shape and size of standard Chromecast (about 50mm in diameter) and delivers a nearly complete superset of the original Chromecast Audio’s features plus the addition of a line in port to redirect audio from existing devices. Protocol support is more flexible than the original, with AirPlay, a web interface, Spotify Connect, Snapcast, and even a PulseAudio sink to get your Linux flavored audio bits flowing. Ironically the one thing the Otter Cast Audio doesn’t do is act as a target to Cast to. [Jan] notes that out of all the protocols supported here, actual Cast support was locked down enough that it was difficult to provide support for. We’re keeping our fingers crossed a solution can be found there to bring the Otter Cast Audio to complete feature parity with the original Chromecast Audio.
But this is Hackaday, so just as important as what the Otter Cast Audio does is how it does it. The OtterCast team have skipped right over shoehorning all this magic into a microcontroller and stepped right up to an Allwinner S3 SOC, a capable little Cortex A7 based machine with 128 MB of onboard DDR3 RAM. Pint sized by the bloated standards of a fully interactive desktop, but an absolutely perfect match to juggling WiFi, Bluetooth, Ethernet, and convenient support for all the protocols above. If you’re familiar with these hackers’ other work it won’t surprise you that what they produced here lives up to the typical extremely high quality bar set by such wonders as this USB-C adapter for JBC soldering iron handles and this TS-100 mainboard replacement.
It sounds like a small production run might be on order in the future, but until then production files optimized for a particularly popular Chinese manufacturer are provided, with complete BOM and placement files. It sounds like turnkey production costs from that manufacturer are a shockingly reasonable $10 (total) per unit with most components, and come to a still-reasonable $22 with the remaining self-sourced components manually installed.
For a demo of the finished goods, check out the tweet embedded after the break.
Proud to finally announce OtterCastAudioV2, an open-source audio streaming device running Linux. Based on a Sochip S3 SoC, featuring a Webinterface, shairport-sync, snapcast, Spotify Connect and pulseaudio sink. pic.twitter.com/9GYVGyEKYI
— Jana Marie Hemsing (@_Jana_Marie) March 22, 2021
I notice that it has three audio jacks, do they all simply output the same audio or can they output different audio or even receive audio?
From a brief look at the schematics: One of the jacks is the MIC in mentioned in the article.
The other two are called LOUT/ROUT and LHPOUT/RHPOUT with HPOUT having much bigger coupling capacitors. My guess: One is the line out, the other is for headphones.
Correct! :3
No SPDIF out? Shame… I would ditch the head-amp and analog in for digital out any day of the week, but hey, can’t please us all :) Keep up the good work and all the best in the future!
Two of them output the same audio, while one of them is a line-out and the other is amplified for headphones. The third connector is a line-in connector, allowing you to record/receive audio :)
The schematics show they are mic/line in, line out, and headphone out. Plus there’s a microphone on the board.
Reading the BOM it is an B4013AM422-42 Electret Condenser Microphone which would be placed on the circular pads to the top right of the Allwinner(SOCHIP) S3 video encoding processor.
Well maybe not easy Sony and Philips do not appear to sell any cheap chips that will encode AES3/spdif (The exact same signal is used on coax as blinks the LED’s).
All I could find was some FPGA code that can decode the standard
https://github.com/search?q=AES3%2Fspdif
And it is suggested that you could implement it with an Arduino with some tweaks.
https://scanlime.org/2011/04/spdif-digital-audio-on-a-microcontroller/
According to GitHub:
*Audio Line Out
*Audio Headphone Out
*Audio In
I keep seeing projects like this, but sadly none seem to address something thats become really important to me, and google does a pretty good job of – Multi Room Audio. They practically give the Home Minis away, so theres even music or radio to shower to.
Back in the day, Squeezebox was fantastic as it would sync up rooms perfectly, they sold both all in one speakers and dumb streamers, and also allowed software players. Unfortunately nothing other than google / sonos / (other big players?) seem to support that now.
Ottercast supports multi-room audio. :)
At least for my narrow case, AirPlay does multi-room. I have used Apple AIrport Express wifi base stations as Airplay receivers since they were first released 15+ years ago. In Windows iTunes, I can choose multiple Expresses (and/or “My Computer”) as output devices for my music.
On Macs, Airplay devices can be set as the system speakers, for all applications. On Windows (without 3rd party kluges) only iTunes can broadcast to them.
I’m not sure what the capabilities are with an iPhone or other device as the music source.
You can still use squeezeboxes. The server is updated frequently by the amateur community. It would probably be easy to connect a BT transmitter to a squeezebox or one of the more recently design compatible players based on RPi, etc. to work with sound bars, etc.
https://www.avforums.com/threads/building-a-raspberry-pi-squeezebox-player-for-%C2%A3100.1957747/
Yes have ended up giving my Squeezebox collection to my FIL when I changed to a fleet of Sonoses, and then more recently google homes. With 6 zones, the sonoses were getting expensive.
He’s got them running from an RPi serving just local music. The BT transmitter you touch on is a fantastic tick for SB – I had a BT transmitter indoors, a KLEER transmitter for a portable ARCAM R-Cube that came out to the garden, and a couple of O2 Jogglers as dedicated control surfaces. Back in the day, it did everything, and still probably would if wife appreciation factor was less of an issue!
Does “wife appreciation factor” really mean “sometimes the system didn’t work until I’d logged onto some of the machines and fiddled with things” ?
That was exactly the problem! Squeezebox Server has got upset about something / stopped reindexing / lost half the library / crashes when playing X song!
@Ben, haha, I have no wife, and I am not yet a wife, but I’m familiar with those kinds of solutions which we techy people think are fine, but really they’re quite fragile. It’s usually worth investing some time to make sure that things can be restarted gracefully (without manual intervention) to a working state and that any failure is detected (logged) and recovered from automatically if possible.
Many years ago I shared a home with a friend who wanted to run our home network like it was an enterprise installation. We said fine, but she had to support us when it went wrong. Unfortunately it went wrong when she was out of the country and we had to break into her room and have her talk us through connecting through her labyrinth of old computer hardware.
Arylic Audio does some cool stuff at reasonable cost from what I’ve seen online about their products. and includes Airplay and Bluetooth.
Does it have optical output like the chromecast audio did?
If you mean TOSLINK which uses a LED, I’m sure it could easily be added.
TOSLINK isn’t just ‘an LED’, it’s the protocol running on that LED. It’s not like you’d connect an LED to a headphone output and it’d just work.
I dug into it a bit more and Sony and Philips, the S and P in S/PDIF, are not selling any cheap one chip solution that will encode AES3. I did post another reply with links that has not arrived (yet), which suggests dedicating an Arduino to bit-bang it, it is not a complex protocol.
Or a teensy:
https://hackaday.com/2015/06/09/teensy-adds-spdif-to-library/
If you do that you’ve already lost the benefit of keeping the audio in the digital domain. Any equipment that has TOSLINK or S/PDIF will have an analogue input so you may as well use that rather than convert back to digital again and then back to analogue a final time.
You can bitbang it, but be careful of what you hook it up to. Traditional 16-bit stereo implementations recover the clock from the transmitted data to time the DAC, so any jitter in the output can wreck sound quality. DSP-based receivers (as most are) will retime the signal to a local clock making this a non-issue.
If your audio source has an I2S output, you can use the time-tested Cirrus / Crystal Semi CS8406 with an external precision oscillator to generate a clean AES3 signal.
But tricks like abusing SPI or SPI-like interfaces on an MCU would work too.
digital->analogue->digital->TOSLINK that would just be silly, obviously you would add another I2C device to the PCB and tap into the preexisting digital inputs and master clock lines going to the SSM2603 (Analog Devices – Low Power Audio Codec).
You could even add a spdif input if you wanted:
https://github.com/PaulStoffregen/Audio/blob/master/input_spdif3.cpp
Well it does with appropriate hardware and forgetting the whole protocol
Not yet, but stay tuned.. ;)
I’d love to get a few of these when a production run happens.
Same here. I wish there was a mail list or some way to get notified when that actually occurs.
Please add me to the list as well….
What this needs is a cheap Android STB box converted to be a headless music source. Pick something you have the Android source code to, and then modify the ALSA setup to send the audio out via snapcast. You can’t do that without root privileges. Now you can run any Android music streaming app on it.
So how about a UI for it? You can either remote the screen. Or remote control it using Android Auto. I have long been annoyed that the Android Android music interface API is encryption locked. There are hacked encryption keys on github to let your access it. Once you have access to it, you can make a little remote control app that lets you pick the remote app for the music source and then select song/playlists from that app.
I would very much like to have a tiny OLED remote control that works this way, but the encrypted Google API blocks me from building it. The device would function as a head-end to a headless Android box. You can build this from an ESP and OLED for three dollars. I have tried contacting Google a dozen times about allowing Android Auto to be used this way. But I never get a response.
So, completely useless for someone who wants the main feature of a Chromecast which is the chromecast feature.
My thoughts exactly. The project is neat but the features are not “a superset” of the CC Audio’s feature if the one thing the CC Audio is for is left out.
I had a similar project in mind for years! In my case I just wanted to support spotify connect and some kind of web player
I’d love to see a demo video showing how the Web interface controls snapcast eg multiple streams to multiple sinks
why can’t we produce this in Europe?
You can. They just documented how they produced it.
would buy it in a second if it had optical digital toslink (pcm) and google cast support.
usb-audio would be a bonus.
Please forgive an old man’s ignorance but what does this do? I have a USB bluetooth dongle in my desktop and a Logitech BT Audio Adapter next to the amplifier so I can play sound from the desktop without wires. Does this mean that I could run UTP to the amplifier and do away with the radio waves?
Pretty much – It also means the device itself is capable of managing the stream – i.e. if you set a Radio station playing, and kill the PC, the radio is still playing as the device itself is pulling down the stream. It also means that others can control it.
nice. but makes me kinda wondering why don’t we see the ESP32 in such projects. it has all the bells and whistles required for this.
Where and how can we buy this?
Why spend all the time making this and then not selling it?
We need chrome casy audio replacement.