This shows you the differences between two versions of the page.
Both sides previous revision Previous revision 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:52] Ilias Iliopoulos [Step 2. Prepare your programmer] |
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?400 | 10-pin header connector }} | {{ :arduino:usb-isp-connector.jpg?400 | 10-pin header connector }} | ||
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~~ |