USBasp vs USBtinyIsp

It seems that both are a variant of the VUSB implementation.

While searching the web for both, USBasp is considered the "de facto" programmer, while the tiny version seems plagued by issues, to which I can attest.

I built the latter based on a tiny85 and it is indeed hit or miss when it comes to reliability and I never used an USBasp programmer to be able to compare.

Are they really that different? Is USBasp reliable (worth investing in)?

Thank you.


Thanks for replying, but that’s not quite what I was hoping for.
I will build one and not buy it, so price is not my concern.
For three fifty it’s probably one of those little Chinese ones from eBay.

Is USBasp reliable, then? I am looking for something solid that doesn’t require two or three tries.
To be clear, I am limiting the comparison to these two, even though I am fully aware that there are many others available.

My curiosity lies with these two because of VUSB and no other reason.

You get what you pay for I guess. Or you pay for what you get (in money + trouble). Using another Arduino as an ISP programmer gives you: 1. a real USB interface 2. flexibility of editing the programmer code as a sketch 3. ability to program larger chips such as ATmega2560

Plus you end up with similar form factor and price, if you use something like a Nano, Pro Micro, or Beetle. If you look at the schematic (if you can find a schematic), you'll notice all ISP programmers are Arduinos of some sort, with some software loaded on them. You can buy a "dedicated" one, or dedicate one of your existing Arduinos, or buy an Arduino for the purpose of dedicating it. What is more supported and more supportable, an ATmega32U4- or ATmega328P-based modern Arduino, or something cobbled together with VUSB for the sake of saving a few cents? (The few saved cents are for the seller, not you)

somedude: I will build one and not buy it, so price is not my concern.

My previous post I am just pointing out the reason the dedicated programmers use VUSB is to save the cost of real USB which often is a separate chip. If you are not terribly concerned about going the cheapest route, build a full-blown Arduino based on the Nano or Pro Mini, or Pro Micro, and you will have a more solid solution. You can leave out the onboard power regulation and just use USB power. If you base your solution on the Beetle, you need a very small number of components (ATmega32U4, a couple of resistors and capacitors, and optional ESD suppressors for the USB line. You will most likely end up spending more building a Beetle than buying one ready-made, but it will be fun.

Thank you very much.

Makes perfect sense. I did actually dedicate a Nano to be my daily programmer and for uploading sketches, I use an Arduino made USB2SERIAL adapter, which is the USB side of an Uno, based on the 16U2.

The reason for my post was to understand why people say USBasp is the "standard", when the other VUSB solution is not that solid. I guess I will try to build one and compare with my old USBtinyasp.

Thanks again.

I don't think USBasp is the standard, it is just a cheap programmer that is compatible with some target processors such as the ATmega328P. Unless you have some established relationship with a Chinese vendor that puts some special firmware on it for you and you upgrade your avrdude to a version that is not packaged with the IDE, you can't use it to program an ATmega2560. So the USBasp is of limited usefulness.

somedude: The reason for my post was to understand why people say USBasp is the "standard", when the other VUSB solution is not that solid.

if by standard you mean 99% of hobbyists use usbasp than you are correct. even among arduino users alone usbasp dominates these days. considering other hobbies like rc etc alternatives like ardunio-as-isp, usbtiny, and older hardware are virtually unknown. just like with other methods there are drawbacks:

biggest problem with stock firmware is some older versions generate a warning to upgrade which is incorrectly interpreted as an error by noobs. this often leads to more trouble than it solves. for m2560 it works fine unless your program is bigger than 128kbytes which is unlikely. it does program raw chips ok though.

the o'fischl version requires use of avrdude -B option to program raw chips. usbasp-v1.5.hex" is a version modified from fischl 1.4 by petervh to fix the mega2560 bug. more info here:

bottom line is usbasp works fine for most arduino setups and only less common applications need care. for those odd situations firmware upgrades are available to solve all the problems mentioned.

if i come off as a fanboy its because i am. hard to beat for a dollar and change free shipping. i do recall as recently as couple years ago just mentioning usbasp would bring on tirades about cheap chinese junk from mkII or dragon fans. maybe understandable that someone who spent 10x more might feel need to defend their investment even if drawbacks were obvious. however hard to understand that attitude these days when advantages of the cheapo dongle are well known.

that said if i were going to build from scratch it would be arduino-as-isp. the sketch is quite polished and a lot easier to flash a uno than building usbasp with oddball crystal and wiring. total cost only a few bucks more than usbasp and no wait from china. imo arduino-as-isp is a great fallback if no usbasp available.

ps. recent experience leads me to believe vusb concerns are largely unjustified. if you use a crystal instead of rc and proper software it is trouble free with virtually all pc systems even latest os. i certainly dont encounter compatibility problems with usbasp.

Thank you very much, John.

I started looking into USBasp because of the relatively poor performance of my DIY USBtinyasp based on tiny 85. By the looks of it, if I were to build one, I would have to avoid the tiny version, which was my initial intent, because of the lack of crystal, as you stated at the bottom of your post. There seems to be a firmware for tiny and it's not usbtinyasp, it's usbasp.

So I will stick to burning bootloaders with the Nano and uploading via USB.

On second thought, why not try building one... Just to compare. Building an Uno clone to be used as an Arduino-as-ISP defeats my purpose of keeping it simple (without the 16U2).

Thanks again.

personally im the kinda guy who wants to build just about every little gadget that comes along. in fact usually two in case i goof up wiring on one. even if not that useful almost always learn something new in the process. so i say go for it.

btw maybe you are referring to usbtinyisp which is more popular usage instead of usbtinyasp?

theres lots of confusion on chinese sites like ebay where they try to throw in as many terms as possible to get hits. they often call the same thing usbasp and usbtinyisp. you must recognize the photo to see whats really being sold.

i specially laughed at "arduino childrens tuxedo" and "arduino vegetable slicer". needless to say there was nothing arduino about them. does make searching difficult sometimes.

I haven't really heard of USBtinyASP. There is USBTINYISP which is usually based on an ATtiny2313. I think USBASP is immensely popular because ATmega8 is one of those processors that appeared in Asian markets at very low prices (cheaper than tiny85), and was used in the original VUSB design. Did you "tune" the clock of your tiny85? I would think that trying to do VUSB without a crystal would be risky. Are you basing your expectation that it should work on an existing publication? (I guess that there are all those ATtiny85 boards like Gemma and digispark that seem to work OK with VUSB...)

Of course it's ISP and not ASP... D'oh!

Mine is essentially a digispark clone with the t85 and the crystal pins are used by USB as this is a DIP8. I did not tune it, since it worked, I figured it's OK. But it sure sounds like I need to so I will look into it. Thank you, Bill.

Oh, yes, to be honest, I expected it to work. Hardware side can't be simpler and the firmware was provided by the creator of Littlewire. I didn't go with micronucleus because I dedicated it to be an USBtinyISP and I didn't need to upload anything to it.

from what ive recently learned there is no user "tuning" of usbtinyisp or digispark. this is done by software pll in the usb routines. thats one reason the boot code is a lot bigger than ones with 12mhz xtl.

what i am curious about is why 16.5mhz is required for "digispark mode" programming in arduino ide. if "usbtinyisp mode" is chosen as programmer then 16.0mhz, 8mhz, and 1mhz all work but in "digispark mode" must be 16.5mhz, a very odd number.

i also found the requirement to unplug an plug every time you upload very annoying. my first remedy was a reset button on p5 but that got old too due to tricky timing. then my button moved to power pin so p5 could be used as io. finally had to resort to some rather extreme measures to implement auto-reset via ide. like with that maple fiasco i hate pushing buttons.

A bit more about USBasp. I have been trying to contact Fishcl about getting the code updated but Fishcl doesn't seem to be responding to any email communications.

petervh and I have been working offline on some upates for the USBasp f/w and we are in the process of finalizing an updated version of USBasp f/w to be released as v1.6. It isn't quite ready yet.

This update includes many updates/fixes to not only the code but the makefile build system as well. Probably the biggest visible features of the f/w is that it includes the 2560 "fix" and the ability to reliably auto detect the proper SCK clock rate. So far it seems to be working and will speed up flash updates on AVRs running the typical 16Mhz but will auto detect on parts with clocks as low as 8Khz. The goal was that it should "just work" regardless of the F_CPU clock rate so that users won't have to use any slow SCK jumpers or -B options to adjust the SCK clock rate.

A new/updated version of avrdude is NOT needed in order to benefit from these updates.

While I know that I may sound biased given I've been working on the USBasp f/w, I think USBasp is quite a bit better and more feature rich than the USBTinyISP. I believe that it is mainly being that the USBTinyISP had very limited capabilities to allow it run in such a small flash size of the 2313 used in the original design.

--- bill

Glad to hear that work is still ongoing on that USBAsp software project. I eagerly await the results!

bperrybap: While I know that I may sound biased given I've been working on the USBasp f/w, I think USBasp is quite a bit better and more feature rich than the USBTinyISP. I believe that it is mainly being that the USBTinyISP had very limited capabilities to allow it run in such a small flash size of the 2313 used in the original design.

--- bill


Thank you very much for your efforts. If you need volunteers to test, count me in.

Would this firmware version work on a tiny85, for example? There seem to be some USBasp firmwares floating around that were "for" tinys, but I never actually tested any.