Open Programmer v0.8.x

Quick facts

  • Completely free and Open Source (including firmware)
  • Programs PIC10-12-16-18-24, dsPIC30-33, EEPROMs type 24xxxx (I2C), 25xxx (SPI), 93xx6 (Micro Wire), DS24xx (One Wire), 11xxx (UNIO), some ATMEL micros, communicates with generic I2C & SPI devices (see supported devices)
  • Can work as ICD debugger
  • USB 2.0 Full Speed interface, HID class (same as keyboards, mice, etc.)
  • Self powered
  • Doesn’t need drivers
  • Built from easy to find components (estimated cost ~10€)
  • Hardware generated timings for maximum speed and reliability (writes a 18F2550 in 15s, 8s under Linux)
  • Doesn’t saturate your CPU and doesn’t suffer when other programs are running
  • Open source control programs for Linux and Windows
  • It’s not another Pick it clone

Another programmer?

In the last few years, as serial and parallel interfaces have almost disappeared, electronics enthusiasts find even more difficult to program microcontrollers; old time programmers don’t work any more; common solutions include using USB to serial adapters (which can’t accept direct access but only slow API calls), or add-on interface chips, like FTDIxxxx, which appear substantially as serial interfaces and require custom or proprietary drivers.
So why not use PIC controllers and their native USB interface?
After searching a while I couldn’t find an USB programmer which was at the same time functional, free, and open source, so I decided to design one.
Open source means that all sources and schematics are given free of charge with the rights to modify and release them.
Open Programmer v0.8.xUSB & HID firmware (v0.8.0)
In order to use the USB interface included in some PIC devices we need a firmware that implements one of the classes defined by the USB consortium or a new one; I opted for the HID class, which is supported natively by all operating systems and so doesn’t need any driver. Maximum allowed speed is 64KB/s, although with my application I measured something in the range 20-40 KB/s, certainly enough to program devices with memory of 100KB at most.
Like all USB devices this one too has a vid and a pid; these are usually obtained under payment; I got a combination for free from pid.codes: 0x1209&0x5432; anyways it’s possible to configure both, so I leave the choice to the user.
The programmer appears to the system as a HID device that exchanges 64 bytes packets every 1 Ms.
The USB firmware comes from a nearly unknown open source project, written by Alexander Enzmann, which I modified and adapted to the MCC18 compiler.

Read More: Open Programmer v0.8.x

Leave a Comment

Your email address will not be published. Required fields are marked *