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