Minimalist AVR Programmer Is Just Fab!

Whether you’re burning a new bootloader to an Arduino board, or doing away with a bootloader to flash Atmel chips directly, an in-system programmer (ISP) is an indispensable tool for working with AVR microcontrollers. If cost has held you back, it’s no longer an excuse: FabISP is a barebones USB-based AVR programmer that can be pieced together for about ten bucks.

FabISP was created by [David Mellis] as a product of MIT’s Fab Lab program, which provides schools with access to design and manufacturing tools based around a core set of fabrication capabilities, so labs around the world can share results. But the FabISP design is simple enough that you don’t need a whole fab lab. It’s a small, single-sided board with no drilling required; the parts are all surface-mounted, but not so fine-pitched as to require reflow soldering. Easy!

There’s still the bootstrap problem, of course: you need an AVR programmer to get the firmware onto the FabISP. This would be an excellent group project for a hackerspace, club or school: if one person can provide the initial programmer to flash several boards, each member could etch and assemble their own, have it programmed, then take these out into the world to help create more. We must repeat!

[Thanks Juan]

62 thoughts on “Minimalist AVR Programmer Is Just Fab!

  1. Richard Quit being a dick and appreciate something created so even people with low income (IE students) can afford it.

    this is an awesome project for people like me who are In college right now and can barely afford food let alone an AVR programmer.

  2. @Richard Nibbler

    I think you’re slightly missing the point here; this design reduces the cost of the programmer to about half the cost of what’s out there at the moment. Is something that reduces the cost of development really ‘retarded’?

  3. @Richard Nibbler

    Overestimating the prices here, but here’s my breakdown of the parts I can price off the top of my head:

    All SMD passives: No more than £2.
    USB connector: £0.50
    ISP header: £0.50
    Attiny: £1.20

    That’s £4.20, assuming you’ve got the PCB fab stuff before, like a lot have, that sure leaves a hell of a lot for shipping…

  4. I didn’t forget the PCB, read again.

    The USB cable: £1.

    $34 is just over £23 in today’s money, feel free to spend roughly £18 on a ribbon cable and shipping…

    Can you not see how cost effective this is for someone with the PCB fab equipment?

  5. Yes, chasing down programmer bugs can be a frustrating and time-consuming experience, but also an educational one. For a group of hobby electronics builders, this is an excellent kit. For someone alone, starting out without somewhere to turn if his programmer has problems – not so much.
    Still, don’t underestimate what people can do. I started out with a breadboard emulating an STK200-style programmer myself. I’m also a student, and wish I could afford food.

  6. Obviously Richard Nibbler (AKA ‘Dick Nibbler’) is trolling.

    I’ve personally been programming my ATtinys via my Arduino (see “AVR ISP programming via Arduino”). I’ve got the parts laying around for this and it would save me time from configuring the ATmega328 every time I want to play with the tinys.

  7. This is pretty neat. I already use an USBtinyISP ($22, cheaper than mouser’s, from AdaFruit), but I’d consider building one of these just to get some experience with SMD.

    Plus, then I could just carry it around. Next time I’m talking to someone and they say “I’d like to try an AVR project sometime”, I could just whip it out and say “here you go, go nuts!”

  8. It is almost painful to read the comments on this site because of idiots like richard. But some of the other references posted by other people made up for it. Thanks for the links and ideas and richard stfu

  9. @Richard: USB cable? You can either a: reuse one from any other usb device you have, or b: go to the dollar store and pick one up.

    Same thing for the idc cable. Reuse one from a scrapped computer.

    Don’t be so pedantic. Makes you look childish.

  10. I bet everyone who is interested in working with AVRs has at least one usb cable. If it is not a miniusb cable, he or she can cut it and solder it on the board.
    PS: It is so painful to read theses stupid comments.

  11. Also I think its pretty sweet. I have the USBtinyISP as well but the main issue with it is no matter what I try I can’t get the damned thing to work with AVR Studio. Also I have to have a special bootloader on my PC to bypass driver security in 64 bit Windows 7. Beyond that though it works great and looks cool too.

  12. Oh – a final note in passing. Just for grins and giggles I stuck “avr chip programmer” into Google. Gosh, I got a mere 118,000 hits. I looked at a number of the pages and they ain’t bad. But then, the world isn’t harmed by the creation of another one, is it?

  13. But then, to refute those who say that this approach is half the cost of others there are people who claim that the entire parts list (and the associated total cost) is being understated. Just because “I’ve got all these cables and things sitting around in my parts box” doesn’t mean that you didn’t, somehow, purchase them in the first place – even if they were hidden in the price of that item. They didn’t get in your parts box by magic, did they? This makes for a different dollar amount, doesn’t it? Worse yet, your time and effort in building the device is being completely ignored. What is YOUR time worth in dollars (or pounds or whatever) per hour?

  14. For the negative people, really why argue? People build things for fun, doesn’t matter even if it cost them more to make it than buying it.

    Also some people learn a lot from doing projects like this, so are you factoring cost saving with self education vs paying someone to teach it to them?

  15. You can build everything from scratch if you want. Get some silicon and hand fabricate the transistors and diodes and such. If I had an infinite amount of time, I probably would. But we don’t have an infinite amount of time. You have to pick and choose what to spend your time on (and hence your money). There’s nothing wrong with doing some outsourcing. I don’t have time to grow my own corn or raise my own cows. I buy food from the grocery store. And for many people, it might make sense to buy some electronics so that you can get to making the truly fun stuff quicker and cheaper.

  16. Jean: My time is worth a negative amount per hour, as long as a project I’m doing is interesting enough. For me, this thing (or the device done by The Moogle, btw l33t creds for that) is worth any hour I spend on it. Still have any objections to HaD publishing it?

  17. Despite all the trolling on here, I do have to agree with those who say that it’s not worth it to try to save a few bucks on the programmer.

    The trouble these diy/low cost programmers is that they usually don’t have any input protection at all, they don’t work with avr studio (at least not easily), and they usually have limited driver support with 64 bit windows. I started out with the USBtinyISP (on which the fabISP is based). I was only able to get it to work with avrgcc (not avr studio) which is pretty complicated for a novice to get up and running. After about a year both the driver chip and the micro in the programmer had to be replaced due to the lack of input protection. I also was never able to use it with win 7 64 bit and there appears to be no 64 bit support in sight. I ended up just buying Atmel’s programmer for about 40 bucks.

    If you are starting out you will have enough unknowns, try to limit it to your project and not your programmer too. It will save a ton of frustration that could very well scare off novices.

  18. Please note that my comments are really only directed this device as a low cost way for beginners to get started with micros. If you want to build it for fun that that’s great, but don’t go down the diy path just to save money in this case.

  19. @The Moogle: It looks nice, but you also doubled the complexity by making it double sided with through-hole components. Jumpers are easier then vias, and just about every through-hole component can be surface mounted to avoid drilling.

  20. There are even cheaper programmers for those who have access to a parallel port. I have several listed on my site including schematics. I started with avr programming through a parallel port without any usb or any specialty cables. I just ripped apart an old parallel printer cable and breadboarded everything. Worked the first time. The other advantage of the parallel port programmer is being able to program your first AVR without having someone else load a bootloader for you.

    Ray Moore

    P.S. I am working on a tutorial for AVR programming from scratch and hope to have it up on the site sometime next month.

  21. there are those of us who still use old computers. I for one take old computers, put linux on them, and give them to kids who need computers. Most of those have parallel ports. But, yes, I know most modern computers don’t have them. However, those who are worried about saving a couple of dollars on a programmer would likely still have an older machine around with a parallel port on it.

  22. Don’t waste your time with these little ISP-only programmer dongles. Spend $49 on an AVR Dragon and get ISP, HVSP, and JTAG with debug support in AVR Studio. The 32k memory cap on the Dragon is now gone in the latest versions of AVR Studio, and the rumors of the Dragon being fragile are baseless since all but the first hardware versions of the device.

  23. @Richard: sorry my friend, but you forget one thing: the programmer is $34 PLUS shipping. If I want it in less than a month (average mail time from the US), I have to pay about 70$ for shipping. This means over 100$ for that programmer. On the other hand, I can walk to one of the electronics shops in my town (we have 5 or 6 of them) and buy all my parts for less than $10. An attiny is just 1.6 Euros ( The passives are even less. I have lots of cables from MP3 players that are just laying around. The only thing that you can’t buy is the PCB, but it can be made for under $3 ($1 the etchant, $2 the PCB) and I can program the whole thing with an older device (one that requires a serial port).
    As long as this thing works with avrdude or ponyprog, it’s A-ok.
    So please stop trolling and do some research (like what’s a Parralel port and how can you use it)

  24. Richard Nibbler passed his business class with an A+. If he’s got a flat tire, he uses his iPhone to call the garage, they come over and fix the problem. He never learned how to do it himself and if his phone runs flat he has to depend on others to pick him up. You can live a happy life as long as money can fix your problems, Richard, I prefer to do it McGyver style, as I value the time I do something for myself much higher than what I would earn at work. Since it feeds my grey cells. And that’s what it is all about, nobody is going to take knowledge away from me.

  25. @Moogle: that’s the sort of proactive response we need more of! I’m a sucker for tiny, portable tools and will buy one of these sight unseen. Your DJHI cartridge showed up in yesterday’s mail, BTW…I haven’t even had time to play with it yet, but it’s really nicely built.

    I appreciate all the discussion this has generated, both positive and negative, even Mr. Nibbler’s points. Once again my inner thrifty Scotsman got the best of me (hardly the first time that’s happened here) and I obsessed over the parts cost while the REAL value of the story is buried somewhere in the third paragraph: that this can be a great social (rather than solitary) electronics project…everybody’s got some of these parts in their junk pile. The software and hardware skill level are well-aligned…as a student is moving out of the Basic Stamp/Arduino bootloaders-and-jumper-wires stage, some of the skills they’ll next want to pick up include etching boards, surface-mount soldering, and flashing MCUs directly. The project offers all of the above without being too daunting in any one area, and unlike an “LED Christmas tree” the student ends up with a useful tool (albeit a rudimentary one) that will carry them just fine through the next few months of learning. Sure, if they’re serious they’ll eventually end up with a Dragon or something anyway, but I see this project as being more about the skills than the thing itself. Paint the fence. Wax on, wax off.

  26. I have plenty of old machines with a parallel port I can use for programming them.
    As for problems I never had any serious issues with parallel ISP programmers.
    I used one to flash my router.

    Heck if I wanted to I probably could use an old C64’s user port to flash a boot loader into an AVR.

  27. 1 you should not have to trace bugs cause its already a proven working design, if you cant assemble a kit you have no reason fooling with a microcontroller

    2 I can walk across the street and buy a usb cable at the gas station for a buck

    3 I only pay a couple bucks for shipping using the us postal system from digikey

    4 richard your a tard

  28. I built mine on perfboard. I had a bunch of attiny2013 at the time and I’ve been programming them with parallel port programmer. I figure I should built a slightly more proper isp. The rest of the parts I salvage from other junk I had around.

  29. heh.
    wonder if someone can add PIC/AVR/E2PROM support to some of the newer phones?

    now that would be handy.
    its doable, even something as simple as toggling the drive for the vibrate motor for TxD and using the mic input for RxD ought to work.

    someone suggested that a really cheap programmer could be had by modding some bluetooth headsets as internally they have a couple of diagnostic lines which can be user controlled.

  30. I’m sure Richard’s gotten frustrated and left, but I’ll bite anyway to keep myself busy until my flight leaves.

    All from Digi-Key:
    C1: 0.1uF (311-1179-1-ND: $0.77/10 units)
    C2: 18pF (311-1152-1-ND: $1.20/10 units)
    C3: 10uF (311-1376-1-ND: $1.66/10 units)
    C4: 18pF (311-1152-1-ND: $1.20/10 units)
    D1: 3.3V Zener (641-1056-1-ND: $0.53/1 unit)
    D2: 3.3V Zener (641-1056-1-ND: $0.53/1 unit)
    R10: 10Kohm (RMCF1/810KJRCT-ND: $0.05/1 unit)
    IC1: ATtiny24 (ATTINY24V-10SSU-ND: $2.15/1 unit)
    Q1: 12 MHz (XC717CT-ND: $0.73/1 unit)
    USB connector (H2961CT-ND: $1.18/1 unit)
    ISP header (S2011E-03-ND: $1.30/1 unit)
    USB cable (A -> 5-pin mini-B) (AE1450-ND: $3.55/1 unit)
    ISP cable (10-pin since I could find it more easily) (C3AAG-1006G-ND: $4.19/unit)

    Even buying the minimum of 10 units for each of the caps (of which we’d only use one 0.1uF, one 10uF and two 18pF), that still comes out to a component cost of $17.84. How much is that shipping, again?

  31. Moogle,

    If this proto works out for you, let’s look at something. I own an EMS house in Texas with significant SMT capacity. It’s been a bad year for everyone, but what better time to try to do something nice. If you’re game, and so is the H.A.D. community, we could build a batch of 1000 or so units. I would pledge capacity, PCB’s, and as much of the B.O.M. as I could afford. I’ve actually got all kinds of excess, that if we can do some substitutions, we might get close to fully covering it. Shipping would be to anywhere in the 48 states for whatever the USPS published rate is on the smallest flat rate standard box they have is. Having a few volunteers help with the distribution would also be a thought.

    Would there be enough group interest?

  32. That’s really a min batch for us. Again, I would cover as much as I could to bring the selling price down to as low as possible. We used to build 10’s of thousands of USB drives back in the day, so we do have some specific experience with panelization, board support, and other pertinent manufacturing experience. No one would need to come up with anything to start, just whatever the purchase price and shipping would be when they’re going out the door. I also may have some excess cardboard and foam for a small shipping solution that might get the shipping cost under $3. I would shoot to get the thing in everyones hands for around $10 delivered.


  33. Heck change this to through hole parts you could even assemble this project on a $2 Radio shack proto board and eliminate the need to etch a PCB if you wish to build your own.

    It still would likely come in under $10 in parts.

  34. If this really takes off, might I suggest adding PIC support? It seems these two architectures are always at odds with one another, and it would be nice to have a programmer capable of both. It shouldn’t need more than a few extra traces and new firmware.

    You probably already know this, but it would be nice to add a few exposed pads as test points. Many times have these nearly trivial features made repairs so much easier.

    I may be starting a feature creep here, but how about optical isolation too? I only suggest it because I once fried a laptop through an arduino USB cable while trying to rewire my piano. It might be possible to only need a single extra package, but I don’t know if it would be worth it for the users who only work with low voltage.

  35. I am new to a lot of this but I was always curious why you needed separate programmers for different chips. Why cant a decent chip on a programmer handle all sorts of chips?

  36. @paul

    mainly because the myriads of chips require different ways of programming.

    But they do exist, and they are sold as universal programmers. You probably haven’t heard of them much because they cost hundreds of dollars, and not really suited for hobbyist use.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.