Category Archives: USB

Articles involving USB interfaces

Open Source Framework for USB Generic HID devices based on the PIC18F and Windows

If you’ve dabbled with PIC18F microcontrollers and the USB Generic HID standard before (perhaps you’ve even tried my Building a PIC18F USB device project) then you will have noticed that there is a lot of complexity in supporting USB on both the PIC18F and the Windows host-side of things. Getting beyond the basic steps of […]

Open Source Visual C++ Class for USB Generic HID Communication

If you’ve tried to build your own PIC USB devices (perhaps following my earlier tutorial Building a PIC18F USB device) you will have noticed that the Windows host code (based on the Microchip USB stack examples) is far from clear on how to communicate with the device. To make matters easier for people who are […]

Building a PIC18F USB device

I get a number of emails every month asking about creating USB devices using the PIC18F microcontroller. After looking at projects such as my Atari Joystick USB Adaptor and C64 VICE Front-End there seems to be a demand for more information on how to ‘hack your own’. In this article I will show how to […]

PIC USB Development Board

Since I wanted to do some USB development work with the PIC18F4550 and PIC18F2550 board (for projects like my C64 VICE front-end and Atari joystick adaptor) I needed a USB reference board to develop the software. Initially I ported the Microchip USB stack over to Hi-Tech C18 pro with the help of Richard Stagg. In […]

C64 VICE Front-End

The aim of this project was to create a front-end for Commodore 64 emulation using VICE. One of the primary problems with emulators (especially for machines from the ’80s) is that there was no standard keyboard arrangement. In this project I took a broken Commodore 64 computer and replaced the motherboard with a PIC microcontroller […]

Atari Joystick USB Adaptor

This project implements a composite USB device supporting two USB 2.0 full-speed gameport HID interfaces. The physical joystick ports are wired in accordance to the ‘Atari standard’ allowing connection of most Commodore 64 and Amiga joysticks as well as older Atari 2600 compatible joysticks. It’s purpose is to allow game play on Linux and Windows […]