onefatsurfer
100+ Head-Fier
- Joined
- Dec 22, 2010
- Posts
- 318
- Likes
- 38
Simple, low cost, HiFi network music streaming device
Backstory:
I'll start with a bit of backstory. I purchased a Logitech Transporter a few months ago for a very good price, and was super excited about it.. It sounds awesome, looks great, etc. The price tag hurt, but it was worth it.. Then I thought about it, and decided that I could make something just as good that would cost considerably less.The Basic Concept
The Logitech Transporter is a very simple device. It uses Logitech Media Player software to connect to a server running Logitech Media Center, reads an audio file from the server, and outputs it in high quality audio. In order to replicate this, I needed something to run Logitech Media Player software, and a high quality DAC. At its low relative price and high quality sound, the ObjectiveDAC fits the bill for the DAC perfectly. I knew setting out that this was the DAC that I would use. As far as the brains of my device, I initially thought that a Raspberry Pi would do the trick perfectly. After struggling for weeks with poor quality audio from the USB output, I abandoned the plan and went a different route.The Player
Android devices are extremely simple, and version 4.1 of Android is able to play audio over USB. The MK808 is just one of several budget Android devices on the market at the time of this posting, and I chose to use that.First thing I did was power up the device. It uses HDMI for video output, so I plugged it into my TV and hooked up a keyboard and mouse. I configured my wireless network, registered the device to my Google account, and downloaded Logitech Media Player ($5 cost) and Logitech Squeezebox Controller software. Both are needed for Logitech Media Player to work for some reason. The software immediately picked up the Logitech Media Server on my network and connected, and I was able to use my cell phone as a remote to control the music. Awesome.
Next, I purchased an ObjectiveDAC (bare board) from JDS Labs, and bought some shielded RCA cables from Monoprice. I wired the ODAC to output through the RCA cables, and tested it on my computer. Everything sounded great, so I plugged it into the Android stick. Upon rebooting, the stick detected my ODAC. In the settings menu there is an option for sound devices, so I set that to the DAC. Everything worked perfectly.
I knew from the beginning that if I got this working, I would build a custom box for it, and would want to simply have as the input one power cable, a couple USB ports for an external hard drive and/or keyboard/mouse/video game controller, etc. and the output be 2 rca cables and HDMI in case I needed to diagnose anything (or if I decided to use the additional functionality of the device). I bought a powered USB hub and hooked it up, and plugged both the power and the data cables from the MK808 into it. The hub is powerful enough to power the Android device, the DAC, a wireless keyboard receiver and an optical mouse. That's all I've tested it with, but it should be able to power more. Next, I decided that I didn't want to have the annoyance of using a proprietary power cable for the USB hub, so I tore the hub apart and soldered the + and - from a full size USB cable to the positive and negative pins on the hub. There were two negative pins, so I jumpered them with a piece of wire.
Then, I got a USB-USB keystone jack, plugged a full size USB cable into both ends and hooked a 5v 2A USB power supply up to it. Using this method, it still has enough power the device.
In order to make the device automatically start up the media player software (so it's headless and doesn't need a screen/keyboard/mouse/etc.) I downloaded an android program called Startup Manager. I set it to start the SqueezePlayer and Squeezebox Controller apps at boot, and everything works fine. I haven't built my box for it yet, but figured I'd post this now and show you the box when it's done. In all, this project didn't take much time at all to do. Nearly all of the time I spent on it was spent trying to get this to work with the Raspberry Pi. Starting from scratch, I could get this going in probably an hour, including all the soldering, etc. I haven't fully tested to see if all file types will work on it yet, so I'll update this thread with any bugs/issues that I find with it. For now, I'm psyched that it's working and sounds great.
Parts list
MK808 Android 4.1 Rockchip RK3066 - $56.77 (Now down to $39.99!)[size=1.7em] Objective DAC from JDS Labs - $102.35 shipped[/size]
[size=1.7em] 5v 2A USB Charger - $9.99[/size]
[size=1.7em] 3' USB Cable - $0.94 x 2 = $1.88[/size]
[size=1.7em] Mini USB Cables - $0.95 x 2 = $1.90[/size]
USB Keystone Jack - $1.96
RCA Cable - $2.28
RCA Keystone Jacks(Red and White) - $0.84 each
Powered USB Hub - $12.99
SqueezePlayer software - $4.99
Total Cost - $195.95
Add on #1 - Color Touchscreen
I had a bit of extra cash lying around and decided that I wanted to have a touchscreen control for this. Unfortunately, most of the touchscreens on the market are extremely expensive.. Luckily, there is a cheaper, kind-of DIY option for a color touchscreen.
Barnes and Noble made a color touchscreen E-reader called the Nook Color. There is a community of people over on XDA-Developers, the NookieDev Team, that that figured out a way to put Android 4.1 on the Nook Color, and it's extremely simple to do. Nook Colors are also very available second-hand online, and they're fairly inexpensive. I bought mine used from Cowboom.com for $60, shipped, and it arrived looking like it was brand new. Awesome.
First thing you'll want to do to get Android working on the Nook Color is to download the latest Cyanogenmod 10 Nightly zip file here: http://download.cyanogenmod.org/?type=nightly&device=encore
Then, download the latest Google Apps zip file here. MAKE SURE YOU GET THE VERSION FOR ANDROID 4.1.X: http://goo.im/gapps
After that, you need to download this file: http://forum.xda-developers.com/attachment.php?attachmentid=1410340&d=1350525922
You're also going to need a microSD card and a microSD card reader. I had these lying around to use.
Next, get win32diskimager by searching Google for it.. It's free online.
Extract the generic sd card zip file, and run win32diskimager as an administrator. Use that to write the image to your microSD card. BE CAREFUL you don't write over your hard drive or something!
When that is done, pop out the microSD card and put it back in.. Then copy the other two zip files into your Nook Color and turn it on. Wait and wait and wait while it installs, and when it's done, it'll shut itself off. Turn it back on and you'll have your very own android tablet! Set it up with your information, connect it to the internet, and download the Logitech Squeezebox Controller app and you're good to go! The USB hub I used previously somehow has enough power to keep this charging all the time even while it's playing, along with the DAC and the Android stick. I'm pretty sure there's a way to run everything off of the Nook Color, but since I have the stick I'm not going to bother trying to get that working. It is very convenient, and once I build my box for the entire thing, it'll look very sharp. Anyway, here are a couple more photos, one of the Nook and one of the temporary box I have everything housed in...
Edit: There is a new android mini pc in town that's quad core, and should run a lot quicker than this one if you're planning to use it for streaming HD video. http://liliputing.com/2013/04/tronsmart-mk908-quad-core-android-tv-stick-performance-video.html
I'd probably get that one if I were building another one of these.