View Single Post
  #4   Spotlight this post!  
Unread 18-11-2013, 10:30
techhelpbb's Avatar
techhelpbb techhelpbb is offline
Registered User
FRC #0011 (MORT - Team 11)
Team Role: Mentor
 
Join Date: Nov 2010
Rookie Year: 1997
Location: New Jersey
Posts: 1,620
techhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond repute
Re: Creating a Joystick-recognized Device

You can make a USB device basically 3 ways and expect some standard operating system support:

Emulated serial
HID
Mass storage

Since mass storage is unlikely to matter let's just skip that.
So that leaves emulated serial and HID.

Emulated serial can easily be done with PIC or Atmel USB interface equipped MCU like the PIC4550. It works on Windows, Mac OSX, Linux and BSD. Generally no magical drivers are required to make it work. So basically for the beginner that mode of operation is the easiest to grasp and get results with. It might limit your performance to 200kbps. However for a controller that's probably irrelevant. BTW this mode of operation is how BASIC Stamps and Parallax Propellers are debugged and how many bootloaders get software into an MCU.

Most joysticks work in the HID mode (as mentioned above). This mode requires more effort to create. Generally speaking a shortcut is buying a prefabricated module or software layers that handles the oddities you might encounter for you (instead of reinventing the wheel). This can add cost and HID device support is not universal. Certain simple peripherals like keyboard and mice are well tolerated. However more complex devices can lead you into driver development.

You can get a board from Olimex with the PIC4550 already mounted on it:
Olimex direct

I recommend this board. I know it works just fine. There are American distributors that can ship from here.