Menu

Tree [57988d] master /
 History

HTTPS access


File Date Author Commit
 Firmware 2016-06-18 Ciprian Stingu Ciprian Stingu [05534b] update project info
 icons 2016-06-18 Ciprian Stingu Ciprian Stingu [db1494] Initial commit - fork of openprogrammer v0.10.0
 src 2016-09-20 Ciprian Stingu Ciprian Stingu [57988d] Initial support for FreeBSD
 translation 2016-08-09 Ciprian Stingu Ciprian Stingu [913dae] Add support for 18F24J10 & 18F2550
 CMakeLists.txt 2016-09-20 Ciprian Stingu Ciprian Stingu [57988d] Initial support for FreeBSD
 ReadMe.md 2016-09-20 Ciprian Stingu Ciprian Stingu [57988d] Initial support for FreeBSD
 console.cpp 2016-06-18 Ciprian Stingu Ciprian Stingu [db1494] Initial commit - fork of openprogrammer v0.10.0
 gpl-2.0.txt 2016-06-18 Ciprian Stingu Ciprian Stingu [3a39d0] add GPL license file
 main.cpp 2016-06-18 Ciprian Stingu Ciprian Stingu [db1494] Initial commit - fork of openprogrammer v0.10.0

Read Me

About this project

After checking the original project from Open Programmer I decided to reimplement Opgui (v0.10.0) using OOP and with
read/write fail recovery because the linux x64 which i'm using right now seems to be not so reliable at timings.

So is an gui/tui for the Open USB Programmer for various devices, including PIC, dsPIC, AVR microcontrollers, and various kinds of serial eeproms.
The application(s) can be compiled for Linux, FreeBSD (and probably other BSD) and in the future Windows.

Suported Devices
   (R)  - Read function implemented
   (RW) - Read & Write functions implemented
PIC 10/12
   10F200 (RW) 10F202 (RW) 10F204 (RW) 10F206 (RW) 10F220 (RW) 10F222 (RW) 10F320 (RW) 
   10F322 (RW) 12C508 (R) 12C508A (R) 12C509 (R) 12C509A (R) 12C671 (R) 12C672 (R) 
   12CE673 (R) 12CE674 (R) 12F508 (RW) 12F509 (RW) 12F510 (RW) 12F519 (RW) 12F529T39 (RW) 
   12F529T48 (RW) 12F615 (R) 12F617 (R) 12F629 (R) 12F635 (RW) 12F675 (R) 12F683 (RW) 
   12F752 (R) 
PIC16
   16C83 (R) 16F83 (R) 16F83A (R) 16C84 (R) 16F84 (R) 16F84A (R) 16F54 (RW) 16F57 (RW) 
   16F59 (RW) 16F72 (R) 16F73 (R) 16F74 (R) 16F76 (R) 16F77 (R) 16F87 (R) 16F88 (R) 
   16F505 (RW) 16F506 (RW) 16F526 (RW) 16F527 (RW) 16F570 (RW) 16F610 (R) 16F616 (R) 
   16F627 (R) 16F627A (RW) 16F628 (R) 16F628A (RW) 16F630 (R) 16F631 (RW) 16F636 (RW) 
   16F639 (RW) 16F648A (RW) 16F676 (R) 16F677 (RW) 16F684 (RW) 16F685 (RW) 16F687 (RW) 
   16F688 (RW) 16F689 (RW) 16F690 (RW) 16F707 (R) 16F716 (R) 16F720 (R) 16F721 (R) 
   16F722 (R) 16F722A (R) 16F723 (R) 16F723A (R) 16F724 (R) 16F726 (R) 16F727 (R) 
   16F737 (R) 16F747 (R) 16F753 (R) 16F767 (R) 16F777 (R) 16F785 (RW) 16F818 (R) 
   16F819 (R) 16F870 (R) 16F871 (R) 16F872 (R) 16F873 (R) 16F873A (R) 16F874 (R) 
   16F874A (R) 16F876 (R) 16F876A (R) 16F877 (R) 16F877A (R) 16F882 (R) 16F883 (R) 
   16F884 (R) 16F886 (R) 16F887 (R) 16F913 (RW) 16F914 (RW) 16F916 (RW) 16F917 (RW) 
   16F946 (RW)
PIC18
   18F13K22 (RW) 18F13K50 (RW) 18F14K22 (RW) 18F14K50 (RW) 18F23K20 (RW) 18F23K22 (RW) 
   18F24J10 (RW) 18F24J11 (RW) 18F24J50 (RW) 18F24K20 (RW) 18F24K22 (RW) 18F24K50 (RW) 
   18F25J10 (RW) 18F25J11 (RW) 18F25J50 (RW) 18F25K20 (RW) 18F25K22 (RW) 18F25K50 (RW) 
   18F25K80 (RW) 18F26J11 (RW) 18F26J13 (RW) 18F26J50 (RW) 18F26J53 (RW) 18F26K20 (RW) 
   18F26K22 (RW) 18F26K50 (RW) 18F26K80 (RW) 18F27J13 (RW) 18F27J53 (RW) 18F43K20 (RW) 
   18F43K22 (RW) 18F44J10 (RW) 18F44J11 (RW) 18F44J50 (RW) 18F44K20 (RW) 18F44K22 (RW) 
   18F45J10 (RW) 18F45J11 (RW) 18F45J50 (RW) 18F45K20 (RW) 18F45K22 (RW) 18F45K50 (RW) 
   18F45K80 (RW) 18F46J11 (RW) 18F46J13 (RW) 18F46J50 (RW) 18F46J53 (RW) 18F46K20 (RW) 
   18F46K22 (RW) 18F46K50 (RW) 18F46K80 (RW) 18F47J13 (RW) 18F47J53 (RW) 18F63J11 (RW) 
   18F63J90 (RW) 18F64J11 (RW) 18F64J90 (RW) 18F65J10 (RW) 18F65J11 (RW) 18F65J15 (RW) 
   18F65J50 (RW) 18F65J90 (RW) 18F65K80 (RW) 18F66J10 (RW) 18F66J11 (RW) 18F66J15 (RW) 
   18F66J16 (RW) 18F66J50 (RW) 18F66J55 (RW) 18F66J60 (RW) 18F66J65 (RW) 18F66J90 (RW) 
   18F66J93 (RW) 18F66K80 (RW) 18F67J10 (RW) 18F67J11 (RW) 18F67J50 (RW) 18F67J60 (RW) 
   18F67J90 (RW) 18F67J93 (RW) 18F83J11 (RW) 18F83J90 (RW) 18F84J11 (RW) 18F84J90 (RW) 
   18F85J10 (RW) 18F85J11 (RW) 18F85J15 (RW) 18F85J50 (RW) 18F85J90 (RW) 18F86J10 (RW) 
   18F86J11 (RW) 18F86J15 (RW) 18F86J16 (RW) 18F86J50 (RW) 18F86J55 (RW) 18F86J60 (RW) 
   18F86J65 (RW) 18F86J72 (RW) 18F86J90 (RW) 18F86J93 (RW) 18F87J10 (RW) 18F87J60 (RW) 
   18F87J11 (RW) 18F87J50 (RW) 18F87J72 (RW) 18F87J90 (RW) 18F87J93 (RW) 18F96J60 (RW) 
   18F96J65 (RW) 18F97J60 (RW) 18F242 (RW) 18F248 (RW) 18F252 (RW) 18F258 (RW) 
   18F442 (RW) 18F448 (RW) 18F452 (RW) 18F458 (RW) 18F1220 (RW) 18F1230 (RW) 18F1320 (RW) 
   18F1330 (RW) 18F2220 (RW) 18F2221 (RW) 18F2320 (RW) 18F2321 (RW) 18F2331 (RW) 
   18F2410 (RW) 18F2420 (RW) 18F2423 (RW) 18F2431 (RW) 18F2439 (RW) 18F2450 (RW) 
   18F2455 (RW) 18F2458 (RW) 18F2480 (RW) 18F2510 (RW) 18F2515 (RW) 18F2520 (RW) 
   18F2523 (RW) 18F2525 (RW) 18F2539 (RW) 18F2550 (RW) 18F2553 (RW) 18F2580 (RW) 
   18F2585 (RW) 18F2610 (RW) 18F2620 (RW) 18F2680 (RW) 18F2682 (RW) 18F4220 (RW) 
   18F4221 (RW) 18F4320 (RW) 18F4321 (RW) 18F4331 (RW) 18F4410 (RW) 18F4420 (RW) 
   18F4423 (RW) 18F4431 (RW) 18F4439 (RW) 18F4450 (RW) 18F4455 (RW) 18F4458 (RW) 
   18F4480 (RW) 18F4510 (RW) 18F4515 (RW) 18F4520 (RW) 18F4523 (RW) 18F4525 (RW) 
   18F4539 (RW) 18F4550 (RW) 18F4553 (RW) 18F4580 (RW) 18F4585 (RW) 18F4610 (RW) 
   18F4620 (RW) 18F4680 (RW) 18F4682 (RW) 18F4685 (RW) 18F8520 (RW) 18F8722 (RW)
AVR
   AT90S1200 (R) AT90S2313 (R) AT90S8515 (R) AT90S8535 (R) ATmega8 (RW) ATmega16 (RW) 
   ATmega32 (RW) ATmega48 (RW) ATmega64 (RW) ATmega88 (RW) ATmega164 (RW) ATmega168 (RW) 
   ATmega324 (RW) ATmega328 (RW) ATmega644 (RW) ATmega1284 (RW) ATmega8515 (RW) 
   ATmega8535 (RW) ATtiny11 (RW) ATtiny12 (RW) ATtiny13 (RW) ATtiny24 (RW) ATtiny25 (RW) 
   ATtiny26 (RW) ATtiny44 (RW) ATtiny45 (RW) ATtiny48 (RW) ATtiny84 (RW) ATtiny85 (RW) 
   ATtiny88 (RW) ATtiny261 (RW) ATtiny461 (RW) ATtiny861 (RW) ATtiny2313 (RW) ATtiny4313 (RW)
Aditional functionality implemented:
  • programmer detection & hardware test
  • load and save of intel hex files for supported microcontrollers
  • Utility tab - fullly functional
  • IO tab - fully functional
  • I2C/SPI tab - fully functional but untested
  • 3.3V regulator check
  • an additional functionality of verify/compare data from chip with the data from a file
  • ready for translation using the gettext library - and by extension poedit

I modified the firmware in which i added a very simple checksum for each read operation (PROG_RST, PROG_ID, READ_PINS, READ_ADC, READ_DATA_PROG, READ_DATA_DATA, READ_DATA, SPI_READ, AT_READ_DATA,
READ_B, READ_AC, AT_HV_RTX, READ_RAM, SHIFT_TABLAT, TABLE_READ, TBLR_INC_N, I2C_READ, I2C_READ2, REGOUT, RX16, uWRX, OW_RESET, OW_READ, UNIO_COM, READ_DATA_INC, REGOUT, JTAG_XFER_DATA,
JTAG_XFER_F_DATA) in order to validate the read data.

This version include the console program (op) which is compiled using the same files as OpGui - so there is no additional time spent developing 2 programs.
The console version (op) has the same features as OpGui executable except:
- no Utility tab functionality
- no IO tab functionality

Compiling

Any C++11 compiler should work. For compilers with partial C++11 support it may work. To build the GUI, you need Gtk v2.0.
Also for FreeBSD (and probably other BSD) you will need additionally: hidapi, libusb, threadings and libiconv

cmake

To compile you should use at least cmake v2.8 (v2.6 may work if you modify the CMakeLists.txt)

mkdir build
cd build
cmake ..
make

Other Compiler/IDE

  1. Create a empty project file / makefile.
    2a. For GUI: Add all cpp files from src folder (except Tui.cpp, WindowsIO.cpp, WindowsLogger.cpp and WindowsConfiguration.cpp) and main.cpp in project file / makefile.
    2b. For TUI: Add all cpp files from src folder (except Gui.cpp, WindowsIO.cpp, WindowsLogger.cpp and WindowsConfiguration.cpp) and console.cpp in project file / makefile.
  2. Compile.

The windows support is not implemented but will be added at a later time. OS X support will, probably, never be implemented as i don't have access to such OS.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.