Use a standard USB DAC with a Nexus 7 (step by step guide)
Sep 14, 2012 at 10:04 PM Thread Starter Post #1 of 143

Deltaechoe

Head-Fier
Joined
Mar 7, 2012
Posts
69
Likes
12
I know this is covered in other threads, but it is so buried that I'm going to make a thread dedicated to it

Anyway, so you just bought a Nexus 7, congratulations, you actually got a device that will make your ears happy.  There is one caveat though, you do need to do a bit of work to get it working, but fear not, here is a step by step virutally foolproof guide to bypass the less than stellar built in DAC on the Nexus 7!

(WARNING: This guide does involve unlocking your device which can, though extremely unlikely especially if you follow the guide, lead to unexpected damage to the device, neither the developers of the software that I reference here nor I take any responsibility to any damages caused to your device.)

Things you will need:

1.  A Nexus 7, obviously (https://play.google.com/store/devices/details?id=nexus_7_8gb)
2.  A PC or laptop that runs windows 7 (just for the unlocking part, there are plenty of other guides on how to unlock for other OS's)
3.  An OTG cable (ex. http://www.amazon.com/T-Flash-Adapter-Samsung-GT-i9100-GT-N7000/dp/B005FUNYSA/ref=sr_1_1?ie=UTF8&qid=1347667703&sr=8-1&keywords=OTG+cable)
4.  A standard plug and play USB dac (preferably one that can run on battery power otherwise you get into problems with power management)
5.  Nexus 7 Toolkit:  http://forum.xda-developers.com/showthread.php?t=1766475
6.  Poitee kernel:  http://rootzwiki.com/topic/30129-kernel-nexus-7-cifsnfsusb-otg-gpu-oc-cpu-oc-072912/

Step 1: Prep tablet for use with the toolkit
  •     Swipe down from the top of the screen to open the notification area.
  •     Tap the settings icon next to the time and date.
  •     Scroll down to the Developer options area and tap it.
  •     Slide the switch to turn on Developer options.
  •     Check the box that says USB debugging
  •     Hit the back button to return to the previous screen
  •     Tap the “About tablet” option.
  •     Make a note of the Build number — the last item on this screen.

Another word about this step, if you have been using your tablet and it is still stock, make sure you backup all the files you have on it onto your computer as unlocking the tablet will erase absolutely all user data, including the /sdcard/.

Step 2: Install the nexus toolkit to help unlock your tablet (windows 7 only, if you have a different os google a guide for that os and then skip to step 3)
  •     Install the Nexus toolkit that you downloaded (posted in the things you will need section)
  •     When you start up the toolkit it will ask what model type you are using, scroll down to the nexus 7 portion and select the build that you have
  •     Start it up, and under the initial setup click on the Full Driver Installation, this will walk your through how to install the drivers to unlock the device
  •     (YOUR DEVICE SHOULD BE ATTACHED TO THE COMPUTER BY THIS POINT)
  •     If you haven't done so, take a backup of the device by clicking on the backup button
  •     Click on the Unlock button to unlock your device
  •     Under the root button, tick the Custom Recovery box and then click on root and follow the script
 
Step 3: Flash the poitee kernel
  •     Download the kernel that is posted above in the things you will need section of this guide
  •     Boot up the Nexus 7 and go through the initial setup again
  •     Put the poitee kernel onto the /sdcard/ of the nexus 7
  •     Power down the tablet completely
  •     Power on the tablet by holding the power button and down on the volume rocker, you should be in fastboot mode
  •     Use the volume rocker to select recovery mode and hit the power button to select
  •     At this point it would be a good idea to take a backup of your current state in your recovery's backup and restore menu
  •     If you are using CWM recovery, select wipe cache.  Once that is done click on install zip from sdcard and look for the poitee kernel that you downloaded, select it and follow through with the flashing
  •     If you are using TWRP recovery (which I personally prefer), touch the wipe tab and then touch Cache under the wipe menu, once that is done go back to the home menu and touch the install tab and look for the poitee kernel and select it, follow the prompts to install
  • You have now flashed the kernel
 
Step 4: Final steps (the easy part)
  •     Reboot back into the system, hopefully everything has gone ok and you now have poitee kernel installed, if you run into problems then reboot back into recovery and restore the backup that you took in step 3, then repeat part 8 or 9 depending on which recovery you have installed.
  •     If everything went smooth, then power down the tablet and attach the OTG cable to it, then attach your DAC to the other side of the OTG cable
  •     When you power on your tablet, the sound should be routed through the USB DAC instead of the built in one as long as you don't disconnect the DAC
  •     Enjoy much higher quality sound from your new tablet XD
 
 
NOTE:  If you do disconnect the DAC at any point, you will have to reboot the tablet with it attached.  Also to route sound out of the tablet, you always have to boot it up with the DAC attached otherwise it won't switch.  Also if you are using the E17, make sure you turn the USB charge feature off so it only uses the battery, it seems to draw too much current for the tablet to handle and doesn't work well when relying on the tablet's power.
 

 
Sep 15, 2012 at 7:26 AM Post #3 of 143
A list of standard USB DAC reportedly interworking with a custom Android-powered tablet Asus/Google Nexus 7:
 
custom Google Nexus 7 > digital audio stream >> USB OTG cable (Micro-A plug inserted in the Nexus 7) >> standard USB DAC >> amp >> headphones
 
Customizing Nexus 7:
http://www.head-fi.org/t/627459/use-a-standard-usb-dac-with-a-nexus-7-step-by-step-guide
http://www.head-fi.org/t/595071/android-phones-and-usb-dacs-how-to-increase-the-issues-priority-with-google/225#post_8599585
 
 
. ESi Dr. DAC nano:
http://www.esi-audio.com/products/drdacnano/
http://rootzwiki.com/topic/30129-kernel-nexus-7-cifsnfsusb-otg-gpu-oc-cpu-oc-072912/page__st__60#entry934016
 
. FiiO E7 (USB DAC/amp):
http://fiio.com.cn/product/index.aspx?ID=28&MenuID=020301
http://forum.xda-developers.com/showpost.php?p=30281733&postcount=83
 
. FiiO E10 (USB DAC/amp):
http://fiio.com.cn/product/index.aspx?ID=37&MenuID=020301
http://forum.xda-developers.com/showthread.php?p=29805237&highlight=asound#post29805237
 
. FiiO E17 (USB DAC/amp):
http://fiio.com.cn/product/index.aspx?ID=42&MenuID=020302
http://www.head-fi.org/t/595071/android-phones-and-usb-dacs/285#post_8696566
 
. iBasso D10 (USB DAC/amp):
http://ibasso.com/en/products/show.asp?ID=39
http://rootzwiki.com/topic/30129-kernel-nexus-7-cifsnfsusb-otg-gpu-oc-cpu-oc-072912/page__st__50#entry931191
 
. Logitech Gaming Headset G930:
http://reviews.cnet.com/headsets/logitech-gaming-headset-g930/4505-13831_7-34152980.html
http://forum.xda-developers.com/showpost.php?p=30590889&postcount=1409
 
. Practical Devices XM6 (USB DAC/amp):
http://www.practicaldevices.com/purchase_xm6.htm
http://www.head-fi.org/t/624085/android-devices-compatible-with-usb-dac-audio-out#post_8636550
 
. Turtle Beach Micro II:
http://www.turtlebeach.com/products/sound-cards/audio-advantage-micro-ii.aspx
http://www.head-fi.org/t/595071/android-phones-and-usb-dacs-how-to-increase-the-issues-priority-with-google/210#post_8565219
 
Sep 15, 2012 at 7:36 PM Post #6 of 143
The Trinity 7 kernel also works. I need to figure out how to get the E17 working on my SGS3. Then I'll be in business. Thanks for the writeup!
 
Sep 16, 2012 at 10:58 PM Post #7 of 143
Quote:
The Trinity 7 kernel also works. I need to figure out how to get the E17 working on my SGS3. Then I'll be in business. Thanks for the writeup!

That's good to know, diversity is grand.  As far as the SGS3 goes, I don't think that's going to happen since the DAC does draw a bit too much power even when you turn the USB charge option off.  I don't think the phone can handle that.
 
Sep 18, 2012 at 3:39 AM Post #9 of 143
For the time being, the stock Galaxy S3 can’t interwork with the FiiO E17, even via a powered USB hub.
http://www.head-fi.org/t/595071/android-phones-and-usb-dacs/60#post_8430562
 
A powered hub does not draw power from the Galaxy S3, and it provides full power to the E17.
 
 
There is a controversial FiiO E17 interface descriptor numbering.
 
According to the USB specifications, “interfaces are numbered from zero to one less than the number of concurrent interfaces supported by the configuration”.
 
The three interface descriptors of the E17 are the following:
. interface descriptor number 0: Human Interface Device
. interface descriptor number 1: Audio Control
. interface descriptor number 3: Audio Streaming
 
This latter should have the number 2.
 
S3 dmesg log output:
<4>[ 1040.806786] c0 usb 2-1: config 1 has an invalid interface number: 3 but max is 2
<4>[ 1040.806910] c0 usb 2-1: config 1 has no interface number 2
 
 
An equivalent issue with a Teac USB DAC:
http://comments.gmane.org/gmane.linux.alsa.devel/96433
 
"Which doesn't prevent Teac from writing buggy firmware.
> $ dmesg
> usb 2-4: config 1 has an invalid interface number: 3 but max is 2
> usb 2-4: config 1 has no interface number 1
 
> The USB audio driver actually just uses functions from the USB driver
> core to access the interface association. However, the USB core didn't
> assign it during its probe, which is most probably a result of the
> broken descriptor set.
 
And it turned out it is.
 
Ben, can you try the patch (of the link) below, please? It's a pretty obvious flaw in the USB core system which is triggered by buggy descriptors."
http://permalink.gmane.org/gmane.linux.alsa.devel/98243
 
 
Archos G9 can interwork with E17.
And at least drivers/usb/core/message.c of Archos G9 and the one of SGS3 are different, slightly different.
https://gitorious.org/archos/archos-gpl-gen9-kernel-ics/blobs/master/drivers/usb/core/message.c
https://github.com/sgs3/GT-I9300_Kernel/blob/master/drivers/usb/core/message.c
 
 
Apparently, a custom S3 can work with a E17 according to the following topic:
http://www.amazon.co.uk/review/R1UFZGEPXQ5FHN
 
 
Also the E17 has some issue with the stock Windows driver:
http://www.head-fi.org/t/615404/downloading-and-installation-guide-for-fiio-e17-asio-driver-the-beta-version#post_8483634
 
OK, the main reason that we release the ASIO driver is that some user complained about that the E17 can not work in their PC/laptop, so ASIO is a option for them to make the E17 work. 
 


 


 
Oct 5, 2012 at 8:17 AM Post #13 of 143
Deltaechoe,  Thanks for your guide!
 
It works liquid smooth, and the Nexus Toolkit is really useful and easy to follow  (even have Roll Back to Original Stock Rom function)
 
[I am going to Donate some $ to him]
 
Btw, it is wierd that I have to use Quick Boot apps to go to recovery mode,
And it is TWRP recovery rather than CWM (although I clicked flash with CWM).
Anyway seems TWRP looks and works cool for me.
 
 
I want to say:
 
My iBasso D12 and Nuforce Icon HDP work PERFECTLY FINE !!!
 
But my Audioquest  Dragonfly USB DAC doesn't work...
Now listening and enjoying!!! Thank YOU very much.
beerchug.gif

 
Oct 15, 2012 at 5:41 PM Post #14 of 143
Thanks for this! 
 
Following this guide I got my Nexus 7 and E17 to work together. Awesome sound on my Sennheiser HD-598. I registered only to say thanks 
bigsmile_face.gif

 
Also, in case anyone was wondering V3 Poitee kernel works fine with latest android 4.1.2 (stock).
 

Users who are viewing this thread

Back
Top