Arduino with "real" USB

A while back I came across the PDIUSBD12 chip from Philips/NXP, and have been working on using it with the Arduino. I've had success implementing some basic HID devices (keyboard, mouse), as well as USB MIDI (my original goal) and Mass Storage. I want to produce either a shield or Arduino variant using this chip, but I'd like to get some feedback from the community.

Arduino variant

1) Programming I'm currently programming via ISP, but I think most users would prefer to be able to program through the Arduino IDE via USB. Implementing a USB serial interface with the PDIUSBD12 is not difficult, but I don't have the knowledge/resources to write drivers for Mac/Win/Linux. The PDI could be programmed to enumerate as an FT232R, but that's probably not legal, or at least not ideal. I haven't looked into modifying the IDE to support an alternate download method ... any suggestions?

2) Memory Since USB Mass Storage is likely to be one of the main uses of this board, and even the smallest FAT library is so large, the mega328 is as small as I would want to go. This is now supported by the IDE, so shouldn't be a problem.

3) I/O Pins I'm using 13 pins for the PDIUSBD12 (8-bit parallel data bus), which severely limits the available I/O pins for shields, etc. Right now, the two options I can think of are a) using a mega644, which isn't supported by the Arduino IDE at this time, or b) running the PDI off an i2c GPIO expander.

USB Shield

The alternative to attempting an Arduino-compatible board with full-featured USB is to make a USB shield board. This could have its own uC and interface to the Arduino board via i2c (or some other protocol). Other than MIDI ports and an SD card slot, what other USB peripherals would you be interested in having built-in?

I am super interested in this! Do you have a log of what has been done so far. I want to do some research on this

While the 644P doesn’t have ‘official’ support of the Arduino IDE yet, I have been running with one under both IDE versions 12 and 13 using the modified files and instructions given by a vendor selling 644P chips with preinstalled Arduino bootloader:


To be honest, I haven't done anything revolutionary. I just found a few of other people's projects by searching for "AVR PDIUSBD12", and modified their code to work with Arduino.

Some links: (there used to be schematics and source here, but I can't find them)

Most of what I found worked out of the box, but my goal now is to condense it all into an easy-to-use library. I'll post my code and schematics when I have something presentable.

Any other comments on releasing an Arduino compatible board with this chip integrated?