Phil: This is Mikes post from a recent discussion in Jeff's thread but I think its worthy of its own topic.
For anyone struggling with usbasps and zadig, this is an easy alternative - a cheap, reliable 'programmer' that you use just like a USBASP to program almost any type of Atmel board such as the DIY-More and variants, Nanos, Pro-minis, RF-Nanos, Tobes PCBs, Mikes PCBs, basically any arduino-like board.
Unlike the USBASP, it doesnt need any additional drivers installing, no Zadig, just plug & go:
Mike: The FTDI chips have been amongst the most "cloned" chips in China, most adapters you buy from eBay or AliExpress have cloned FTDI and their reliability is not good.
I recommend abandoning programming Arduino with a serial adapter via the bootloader and using an ICSP - "in circuit serial programmer", they are often also called ISP (in-circuit being abbreviated to just "I"). I would have recommended a USBasp a few years back, but getting the drivers to work is so hit-and-miss that I wouldn't recommend them anymore. I now exclusively use an icsp made from an Arduino Nano called an "Arduino as ISP". It is so easy to make I'm surprised more don't use them. The details are on the Arduino site:
https://docs.arduino.cc/built-in-exampl ... rduinoISP/
Instead of using a Uno, I've made all of mine using a Nano with the "6-pin lead" made from two servo leads/plugs glued together with Cyano. You need a Nano with the header pins NOT soldered (they often get supplied with the headers already soldered).
I have not soldered the leads into the normal D11, D12, D13, 5V or GND pins, but used the Nano ISP header as it has duplicates of those connections. The only one not connected to the normal pins is the target RESET pin that is connected to D2 pin (the official instructions has it connected to D10, but I altered one line of the code to be D2 as the D2 pin is closer to the other connections I'm using to keep the wiring tidier). You can program the Nano either via its USB connector or if you already have an ICSP programmer, you can program it by temporarily using a 6-pin header in the icsp connections.
Note:
when building the programmer, you use 'Upload' to get the programmer sketch into the Nano.
when using the completed programmer, you use 'Upload Using Programmer' otherwise your new programmer itself will become an encoder!
Wiring (see optional 'colours' comment in following post)
Using one 'Futaba' black/red/white lead and for the other one a 'JR' brown/red/orange helps orient the assembled plug.
When glueing the plugs together you must get them the correct way around!
ie both Futaba blacks at the same end, or Futaba black and JR brown at one end:
Then I heat-shrink the Arduino Nano
Connecting the ISP to an Arduino Uno and Nano is easy via their 6-pin (3x2) ISP header. Unfortunately most Pro Mini don't have an ISP header, so you need to connect directly to D11, D12, D13, 5V, GND and RESET pins on the Pro Mini. If you are making your own ISP you can make one with custom leads, D11, D12 and D13 are next to each other so a servo plug will directly fit to them and Vcc, RESET and GND are together, so another servo plug can directly connect to them, just ensure you get the servo plug the correct way around as it is easy to reverse the plug and reverse the polarity on a Pro Mini (don't ask how I know). The two servo plugs for the Pro Mini obviously are not glued together, but mark them carefully so you know which way around to connect them.
Simple, reliable alternative to USBASP programmer - Arduino as ISP
- Mike_K
- Posts: 763
- Joined: 16 Feb 2018, 06:35
- Location: Hertfordshire
- Phil_G
- Posts: 783
- Joined: 15 Feb 2018, 23:32
- Contact:
Re: Simple USBASP alternative - Arduino as ISP
I've been meaning to try an "Arduino as ISP" programmer but its never been a priority as my usbasps are no trouble, so having decided not to go sloping today, I wired one up and of course it works fine. As I was doing 'plug 2' (pos, mosi, gnd) I thought I'd swap the red & white in the servo plug and on the Nano connections, to make it more logical - so red & black were pos & neg on the ICSP header and white was mosi. Then I noticed that I think Mike did the same!
This is only about colours, electrically the connections are exactly the same either way.
Another potential 'gotcha' is correctly selecting the programmer as "Arduino as ISP" and not "Arduino ISP"
As with a usbasp, use "Upload Using Programmer" not "Upload". Otherwise "Upload" will program the programmer itself with your sketch!
If anyone is struggling with usbasps and Zadig, this is a perfect alternative, thanks Mike
.
This is only about colours, electrically the connections are exactly the same either way.
Another potential 'gotcha' is correctly selecting the programmer as "Arduino as ISP" and not "Arduino ISP"

As with a usbasp, use "Upload Using Programmer" not "Upload". Otherwise "Upload" will program the programmer itself with your sketch!
If anyone is struggling with usbasps and Zadig, this is a perfect alternative, thanks Mike
.
- Mike_K
- Posts: 763
- Joined: 16 Feb 2018, 06:35
- Location: Hertfordshire
Re: Simple USBASP alternative - Arduino as ISP
Yes Phil, I do swap the servo wires so red is +5V and the white is MOSI, but explaining that in my instructions was too difficult, so I didn't. Trust you to have noticed!
By default, it only runs at 19200 baud which has the advantage that it will talk to a "fresh" chip from the factory (running at 1MHz), but you can uncomment out faster speeds if you are programming ones where the fuses have already been set for 16MHz. And it works for ATtiny85 just as well as 328P.
- Phil_G
- Posts: 783
- Joined: 15 Feb 2018, 23:32
- Contact:
Re: Simple USBASP alternative - Arduino as ISP
I noticed uploading was slower than a usbasp. Not that thats a problem 
I've not looked at the sketch but I thought it read the targets fuses and set its speed accordingly?
Anywho, for anyone struggling with Zadig, this works a treat, in fact I think it would be worthwhile if you split it from this thread and posted it as a separate project Mike? [Done!]
Additional useful programming widgets:
Promini adapter: viewtopic.php?p=5124#p5124
DigiSpark adapter: viewtopic.php?f=41&t=60
Nano adapter: viewtopic.php?p=5124#p5124
(you may ask why would a Nano need an ICSP adapter when it has the ICSP header? well some dont - RF Nanos dont for example
)
Nanos are still available reasonably cheaply, eg from UK seller, cheaper if you buy 4: https://www.ebay.co.uk/itm/386364750366
.

I've not looked at the sketch but I thought it read the targets fuses and set its speed accordingly?
Anywho, for anyone struggling with Zadig, this works a treat, in fact I think it would be worthwhile if you split it from this thread and posted it as a separate project Mike? [Done!]
Additional useful programming widgets:
Promini adapter: viewtopic.php?p=5124#p5124
DigiSpark adapter: viewtopic.php?f=41&t=60
Nano adapter: viewtopic.php?p=5124#p5124
(you may ask why would a Nano need an ICSP adapter when it has the ICSP header? well some dont - RF Nanos dont for example

Nanos are still available reasonably cheaply, eg from UK seller, cheaper if you buy 4: https://www.ebay.co.uk/itm/386364750366
.
- Phil_G
- Posts: 783
- Joined: 15 Feb 2018, 23:32
- Contact:
Re: Simple USBASP alternative - Arduino as ISP
Some more pictures. You'll see that on Plug2 we swapped the pos & mosi colours at the plug end and also at the Nano end.
Electrically, provided you swap both ends, it makes no difference, its just colours.
Because I still prefer usbasps, this programmer is on its way to Paul J
Electrically, provided you swap both ends, it makes no difference, its just colours.
Because I still prefer usbasps, this programmer is on its way to Paul J

-
- Posts: 10
- Joined: 23 Apr 2021, 00:55
- Location: HALIFAX, NS, CANADA
Re: Simple, reliable alternative to USBASP programmer - Arduino as ISP
I have fried several boards trying to use a USBASP programmer that it says uses 3.3 volt I/O lines but doesn't.
Sparkfun appears to no longer list a USBASP programmer.
Does this board solution support 3.3 and 5 volt boards? Or does it provide 5 volts and depends on the device to use an onboard 3.3 volt regulator?
Thanks
Sparkfun appears to no longer list a USBASP programmer.
Does this board solution support 3.3 and 5 volt boards? Or does it provide 5 volts and depends on the device to use an onboard 3.3 volt regulator?
Thanks
Nothing like the smell of Nitro in the morning.
- Flynn
- Posts: 92
- Joined: 17 Feb 2018, 14:48
Re: Simple, reliable alternative to USBASP programmer - Arduino as ISP
AS the target board that board supports 5v on the ICSP port as denoted on the silk screen on the board. If you are intending on using this board as the ICSP programmer then it will output 5v because the uP is a 5v version and there is no 3v3 regulator on the board. You would need a bi-directional 3v3 to 5v level changer to drop the 5v signal to 3v3......or you could use a 3v3 Arduino micro...but then you will need a USBASP to program it 
https://www.aliexpress.com/item/1005006132672008.html

https://www.aliexpress.com/item/1005006132672008.html
You only ever need two tools....WD40 and duct tape.
If it doesn't move when it should use the WD40 and if it moves and it shouldn't use the tape.
If it doesn't move when it should use the WD40 and if it moves and it shouldn't use the tape.