MiniPro TL866CS

Model: MiniPro TL866CS, made by autoelectric.

firmware version: 03.2.86 was: v03.2.58

Links

27c160-tl866-adapter, proghq TL866,

more links:

MiniPro TL866 Community Wiki, Using the Minipro Universal Programmer TL866CS, Reversatronics - TL866 + MiniPro under Linux,

software: Github minipro, qtl866, TL866, open-tl866 - Open programming firmware for the TL866A Gitlab: DavidGriffith/minipro, radiomanV/minipro, rozhuk-im/minipro, Aminet - misc/minipro_20150206,

supported devices: minipro-devices_03.2.58.txt, minipro-devices_03.2.86.txt,

local links

bb - ASRock BeeBox-S 7100U - Debian, c2 - Gigabyte B450M DS3H - FreeBSD,

back to microcontrollers page.

History

2024-02-24: c2 - reading an EPROM of type AM2764A (from a ND 3201 SCSI / Floppy card) using this command line

tingo@kg-core2:~/work/minipro/minipro $ ./minipro -p AM2764A@DIP28 -r ./45900E.bin
Found TL866CS 03.2.86 (0x256)
Chip ID OK: 0x0108
Reading Code...  0.20Sec  OK

2023-04-17: c2 - reading an EPROM of type AM2764 (from a ND 3112 card) using this command line

tingo@kg-core2:~/work/minipro/minipro $ minipro -p MBM2764@DIP28 -r ./34300G.bin
Found TL866CS 03.2.86 (0x256)
Reading Code...  0.20Sec  OK

2023-03-12: the FreeBSD port sysutils/minipro has an open PR: 264459.

2021-11-07: I re-created this page on my self-hosted web server.

2021-03-16: c2 - read EPROMs M2716

tingo@kg-core2$ ./minipro -p M2716@DIP24 -r ~/doc/Tandberg/TDV2200/EPROMs/TDV2200_U33_49153-10_rev_3.bin
Found TL866CS 03.2.86 (0x256)
Reading Code...  0.10Sec  OK

2732A

tingo@kg-core2$ ./minipro -p 2732A@DIP24 -r ~/doc/Tandberg/TDV2200/EPROMs/TDV2200_U63_961825_rev_0.bin
Found TL866CS 03.2.86 (0x256)
Reading Code...  0.14Sec  OK

AM2764A

tingo@kg-core2$ ./minipro -p AM2764A@DIP28 -r ~/doc/Tandberg/TDV2200/EPROMs/TDV2200_U32_49153-10_rev_2.bin
Found TL866CS 03.2.86 (0x256)
Invalid Chip ID: expected 0x0108, got 0xA7C2 (unknown)
(use '-y' to continue anyway at your own risk)
tingo@kg-core2$ ./minipro -p AM2764A@DIP28 -y -r ~/doc/Tandberg/TDV2200/EPROMs/TDV2200_U32_49153-10_rev_2.bin
Found TL866CS 03.2.86 (0x256)
WARNING: Chip ID mismatch: expected 0x0108, got 0xA7C2 (unknown)
Reading Code...  0.21Sec  OK

I need to validate the contents of that one.

2021-03-12: c2 - read M27512 EPROMs:

tingo@kg-core2$ ./minipro -p M27512@DIP28 -r ~/doc/Nokia_Data/VDU_301_S/EPROMs/9697H.bin
Found TL866CS 03.2.86 (0x256)
Chip ID OK: 0x200D
Reading Code...  1.45Sec  OK

tingo@kg-core2$ ./minipro -p M27512@DIP28 -r ~/doc/Nokia_Data/VDU_301_S/EPROMs/9698H.bin
Found TL866CS 03.2.86 (0x256)
Chip ID OK: 0x200D
Reading Code...  1.45Sec  OK

ok

2021-03-12: c2 - connect the TL866CS again. Now this machine runs

root@kg-core2# freebsd-version -ku
11.4-RELEASE-p5
11.4-RELEASE-p5
root@kg-core2# uname -a
FreeBSD kg-core2.kg4.no 11.4-RELEASE-p5 FreeBSD 11.4-RELEASE-p5 #0: Tue Dec  1 11:46:55 UTC 2020
     root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  amd64

usbconfig says

root@kg-core2# usbconfig -d ugen0.4
ugen0.4: <www.autoelectric.com MiniPro TL-866 Programmer> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
root@kg-core2# usbconfig -d ugen0.4 dump_device_desc
ugen0.4: <www.autoelectric.com MiniPro TL-866 Programmer> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)

  bLength = 0x0012
  bDescriptorType = 0x0001
  bcdUSB = 0x0200
  bDeviceClass = 0x0000  <Probed by interface class>
  bDeviceSubClass = 0x0000
  bDeviceProtocol = 0x0000
  bMaxPacketSize0 = 0x0008
  idVendor = 0x04d8
  idProduct = 0xe11c
  bcdDevice = 0x0000
  iManufacturer = 0x0001  <www.autoelectric.com     >
  iProduct = 0x0002  <MiniPro TL-866 Programmer  >
  iSerialNumber = 0x0000  <no string>
  bNumConfigurations = 0x0001

create a devd file for it:

tingo@kg-core2$ more  /usr/local/etc/devd/tl866.conf
# allow group (operator) to access the usb connection of tl866

notify 100 {
        match "system"          "USB";
        match "subsystem"       "INTERFACE";
        match "type"            "ATTACH";
        match "vendor" "0x04d8";
        match "product" "0xe11c";
        action "usb_devaddr=`echo $cdev | sed 's#^ugen##'` && chmod g+rw /dev/usb/${usb_devaddr}.*";
};

then restart devd, unplug / plug the device, and we're in business.

2021-03-11: bb - install via 'sudo make install'.

2021-03-11: bb - 'make clean' then build new version

tingo@kg-bsbox:~/work/minipro/minipro$ make clean
rm -f xml.o jedec.o ihex.o srec.o database.o minipro.o tl866a.o tl866iiplus.o version.o usb_nix.o main.o minipro
rm -f libminipro.a
rm -f version.h version.c version.o
tingo@kg-bsbox:~/work/minipro/minipro$ make
Creating version.h
Creating version.c
gcc -g -O0 -Wall -DSHARE_INSTDIR="\"/usr/local/share/minipro\"" -I/usr/include/libusb-1.0   -c -o xml.o xml.c
gcc -g -O0 -Wall -DSHARE_INSTDIR="\"/usr/local/share/minipro\"" -I/usr/include/libusb-1.0   -c -o jedec.o jedec.c
gcc -g -O0 -Wall -DSHARE_INSTDIR="\"/usr/local/share/minipro\"" -I/usr/include/libusb-1.0   -c -o ihex.o ihex.c
gcc -g -O0 -Wall -DSHARE_INSTDIR="\"/usr/local/share/minipro\"" -I/usr/include/libusb-1.0   -c -o srec.o srec.c
gcc -g -O0 -Wall -DSHARE_INSTDIR="\"/usr/local/share/minipro\"" -I/usr/include/libusb-1.0   -c -o database.o database.c
gcc -g -O0 -Wall -DSHARE_INSTDIR="\"/usr/local/share/minipro\"" -I/usr/include/libusb-1.0   -c -o minipro.o minipro.c
gcc -g -O0 -Wall -DSHARE_INSTDIR="\"/usr/local/share/minipro\"" -I/usr/include/libusb-1.0   -c -o tl866a.o tl866a.c
gcc -g -O0 -Wall -DSHARE_INSTDIR="\"/usr/local/share/minipro\"" -I/usr/include/libusb-1.0   -c -o tl866iiplus.o tl866iiplus.c
gcc -g -O0 -Wall -DSHARE_INSTDIR="\"/usr/local/share/minipro\"" -I/usr/include/libusb-1.0   -c -o version.o version.c
gcc -g -O0 -Wall -DSHARE_INSTDIR="\"/usr/local/share/minipro\"" -I/usr/include/libusb-1.0   -c -o usb_nix.o usb_nix.c
gcc -g -O0 -Wall -DSHARE_INSTDIR="\"/usr/local/share/minipro\"" -I/usr/include/libusb-1.0   -c -o main.o main.c
gcc xml.o jedec.o ihex.o srec.o database.o minipro.o tl866a.o tl866iiplus.o version.o usb_nix.o main.o -lusb-1.0  -o minipro

test new version

tingo@kg-bsbox:~/work/minipro/minipro$ ./minipro -V
Supported programmers: TL866A/CS, TL866II+
Found TL866CS 03.2.86 (0x256)
minipro version 0.5     A free and open TL866XX programmer
Commit date:    2021-02-24 20:27:40 +0200
Git commit:    cf6e7c7c9f709ee835a1bc35715cc4e3e0f5c892
Git branch:    master
TL866A/CS:    14330 devices, 8 custom
TL866II+:    16324 devices, 4 custom

more tests

tingo@kg-bsbox:~/work/minipro/minipro$ ./minipro -L AM29F04
Found TL866CS 03.2.86 (0x256)
AM29F040@DIP32
AM29F040@PLCC32
AM29F040@TSOP32
AM29F040B@DIP32
AM29F040B@PLCC32
AM29F040B@TSOP32
AM29F040@DIP32
AM29F040@PLCC32
AM29F040@TSOP32
AM29F040B@DIP2
AM29F040B@PLCC32
AM29F040B@TSOP32

hardware test

tingo@kg-bsbox:~/work/minipro/minipro$ ./minipro -t
Found TL866CS 03.2.86 (0x256)
VPP driver pin 1 is OK
VPP driver pin 2 is OK
VPP driver pin 3 is OK
VPP driver pin 4 is OK
VPP driver pin 9 is OK
VPP driver pin 10 is OK
VPP driver pin 30 is OK
VPP driver pin 31 is OK
VPP driver pin 32 is OK
VPP driver pin 33 is OK
VPP driver pin 34 is OK
VPP driver pin 36 is OK
VPP driver pin 37 is OK
VPP driver pin 38 is OK
VPP driver pin 39 is OK
VPP driver pin 40 is OK

VCC driver pin 1 is OK
VCC driver pin 2 is OK
VCC driver pin 3 is OK
VCC driver pin 4 is OK
VCC driver pin 5 is OK
VCC driver pin 6 is OK
VCC driver pin 7 is OK
VCC driver pin 8 is OK
VCC driver pin 9 is OK
VCC driver pin 10 is OK
VCC driver pin 11 is OK
VCC driver pin 12 is OK
VCC driver pin 13 is OK
VCC driver pin 21 is OK
VCC driver pin 30 is OK
VCC driver pin 32 is OK
VCC driver pin 33 is OK
VCC driver pin 34 is OK
VCC driver pin 35 is OK
VCC driver pin 36 is OK
VCC driver pin 37 is OK
VCC driver pin 38 is OK
VCC driver pin 39 is OK
VCC driver pin 40 is OK

GND driver pin 1 is OK
GND driver pin 2 is OK
GND driver pin 3 is OK
GND driver pin 4 is OK
GND driver pin 5 is OK
GND driver pin 6 is OK
GND driver pin 7 is OK
GND driver pin 8 is OK
GND driver pin 9 is OK
GND driver pin 10 is OK
GND driver pin 11 is OK
GND driver pin 12 is OK
GND driver pin 14 is OK
GND driver pin 16 is OK
GND driver pin 20 is OK
GND driver pin 30 is OK
GND driver pin 31 is OK
GND driver pin 32 is OK
GND driver pin 34 is OK
GND driver pin 35 is OK
GND driver pin 36 is OK
GND driver pin 37 is OK
GND driver pin 38 is OK
GND driver pin 39 is OK
GND driver pin 40 is OK

VPP overcurrent protection is OK.
VCC overcurrent protection is OK.

Hardware test completed successfully!

ok

2021-03-11: bb - update source via 'git pull'.

2019-06-05: c2 - connected the programmer to my FreeBSD workstation, which runs

tingo@kg-core2$ uname -a
FreeBSD kg-core2.kg4.no 11.2-RELEASE-p9 FreeBSD 11.2-RELEASE-p9 #0: Tue Feb  5 15:30:36 UTC 2019
     root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  amd64

from /var/log/messages

Jun  5 17:48:45 kg-core2 kernel: ugen0.3: <www.autoelectric.com MiniPro TL-866 Programmer> at usbus0
Jun  5 17:48:45 kg-core2 root: Unknown USB device: vendor 0x04d8 product 0xe11c bus uhub0

usbconfig says

root@kg-core2# usbconfig -d ugen0.3
ugen0.3: <www.autoelectric.com MiniPro TL-866 Programmer> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)

ok

2019-05-29: bb - lsusb info again

tingo@kg-bsbox:~$ lsusb -d 04d8:e11c
Bus 001 Device 069: ID 04d8:e11c Microchip Technology, Inc. TL866CS EEPROM Programmer [MiniPRO]

topology

tingo@kg-bsbox:~$ lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
    |__ Port 1: Dev 69, If 0, Class=(Defined at Interface level), Driver=, 12M
    |__ Port 2: Dev 2, If 0, Class=Hub, Driver=hub/4p, 12M
        |__ Port 1: Dev 74, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 4: Dev 77, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 4: Dev 77, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 2: Dev 14, If 0, Class=Hub, Driver=hub/4p, 12M
        |__ Port 3: Dev 75, If 0, Class=Hub, Driver=hub/4p, 12M
            |__ Port 2: Dev 76, If 0, Class=Vendor Specific Class, Driver=mos7840, 12M
    |__ Port 3: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 3: Dev 102, If 0, Class=Vendor Specific Class, Driver=ch341, 12M
        |__ Port 4: Dev 6, If 0, Class=Mass Storage, Driver=usb-storage, 480M
        |__ Port 4: Dev 6, If 1, Class=Human Interface Device, Driver=usbhid, 480M
    |__ Port 4: Dev 5, If 1, Class=Wireless, Driver=btusb, 12M
    |__ Port 4: Dev 5, If 0, Class=Wireless, Driver=btusb, 12M

it all looks good.

2019-05-29: bb - dump devices again

tingo@kg-bsbox:~/work/minipro$ minipro -l > minipro-devices_03.2.86.txt

size it up

tingo@kg-bsbox:~/work/minipro$ ll -h *txt
-rw-r--r-- 1 tingo tingo 181K May 29 17:24 minipro-devices_03.2.58.txt
-rw-r--r-- 1 tingo tingo 181K May 29 19:31 minipro-devices_03.2.86.txt

hmm, lines difference?

tingo@kg-bsbox:~/work/minipro$ wc -l minipro-devices_03.2.58.txt
11554 minipro-devices_03.2.58.txt
tingo@kg-bsbox:~/work/minipro$ wc -l minipro-devices_03.2.86.txt
11554 minipro-devices_03.2.86.txt

diff?

tingo@kg-bsbox:~/work/minipro$ diff minipro-devices_03.2.58.txt minipro-devices_03.2.86.txt
1c1
< Found TL866CS 03.2.58 (0x23a)
---
> Found TL866CS 03.2.86 (0x256)

ok

2019-05-29: bb - ok, after messing about with wine and the setupapi.dll in TL866/wine/TL866 the programmer now responds with

tingo@kg-bsbox:~$ minipro -L AM29F04
Found TL866CS 03.2.86 (0x256)
AM29F040 @DIP32
AM29F040 @PLCC32
AM29F040 @TSOP32
AM29F040B @DIP2
AM29F040B @PLCC32
AM29F040B @TSOP32
try a test
tingo@kg-bsbox:~$ minipro -t
Found TL866CS 03.2.86 (0x256)
VPP driver pin 1 is OK
VPP driver pin 2 is OK
VPP driver pin 3 is OK
VPP driver pin 4 is OK
VPP driver pin 9 is OK
VPP driver pin 10 is OK
VPP driver pin 30 is OK
VPP driver pin 31 is OK
VPP driver pin 32 is OK
VPP driver pin 33 is OK
VPP driver pin 34 is OK
VPP driver pin 36 is OK
VPP driver pin 37 is OK
VPP driver pin 38 is OK
VPP driver pin 39 is OK
VPP driver pin 40 is OK

VCC driver pin 1 is OK
VCC driver pin 2 is OK
VCC driver pin 3 is OK
VCC driver pin 4 is OK
VCC driver pin 5 is OK
VCC driver pin 6 is OK
VCC driver pin 7 is OK
VCC driver pin 8 is OK
VCC driver pin 9 is OK
VCC driver pin 10 is OK
VCC driver pin 11 is OK
VCC driver pin 12 is OK
VCC driver pin 13 is OK
VCC driver pin 21 is OK
VCC driver pin 30 is OK
VCC driver pin 32 is OK
VCC driver pin 33 is OK
VCC driver pin 34 is OK
VCC driver pin 35 is OK
VCC driver pin 36 is OK
VCC driver pin 37 is OK
VCC driver pin 38 is OK
VCC driver pin 39 is OK
VCC driver pin 40 is OK

GND driver pin 1 is OK
GND driver pin 2 is OK
GND driver pin 3 is OK
GND driver pin 4 is OK
GND driver pin 5 is OK
GND driver pin 6 is OK
GND driver pin 7 is OK
GND driver pin 8 is OK
GND driver pin 9 is OK
GND driver pin 10 is OK
GND driver pin 11 is OK
GND driver pin 12 is OK
GND driver pin 14 is OK
GND driver pin 16 is OK
GND driver pin 20 is OK
GND driver pin 30 is OK
GND driver pin 31 is OK
GND driver pin 32 is OK
GND driver pin 34 is OK
GND driver pin 35 is OK
GND driver pin 36 is OK
GND driver pin 37 is OK
GND driver pin 38 is OK
GND driver pin 39 is OK

VPP overcurrent protection is OK.
VCC overcurrent protection is OK.

Hardware test completed successfully!

ok

2019-05-29: bb - try to build TL866 updater from TL866: get it

tingo@kg-bsbox:~/work/minipro/radiomanV$ git clone https://github.com/radiomanV/TL866.git
Cloning into 'TL866'...
remote: Enumerating objects: 1166, done.
remote: Total 1166 (delta 0), reused 0 (delta 0), pack-reused 1166
Receiving objects: 100% (1166/1166), 1.70 MiB | 1.18 MiB/s, done.
Resolving deltas: 100% (708/708), done.

build

tingo@kg-bsbox:~/work/minipro/radiomanV/TL866/TL866_Updater/QT$ qmake
Info: creating stash file /zs/tingo/work/minipro/radiomanV/TL866/TL866_Updater/QT/.qmake.stash
tingo@kg-bsbox:~/work/minipro/radiomanV/TL866/TL866_Updater/QT$ make
/usr/lib/x86_64-linux-gnu/qt5/bin/uic mainwindow.ui -o ui_mainwindow.h
/usr/lib/x86_64-linux-gnu/qt5/bin/uic editdialog.ui -o ui_editdialog.h
/usr/lib/x86_64-linux-gnu/qt5/bin/uic advdialog.ui -o ui_advdialog.h
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -o main.o main.cpp
In file included from mainwindow.h:27:0,
                 from main.cpp:23:
notifier_linux.h:4:21: fatal error: libudev.h: No such file or directory
 #include <libudev.h>
                     ^
compilation terminated.
Makefile:404: recipe for target 'main.o' failed
make: *** [main.o] Error 1

ok, so make failed

2019-05-29: bb - try to upgrade the firmware with radioman's minipro

tingo@kg-bsbox:~/work/minipro/radionmanV/minipro$ ./minipro -f ~/doc/TL866/software/Update.dat
/home/tingo/doc/TL866/software/Update.dat contains firmware version x.x.86
Found TL866CS 03.2.58 (0x23a)
Warning: Firmware is out of date.
  Expected  03.2.86 (0x256)
  Found     03.2.58 (0x23a)
Reseting device... OK
Erasing... OK
Reflashing... 100%
Reseting device... Failed
Reflash... Failed

ok, failed?

tingo@kg-bsbox:~/work/minipro/radionmanV/minipro$ ./minipro -t
Error opening device
tingo@kg-bsbox:~/work/minipro/radionmanV/minipro$ minipro -t
Error opening device
tingo@kg-bsbox:~/work/minipro/radionmanV/minipro$ ./minipro -f ~/doc/TL866/software/Update.dat
/home/tingo/doc/TL866/software/Update.dat contains firmware version x.x.86
Error opening device

yes, can't detect device anymore

2019-05-29: bb - test minipro from radioman

tingo@kg-bsbox:~/work/minipro/radionmanV$ git clone https://gitlab.com/radiomanV/minipro.git
Cloning into 'minipro'...
remote: Enumerating objects: 19, done.
remote: Counting objects: 100% (19/19), done.
remote: Compressing objects: 100% (19/19), done.
remote: Total 1067 (delta 7), reused 0 (delta 0)
Receiving objects: 100% (1067/1067), 1.22 MiB | 426.00 KiB/s, done.
Resolving deltas: 100% (661/661), done.

build

tingo@kg-bsbox:~/work/minipro/radionmanV/minipro$ make
Creating version.h
Creating version.c
cc -g -O0 -Wall -I/usr/include/libusb-1.0   -c -o database.o database.c
cc -g -O0 -Wall -I/usr/include/libusb-1.0   -c -o minipro.o minipro.c
cc -g -O0 -Wall -I/usr/include/libusb-1.0   -c -o jedec.o jedec.c
cc -g -O0 -Wall -I/usr/include/libusb-1.0   -c -o version.o version.c
cc -g -O0 -Wall -I/usr/include/libusb-1.0   -c -o main.o main.c
cc database.o minipro.o jedec.o version.o main.o -lusb-1.0  -o minipro

test it

tingo@kg-bsbox:~/work/minipro/radionmanV/minipro$ ./minipro -h
minipro version 0.1     A free and open TL866XX programmer
Usage: minipro [options]
options:
    -l        List all supported devices
    -L <search>    List devices beginning like this
    -d <device>    Show device information
    -D         Just read the chip ID
    -r <filename>    Read memory
    -w <filename>    Write memory
    -e         Do NOT erase device
    -u         Do NOT disable write-protect
    -P         Do NOT enable write-protect
    -v        Do NOT verify after write
    -p <device>    Specify device (use quotes)
    -c <type>    Specify memory type (optional)
            Possible values: code, data, config
    -o <option>    Specify various programming options
            For multiple options use -o for each option
            Programming voltage     <vpp=value>   (10, 12.5, 13.5, 14, 16, 18, 21)
            VDD write voltage       <vdd=value>   (3.3, 4, 4.5, 5, 5.5, 6.25)
            VCC verify voltage      <vcc=value>   (3.3, 4, 4.5, 5, 5.5, 6.25)
            Programming pulse delay <pulse=value> (0-65535 usec)
    -i        Use ICSP
    -I        Use ICSP (without enabling Vcc)
    -s        Do NOT error on file size mismatch (only a warning)
    -S        No warning message for file size mismatch (can't combine with -s)
    -x        Do NOT attempt to read ID (only valid in read mode)
    -y        Do NOT error on ID mismatch
    -V        Show version information
    -t        Start hardware check
    -f <filename>    Update firmware. <filename> should point to the update.dat file
    -h        Show help (this text)

ok. Do a hardware test

tingo@kg-bsbox:~/work/minipro/radionmanV/minipro$ ./minipro -t
Found TL866CS 03.2.58 (0x23a)
Warning: Firmware is out of date.
  Expected  03.2.86 (0x256)
  Found     03.2.58 (0x23a)
VPP driver pin 1 is OK
VPP driver pin 2 is OK
VPP driver pin 3 is OK
VPP driver pin 4 is OK
VPP driver pin 9 is OK
VPP driver pin 10 is OK
VPP driver pin 30 is OK
VPP driver pin 31 is OK
VPP driver pin 32 is OK
VPP driver pin 33 is OK
VPP driver pin 34 is OK
VPP driver pin 36 is OK
VPP driver pin 37 is OK
VPP driver pin 38 is OK
VPP driver pin 39 is OK
VPP driver pin 40 is OK

VCC driver pin 1 is OK
VCC driver pin 2 is OK
VCC driver pin 3 is OK
VCC driver pin 4 is OK
VCC driver pin 5 is OK
VCC driver pin 6 is OK
VCC driver pin 7 is OK
VCC driver pin 8 is OK
VCC driver pin 9 is OK
VCC driver pin 10 is OK
VCC driver pin 11 is OK
VCC driver pin 12 is OK
VCC driver pin 13 is OK
VCC driver pin 21 is OK
VCC driver pin 30 is OK
VCC driver pin 32 is OK
VCC driver pin 33 is OK
VCC driver pin 34 is OK
VCC driver pin 35 is OK
VCC driver pin 36 is OK
VCC driver pin 37 is OK
VCC driver pin 38 is OK
VCC driver pin 39 is OK
VCC driver pin 40 is OK

GND driver pin 1 is OK
GND driver pin 2 is OK
GND driver pin 3 is OK
GND driver pin 4 is OK
GND driver pin 5 is OK
GND driver pin 6 is OK
GND driver pin 7 is OK
GND driver pin 8 is OK
GND driver pin 9 is OK
GND driver pin 10 is OK
GND driver pin 11 is OK
GND driver pin 12 is OK
GND driver pin 14 is OK
GND driver pin 16 is OK
GND driver pin 20 is OK
GND driver pin 30 is OK
GND driver pin 31 is OK
GND driver pin 32 is OK
GND driver pin 34 is OK
GND driver pin 35 is OK
GND driver pin 36 is OK
GND driver pin 37 is OK
GND driver pin 38 is OK
GND driver pin 39 is OK
GND driver pin 40 is OK

VPP overcurrent protection is OK.
VCC overcurrent protection is OK.

Hardware test completed successfully!

ok

2019-05-29: bb - minipro - search for devices

tingo@kg-bsbox:~/work/minipro$ minipro -L AM29F04
Found TL866CS 03.2.58 (0x23a)
Warning: Firmware is out of date.
  Expected  03.2.86 (0x256)
  Found     03.2.58 (0x23a)
AM29F040 @DIP32
AM29F040 @PLCC32
AM29F040 @TSOP32
AM29F040B @DIP2
AM29F040B @PLCC32
AM29F040B @TSOP32

that worked nicely.

2019-05-29: bb - test minipro

tingo@kg-bsbox:~/work/minipro$ minipro -h
minipro version 0.4dev     A free and open TL866XX programmer
Usage: minipro [options]
options:
    -l        List all supported devices
    -L <search>    List devices beginning like this
    -d <device>    Show device information
    -D         Just read the chip ID
    -r <filename>    Read memory
    -w <filename>    Write memory
    -e         Do NOT erase device
    -u         Do NOT disable write-protect
    -P         Do NOT enable write-protect
    -v        Do NOT verify after write
    -p <device>    Specify device (use quotes)
    -c <type>    Specify memory type (optional)
            Possible values: code, data, config
    -i        Use ICSP
    -I        Use ICSP (without enabling Vcc)
    -s        Do NOT error on file size mismatch (only a warning)
    -S        No warning message for file size mismatch (can't combine with -s)
    -x        Do NOT attempt to read ID (only valid in read mode)
    -y        Do NOT error on ID mismatch
    -V        Show version information
    -t        Start hardware check
    -h        Show help (this text)

check hardware

tingo@kg-bsbox:~/work/minipro$ minipro -t
Found TL866CS 03.2.58 (0x23a)
Warning: Firmware is out of date.
  Expected  03.2.86 (0x256)
  Found     03.2.58 (0x23a)
VPP driver pin 1 is OK
VPP driver pin 2 is OK
VPP driver pin 3 is OK
VPP driver pin 4 is OK
VPP driver pin 9 is OK
VPP driver pin 10 is OK
VPP driver pin 30 is OK
VPP driver pin 31 is OK
VPP driver pin 32 is OK
VPP driver pin 33 is OK
VPP driver pin 34 is OK
VPP driver pin 36 is OK
VPP driver pin 37 is OK
VPP driver pin 38 is OK
VPP driver pin 39 is OK
VPP driver pin 40 is OK

VCC driver pin 1 is OK
VCC driver pin 2 is OK
VCC driver pin 3 is OK
VCC driver pin 4 is OK
VCC driver pin 5 is OK
VCC driver pin 6 is OK
VCC driver pin 7 is OK
VCC driver pin 8 is OK
VCC driver pin 9 is OK
VCC driver pin 10 is OK
VCC driver pin 11 is OK
VCC driver pin 12 is OK
VCC driver pin 13 is OK
VCC driver pin 21 is OK
VCC driver pin 30 is OK
VCC driver pin 32 is OK
VCC driver pin 33 is OK
VCC driver pin 34 is OK
VCC driver pin 35 is OK
VCC driver pin 36 is OK
VCC driver pin 37 is OK
VCC driver pin 38 is OK
VCC driver pin 39 is OK
VCC driver pin 40 is OK

GND driver pin 1 is OK
GND driver pin 2 is OK
GND driver pin 3 is OK
GND driver pin 4 is OK
GND driver pin 5 is OK
GND driver pin 6 is OK
GND driver pin 7 is OK
GND driver pin 8 is OK
GND driver pin 9 is OK
GND driver pin 10 is OK
GND driver pin 11 is OK
GND driver pin 12 is OK
GND driver pin 14 is OK
GND driver pin 16 is OK
GND driver pin 20 is OK
GND driver pin 30 is OK
GND driver pin 31 is OK
GND driver pin 32 is OK
GND driver pin 34 is OK
GND driver pin 35 is OK
GND driver pin 36 is OK
GND driver pin 37 is OK
GND driver pin 38 is OK
GND driver pin 39 is OK

VPP overcurrent protection is OK.
VCC overcurrent protection is OK.

Hardware test completed successfully!

dump devices to a list

tingo@kg-bsbox:~/work/minipro$ minipro -l > minipro-devices.txt
Warning: Firmware is out of date.
  Expected  03.2.86 (0x256)
  Found     03.2.58 (0x23a)

did it work?

tingo@kg-bsbox:~/work/minipro$ ll -h *txt
-rw-r--r-- 1 tingo tingo 181K May 29 17:24 minipro-devices_03.2.58.txt

yes.

2019-05-29: bb - check out minipro and build

tingo@kg-bsbox:~/work/minipro$ git clone https://gitlab.com/DavidGriffith/minipro.git
Cloning into 'minipro'...
remote: Enumerating objects: 1084, done.
remote: Counting objects: 100% (1084/1084), done.
remote: Compressing objects: 100% (459/459), done.
remote: Total 1084 (delta 650), reused 1016 (delta 583) KiB/s  
Receiving objects: 100% (1084/1084), 968.73 KiB | 347.00 KiB/s, done.
Resolving deltas: 100% (650/650), done.

build

tingo@kg-bsbox:~/work/minipro$ cd minipro/
tingo@kg-bsbox:~/work/minipro/minipro$ make
Creating version.h
Creating version.c
gcc -g -O0 -Wall -I/usr/include/libusb-1.0   -c -o byte_utils.o byte_utils.c
gcc -g -O0 -Wall -I/usr/include/libusb-1.0   -c -o database.o database.c
gcc -g -O0 -Wall -I/usr/include/libusb-1.0   -c -o minipro.o minipro.c
gcc -g -O0 -Wall -I/usr/include/libusb-1.0   -c -o tl866a.o tl866a.c
gcc -g -O0 -Wall -I/usr/include/libusb-1.0   -c -o tl866iiplus.o tl866iiplus.c
gcc -g -O0 -Wall -I/usr/include/libusb-1.0   -c -o fuses.o fuses.c
gcc -g -O0 -Wall -I/usr/include/libusb-1.0   -c -o easyconfig.o easyconfig.c
gcc -g -O0 -Wall -I/usr/include/libusb-1.0   -c -o version.o version.c
gcc -g -O0 -Wall -I/usr/include/libusb-1.0   -c -o main.o main.c
gcc byte_utils.o database.o minipro.o tl866a.o tl866iiplus.o fuses.o easyconfig.o version.o main.o -lusb-1.0  -o minipro

install

tingo@kg-bsbox:~/work/minipro/minipro$ sudo make install
mkdir -p /usr/local/bin
mkdir -p /usr/local/share/man/man1
cp minipro /usr/local/bin/
cp miniprohex /usr/local/bin/
cp man/minipro.1 /usr/local/share/man/man1/
if [ -n "/lib/udev" ]; then \
    mkdir -p /lib/udev/rules.d; \
    cp udev/rules.d/80-minipro.rules /lib/udev/rules.d/; \
fi
if [ -n "/usr/local/share/bash-completion/completions" ]; then \
    mkdir -p /usr/local/share/bash-completion/completions; \
    cp bash_completion.d/minipro /usr/local/share/bash-completion/completions/; \
fi

and activate the udev rule

tingo@kg-bsbox:~/work/minipro/minipro$ sudo udevadm trigger

ok.

2019-05-29: bb - connecting the TL866CS to my Debian box:

tingo@kg-bsbox:~$ cat /etc/debian_version
9.9
tingo@kg-bsbox:~$ uname -a
Linux kg-bsbox 4.9.0-9-amd64 #1 SMP Debian 4.9.168-1 (2019-04-12) x86_64 GNU/Linux

lsusb says

tingo@kg-bsbox:~$ lsusb -d 04d8:e11c
Bus 001 Device 025: ID 04d8:e11c Microchip Technology, Inc. TL866CS EEPROM Programmer [MiniPRO]

and lsusb -t says

tingo@kg-bsbox:~$ lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
    |__ Port 1: Dev 25, If 0, Class=(Defined at Interface level), Driver=, 12M
    |__ Port 2: Dev 2, If 0, Class=Hub, Driver=hub/4p, 12M
        |__ Port 1: Dev 26, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 4: Dev 29, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 4: Dev 29, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 2: Dev 14, If 0, Class=Hub, Driver=hub/4p, 12M
        |__ Port 3: Dev 27, If 0, Class=Hub, Driver=hub/4p, 12M
            |__ Port 2: Dev 28, If 0, Class=Vendor Specific Class, Driver=mos7840, 12M
    |__ Port 3: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 3: Dev 102, If 0, Class=Vendor Specific Class, Driver=ch341, 12M
        |__ Port 4: Dev 6, If 0, Class=Mass Storage, Driver=usb-storage, 480M
        |__ Port 4: Dev 6, If 1, Class=Human Interface Device, Driver=usbhid, 480M
    |__ Port 4: Dev 5, If 1, Class=Wireless, Driver=btusb, 12M
    |__ Port 4: Dev 5, If 0, Class=Wireless, Driver=btusb, 12M

so bus 1, dev 25 is Full speed (12M).

2019-05-19: I should test the programmer again (under Debian this time) and list out supported chips. And also see if the firmware version can be updated.

2018-08-31: all the software is now GitLab now, see links above.

2017-07-06: try to read a Mostek MK37013P - perhaps this is a PROM version of a 2764?

[tingo@localhost work]$ sudo minipro -p "AM2764A @DIP28" -r tdv22xx_u31_mostek_mk37013p.bin -y
Warning: firmware is too old
Found Minipro TL866CS v03.2.58
WARNING: Chip ID mismatch: expected 0x108, got 0xd2d2
Reading Code... OK

got something

[tingo@localhost work]$ ll *bin
-rw-r--r--. 1 root root 8192 Jul  6 01:16 tdv22xx_u31_mostek_mk37013p.bin
-rw-r--r--. 1 root root 8192 Jul  6 00:54 tdv22xx_u32_am2764-45dc.bin
-rw-r--r--. 1 root root 2048 Jul  6 00:17 tdv22xx_u33_nec_d2716d.bin
-rw-r--r--. 1 root root 2048 Jul  6 00:18 test2.bin

nope, only 0xff's in the file.

2017-07-06: try to read a AM2764-45DC chip

[tingo@localhost work]$ sudo minipro -p "AM2764A @DIP28" -r tdv22xx_u32_am2764-45dc.bin
Warning: firmware is too old
Found Minipro TL866CS v03.2.58
Invalid Chip ID: expected 0x108, got 0xa7c2
(use '-y' to continue anyway at your own risk)

ok, that didn't work. with '-y' then

[tingo@localhost work]$ sudo minipro -p "AM2764A @DIP28" -r tdv22xx_u32_am2764-45dc.bin -y
Warning: firmware is too old
Found Minipro TL866CS v03.2.58
WARNING: Chip ID mismatch: expected 0x108, got 0xa7c2
Reading Code... OK

what did we get?

[tingo@localhost work]$ ll *bin
-rw-r--r--. 1 root root 8192 Jul  6 00:54 tdv22xx_u32_am2764-45dc.bin
-rw-r--r--. 1 root root 2048 Jul  6 00:17 tdv22xx_u33_nec_d2716d.bin
-rw-r--r--. 1 root root 2048 Jul  6 00:18 test2.bin

we got something, and the strings in it is something I recognize.

2017-07-06: try to read a Nec D2716D with the minipro tool:

[tingo@localhost work]$ sudo minipro -p "AM2716B @DIP24" -r test2.bin
Warning: firmware is too old
Found Minipro TL866CS v03.2.58
Reading Code... OK

well, it did read something. But the file is only 2K

[tingo@localhost work]$ ll -h *bin
-rw-r--r--. 1 root root 2.0K Jul  6 00:18 test2.bin
-rw-r--r--. 1 root root 2.0K Jul  6 00:17 test.bin

hmm, ok - it seems the D2716D is a 2K part.

2017-07-06: I plug the programmer into my Toshiba laptop, which runs Fedora 25:

[tingo@localhost ~]$ cat /etc/fedora-release 
Fedora release 25 (Twenty Five)
[tingo@localhost ~]$ uname -a
Linux localhost.localdomain 4.11.6-201.fc25.x86_64 #1 SMP Tue Jun 20 20:21:11 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

the programmer shows up as

[tingo@localhost ~]$ lsusb -d 04d8:e11c
Bus 001 Device 007: ID 04d8:e11c Microchip Technology, Inc. TL866CS EEPROM Programmer [MiniPRO]

nice.

2017-07-04: package contents: 1 x programmer in a small, quite heavy plastic case - gives a solid impression. The case is screwed together with four small philips screws on the bottom. 1 x standard USB-A to USB-B cable, 1 x mini CD-ROM.

2017-07-04: tracking showed that the package had arrived, so I picked it up from PIB Extra Trondheimsveien in the evening.

2017-06-16: I got a "package shipped" message.

2017-06-15: I ordered a MiniPro TL866CS from a seller on eBay. Price including shipping was USD 37.29, which is about NOK 330.- and estimated delivery: Tue. Jun. 27 - Wed. Jul. 19.