I did some work using CF a while back. The I/O is parallel, a CF card effectively looks like an IDE drive. This is very good for fast cameras where transferring data to the card is the bottleneck. In the world of microcontrollers as used in the MIDIbox, a serial peripheral interface is better: it only uses a few pins, and the interface is going to be fast enough anyway.
CF are good for booting micro PC’s from, and for very fast large block data. They can virtually be interchanged with small hard discs, (in fact, some of the bigger camera cards were small hard discs). They are physically large, and have a complex socket which needs a minimum of 20-something connections. CF pairs very well with the older PCMCIA/PC-Card slots, being virtually a straight through interface that needs no real drivers, (the new ExpressCard has trashed that, of course)
SD are the other common standard, (along with smaller MicroSD and XD). They are small, serial and come in sizes well big enough for our purposes. They seem to be a lot cheaper too. As camera cards get bigger, we can recycle the smaller ones for MIDIbox.
As TK says, the FAT files interface is going to be a challenge, and if it’s going to be a challenge for TK, then I’m not even going to take a look at it! Perhaps one approach might be to go modular: add another micro to the SD card interface, and make the card subsystem look like a big stack of banksticks. Select banks by simple title or number, (no long file names, thank goodness), and only ‘see’ certain file types. Don’t allow file operations beyond load/save/delete from the MIDIbox. MIDIbox generated file names might have to be of the generated form FILENN.XXX. Set up a simple list of XXX extensions for MIDIbox. “.SV3”, “.SQ3”, “.SID” or whatever, and refuse operations on others, (apart from perhaps ‘delete’, with a good ‘are you sure’ system). Date/Time would have to be set as defaults, unless someone wants to interface an I2C real time clock, (not that hard, thinking about it - I’ve got a feeling there might be a handle waiting in MIOS for just that too, knowing TK). Do your file renaming and ‘housekeeping’ on the PC.
With regard to sockets, I wouldn’t think of buying in yet: the sockets are easy. The board they go on is going to be the hard part. It has to hold the socket, (more easily available in surface mount), and some flexible way of panel mounting it. An activity light is nearly essential, (to avoid pulling the card during a write), and there might well be some I/O parts. A panel bezel with a simple screw mount would be good as well - plenty of design things to be digging in to, and group buy of sockets, PCB’s and bezels would be even more useful.
Just a few thoughts. In my case it was work for a FORTH based data logger running on the late lamented TDS series of cards, we had to use CF - SD hadn’t come out at that time, and I shudder to remember just what a 512K card cost back then. We did have an RTC, the main effort was doing a low power mode to get maximum battery life. I think the final version would run 2/3 months in the field.
TK: you never cease to surprise us!
Best wishes