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]

Comments

  1. poiso says:

    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. Dave says:

    @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. Dave says:

    I posted after your reply before.

    Where are you buying your cables? Over here I can pick up a USB cable for £1 and it’s hardly like IDE cable is scarce.

  4. matt says:

    i think the point is that if a class got together and made a bunch of these, and students took them home to use, it would be really efficient

  5. Dave says:

    @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…

  6. Dave says:

    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?

  7. Yann Vernier says:

    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.

  8. Dave says:

    Why would you order a bunch of passives and some cable from multiple sources?

    There’s some enlightening trolls around these parts.

  9. Comrade says:

    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.

  10. Ben Ryves says:

    I built myself an SI Prog from scrap parts (see http://electronics-diy.com/avr_programmer.php for an example) and it works nicely enough with avrdude. It’s only a programmer, not a debugger, but you can’t really complain for the price.

  11. Hemlock says:

    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!”

  12. pauL says:

    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

  13. Chippy says:

    Every part except for the PCB is found on digikey in stock.

    Don’t think it’s the price that people care about, it’s for the fun of build it.

  14. cde says:

    @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.

  15. blubb says:

    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.

  16. Wes says:
  17. Wes says:

    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.

  18. Jean auBois says:

    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?

  19. The Moogle says:

    so… i took the design made it smaller and cheaper :)

    http://wtfmoogle.com/?p=1045

  20. Jean auBois says:

    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?

  21. Chippy says:

    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?

  22. b0b says:

    If you have still an LPT port, this is even easier:

    http://commons.wikimedia.org/wiki/File:Atmega8_lpt_programmer.svg

    Or this:
    http://www.puerer.com/blog/wp-content/uploads/2007/07/isp-interface.jpg (even more minimalistic)

    This could solve the chicken-and-egg problem. ;)
    I use a self-made ISP. It is mostly build out of scrap. The design and construction was quite instructive.
    Buying is boring.

  23. Min says:

    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.

  24. Sprite_tm says:

    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?

  25. ScooterSES says:

    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.

  26. ScooterSES says:

    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.

  27. asdf says:

    Just get some FTDI-based USB-serial cable with a chip that can run in SPI or bit-bang mode and there you go. All these boards look way more complex than needed.

  28. Rachel says:

    @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.

  29. Ray Moore says:

    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.

    http://sites.google.com/site/emrirc/avrstuff

    Enjoy,
    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.

  30. Ray Moore says:

    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.

  31. Scott says:

    the AVR ISP mkII is in a $10 kit from http://www.fun4diy.com/AVRISP_mkII.htm – I have one and love it! Plus, the chip came pre-programmed. Just drop-in components, solder, and you’re programming AVRs! Why spend $30+? (No, I don’t work for that site, but I’m totally impressed with their product)

  32. The Moogle says:

    @Rachel
    the idea is to make it cheep and easily mass produceable :)

    Im working out costs of a 2-300 board run

  33. Drone says:

    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.

  34. Fili says:

    @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 (http://www.comet.srl.ro/shop/info.html?ID=8040) 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)

  35. Ragnar says:

    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.

  36. Phil Burgess says:

    @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.

  37. Nitori says:

    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.

  38. osgeld says:

    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

  39. ccl says:

    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.

  40. tim says:

    not to mention, I ALREADY HAVE THE USB CABLE !

  41. bothersaidpooh says:

    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.

  42. Justin says:

    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?

  43. Brad says:

    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?

  44. The Moogle says:

    1000 O.o ? that might be a bit too many
    I was looking at building a batch of 100-200 after prototyping and seeing what kind of demand there was

  45. Brad says:

    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.

    Regards,
    Brad

  46. Nitori says:

    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.

  47. Rachel says:

    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.

  48. Brad says:

    Rachel,

    I agree completely with the PIC idea.

    Brad

  49. paul says:

    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?

  50. Victor says:

    @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

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 96,656 other followers