ATA HDD driver


I’m new to NETMF. Util know, I worked with AVRs (tiny, mega and xmega) and .NET on PC (this is my work domain).
Just ordered an EMX module (from a shop in germany) and should get my hands on it by the end of this week. Also got an LCD display with resistive touch panel.
I started designing a board to host the EMX module, lcd and some other stuff (network, card, bluetooth, vs1053, USB host, USB client, etc.).

I am really excited of all this integrated features (features that would take a lot of work to integrate on other designs) and this brings me to my question:

I would like to use a 2.5" ATA Hard drive connected with the EMX. My question is how can I write a driver so that it will be integrated in the .NET micro framework. Basically I want to be able to have the .NET functionality over my driver (FileStream, Directory, MassStorage USB client, etc.).
Is there a way to do this? I was also thinking of connecting it via USB on the USB host port via an USB hub (which would also give me more flexibility) but I was wondering if there is another way to do this.

This project I’m working on will be a music player (hdd, card, usb, network) with some other capabilities (video, mail, weather, ntp, etc.).


LaterEdit: I was wondering if anybody tested the ethernet speed that can be reached on the same network (between a PC and EMX) on different layers.
Thanks again!

I think that USB to ATA adapter will work normaly because NETMF support USB mass storage devices(USB pendrives…).

Yes, I presume that is true. Still isn’t there a way to build drivers that will integrate into NETMF?

Yes there is RLP but it has specific uses.

I read about RLP but can’t figger out how it could help me integrate some functions (read/write) into NETMF to be seen as a storage device. Of course, using RLP would make them be faster, but what about the integration into NETMF so that the upper storage layers would work with my read/write functions. Also, the integration of other File Systems would be very useful. I see that only FAT16/32 is supported.

Question regarding UI:
I see there are some kind of WPF classes (I am pretty familiar with WPF on PC) for UI. How are working (in terms of speed) on EMX module? It would be interesting to use them for the UI but can’t find any demo videos to see the response time and other features.

Thanks for your answers.

Our devices already support USB Host and mass storage class.

Please ask new questions in new threads. This thread is titled “ATT HDD driver”

Let me rephrase the question:
Let’s say I build a driver that can read/write sectors to an ATA hard drive (managed/RLP doesn’t matter) and it can get various informations from the drive (total sectors, id, etc.). The question is:
Is there a way to integrate this driver into NETMF so that I can use all the top layer facilities (file system, file streams, etc.) or I am stuck to using SD/USB mass storage (or writing again code for the file system, file streams, etc.)?


How will you physically connect your hard drive to tour NETMF device?

Via GPIO pins and buffers (for level translation). Anyway this is not very important. The question is if this is possible?


I don’t get it why you want to get into trouble if all what you are asking is at your disposal with a USB connected hard disk and the GHI framework. It’s not different from using a USB memory stick.

Read megabytes of data over gpio?! Are you sure this what you want to do?

I was just wondering if it’s possible. Not reading the data, but integrating a low level driver into .net mf so that the upper layers of the framework would use my driver.

I’ll just stick with the mass storage option…

Thanks for all your answers!

The direct answer to your question is probably.

The .NETMF software is open source. So it is possible to do your own port and integrate low level drivers and anything else you would like to do.

Of course, you would have to use the Microsoft porting kit as the base, and would not have all the additional functionality that you get from GHI.

Great, thanks.
That clears my question.