Review: XG autoelectric TL866CS MiniPro Universal USB Programmer

In terms of tools, I’ve always wanted to have something to work with various ROM and Flash chips within computers and peripherals as this can often come in handy for recovering from a bad flash, updating an old ROM chip in a device to gain new abilities, or for backing up the contents of ROM chips for safe-keeping and analysis.


In the past, out of desperation, I resorted to inelegant hacks like the above. It’s fine if you only have a one-off curiosity you need satisfied immediately, but once you get into the realm of having several different chips and potentially a desire to reprogram them, the complexity shoots up and the time investment just isn’t worth it anymore.

As a result, I went searching for a programmer which would fit my needs. I settled on the XG autoelectric TL866CS MiniPro universal USB programmer. There are cheaper programmers out there, but none of them were able to meet the wide range of supported chips (over 14,000) that the MiniPro had, and many of them were not as well-finished and instead looked like a development board. The TL866-series programmers were also attractive because they were completely USB bus powered and could develop the high Vpp programming voltages directly from the bus. I managed to grab one for just under AU$55, which is a pretty reasonable price. A slightly more expensive TL866A is slightly more capable with ICSP for microcontrollers as well, which the CS version lacks, but if you’re not interested in that, you can save a little money.


2016040420432953 2016040420432954 2016040420432955

The unit arrived in a colour print, matte finish cardboard box, with almost all Chinese writing. It claims support for up to Windows 8 on the box, which is a good sign. The same packaging is used for both TL866CS and TL866A variants.


A barcode and contact details are provided on the rear.


A label is affixed to the inside lid which is sort of a quick-start guide. Ultimately, you don’t need this, as it’s basically a case of downloading the latest software, installing it and following instructions. The website itself is very slow to respond, probably due to underprovisioning and sitting behind the “great firewall”, but you can complete the download if patient enough. It also tells you the inclusions – the ICSP feature only for the TL866A.


The programmer is protected inside a thin plastic bag, with its nice 3M 40-pin ZIF socket showing at the top.


Aside from that, you get a warranty card, a USB 2.0 cable with ferrite bead and a driver CD which you probably shouldn’t use if you wish to get the most from the product.


The programmer has a very nice moulded case with logos and markings on the faces, and slotted vents for ventilation.

2016040420482962 2016040420542968

The only input is USB, a type B female connector for power and data. As this is the CS version, the ICSP port is blanked off.


The underside claims to have a serial number, but it doesn’t – instead that’s just the barcode. There are four “feet” however, without any form of rubber on them. The plastic unit has quite a bit of weight to it, and feels very solid.


Taking the unit apart, at least, superficially is simple. Put the ZIF lever arm in the vertical position, undo the four screws on the underside and the casing comes apart. The board inside can be extracted out of the casing.


The internal design is a sandwich of two PCBs interconnected together with grounding pins soldered between the two boards and LEDs passed through slots making complete disassembly an utter pain (so I won’t do it). On the top side, we can see quality components already – 6 NXP 74HC373D octal D-type transparent latches. Near the top, it seems there is some power switching going on with SMD germanium diodes and transistors.


The weight of the unit becomes apparent when the centre section is examined – there are five fairly hefty inductors used for the boost/buck functions to derive the programming and data voltages. Some older chips needed close to 24V programming voltage, whereas some of the newer ones require 3.3V, which requires fairly flexible circuitry. I’m not sure, but I suspect this unit does not natively support 1.8V parts using its internal supply.


Peering in from the other side, we can see a crystal oscillator, and mostly empty space, with a row of pins (J1) that is probably used for initial programming.


The underside of the unit houses more fun, including a massive array of SMD resistors and Zener diodes which are likely to allow the inputs/outputs to handle overvoltage from shorts (e.g. Vpp to a data pin due to a faulty chip), or to allow for the data voltages to “adapt” to the provided Vcc by “crowbar-ing” the output. It might also serve to limit any fault currents from shorted pins with a logic level conflict. Two more octal D-latches can be seen underneath, along with a linear 3.3V regulator for the programming IC. Other components include a 74HC164D serial-to-parallel 8-bit shift register, two MC34063 switching regulators and a bunch of transistors, diodes and capacitors. The main IC is unknown, having its markings ground off during manufacture as a protection measure.

From a look inside, it seems that the unit has been designed with much thought to real-life “realities” and are built relatively well with quality components.

Setting Up and Using

Downloading the software from the site is an exercise in frustration, as the speed is as slow as dial-up (4kB/s), but at least it will complete after several attempts. Installation is straightforward, and will involve installing a special driver for this unit. Whether the software is completely free of vulnerabilities/nasties is not known, but I haven’t observed any strange behaviour myself.

The first thing it will do is prompt you to upgrade the firmware on the device, as it was shipped with a different firmware for an older version of the software. This is fast and relatively painless.

minipro-reflash fwrefl

The about dialog shows that I’m using Version 6.50 of the software. The serial number of the programmer is actually displayed in the dialog box.


The software’s interface is fairly well thought out, although a little bit cramped. All of the features can be accessed through the menus, and most of the important ones can be accessed using the toolbar buttons – e.g. read chip ID, check the chip is blank, identify 25-type chips, compare, fill area, read, program, erase, CMOS logic chip test and multi-program.


The main part of the window shows the memory contents of the buffer, with certain programming options below in case certain variants of the chips have any particular special needs. The area above allows you to select the chip to be programmed.


As promised, the chip library is very extensive, and also features other less-expected types including some CMOS logic ICs for testing their functionality. That being said, the early pre-standard EPROMs from the late 70’s and early 80’s may not be supported – I found an Intel part in my collection which wasn’t in the database, and none of the other options with the same footprint had the same pinout.

The software supports loading Intel .HEX and standard .BIN files, which is a little bit lacking as sometimes other formats can be encountered. It also supports its own type of “project” file as well. Once all the requisite set-up is done, it’s a fairly simple job to program the chip, with automatic verify a standard feature.


Reading chips is also very quick due to the fast strategy and USB 2.0 interface.


For EPROM erasure, there is also a blank-check function to verify the chip is blank prior to programming.


Should you ever doubt the programmer, it also has an inbuilt self-check to test for internal shorts.


If you have a need to program multiple chips, serial numbering is also provided, as is a multi-programmer feature for up to four programmers to be driven by the one instance.


Of course, the chips you are interested in may not be of the DIP type, so adapters and tools are necessary, and can be purchased separately. For example, I desired to work with PLCC32 chips commonly used for BIOSes, so I got an adapter for a few dollars.

2016040421203012 2016040421203011

Of course, chip extraction is a bugger, so I also decided to spend a few dollars on an extraction tool. The packaging on this one could have done way better on the English.

2016042212334038 2016042212334039 2016042212344041

Unfortunately, this one has relatively thick legs which doesn’t get into the SMD sockets quite so well. Pulling chips out is like pulling teeth – only with great care can you ensure that the pins aren’t damaged. Anyway, it’s as simple as popping the chip into the adapter, and the adapter into the ZIF socket.


If you don’t like to wait, it can be quite useful to have some of these adapters in stock or to buy them as a set, however, some types can be quite costly and rarely used, so I prefer to buy them individually from whoever has it selling for the least and only when I actually have a need for them.

2016042212354042 2016042212354043

I decided to pick up a PLCC44 adapter as well, since I probably have a candidate chip to read out in the near future.


The XG autoelectric TL866CS programmer is very much a well built, well designed “Swiss army knife” programmer which is likely to support many of the chips you might encounter. I was able to effortlessly dump and reprogram some of the spare chips I had lying around without much thought or time investment due to the large database of supported chips and straightforward operation. For the price, I think it’s both economical and very much ahead of similar offerings at the same price. If you just want to dump ROMs, it could be a worthwhile investment. If it helps you unbrick a single device, it definitely would have earned its keep.

About lui_gough

I'm a bit of a nut for electronics, computing, photography, radio, satellite and other technical hobbies. Click for more about me!
This entry was posted in Computing, Electronics and tagged , , , , . Bookmark the permalink.

9 Responses to Review: XG autoelectric TL866CS MiniPro Universal USB Programmer

  1. Harney says:

    yet again Lui a great review was after a simple prog for some of my musical keyboards to update the revs.. and you have made my mind up thx

    • lui_gough says:

      Thanks for the comment. I forgot to mention in the review that you can download the software from their website and install it without a programmer attached and use it to check whether it supports the chips you want to program before you purchase it. That can save you some money if you realize the chips you want to program are too old and have a different pin-out, for example.

      The other thing is that certain chips might be from now-defunct manufacturers but have similar specs to the other chips, so even if you don’t find it in the database (e.g. my Signetics 27C256 in this post, you may be able to use another strategy for a similar device as long as it has the same pin-out and similar programming characteristics (so I used the AMD AM27C256 setting instead). Some of the more “standardized” chips are essentially identical in the way they are handled, just that they have a different chip ID, so the programmer will complain that you’re not using the right setting. This can easily be overcome by unticking the Chip ID tickbox underneath so the programmer will program without checking the chip ID matches.

      – Gough

  2. rasz_pl says:

    main controller is a PIC
    there is hacked firmware (radioman) available upgrading CS to A (enables ISP header)

    • lui_gough says:

      Thanks for the info – helpful as always. I probably wouldn’t bother myself as I’m mostly focused on *ROM/Flash, but it’s good to know. It would seem that users will need to solder their own header pins to the board to make use of it – given the differential is about AU$20, I suspect those interested in ICSP might just opt to buy the A variant instead.

      – Gough

  3. sparcie says:

    What a coincidence! I happen to have bought exactly the same model very recently. For similar reason I suspect as well, I want to dump and check many of the ROMs on the various bits of old hardware I have. I checked out other programmers and watched EEVBlogs hardware review before selecting it.

    I also noted that apart from the EEPROMs, flash, and logic chip testing it also will program many micro controllers such at those from Microchip and Atmel. I’ll probably find the feature to test SRAM chips handy as well.

    But like you said it does have issues like lack of support for some old chips. Something I tried was dumping, erasing and programming a chip salvaged from an old main board. Dumping worked great but it wouldn’t erase or program. It turns out the chip I had (a winbond flash chip) has a protection feature that requires specific data input to allow programming again. It’s possible to unlock it, but this programmer can’t do it.

    still I’m happy with the purchase as it seems it will be a very handy tool indeed. I just hope I don’t run into an old chip that it doesn’t support.


    • lui_gough says:

      Very handy tool! I’m quite pleased, as I’ve checked the support lists of some of the other programmers and many don’t have support for even common chips used in modems, some PCI cards etc (e.g. ATMEL 49C series). With the chips that have code protection (especially microcontrollers), it’s often a pain to work it out and sometimes is an irreversible action as well without some very specific timed power glitches or other out-of-band attacks as part of code protection. Then there are the EPROMs which have no window – i.e. OTP type which could have been UV-erasable if they had used a cerdip package but didn’t bother to save costs and ensure reliability.

      I’m quite happy if it even just dumps only – having a backup of some chips can be a lifesaver if they electrically fail later on down the track. Sourcing replacements will get a little more difficult, but at least with the eraseable sort, you can erase a pulled chip from another device and substitute, with the later chips sharing common power/address/data pin assignments that make cross-brand substitutions a possibility as long as you meet the timing specs.

      I have dumped an ATMega328P from an Arduino out of curiosity and managed to find old code remnants from previous sketches (as code area is not cleared between loading) which was interesting but I’m still too afraid to program it using the MiniPro unless I learn up on the fusing parameters of the chip as the configuration changes made to some areas are sometimes irreversible.

      – Gough

  4. Mark says:

    I use Data I/O Unisite and 3980 programmers. Old design, uses Motorola 68000 CPU, weighs a kiloton. Unisite uses 720 kB floppies (but I have the 80 MB Mass Storage Module). These machines are probably the most reliable programmers out there… and you don’t want to know they originally cost. A fully configured Unisite might have set you back $100,000 dollars! I think Data I/O still sells these beasties. I got mine off of Ebay. Probably bought a dozen of them (never paid more than $50)… most just to get a particular programming adapter.

    The 3980 is a newer, smaller design (1.4MB floppy / 80 MB hard drive). But it does not have quite the device support. About the only device I can’t program is Intel 1702A’s. Oh, and SDA2006 and MCM28xx serial EEPROMs (first gen EEPROMs). I had to build my own programmer for those.

    • lui_gough says:

      Wow, indeed quite some heavy duty industrial strength stuff. Indeed, it too seems like a more universal, albeit less easy to use device, which they still do sell in some form. I doubt I’d ever have the room or money for one of those behemoths, but good to see they’re not entirely unloved :). Funny how you mentioned the 1702A’s – that is exactly the chip I managed to dig up in my collection that made me realize “gee, the pinouts for this don’t match anything the MiniPro can handle”. *chuckle*

      – Gough

  5. Lister Llanes says:

    Great review!
    Do you know if I can use this device to do in-system (in-circuit) programming using a SOIC8 Clip adapter?

    Best regards!

Error: Comment is Missing!