Pipe dream: USB support for empeg

So I was daydreaming about USB support for the empeg again. I think I now (in my old age) understand enough to actually implement/achieve this (before it was a youthful pipe dream), but it won’t be simple and I don’t have any time for it soon – heck it’s been ten years or more since people first asked about this, what’s another year or two? Anyway, here is the basic concept, since it also applies to other systems without USB support.

The empeg has one IDE (ok then, ATA) channel and a controller that supports two devices, though typically only one disk is actually used (who needs more than one disk these days, with flash and huge sizes?). It ought to be possible (in theory) to use a SATA disk with the aid of an IDE->SATA adapter (these do exist) and a power rail, which prolongs life by a few years. More to the point, it is technically possible to expose an IDE-like device that essentially just passes through the 16-bit data bus to general purpose GPIO lines (after enough logic to fool the controller into thinking it’s a “disk”, and some hefty driver modification). With that done, and using PIO to drive data to/from an attached USB1.1 chipset, it would be possible to provide minimal support for USB at (perhaps) a few MB/second. Other peripherals could similarly be added, if a more complex protocol were built and driver support added.

It has been my intention for some time to learn enough about the ATA spec to implement a very basic disk-like device, using an old PC motherboard with a common IDE chip/driver as a test of the concept. I now think this might actually be doable in my lifetime, so a pet project this year is going to be to hack something up along those lines to give me GPIO lines from an “IDE” “disk” sufficient to light up some LEDs, etc. If I get that working, then I will solicit for input on the more audacious goal of driving a cheap USB chipset from it.


2 Responses to “Pipe dream: USB support for empeg”

  1. Did you post on the BBS?

  2. jcm says:

    When I have something :)

Leave a Reply