• Status New
  • Percent Complete
  • Task Type Patches
  • Category Drivers
  • Assigned To
  • Operating System All players
  • Severity Low
  • Priority Very Low
  • Reported Version Daily build (which?)
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by pamaury - 2010-03-15

FS#11108 - USB Audio support

This flyspray task will hold the development of a potential usb audio driver for rockbox.
It will also serve for the development of the isochronous transfer support support in usb code.

This first patch contains my current branch. The code is not clean, not working, well I don’t like it :) But if some people are interested, the infrastructure is here but isochronous transfers need more work before this can really work. For this reason, my future work will be to have a clean way to make iso transfers work. The problem is timing: iso transfers happen every 125µs but because of the way completion handlers work, we need a way to queue several transfers. I have ideas about how to do that (that more a kind of static scheduling rather than dynamic queueing).

The first patch contains:
- the usb audio driver
- the usb test driver which is a test driver for iso transfers
The others attachments are the the user land of the usb test interface (linux+libusb).
The test driver is here if you want to do some experiment with iso transfers.

The code has evolved a lot. It can be found here: In the usb-api branch along with a major usb api rewrite (still much work to do to use the new api though)

This sounds really cool. Any chance it would eventually work with Sansa Clips?

I suppose that would mean I could use my OpenWrt router with USB as a music player?

I’m not currently working on it and the current code has no support for the sansa clips driver. We don’t even have a reliable usb driver for clipv2/+… Yes I guess so, the device would appear as a soundcard. But of course one needs to write the drivers and I don’t have time for it now.

I can understand if things are too flaky or time to implement too limited.

Just wanted to give feedback that a feature like this would be super-sweet. Just imagine.

Would ALSA need a driver too besides the appropriate USB handshaking?

It only requires the usbaudio driver which is included in all major distros. I tested it with alsa + pulseaudio on top of it and it worked perfectly.

I’m just wondering, now that the USB is stabilized for the Clips, how large of an effort would it be to expose them as audio devices?

Do you also know how I can enable the HID button box functionality?

yolee commented on 2012-05-16 10:37

Hello Amaury Pouly,

I am also interrested in this feature (for the sansa clip+) and I would like to help.
1- On which device did you test it (alsa + pulseaudio) ?
2- What is the current status of the USB on Sansa Clip+ ?
3- More importantly, how can I help ?
I only know the basics for programming on linux (git, C, makefiles, etc.)

Best regards,

This is such a good idea: I’d really like to re-use my dead battery sansa fuze as usb soundcard.

Too bad the development on this patch seems stalled.

I would really like to see this working.
I might even consider working on it, but I have a long way to go I think.
C# and Java is no problem, but I have very little experience with C(++).
Also I never went to anything than usual app coding, so I have no experience with lower level operating system and driver related things… So it’s going to be hard… But if I don’t know what to do then I’ll look into linuxdeveloping first and see if I can get started with it.

I only have a nano 2G and it seems USB HID doesn’t work and only mass storage does.
So I guess that needs to be fixed first.

I’m willing to throw some money at someone making this work , and work easily. Have a seperate program like rockbox that idenifies the audio device then can set it up as a usb mixamp. I am also willing to help in any way I can write a very solid hello world script on ANY platform , and can edit pictures well ^_^ lets make this happen. Email:

bump bump


Available keyboard shortcuts


Task Details

Task Editing