USB drive max read speed

Hello all!

I’m new to this forum and I’m glad that nowadays there are such powerful tools that ease the development of embedded/hobby devices and are so many people who like to tweak them :slight_smile:

I would like to develop a yet another WAV audio player and have the following requirements from the board I’m looking for:

  1. Be able to handle USB hard drive with minimum of 250GB capacity
  2. Required minimum continuous USB file read spead of 200KB/sec, ideally 2MB/sec
  3. Accept input of an external clock (2.8224MHz) (with I/O pins)
  4. Have at least 2 output I/O pins for I2S format output.

As I’m accustomed with .Net framework I would love to try my skills in the embedded world and write a simple application that would act as an WAV-I2S streamer and file playlist navigator.

  • Did somebody try to measure the through maximum USB read transfer rate of the FEZ Domino board?
  • Can I have at least 200KB/sec continuous read speed from an USB hard drive?
  • What is the maximum USB hard drive capacity that can be accessed with FEZ Domino? other USB Hosts from the market are limited to access 512byte cluster sized HDDs only, which would limit the max capacity to ~100GB.

I hope the answers will be positive as I’m kinda lost my hope to find an easy way to complete my project.

Thank you!

  1. no problem
  2. well over 200K
  3. not supported but why is this needed?
  4. We do not support I2S but the processor is capable of I2S

I suggest you start with a cobra + MP3 decoder chip ASAP. Once you are familiar with the system and you know exactly what you like/dislike, call GHI and talk to the engineers about your needs.

  1. I need an external clock to read the I2S data with the pace of that
  2. I thought you don’t have WAV to I2S library but I thought that I will write one for this purpouse. The WAV file contains basically the raw audio bits, it only has to be streamed out with the pace of an external clock (thus 3.)

I want to stream simple 44.1/16 WAV files only in I2S format as I have my DAC which has I2S input. I also know that are many others who would like to have an mass storage WAV to I2S player which streams out data using a very high quality clock. If this could be made to work for high resolution audio files as well: 192KHZ/24bit that would be wonderful, but this would need 2MB/sec continuous read speed from the USB storage!

In the brochure of Domino at FEZ Domino Pins Features I read that “* These pins can work as interrupt inputs”. Can I use Di13* (SPI1 SCK) pin as clock input for my external clock and the other two pins like Di11 and Di12 as outputs for my I2S data stream?


By the way, all our devices support WAV playback on the analog output pin. But that is very low quality option.

The interrupts pins are managed which means you can’t use them too frequently or you will degrade the whole system. Ideally 50Hz max works just fine.

You should call GHI and talk to the engineers about your needs.

Thanks for the quick info!
My clock runs at 2.8224MHz so using interrupts is out of question.
I think the only solution would be to use the SPI to send the data read from the WAV files to a uC board which will take care of the rest.

One more question related to this:

  • Is FEZ Domino’s SPI capable of streaming the content of a file read from an USB drive at a continuous rate of ~700KB/sec ?
  • If not, what is the maximum uninterrupted read rate I can get from SPI ?


You really have to try NETMF to know how all fit together. I will try explaining. SPI can give you 3MBytes/sec but that is with the assumption you have passed on the data down into the system. But you if you call SPI with 100 byte chunks then the speed is much less due to the penalty of going from managed to native back and forth.

Like I suggested, call GHI and discuss this on the phone…you will get better answers. Even better, try a device first then make the call. FEZ Panda is $35 only if you just want to try it out then you can switch to FEZ Cobra.

I think I will try FEZ Domino as its the cheapest which has support for USB Host and that is what I need. Thanks!

I am sure you will love it and even if it didn’t fit this particular project the you will use it for other future projects.