Menu

OOP fork of Opgui & OP with read/write fail recovery

pixecs
2016-06-19
2016-09-20
  • pixecs

    pixecs - 2016-06-19

    Because the linux x64 machine which i'm using right now seems to be not so reliable at timings I decided to reimplement Opgui (v0.10.0) in a OOP manner and with
    read/write fail recovery.

    I modified the firmware in which i added a very simple checksum for each read operation in order to validate the read data (the OProg.X.production.hex from Firmware folder is the compiled version)

    So far i added the following functionality (just for linux):
    - Programmer detection & hardware test
    - Read/write for 16F628A (Read16Fxxx & Write12F6xx functions)
    - Read/write for ATmega8/168/328 (ReadAT & WriteATmega functions)
    - Read/write for ATtiny13 (ReadAT_HV & WriteAT_HV functions). I implemented only this functions because this controllers i had on hand and it was easy to verify the correct operations.
    - Load/save of intel hex files (including eeprom) for this microcontrollers
    - Utility tab - fullly functional
    - IO tab - fully functional
    - I2C/SPI tab - fully functional but untested
    - 3.3V regulator check but untested as i don't have yet an 3.3v addon board
    - An additional functionality of verify/compare data from chip with the data from a file

    The project contains both Opgui and OP applications so there is no additional time spent developing 2 programs :)

    The source is available as fork of Opgui at https://sourceforge.net/u/pixecs/openprogrammer/ci/master/tree/

     
  • Alberto Maccioni

    Can you post a picture of your GUI?

     
  • pixecs

    pixecs - 2016-06-23

    Hello, basically is the same interface as Opgui with an additional button for verify. Also the TUI simulates the alert & confirm boxes from GUI.


     
  • pixecs

    pixecs - 2016-07-07

    Hello,
    I added support for PIC16F54 (10F200, 10F202, 10F204, 10F206, 10F220, 10F222, 12F508, 12F509, 12F510, 12F519, 12F529T39, 12F529T48, 16F57, 16F59, 16F505, 16F506, 16F526, 16F527, 16F570 should work too)

    The complete list of supported 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) 
    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)
    
     
  • pixecs

    pixecs - 2016-08-09

    Hello,
    I added support for 18F24J10 & 18F2550.
    The complete list of supported 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)
    
     
  • Anonymous

    Anonymous - 2016-08-16

    please,can you add rev1.8 pdf schematic pcb and sil socket adaptor so that it will be less confusin

     
  • Anonymous

    Anonymous - 2016-09-02

    Hi
    the gui is only for linux?
    Thx

     
    • pixecs

      pixecs - 2016-09-05

      yes, for now. i'm working on BSD port and at a later date for a windows port

       
  • Joe

    Joe - 2016-09-04

    Hi
    i try to compile but gives errors :
    can i post those errors to understand the cause?
    THX
    Joe

     
    • pixecs

      pixecs - 2016-09-05

      yes, please.

       
  • Joe

    Joe - 2016-09-06

    Hi pixec
    here are the errors:
    /home/giuseppe/u-pixecs-openprogrammer/src/AbstractLogger.cpp: In member function ‘void AbstractLogger::MessageBox(const char, const char)’:
    /home/giuseppe/u-pixecs-openprogrammer/src/AbstractLogger.cpp:63:142: warning: format not a string literal and no format arguments [-Wformat-security]
    GtkWidget dialog = gtk_message_dialog_new(GTK_WINDOW(mainWindow), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, message);
    ^
    /home/giuseppe/u-pixecs-openprogrammer/src/AbstractLogger.cpp: In member function ‘bool AbstractLogger::ConfirmBox(const char
    , const char)’:
    /home/giuseppe/u-pixecs-openprogrammer/src/AbstractLogger.cpp:78:150: warning: format not a string literal and no format arguments [-Wformat-security]
    GtkWidget
    dialog = gtk_message_dialog_new(GTK_WINDOW(mainWindow), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, message);

    when executing program if you change eg. microprocessor it stop.

    thanks

    joe

     
  • Joe

    Joe - 2016-09-07

    Hi
    the program crash
    Joe

     
    • pixecs

      pixecs - 2016-09-08

      Hi Joe, i updated the sources to fix the error. It seems that my compiler is a little outdated. Please do a git fetch or redownload the latest sources and let me know if is working ok for you too.

       
  • Joe

    Joe - 2016-09-09

    Hi pixecs
    another error:
    [ 4%] Building CXX object CMakeFiles/OpGui.dir/src/Gui.cpp.o
    /home/giuseppe/u-pixecs-openprogrammer/src/Gui.cpp: In member function ‘void Gui::SaveHex(GtkWidget, GtkWidget)’:
    /home/giuseppe/u-pixecs-openprogrammer/src/Gui.cpp:1461:44: warning: format not a string literal and no format arguments [-Wformat-security]
    fprintf(fd, gtk_entry_get_text(Hex_data2));
    ^
    when you execute the OpGui and you wanto to change micro crash again

    Regards
    Joe

     
    • Anonymous

      Anonymous - 2016-09-09

      Hi Joe, i fixed the crash and the remaining warning. The crash appeared because i mismatched the buttons callback params and my gtk library happily run the program with no crash ever, but once i tried in a CentOs VM the crash was there. Thank you for bug reports. Please do a git fetch or redownload the latest sources and let me know if is working for you too.

      Pixecs

       

      Last edit: pixecs 2016-09-09
  • pixecs

    pixecs - 2016-09-20

    Hello,
    I added (initial & complete) support for FreeBSD - other BSD should work too.

     
  • Anonymous

    Anonymous - 2017-07-05

    Hello, I did try to use it but it keeps re-trying to connecting like that :
    (ERROR) Error reading programmer info... retrying...
    (ERROR) Can't read programmer info!
    Firmware version 0.10.0 (32.82.83), Hardware ID: 0.0.1 (18F2550)

    original opgui works OK though it sometimes cannot read chip or writes with errors (usually trying few times fixes it)

     

Anonymous
Anonymous

Add attachments
Cancel





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.