Open Programmer – USB programmer for PIC, EPROM, ATMEL, SPI

Summary of Open Programmer – USB programmer for PIC, EPROM, ATMEL, SPI


Open Programmer is a free, open-source USB device for programming PIC micros, EEPROMs, and other devices. It features a driverless HID interface, works as an ICD debugger, and supports Linux and Windows with custom software. The hardware uses readily available components to keep costs low while ensuring high speed and reliability without CPU saturation.

Parts used in the Open Programmer:

  • PIC10-12-16-18-24 microcontrollers
  • dsPIC30-33 microcontrollers
  • EEPROMs type 24xxxx (I2C)
  • EEPROMs type 25xxx (SPI)
  • EEPROMs type 93xx6 (MicroWire)
  • DS24xx (OneWire) devices
  • 11xxx (UNIO) devices
  • ATMEL micros
  • Generic I2C/SPI devices
  • USB 2.0 Full Speed interface

Open Programmer – An open source USB programmer for PIC micros, I2C-SPI-MicroWire-OneWire-UNIO EEPROMs, some ATMEL micros, generic I2C/SPI devices and (soon) other devices.Open Programmer – USB programmer for PIC, EPROM, ATMEL, SPI

  • Completely free and Open Source (including firmware)
  • Programs PIC10-12-16-18-24, dsPIC30-33, EEPROMs type 24xxxx (I2C), 25xxx (SPI), 93xx6 (MicroWire), DS24xx (OneWire), 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 PicKit clone

OpenProg is a C++ application written with Visual C++ 6 and MFC.
Using it is straightforward: just connect the programmer, start the application, select the device, load a hex file and read or write; works with XP, the V bloatware, 7.
On the “Device” tab it’s possible to modify some programming options, such as ID and calibration write, use of eeprom etc.; only settings compatible with the current device will be used.
graphical interface for Linux! It’s built using GTK libraries and it looks more or less like the other.
From version 0.7.10 it includes an ICD debugger, working more or less like pdb; in addition it supports coff files.
To use it under Windows it’s necessary to install the GTK Runtime Environment.

Supported devices

The author tried this programmer with a small number of devices (those I own plus some tested by other users) indicated in bold; the other devices are supported but not tested; however, considering that for every device family at least one has been verified, all of them should work without problems.
Please let me know if you verify operation with the untested devices.
Also contact me if you need other algorithms or code new ones by yourself.
Take notice:
LF series PICs are used exactly as the F ones;
Atmel AVR devices with varius suffixes are grouped together whenever the programming algorithm is exactly the same, eg. ATmega8 and ATmega8A;
EEPROM memories comprise all versions with VDDmax=5V, eg. 242LC56, 24AA256, etc.;
93x memories use 2 different algorithms, for the 93S series and for all the others, indicated with 93x (93xA have 8 bit organization).
Schematic Open Programmer – USB programmer for PIC, EPROM, ATMEL, SPIFor more detail: Open Programmer – USB programmer for PIC, EPROM, ATMEL, SPI

Quick Solutions to Questions related to Open Programmer:

  • Does the Open Programmer require drivers?
    No, it does not need drivers because it uses a USB 2.0 Full Speed HID class interface.
  • Can this programmer work as an ICD debugger?
    Yes, from version 0.7.10 onwards it includes an ICD debugger feature similar to pdb.
  • What operating systems are supported by the control programs?
    The project provides open source control programs for both Linux and Windows.
  • How much does it cost to build the hardware?
    The estimated cost to build the hardware using easy-to-find components is approximately 10€.
  • Does the programmer saturate the CPU during operation?
    No, it does not saturate the CPU and performs well even when other programs are running.
  • What programming languages were used to create the application?
    OpenProg is a C++ application written with Visual C++ 6 and MFC.
  • Are LF series PICs programmed differently than F series ones?
    No, LF series PICs are used exactly as the F ones.
  • Do I need to install anything specific to use the graphical interface on Linux?
    To use the GTK-based graphical interface under Windows, you must install the GTK Runtime Environment.

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:
LinkedinTwitter
Scroll to Top