William, thanks for the replies.
It turns out that there are some more requirements that I did not state.
1. The joystick needs to be xbox360 compatible. The reason for this is that most pc games out there support the xbox360 controller.
2. The xbox360 controller has a lot of behavior that will be tedious and time consuming to emulate. So we would like to develop a "box-in-the-middle" that would pass usb traffic between the pc host and the xbox360 controller without modification but allow us to inject our own traffic from the box-in-the-middle to the pc host. The bb-xm seems to fit the hardware requirements since it has a USB OTG interface and a USB Host interface.
3. The box-in-the-middle needs to be able to interface to analog/digital inputs; but also interface to external systems via serial interface or tcp/ip connections.
4. We tried to use an arduino based approach but found that software development to be very difficult due to the lack of debugging capabilities and poor software development environments. We found that a good development/debugging environment for "arduino platform" requires a cross system development setup. This is inherent in a linux environment where the host and target are the same system. Gotta luv GDB.
5. Right now I'm digging through the xboxdrv software with the intent of using it on the bb-xm to deal with the box-in-the-middle to xbox360 controller traffic. It is a user-mode driver and I'm having a lot of fun digging through the C++ code. Pretty amazing what one can do with udev, uinput, and libusb.
6. The unknown part that I'm dealing with is how to set up the gadget_fs on the otg port to emulate a joystick so I can send the usb traffic to the pc host.
7. Yes I'm a newbie to usb programming but I am and old codger that used to write operating systems in my dim past (late 1970s and early 1980s) with a lot of time on his idle hands. I just need to see examples and from there I can figure out the rest.
-David