GithubHelp home page GithubHelp logo

lancos / ponyprog Goto Github PK

View Code? Open in Web Editor NEW
72.0 10.0 13.0 16.25 MB

Serial device programmer

License: GNU General Public License v2.0

C 2.80% C++ 85.37% HTML 5.42% Inno Setup 0.37% Shell 1.04% Batchfile 0.15% CMake 3.95% QMake 0.91%

ponyprog's Introduction

3.1.3 - PonyProg - Serial Device Programmer

PonyProg is a serial device programmer software with a user friendly GUI framework available for Windows and Linux. It's purpose is reading and writing every serial device. With PonyProg and SI-Prog you can program Wafercard for SAT, eeprom within GSM, TV or CAR-RADIO. Furthermore it can be used as a low cost starter kit for PIC and AVR. Ponyprog supports AVR, SPI eeprom, AVR micro, 12C bus 8bit eeprom, PIC 16 micro, PIC 12 micro, AT89S micro and SDE2506 eeprom family chips. You can open any HEX, e2p, mot, csm, rom, eep, bin files and burn them to uC or PIC. You can even backup the old program on the chip using Ponyprog. Ponyprog enables the user to write, verify and erase data on the microchip. Also setting fuse bits and locks using Ponyprog is possible. You can save any HEX file to BIN file or eep file, BIN file to HEX file or MOT file and vice versa so you can use Ponyprog as converter too. Ponyprog offers serial or parallel port programming for uC's. You can even change polarity of control lines without touching the wires using I/O port setup.

You can find it at www.LancOS.com

Screenshot

ponyprog's People

Contributors

ktrace avatar lancos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ponyprog's Issues

Build Problems

Using Linux Mint 19.3 amd64.

Trying to build current version cloned from github today.

Installed dependencies as stated in INSTALL, plus qt5base-dev, qtdeclarative5-dev, .

When running create_elf_binary.sh I get this

./create_elf_binary.sh

cpu cores: 4
-- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 7.5.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Qt version for compiling: 5
-- CMAKE_CXX_FLAGS -O3 -DNDEBUG -Wall
-- Checking for module 'libusb-1.0'
-- Found libusb-1.0, version 1.0.21
-- Found Libusb-1.0: /usr/lib/x86_64-linux-gnu/libusb-1.0.so
-- Checking libusb version...
-- LibUSB version 1.0.21
-- Version info: 3.1.3
-- Version build date: 24-08-2022
-- Compile without profiling information
CMake Error at CMakeLists.txt:242 (ADD_SUBDIRECTORY):
ADD_SUBDIRECTORY given source "qhexedit2/src" which is not an existing
directory.

-- PONY_RESOURCES /ponyprog/build/qrc_ponyprog.cpp
-- Include dirs
-- dir='/usr/include/libftdi1'
-- dir='/usr/include/libusb-1.0'
-- dir='/opt/Qt5.13.0/5.13.0/gcc_64/include'
-- dir='/opt/Qt5.13.0/5.13.0/gcc_64/include/QtWidgets'
-- dir='/opt/Qt5.13.0/5.13.0/gcc_64/include/QtGui'
-- dir='/opt/Qt5.13.0/5.13.0/gcc_64/include/QtCore'
-- dir='/opt/Qt5.13.0/5.13.0/gcc_64/./mkspecs/linux-g++'
-- dir='/usr/include'
-- dir='/opt/Qt5.13.0/5.13.0/gcc_64/include'
-- dir='/opt/Qt5.13.0/5.13.0/gcc_64/include/QtPrintSupport'
-- dir='/opt/Qt5.13.0/5.13.0/gcc_64/include/QtWidgets'
-- dir='/opt/Qt5.13.0/5.13.0/gcc_64/include/QtGui'
-- dir='/opt/Qt5.13.0/5.13.0/gcc_64/include/QtCore'
-- dir='/opt/Qt5.13.0/5.13.0/gcc_64/./mkspecs/linux-g++'
-- dir='/usr/include'
-- dir='/opt/Qt5.13.0/5.13.0/gcc_64/include'
-- dir='/opt/Qt5.13.0/5.13.0/gcc_64/include/QtMultimedia'
-- dir='/opt/Qt5.13.0/5.13.0/gcc_64/include/QtNetwork'
-- dir='/opt/Qt5.13.0/5.13.0/gcc_64/include/QtCore'
-- dir='/opt/Qt5.13.0/5.13.0/gcc_64/./mkspecs/linux-g++'
-- dir='/opt/Qt5.13.0/5.13.0/gcc_64/include/QtGui'
-- dir='/usr/include'
-- dir='/home/nick/ponyprog/qhexedit2/src'
-- dir='/home/nick/ponyprog/SrcPony'
-- dir='/home/nick/ponyprog/build'
-- Generate installation variables...
UDEV_INSTALL_DIR
CMAKE_INSTALL_PREFIX /usr/local
DEBIAN_ARCHITECTURE amd64
-- Configuring incomplete, errors occurred!
See also "
/ponyprog/build/CMakeFiles/CMakeOutput.log".
make: *** No targets specified and no makefile found. Stop.

There are no errors in /ponyprog/build/CMakeFiles/CMakeOutput.log

But there seems to be a problem with qhexedit2/src which does not exist.

Not a cmake expert here, just a lowly user.

Any advice would be appreciated.

separate config file for supported ic's

Not to configure hard coded in PonyProg the information about IC's, but instead this to load the information from xml file. Xml file is easier to edit with syntax highlighting (supported in mostly editors), then json. Example:

<?xml version="1.0" encoding="UTF-8"?>
<config type="PonyProg" version="3">
  <chip list="AT90CAN32,AT90CAN64,AT90CAN128">
    <!-- offset information (boot) needs for BOOTSZ group, see 'Boot start address' -->
    <ic name="AT90CAN32" code_sz="32k" data_sz="1k" wpgsz="128" adrsz="" boot="$3000"/>
    <ic name="AT90CAN64" code_sz="64k" data_sz="2k" wpgsz="256" adrsz="" boot="$7000"/>
    <ic name="AT90CAN128" code_sz="128k" data_sz="4k" wpgsz="256" adrsz="" boot="$F000"/>
    <fuse>
      <bit offset="0" group="CKSEL" idx="0" />
      <bit offset="1" group="CKSEL" idx="1" />
      <bit offset="2" group="CKSEL" idx="2" />
      <bit offset="3" group="CKSEL" idx="3" />
      <bit offset="4" group="SUT" idx="0" />
      <bit offset="5" group="SUT" idx="1" />
      <bit offset="6" name="CKOUT" help="Clock output on PORTC7" />
      <bit offset="7" name="CKDIV8" help="Divide clock by 8 internally" />
      <!-- byte high -->
      <bit offset="8" name="BOOTRST" help="Boot Reset vector Enabled (default address=$0000)" />
      <bit offset="9" group="BOOTSZ" idx="0" />
      <bit offset="10" group="BOOTSZ" idx="1" />
      <bit offset="11" name="EESAVE" help="Preserve EEPROM memory through the Chip Erase cycle" />
      <bit offset="12" name="WDTON" help="Watchdog timer always on" />
      <bit offset="13" name="SPIEN" help="Serial program downloading (SPI) enabled" />
      <bit offset="14" name="JTAGEN" help="JTAG Interface Enabled" />
      <bit offset="15" name="OCDEN" help="On-Chip Debug Enabled" />
      <!-- byte ext -->
      <bit offset="16" name="TA0SEL" help="Reserved for factory tests" />
      <bit offset="17" group="BODLEVEL" idx="0" />
      <bit offset="18" group="BODLEVEL" idx="1" />
      <bit offset="19" group="BODLEVEL" idx="2" />
      
      <!-- sets description -->
      <set code="CKSEL=0000 SUT=00" help="Ext. Clock; Start-up time: 6 CK + 0 ms" />
      ...
      <!-- Boot start address will be added to chip offset -->
      <!--chip="AT90CAN32: $3C00, AT90CAN64: $7C00, AT90CAN128: $FC00" -->
      <set code="BOOTSZ=10" help="Boot Flash section size=1024 words Boot start address=$nC00" />
      <!--chip="AT90CAN32: $3800, AT90CAN64: $7800, AT90CAN128: $F800" -->
      <set code="BOOTSZ=01" help="Boot Flash section size=2048 words Boot start address=$n800" /> 
      <!--chip="AT90CAN32: $3000, AT90CAN64: $7000, AT90CAN128: $F000" -->
      <set code="BOOTSZ=00" help="Boot Flash section size=4096 words Boot start address=$n000" />
      <!--chip="AT90CAN32: $3E00, AT90CAN64: $7E00, AT90CAN128: $FE00" -->
      <set code="BOOTSZ=11" help="Boot Flash section size=512 words Boot start address=$nE00" /> 

      <set code="BODLEVEL=111" help="Brown-out detection disabled" />
      <set code="BODLEVEL=000" help="Brown-out detection level at VCC=2.5 V" />
      <set code="BODLEVEL=001" help="Brown-out detection level at VCC=2.6 V" />
      <set code="BODLEVEL=010" help="Brown-out detection level at VCC=2.7 V" />
      <set code="BODLEVEL=011" help="Brown-out detection level at VCC=3.8 V" />
      <set code="BODLEVEL=100" help="Brown-out detection level at VCC=3.9 V" />
      <set code="BODLEVEL=101" help="Brown-out detection level at VCC=4.0 V" />
      <set code="BODLEVEL=110" help="Brown-out detection level at VCC=4.1 V" />
    </fuse>
    <lock>
      <bit offset="0" group="Lock" idx="0" />
      <bit offset="1" group="Lock" idx="1" />
      <bit offset="2" group="BootLock" idx="0" />
      <bit offset="3" group="BootLock" idx="1" />
      <bit offset="4" group="BootLoad" idx="0" />
      <bit offset="5" group="BootLoad" idx="1" />
      
      <!-- sets description -->
      <set code="Lock=11" help="Mode 1: No memory lock features enabled" />
      <set code="Lock=10" help="Mode 2: Further programming disabled" />
      <set code="Lock=00" help="Mode 3: Further programming and verification disabled" />
      ...
      <set code="BootLoad=01" help="Boot Loader Protection Mode 4: LPM prohibited in Boot Loader Section" />
    </lock>
  </chip>
  <chip names="the next">
    ...
  </chip>
</config>

After version with implemented UART interface i can implement the new parser for PonyProg. Possible, flex/bison based. Possible to use the Qt xml parser.

Not install in archlinux x86_64

On archlinux aur found this problem: ponyprog: /lib exists in filesystem (owned by filesystem)
my patch:

--- a/distribution/posix/CMakeLists.txt	2020-01-21 08:29:49.949685608 +0000
+++ b/distribution/posix/CMakeLists.txt	2020-01-21 10:28:26.949800156 +0000
@@ -49,7 +49,7 @@
 # MESSAGE("PROJECT_SOURCE_DIR ${PROJECT_SOURCE_DIR}")
 
 INSTALL(FILES "${PROJECT_SOURCE_DIR}/udev/rules.d/90-ponyprog.rules"
-        DESTINATION "/lib/udev/rules.d/" 
+        DESTINATION "${CMAKE_SYSTEM_LIBRARY_PATH}/udev/rules.d/" 
         COMPONENT "application" 
         PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ
         )

hmm file installed in "/usr/lib/X11/udev/rules.d" but something to do with it

Incorrect fuse bits order for ATTiny2313

Hello!
The order of the fuse bits in the high fuse byte is incorrect for ATTiny2313.
Here is the fuse bits dialog in Ponyprog:
ponyprog-fuse2313-wrongorder

And here is the table from the datasheet:
attiny2313-datasheet-highfuse

So as you can see, the bits are in the wrong order in the dialog box. Including the RSTDISBL bit.

And also, is there a way to make the high byte and the low byte visually separated from each other in the interface? It seems to be more convenient to check them against the datasheet this way, and also to distinguish better.
Thank you!

Build fails with LTO (odr violation)

I tried to build with the following *FLAGS to optimize the build: -flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing

Note the -Werror=* flags are used to help detect cases where the compiler tries to optimize by assuming UB cannot exist in the source code -- if it does exist, ordinarily the code would be miscompiled, and this says to make the miscompilation a fatal error.

I got this error:

FAILED: ponyprog 
: && /usr/bin/x86_64-pc-linux-gnu-g++ -march=native -fstack-protector-all -O2 -pipe -fdiagnostics-color=always -frecord-gcc-switches -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-clash-protection -flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing  -Wformat -Werror=format-security -std=c++11 -fno-exceptions -Wl,-O1 -Wl,--as-needed -flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -Wl,--defsym=__gentoo_check_ldflags__=0    -rdynamic CMakeFiles/ponyprog.dir/SrcPony/aboutmdlg.cpp.o CMakeFiles/ponyprog.dir/SrcPony/usbwatcher.cpp.o CMakeFiles/ponyprog.dir/SrcPony/main.cpp.o CMakeFiles/ponyprog.dir/SrcPony/Translator.cpp.o CMakeFiles/ponyprog.dir/SrcPony/e2app.cpp.o CMakeFiles/ponyprog.dir/SrcPony/at25xxx.cpp.o CMakeFiles/ponyprog.dir/SrcPony/at93cbus.cpp.o CMakeFiles/ponyprog.dir/SrcPony/crc.cpp.o CMakeFiles/ponyprog.dir/SrcPony/e24xx-1.cpp.o CMakeFiles/ponyprog.dir/SrcPony/e24xx-2.cpp.o CMakeFiles/ponyprog.dir/SrcPony/e24xx.cpp.o CMakeFiles/ponyprog.dir/SrcPony/e24xx-5.cpp.o CMakeFiles/ponyprog.dir/SrcPony/e2profil.cpp.o CMakeFiles/ponyprog.dir/SrcPony/fusemdlg.cpp.o CMakeFiles/ponyprog.dir/SrcPony/bitfield.cpp.o CMakeFiles/ponyprog.dir/SrcPony/blockmdlg.cpp.o CMakeFiles/ponyprog.dir/SrcPony/intfbuf.cpp.o CMakeFiles/ponyprog.dir/SrcPony/lpt_io_interf.cpp.o CMakeFiles/ponyprog.dir/SrcPony/pgminter.cpp.o CMakeFiles/ponyprog.dir/SrcPony/picbus.cpp.o CMakeFiles/ponyprog.dir/SrcPony/progoption.cpp.o CMakeFiles/ponyprog.dir/SrcPony/sernumdlg.cpp.o CMakeFiles/ponyprog.dir/SrcPony/x2444.cpp.o CMakeFiles/ponyprog.dir/SrcPony/at17xxx.cpp.o CMakeFiles/ponyprog.dir/SrcPony/at89sbus.cpp.o CMakeFiles/ponyprog.dir/SrcPony/at93cxx8.cpp.o CMakeFiles/ponyprog.dir/SrcPony/csmfbuf.cpp.o CMakeFiles/ponyprog.dir/SrcPony/e2cmdw.cpp.o CMakeFiles/ponyprog.dir/SrcPony/e2awinfo.cpp.o CMakeFiles/ponyprog.dir/SrcPony/easyi2c_interf.cpp.o CMakeFiles/ponyprog.dir/SrcPony/i2cbus.cpp.o CMakeFiles/ponyprog.dir/SrcPony/ispinterf.cpp.o CMakeFiles/ponyprog.dir/SrcPony/microbus.cpp.o CMakeFiles/ponyprog.dir/SrcPony/pic125xx.cpp.o CMakeFiles/ponyprog.dir/SrcPony/picbusnew.cpp.o CMakeFiles/ponyprog.dir/SrcPony/spi-bus.cpp.o CMakeFiles/ponyprog.dir/SrcPony/at250bus2.cpp.o CMakeFiles/ponyprog.dir/SrcPony/at89sxx.cpp.o CMakeFiles/ponyprog.dir/SrcPony/at93cxx.cpp.o CMakeFiles/ponyprog.dir/SrcPony/device.cpp.o CMakeFiles/ponyprog.dir/SrcPony/eeptypes.cpp.o CMakeFiles/ponyprog.dir/SrcPony/imbus.cpp.o CMakeFiles/ponyprog.dir/SrcPony/linuxsysfsint.cpp.o CMakeFiles/ponyprog.dir/SrcPony/pic12bus.cpp.o CMakeFiles/ponyprog.dir/SrcPony/ponyioint.cpp.o CMakeFiles/ponyprog.dir/SrcPony/rs232int.cpp.o CMakeFiles/ponyprog.dir/SrcPony/at250bus.cpp.o CMakeFiles/ponyprog.dir/SrcPony/at90sbus.cpp.o CMakeFiles/ponyprog.dir/SrcPony/binfbuf.cpp.o CMakeFiles/ponyprog.dir/SrcPony/dt006interf.cpp.o CMakeFiles/ponyprog.dir/SrcPony/e2dlg.cpp.o CMakeFiles/ponyprog.dir/SrcPony/filebuf.cpp.o CMakeFiles/ponyprog.dir/SrcPony/infomdlg.cpp.o CMakeFiles/ponyprog.dir/SrcPony/lpt_ext_interf.cpp.o CMakeFiles/ponyprog.dir/SrcPony/mpsse_interf.cpp.o CMakeFiles/ponyprog.dir/SrcPony/motsfbuf.cpp.o CMakeFiles/ponyprog.dir/SrcPony/pic168xx.cpp.o CMakeFiles/ponyprog.dir/SrcPony/portint.cpp.o CMakeFiles/ponyprog.dir/SrcPony/sde2506.cpp.o CMakeFiles/ponyprog.dir/SrcPony/wait.cpp.o CMakeFiles/ponyprog.dir/SrcPony/at250xx.cpp.o CMakeFiles/ponyprog.dir/SrcPony/at90sxx.cpp.o CMakeFiles/ponyprog.dir/SrcPony/busio.cpp.o CMakeFiles/ponyprog.dir/SrcPony/e2401.cpp.o CMakeFiles/ponyprog.dir/SrcPony/e2pfbuf.cpp.o CMakeFiles/ponyprog.dir/SrcPony/filldlg.cpp.o CMakeFiles/ponyprog.dir/SrcPony/interfconv.cpp.o CMakeFiles/ponyprog.dir/SrcPony/lptinterf.cpp.o CMakeFiles/ponyprog.dir/SrcPony/nvm3060.cpp.o CMakeFiles/ponyprog.dir/SrcPony/pic16xx.cpp.o CMakeFiles/ponyprog.dir/SrcPony/x2444bus.cpp.o CMakeFiles/ponyprog.dir/SrcPony/prefdialog.cpp.o CMakeFiles/ponyprog.dir/SrcPony/sdebus.cpp.o CMakeFiles/ponyprog.dir/SrcPony/moc_fusemdlg.cpp.o CMakeFiles/ponyprog.dir/SrcPony/moc_usbwatcher.cpp.o CMakeFiles/ponyprog.dir/SrcPony/moc_bitfield.cpp.o CMakeFiles/ponyprog.dir/SrcPony/moc_filldlg.cpp.o CMakeFiles/ponyprog.dir/SrcPony/moc_blockmdlg.cpp.o CMakeFiles/ponyprog.dir/SrcPony/moc_e2cmdw.cpp.o CMakeFiles/ponyprog.dir/SrcPony/moc_e2dlg.cpp.o CMakeFiles/ponyprog.dir/SrcPony/moc_aboutmdlg.cpp.o CMakeFiles/ponyprog.dir/SrcPony/moc_prefdialog.cpp.o CMakeFiles/ponyprog.dir/SrcPony/moc_progoption.cpp.o CMakeFiles/ponyprog.dir/SrcPony/moc_sernumdlg.cpp.o CMakeFiles/ponyprog.dir/SrcPony/moc_infomdlg.cpp.o CMakeFiles/ponyprog.dir/qrc_ponyprog.cpp.o -o ponyprog  /usr/lib64/libQt5Multimedia.so.5.15.12  /usr/lib64/libQt5PrintSupport.so.5.15.12  -lftdipp1  -lftdi1  -lusb-1.0  -lqhexedit  /usr/lib64/libQt5Network.so.5.15.12  /usr/lib64/libQt5Widgets.so.5.15.12  /usr/lib64/libQt5Gui.so.5.15.12  /usr/lib64/libQt5Core.so.5.15.12 && :
/var/tmp/portage/dev-embedded/ponyprog-3.1.3/work/ponyprog-3.1.3/SrcPony/pic168xx.cpp:67:3: error: type ‘struct IdType’ violates the C++ One Definition Rule [-Werror=odr]
   67 | } IdType;
      |   ^
/var/tmp/portage/dev-embedded/ponyprog-3.1.3/work/ponyprog-3.1.3/SrcPony/at90sxx.cpp:160:3: note: a different type is defined in another translation unit
  160 | } IdType;
      |   ^
/var/tmp/portage/dev-embedded/ponyprog-3.1.3/work/ponyprog-3.1.3/SrcPony/pic168xx.cpp:65:13: note: the first difference of corresponding definitions is field ‘code’
   65 |         int code;
      |             ^
/var/tmp/portage/dev-embedded/ponyprog-3.1.3/work/ponyprog-3.1.3/SrcPony/at90sxx.cpp:157:13: note: a field with different name is defined in another translation unit
  157 |         int code1;
      |             ^
lto1: some warnings being treated as errors
lto-wrapper: fatal error: /usr/bin/x86_64-pc-linux-gnu-g++ returned 1 exit status
compilation terminated.
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

Originally reported downstream: https://bugs.gentoo.org/855272
Full build log: build.log

Fix compiler warning: missing initializer

Fix warning in develop branch:
../ponyprog/SrcPony/fusemdlg.cpp:3118:1: warning: missing initializer for member ‘MaskDescr::ExtDescr’ [-Wmissing-field-initializers]

Move to qt5

Kde team said
Currently Qt4 has been dead upstream and we are starting to have problems
maintaining it"

Now qt4 is removed from different distributions. Offer to switch to qt5.
log from lubuntu 18.04

./create_deb_package.sh 
cpu cores: 4
-- The C compiler identification is GNU 7.3.0
-- The CXX compiler identification is GNU 7.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Deprecation Warning at CMakeLists.txt:5 (CMAKE_POLICY):
  The OLD behavior for policy CMP0003 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.


CMake Deprecation Warning at CMakeLists.txt:6 (CMAKE_POLICY):
  The OLD behavior for policy CMP0015 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.


-- Qt version for compiling: 4
-- CMAKE_CXX_FLAGS -O3 -DNDEBUG -Wall
-- Version info: 3.0.0
-- Version build date: 18.12.2018
-- Compile without profiling information
CMake Error at /usr/share/cmake-3.10/Modules/FindQt4.cmake:1320 (message):
  Found unsuitable Qt version "5.9.5" from /usr/bin/qmake, this code requires
  Qt 4.x
Call Stack (most recent call first):
  CMakeLists.txt:143 (FIND_PACKAGE)


-- Configuring incomplete, errors occurred!
See also "/home/johndoe/build/ponyprog/ponyprog/build-deb/CMakeFiles/CMakeOutput.log".
make: *** No targets specified and no makefile found.  Stop.
strip: 'ponyprog': No such file
make: *** No rule to make target 'package-binary-deb'.  Stop.
ls: cannot access 'ponyprog*.deb': No such file or directory
mv: './build-deb/' and './build-deb' are the same file
dpkg-deb: error: --extract needs a target directory.
Perhaps you should be using dpkg --install ?

Type dpkg-deb --help for help about manipulating *.deb files;
Type dpkg --help for help about installing and deinstalling packages.
dpkg-deb: error: failed to read archive 'fix_up_deb/DEBIAN': No such file or directory
rm: missing operand
Try 'rm --help' for more information.
chmod: cannot access 'fix_up_deb/DEBIAN/md5sums': No such file or directory
sed: can't read fix_up_deb/DEBIAN/md5sums: No such file or directory
dpkg-deb: error: failed to open package info file 'fix_up_deb/DEBIAN/control' for reading: No such file or directory

compilation issues on various platforms

Hi,

after the ponyprog package was accepted into the unstable archive of Debian the build daemons have spotted some compilation issues. Mainly to a to generic usage of #ifdef __linux__.

https://buildd.debian.org/status/package.php?p=ponyprog

For the Buster release only the white filled rows are important because these are the release critical platforms. So far I can see now the inclusion of sys/io.h in the file SrcPony/ponyioint.cpp is problematic as this header is highly architecture depended. A possible short time solution would be to include the needed functions from this header into a own header or cpp file. If this isn't possible the build support should be decreased to platforms which are supported.

I'm happy to help out with testing the compilation on the currently not working platforms, but I don't have a big C++ and in detail no QT experience.

PonyProgFT / More documention available or alternatives?

Hello,
I've seen that there is a circuit diagram and component placement for an USB adapter called PonyProgFT, that's very interesting since using the parallel port has become very problematic (in my new PC even my parallel port pci-e card won't work with ponyprog anymore).
Is this just a concept/prototype or is it already working fine? I would really like to have one of this, is additional information anywhere to be found (BOM, PCB layout)? In case not, is there any alternative?
Is it possible to have optical isolated I²C with it? I use a modified EasyI²C interface with 4 optocouplers, as I had to read-out EEPROMs from devices with weird voltages and sometimes different ground potential. If nEN_BUS is fixed high I think it should work to connect optocouplers (SDA/SCL in/out is connected at the side of the optocouplers where the device to program is).
Best regards
Stefan

PCB Layouts

Please provide a reference PCB layouts (front and back side) for all the modules for PonyProg3, because on the old site I can see only the parts side of PCB layouts, but not the side with paths. I also assume that maybe the schematics ware changed due to newly added support for new IC's.
Thank you in advance :)

USB adapter support

According to PonyProg website USB support have been on the TODO list for quite a while now. Issue #3 mentioned that it was the was first priority after porting it to QT.

It seems that @eduard-x have done some progress on reading an EEPROM using a CH341 based adapter, with plans to support CP2102 and PL2303 based adapters. Unfortunately, the branch seems to be inactive since 2019. There was also some activity with PonyProgFT, which version 3.1.0 added support for, but it seems to only mention AVR chips.

Is there any current plans to support USB adapters for EEPROMs? Serial interfaces are almost non-existent by now making it almost impossible to use PonyProg as an EEPROM reader and writer.

WHAT IS HW ?

Hi!
I need your help in debugging. At this moment i have implemented in "libusb-patches" branch the functions for bit-banging. All HW connections are like here: i2c rs232 but without z-diodes and instead RS232 connectors i use this board ch341 board at hackaday in UART mode
Description for connectors from my file in branch:

/**
 * ch341a modem connections:
 *
 * rs232 -> ch341  description
 *     1 -> 18     data carrier detect
 *     2 -> 6      Rx
 *     3 -> 5      Tx
 *     4 -> 20     Data Terminal Ready
 *     5              Ground
 *     6 -> 16     Data Set Ready
 *     7 -> 21     Request To Send
 *     8 -> 15     Clear To Send
 *     9 -> 17     Ring Indicator
 **/

And i'm getting from PonyProg followed debugging list (project compiled with enabled debug option):

ch341::Open( 6790 21795 ) 
ch341::Configure()
Open device [1a86:5523].
Claim interface 0
Device reported its revision [4.03]
SIProgInterface::OpenUSB() =  0  OUT
e2App::OpenBus() ** OpenUSB =  0
e2App::OpenBus() ** SetPower
e2App::OpenBus() ** Reset
I2CBus::Reset() - IN
I2CBus::SetDelay() =  5
I2CBus::Read( 0 ,  0x7fffffffc127 ,  0 ) - IN
I2CBus::StartRead( 0 ,  0x7fffffffc127 ,  0 ) - IN
I2CBus::StartRead() =  1 , err_no =  0  - OUT
I2CBus::Read() =  1 , err_no =  0  - OUT
I2CBus::Reset() - OUT
e2AppWinInfo::Read() ** OpenBus =  0
E24xx::Probe( 1 ) - IN
I2CBus::Read( 160 ,  0x7fffffffc18b ,  1 ) - IN
I2CBus::StartRead( 160 ,  0x7fffffffc18b ,  1 ) - IN
I2CBus::Read() =  0 , err_no =  -13  - OUT
I2CBus::Read( 162 ,  0x7fffffffc18b ,  1 ) - IN
I2CBus::StartRead( 162 ,  0x7fffffffc18b ,  1 ) - IN
I2CBus::Read() =  0 , err_no =  -13  - OUT
I2CBus::Read( 164 ,  0x7fffffffc18b ,  1 ) - IN
I2CBus::StartRead( 164 ,  0x7fffffffc18b ,  1 ) - IN
I2CBus::Read() =  0 , err_no =  -13  - OUT
I2CBus::Read( 166 ,  0x7fffffffc18b ,  1 ) - IN
I2CBus::StartRead( 166 ,  0x7fffffffc18b ,  1 ) - IN
I2CBus::Read() =  0 , err_no =  -13  - OUT
I2CBus::Read( 168 ,  0x7fffffffc18b ,  1 ) - IN
I2CBus::StartRead( 168 ,  0x7fffffffc18b ,  1 ) - IN
I2CBus::Read() =  0 , err_no =  -13  - OUT
I2CBus::Read( 170 ,  0x7fffffffc18b ,  1 ) - IN
I2CBus::StartRead( 170 ,  0x7fffffffc18b ,  1 ) - IN
I2CBus::Read() =  0 , err_no =  -13  - OUT
I2CBus::Read( 172 ,  0x7fffffffc18b ,  1 ) - IN
I2CBus::StartRead( 172 ,  0x7fffffffc18b ,  1 ) - IN
I2CBus::Read() =  0 , err_no =  -13  - OUT
I2CBus::Read( 174 ,  0x7fffffffc18b ,  1 ) - IN
I2CBus::StartRead( 174 ,  0x7fffffffc18b ,  1 ) - IN
I2CBus::Read() =  0 , err_no =  -13  - OUT
E24xx::Probe() =  0  - OUT
e2App::CloseBus() iniBus= 0x7fffffffd758
I2CBus::Close() busI= 0x7fffffffd398
SIProgInterface::Close() IN *** Inst= true
SerialInterface::CloseSerial()
SIProgInterface::Close() OUT
e2AppWinInfo::Read() =  0  - OUT
CmdWindow->Read -- Error

I'm trying to find the find the bug(s), but possible with more eyes we can find this faster :)
Do not forget under Linux to install the file uart/rules.d/99-ponyprog.rules under /etc/udev/rules.d/ and restart udev for user access to HW

Originally posted by @eduard-x in #3 (comment)

some small fixes for spelling and desktop file

Hi,

I picked up the v3.0.0 tag and reworked the source into a Debian package. The package was accepted by the Debian ftpmasters a few hours ago. So if all is going well it will be part of the Buster release in some months.

https://tracker.debian.org/pkg/ponyprog

I added some additional patches to the package, too of them are about fixing some misspelled words, and one is about adding a Keyword entry to the desktop file. Please consider to include these fixes into the source.

https://salsa.debian.org/electronics-team/ponyprog/tree/debian/sid/debian/patches

And Lintian, the main QS tool for packaging in Debian, is mentioning that the Icon for Ponyprog isn't available in a recommended resolution. Is it possible to add a SVG graphic to the source so I can created the various sizes of the icon while packaging? Or add various sizes of the icon to the icons/ folder?

https://appstream.debian.org/sid/main/issues/ponyprog.html

Regards

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.