I want to start modifying some old joysticks and other devices to be usb compatible.
I have found this chip: PIC16C745 which would be the perfect start. It has 5 analog axis (works with 100kohm and 5kohm pots) and something like 17 switch inputs.
When the device is plugged in to a computer using that chip, it is automaticlaly recognized as a HID device. Perfect, just what I am looking for.
now comes the hard part, how to design a properly working board? I am looking to build something simliar to this board: http://dave.bit2000.com/aki.html but I want to be able to customize it as I see fit plus i can get reprogrammible versions of the chip for around 11 dollars and OTP verisons for around 5 dollars. A lot cheaper than the 32 dollars for a ready to go board.
I also found this fairly simple schemetic for the chip, it really doesn't look all that complex: http://www.circuitcellar.com/library/print/0504/Bachiochi166/f1.htm
My questions are in regards to "programming" the chip. What exactly are you programming? And is programming something that can be done at home with homebrewed equiptment? I found this link for a homebrew programmer: http://translate.google.com/translate?u=http%3A%2F%2Fwww.cattopasto.com%2FElettronica%2FWalPIC%2FWalPIC.php&langpair=it|en&hl=en&ie=UTF-8&oe=UTF-8&prev=/language_tools which doesn't look all that difficualt to build and I found this link: http://www.ic-prog.com/index1.htm for the actual software.
But I know this sounds stupid, but what exactly is being programmed on the chip. In otherwords, is the chip not really "ready to go"?
I'm going to be using these devices for modifying old joysticks and other game controllers.
One more question along these lines, does anyone here know if its possible to hack a usb interface onto one of those little eraserhead pointer stick thingys found on most IBM Thinkpads?
All the PIC's I've used had an RS232 interface on 2 pins that it used for programming it.
If you just want the one board, you'd be better off buying one of the AKI ready-made ones. They'll come programmed and working, which will save you the expense and difficulty of building the programmer, getting the programmer software running, getting (if you don't have one already) an expendable PC to run the software on, writing the PIC code, and designing and building your own board.
If you want multiple boards, and you decide that the cost savings are worth the effort you'll have to put into this project, you would need to modify that schematic you found to support input devices (probably not too difficult, just get the 16C745 data sheets and users' manuals, and work out which pins support analog input). You could get PCBs custom-made according to your designs, but unless you're building a lot of them, it's probably going to be prohibitively expensive. More likely, you'll end up using prototype boards, which are workable for relatively simple projects like this.
As far as programming is concerned, the PICs have a few KB of on-board EEPROM, which is where your code goes. Most of the USB code itself is freely available from the Microchip website (this page is helpful); you'll need to learn the PIC's instruction set, though, as you'll undoubtedly have to modify the sample code to suit your application. Instruction sets and such are generally found in the users' manual, but there may also be a separate programming guide. Google around.
Regarding your last question, the interface IBM uses for their pointing devices is probably entirely proprietary, but you might be able to buy a similar device in peripheral form somewhere.