Using the Logitech Squeezebox Touch with EDO and hiFace1 based USB DACs/converters

Posted by Michael on Thursday, March 21, 2013

[Updated 2013-09-08 with info about SSH access and request for feedback.]

I’m the owner of a Logitech Squeebox Touch (SBT) media player which feeds an external DAC. I’ve been using the “EDO – Enhanced Digital Out” plugin by “Triode”. which allows for high-res output on the coax and USB ports. It was announced and is actively discussed on the slimdevices forums:

http://forums.slimdevices.com/showthread.php?94512-Announce-Enhanced-Digital-Output-app-USB-Dac-and-192k-Digital-Ouput

The forum pages lists the DACs and USB converters known to be compatible with EDO. This includes the M2tech Hiface2 USB->SPDIF converter. However, the original hiFace (“hiface1”) and products using it are not listed as the SBT Linux kernel do not support them. However, there is a Hiface1 driver for linux It is available in source code format from https://github.com/panicking/snd-usb-asyncaudio.

I’ve ported and built it for the Squeezebox running the SBT kernel shipped with the EDO plugin.

Download and installation instructions (tested with Squeezebox software version 7.7.2 and EDO version 0.8):

  • Plug your hiFace1 (or DAC built upon it) into the SBT USB port
  • Enable SSH login to your SBT.
  • Open a root SSH session (default password: 1234) and execute the following 5 commands all followed by “return” (newline). The last one will reboot your SBT. Please be aware of any non-intended line-breaks inserted by your browser formatting the text.
  • Request the driver bundle – SBT-hiFace1-driver.zip – from me (drop me an email, find the address below).
  • unzip SBT-hiFace1-driver.zip
  • cat rcS.local >> /etc/init.d/rcS.local
  • chmod a+rx /etc/init.d/rcS.local
  • reboot
  • You should now be able to select your hiFace1 device in the EDO menus. It may appear as ‘snd-usb-asyncaudio’.

Disclaimers, legal stuff etc: the above driver and instructions are provided as-is and I take no responsibility for its usability or any negative consequces. This work would not have been possible had it not been for M2tech publishing the hiFace driver and Triode for developing the EDO plugin. The M2tech driver are covered by the GNU general public license which allows for the above distributions of modified derivative work in binary and source form as long as specifications of the changes made and instructions on how to get the source code are provided. Please find them in the ZIP file.

The above installation procedure require some SBT software skills. If you mess things up, you may have to reset your SBT to factory defaults.

A note concerning SSH access

  • If you are a windows user, you’re advised to dowload the prorgram “putty.exe” from http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html When you run it, you will be presented with a windows where you can type the address of your SBT and click ‘Open’. You then have to supply the user name (root) and the password (1234). If you would like to paste the above commands into your SBT root session, you should you can do be marking & copy them the Windows way, move the mouse to the putty windows, and click the right mouse button and click the return key.
  • If you are a Macintosh user, start up a command shell window and type ‘ssh xxx -l root’ where xxx is the IP address of your SBT.

A few debugging hints if things dont work:

  • If you get error messages when executing the commands, do check spelling. Advise: case matters, sorry for making all those mix-case file names.
  • Execute the command ‘lsmod’ in a SSH session to the SBT. Proper output should include the line snd_usb_hiface 11552 3
  • If the trailing number is 0, the driver has been loaded correctly, but you haven’t selected the hiFace device for audio output.
  • If it is missing entirely, the driver has not been loaded into the SBT. This may be because you’ve tidied up things after installation. Try to load it manually, execute the command /sbin/insmod /root/snd-usb-hiface.ko
  • If it produces no output, the module has been loaded now and the error may be that you haven’t created the rcS.local file properly.
  • If it complains about ‘unknown symbol in module, or unknown parameter‘, the problem may be that you have not installed the EDO plugin yet. You may execute the command ‘dmesg‘, it wil probably produce messages like ‘snd_usb_hiface: disagrees about version of symbol XXX‘. This means that the SBT runs the stock Logitech kernel or a EDO kernel that is not compatible with the downloaded hiFace1 driver.

If you run into troubles, got things working with modifications or have other info that you would share with me, please mail me at [email protected]. The driver is known to work with the Metrum DACs, Wyred4sound DAC 2 and the original hiFace1 USB->SPDIF bridge. I’ll love to hear the status of the M2Tech DACs (Young etc) and other hiFace1 based DACs. I believe it should work.

A note: it has come to my attention that some DACs will claim that the hiFace1 outputs SPDIF data with a sample rate of 48 khz giving the impression that the SBT or the driver resamples all music to that rate. This is not the case, but a symptom of the fact that the hiFace1 chipset does not supply proper sample rate info. This may be annoying but harmless.