User Tools

Site Tools


arduino:how-to-fix-a-usb-isp-programmer-and-make-it-work-with-arduino-ide-on-linux

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
arduino:how-to-fix-a-usb-isp-programmer-and-make-it-work-with-arduino-ide-on-linux [2020/02/09 16:05]
Ilias Iliopoulos created
arduino:how-to-fix-a-usb-isp-programmer-and-make-it-work-with-arduino-ide-on-linux [2024/02/02 21:48] (current)
Ilias Iliopoulos
Line 1: Line 1:
-====== How to fix a USB-ISP programmer and make it work with Arduino IDE on Linux ======+====== How to fix a USB-ISP programmer and make it work as USBasp ​with Arduino IDE on Linux ======
  
 ===== Introduction ===== ===== Introduction =====
  
-I was tired of having bare PCB boards ​and wires all over the place, ​so I decided to order a USB programmer in a brightly colored metal case. The device I ordered was described as **"​Aluminum shell USB ISP USBISP USBASP ASP Programmer for 51 ATMEL AVR WIN7 64 (Random color)"​** shown below. ​+Although I do not usually program chips, because I prefer to use complete modules, mainly for utilizing their USB port as a user interface, I happened to work on a few projects with a bare ATtiny85, which requires a programmer. I managed with a custom programmer, built on an Arduino Nano loaded with ''​the ArduinoISP''​ sketch. But as you all know, you never program once. Actually, I estimate that for program beutifications,​ minor adjustments etc. I program at least 5 times, and this, after the program is fully debugged!!! That is a lot of work, even for a single project. 
 + 
 +So, I was tired of having bare PCBs and wires all over the place, ​therefore ​I decided to order a USB programmer in a brightly colored metal case. The device I ordered was described as **"​Aluminum shell USB ISP USBISP USBASP ASP Programmer for 51 ATMEL AVR WIN7 64 (Random color)"​** shown below. ​
  
 {{ :​arduino:​usb-isp.jpg?​200 | USB-ISP}} {{ :​arduino:​usb-isp.jpg?​200 | USB-ISP}}
Line 21: Line 23:
 </​code>​ </​code>​
  
-Googling the name of the manufacturer **"​zhifengsoft"​** as well as **"​usb-isp"​**,​ a ton of information came through, regarding the case. It seems that the device is working along with the Windows program [[https://​www.electrodragon.com/​w/​8051 | ProgISP]] and is not recognized by ''​avrdude'',​ the program which uploads code to Arduino and other Atmel micro-controllers.+Googling the name of the manufacturer **"​zhifengsoft"​** as well as **"​usb-isp"​**,​ a ton of information came through. It seems that the device is working along with the Windows program [[https://​www.electrodragon.com/​w/​8051 | ProgISP]] and is not recognized by ''​avrdude'',​ the program which uploads code to Arduino and other Atmel micro-controllers.
  
 Luckily, I did not have to re-invent the wheel because there has been a lot of excellent work. I decided to publish this article because: Luckily, I did not have to re-invent the wheel because there has been a lot of excellent work. I decided to publish this article because:
Line 58: Line 60:
 ===== Prerequisites:​ ===== ===== Prerequisites:​ =====
  
-The controller inside my USB-ISP is an ATmega88. As found online, other models have an ATmega8. Just remember it when you construct the parameters at the commands below. ​+The controller inside my USB-ISP is an **ATmega88**. As found online, other models have an **ATmega8**. Just remember it when you construct the parameters at the commands below. ​
  
 You will need: You will need:
Line 126: Line 128:
 </​code>​ </​code>​
  
-Be extra cautious about the numbering of the connector pins. Usually, there will be an arrow imprinted on the connector that will mark pin number 1. This photo will help:+Be extra cautious about the numbering of the connector pins. Usually, there will be an arrow or a triangle marker ​imprinted on the connector that will mark pin number 1. This photo will help:
  
-{{ :​arduino:​usb-isp-connector.jpg?​200 | 10-pin header connector }}+{{ :​arduino:​usb-isp-connector.jpg?​400 | 10-pin header connector }}
  
 Note the location of pin 1 in respect to the notch. Note the location of pin 1 in respect to the notch.
Line 136: Line 138:
 ===== Step 3. Prepare the USB-ISP ===== ===== Step 3. Prepare the USB-ISP =====
  
-Push the USB connector and the PCB will come out from the box header side. After taking it out, I noticed that It has an ATMega88 and the PCB states that it is **MX-U2BLSP-V5.00**,​ probably mimicking MX-USBISP-V5.00 of another manufacturer.+Push the USB connector and the PCB will come out from the box header side. 
  
-{{ :​arduino:​usb-isp-extract.jpg?​200 | Extract the PCB from the metal case }}+ 
 +{{ :​arduino:​usb-isp-extract.jpg?​400 | Extract the PCB from the metal case }} 
 + 
 +After taking it out, I noticed that it contains an ATMega88 running at a 12 MHz crystal and the PCB states that it is **MX-U2BLSP-V5.00**,​ probably mimicking MX-USBISP-V5.00 of another manufacturer. Notice also a 0 Ohm resistor, which is one of the source of our troubles, according to [[http://​irq5.io/​2017/​07/​25/​making-usbasp-chinese-clones-usable/​ |  Making USBasp Chinese Clones Usable by Darell Tan]]. 
 + 
 +{{ :​arduino:​usb-isp-pcb-top.jpg?​400 | PCB top side }}
  
 Using a very thin wire, solder the two pins on the USB-ISP PCB that are marked as "-> UP <​-" ​ Using a very thin wire, solder the two pins on the USB-ISP PCB that are marked as "-> UP <​-" ​
  
-{{ :​arduino:​usb-isp-wire-bridge.jpg?​200 | Wire bridge }} +{{ :​arduino:​usb-isp-wire-bridge.jpg?​400 | Wire bridge }} 
  
 Do not connect any cable yet and leave the USB connector unconnected. Do not connect any cable yet and leave the USB connector unconnected.
Line 575: Line 582:
 The original purpose was to purchase a cheap programmer to avoid the clutter of having an Arduino Nano and a bunch of cables, and to avoid wiring manually every time I wished to program an MCU. The result was that I really needed the Nano in order to re-flash the firmware of the USB-ISP and additionally,​ I have spent a couple of days figuring out how to deal with the situation. ​ The original purpose was to purchase a cheap programmer to avoid the clutter of having an Arduino Nano and a bunch of cables, and to avoid wiring manually every time I wished to program an MCU. The result was that I really needed the Nano in order to re-flash the firmware of the USB-ISP and additionally,​ I have spent a couple of days figuring out how to deal with the situation. ​
  
-In spite of the fact that now I am the proud owner of a USBasp programmer, which along with a ZIF socket will allow me to make easier ​my programming process, I have decided to keep my bare-bones Nano programmer with its bunch of wires in a drawer, just in case.    ​+In spite of the fact that now I am the //proud// owner of a USBasp programmer, which along with a ZIF socket will allow me to make my programming process ​easier (alas only in particular cases because it is not a professional programmer), I have decided to keep my bare-bones Nano programmer with its bunch of wires in a drawer, just in case. As I said at the beginning of  this article, this is just for hobbyist fun. Did not expect anything more at a price of less than two euros.    ​
  
 Have fun... Have fun...
 +
 +~~DISQUS~~
arduino/how-to-fix-a-usb-isp-programmer-and-make-it-work-with-arduino-ide-on-linux.1581257125.txt.gz · Last modified: 2020/02/09 16:05 by Ilias Iliopoulos