This is my first post but I've been in communication with goldenSHK for quite a while and I think it's time to share what I've been working on. First of all, let me explain my motivation- I am not an audiophile of the type that frequently visits here, I like BASS. Alot. I also think wires attached my phone are annoying, and I think it's even more annoying to have an amp banded to it, and the most annoying is that USB DACs aren't compatible with my Nexus 4.
I fixed all that. Two ways. One way using BT, and another way using Airplay.
This was actually very straightforward and easy, easy to setup and easy to use.
Purchase a Go-Dap from Amazon, $19.99
Purchase a Soundbot SB330, $10.99
Step #3. Put the SB330 in the Go-Dap.
Step #4. Wonder where the bass went.
This is a big problem w/this amp, I verified the issue is the amplifier by connecting directly to the dock input pins with a 3.5MM source, it just has a bad roll-off and hollow sound. Bluetooth definitely doesn't help, but the SB330 is BT 3.0 and 320Kbps capable, so it should be reasonably decent. Some of you might be satisfied with this arrangement, especially if you like the way the Go-Dap sounds connected to an iPod/iPhone.
This way is far more complicated, more equipment, and much more rewarding. REQUIRES ROOTED ANDROID PHONE, or pretty much any stock iPhone.
Acquire a TP-LINK TL-MR3040 Router, $29.99.
What makes this router special is that is roughly the same size as a Fiio E7, and it is battery powered! Portable! I rubber band my MR3040 to my Fiio E7 and throw it in my backpack.
Step #2. Acquire the USB DAC/AMP of your choice, as long as it is 44.1Khz compatible(very important), I cheaped out and bought a Pyle Home PHE7AB, it was $49.99 but it's gone up and the Fiio E7 or E07K are better values now in my opinion.
Flash your TL-MR3040 with a special OpenWRT build that has Shairport integrated and the USB Host patches that were just released two weeks ago applied. Once I figure out hosting I'll link versions I made for both the V1 and V2-2.1 of the router.
The build I made doesn't require any additional configuration, but I recommend it, because it is set to Open authentication and the telnet daemon is running, someone who is mischievous could brick your router while you are out and about. I'll try to write a guide to setting up OpenWRT from telnet/SSH but guides are not my forte- it helps if you have Linux experience. The router doesn't have enough flash space for LuCI, so no web interface.
If anyone is actually interested, and has experience already, building OpenWRT images and wants to know more about this process , PM me.
Shairport is an open source implementation of Apple's Airplay, it only supports 44.1Khz, that's important to note, because a DAC that doesn't support that rate is going to have weird slowed down or sped up output. Shairport is configured to start automatically in this image.
Download AOA Service Airplay on Android, $2.99
There are other Airplay apps but this is the only one that works for this setup with streaming audio. After installing connect your phone to the OpenWRT wifi and open the App, you should be able to connect to a speaker named WinterPlay- Yes I named it after myself. I recommend testing music stored locally on your phone, they should play crystal clear after the initial buffer is established(there might be some stuttering here). If you only care about locally stored music, you can use any AirPlay app/player, if you use a player you don't even need root.
Enable Streaming Music
You'll notice above that your data connection is shut off, so you can't access the internet. We're going to fix that with a script that shuts off wifi, manually loads the driver and connects. 3g/4g data is maintained.
Here it is, BusyBox and root are required.
# enable dual-networking: pkill dhcpcd svc wifi disable svc data enable netcfg wlan0 up cd /data/misc/wifi/. wpa_supplicant -B -Dnl80211 -iwlan0 -c/data/misc/wifi/wpa_supplicant.conf dhcpcd wlan0 # disable dual-networking: pkill dhcpcd pkill wpa_supplicant rm -rf /data/misc/wifi/wlan0 netcfg wlan0 down svc wifi disable
There are two scripts there, they should be self-explanatory, use the script program of your choice.
Now, order is important here. Connect to the MR3040, Load AOA and connect to the speaker, then run the script. It should reconnect to the speaker and show your data connection is active. This script is written for the Nexus 4. Load up Pandora or whatever and enjoy streaming music over AirPlay to your shiny USB DAC.
Configuration for an iPhone is much simpler, set a static IP like 192.168.1.254 and erase the Router/DNS/Search Domains. If you can tether the other option is to run your MR3040 in STA/client mode and connect that way.
Why can't I just tether the MR3040 to my phone with Android?
AirPlay uses multicast for discovery, and Android silently drops multicast packets when in tethering mode. Android also drops multicast packets when in WiFi-direct mode. Don't fret though! I'm in communication with the AOA developer, manually connecting by IP is in the works! I'll post instructions once he's done his part and has updated the software.
The script didn't work for XXX Phone?!
That script was written for a Nexus 4, on anything else YMMV, but it's probably solvable if it doesn't work. Google is your friend.
I want the MR3040 to automatically connect to my home/work wifi in client mode when available
Me too, I'm working on it. It's probably going to work best with the V2 router because it has a slide switch that I think I can script to switch between AP and STA mode.
I compiled my own OpenWRT build and the audio is all fubar
See this blog post for the fix: http://www.vincentgijsen.nl/fixing-poping-noise-on-tp-link-tl-wr703n-router/
Pandora sounds kind of bad?
Pandora sucks. Actually I think the problem is that it uses 64K AAC+ ....if I had to guess I would say it is 22Khz or 32Khz, and it is being resampled to 44.1Khz for AirPlay, the result is....not good. Fortunately you use whatever you want though, 320Kbps Spotify?
Why do I need this?! It's pointless.
You don't need it then.