Arduino programmer for Arduino

Wow, that title is flamebait… but give us a chance to explain. [George] wrote some code for the Arduino that allows it to program another Arduino. You may be thinking to yourself “this has already been done”. In a way it has, with the AVR ISP programming shield. But once the code has been uploaded to the Arduino, you don’t need a computer to program the next chip. This concept turns an Arduino into an in-the-field programmer. Right now his code only programs the ATmega328 and it’s a little buggy, but the concept is solid. A fully functioning independent programmer is easy to image; [George] has laid the ground work, the AVR ISP programming firmware has proven this can work with several different chips, and if your AVR has an ATmega328 there should be plenty of room to store the code you plan to flash to the target microprocessors. It’s up to you to put all the pieces together.

Comments

  1. Ardruino says:

    Now people can roll out large productions of LED circuits in no time..

    Yo dawg I heard you like Ardruinos :p

    Apparently not liking your content over flooded with half finished circuits which are at least 80% Ardruino makes you a hater and a troll..

  2. jan says:

    wow thats cool, you could easily adapt this to program an arduino with a rf12 serial connection. then for example wireless sensor networks could update with no pain.

    this is cool stuff. does anyone know if its possible to read the actual flash image with the chip itself?

  3. osgeld says:

    “Apparently not liking your content over flooded with half finished circuits which are at least 80% Ardruino makes you a hater and a troll..”

    So weheres your awesome doo-hicky? And since this is YOUR content why don’t you just stop it, since you claim to OWN it.

  4. Brett Allen says:

    Awesome, now I can begin to create a fleet of arduino, which all exhibit genetic code modification and neural learning, and the ability to “copulate” to enhance their genetic survivability.

    Now if we can only build in this Arduino into a fully functional electronics capable RepRap, and our first AI self-reproducing species will be born!

  5. gen says:

    With this we could make an Arduino bricker (clearing the flash and setting the fuses so that there is no more serial/JTAG/SPI/etc), WITH an arduino !

  6. CalcProgrammer1 says:

    Awesome, not only can this program an Arduino but if it follows AVR ISP programming formats you could easily use it to program bare AVR’s, just have your Arduino with a 9V battery power source and you can easily program a lot of boards if you’re working on a big project. I’ve used the Arduino AVRISP emulator before and it works great, think I used it to put an Arduino bootloader on my bare ATMega328 so I didn’t have to hook up all of the programming pins.

  7. DmC says:

    Hmm basically he just made an Arduino Worm :P

  8. svofski says:

    “With this we could make an Arduino bricker (clearing the flash and setting the fuses so that there is no more serial/JTAG/SPI/etc), WITH an arduino !”

    How about naming it “Arduino-B-Gone”?

  9. JD says:

    Does anyone know how to write code in the Arduino IDE and program that code with the avr mkII?

  10. McSquid says:

    Fun fact:
    The robot apocalypse will be led by Arduinos

  11. Frogz says:

    in after multiple variations on the terminator theme

    OH NO! THIS IS HOW THE REPLICATORS GOT STARTED!

    hey, anyone have the pinout on a borg?
    replicators are all proprietary so that’d be a lost cause due to reverse engineering woes

    but i bet you could interface a borg with a arduino!

    also, why not add a sd shield and have it read .bin files(enough to program arduinos with over a MILLION functions for under $10)
    hm, actually maybe far more than a million considering a 8 gig micro sd card is roughly $15 from most places now

  12. Mikey says:

    Actually, it doesn’t do self-replication, it copies a slave script to a second device, not the same one it’s already running.

  13. svofski says:

    @Mikey: AVR bootloader is programmed just like regular code so it should be able to copy itself, at least there seem to be no problems that would prevent that.

  14. risu says:

    One step closer to robotic reproduction.

  15. Camille Goudeseune says:

    Self-hosting, bravo!
    Although the true honours are due when we see arduino botnets, and subsequent Norton For AVR.

  16. mowcius says:

    I honestly had this idea last year and started/commented on a number of sketches on the arduino forums. Glad someone with a bit more knowledge has been able to (partially) implement it.

    Mowcius

  17. Arduino says:

    @osgeld: Under NDA and patent by a trademark corporation..next question.

    All my ‘hack’ projects are under my real name, and I don’t want the internet hate machine herding to bomb my emails and phone.

    Either way my complaints hold merit. There where far interesting/intriguing LED and prototyping projects around before ‘Hack Marketing’ and Arduino were around..sorry if integrity is insulting to the “doo-hicky” demographic..

  18. bbot says:

    Now it just needs a row of toggle switches so you can load the opcodes in by hand.

  19. @Arduino

    patent == protected public disclosure.

    The only people who don’t seem to understand this are scammers– “No we can’t tell you how our patented Free Energy machine works. It’s a trade secret.”

  20. Finky Gibbon says:

    All Pic18Fxxx chips have the ability to self program, my PikKit 2 has a Programmer to go mode for in field programming, the atmega328 is not a bad chip, i just don’t like the library driven Arduino IDE, i bought a duino board to see what all the fuss was about so now i can honestly say i don’t like it, Microchips MPLab is much better

  21. blue carbuncle says:

    I would have Arduino 1 program Arduino 2 to feel pain and then torture it non-stop ;)

  22. osgeld says:

    “All my ‘hack’ projects are under my real name, and I don’t want the internet hate machine herding to bomb my emails and phone.”

    Funny cause your the only one hating here

    Its also funny that all your landmark projects a conviently covered up in NDA’s and other magic buzzwords

    Smells like a load of shit to me, but we can continue this when your ever so precious integrity falls abit to the side and you start trying to flame someone elses work (who was brave enough to show it and not hide it)

  23. nubie says:

    Amazing, now if only we could start with a bin of bare chips and see how long it would take to program them in a cascade :)

    1+1=2
    2+2=4
    4+4=8
    16
    32
    64
    128

    I wonder what the minimal circuit to program them so each step programs the next step.

    Would be fun to watch, that is for sure.

  24. googfan says:

    virus anyone?

  25. christopher says:

    it shouldn’t be that hard to modify this to program other avr chips. I’m working on a project that would have boxes with micro-controllers placed out in the woods by some scientist. this would make an easy way to update the software in the field without having to drag a laptop.

    no i’m not using an arduino,i’m using a “real” attiny. i’m in college for electrical engineering and so far i’ve used a basic stamp, and arduino and had a class where we learned to program freescale HC12 with assembly language (that was a pain)

  26. SomeRandomDudeYouProbablyDontKnow says:

    I’ve been looking for something like this for a few months now. I’m building something for my grandparents using an arduino, but I needed a way to upload code to the project once it was mailed to them. Couldn’t get the project done in time so now they can look forward to a more functional unit this x-mas!

  27. Xzibit says:

    Yo dawg, I heard you liked to program your Arduino, so we programmed your Arduino so you can program your Arduino while you program your Arduino.

  28. WestfW says:

    Someone should make an arduino “universal programmer.” Want to program an MSP430? Load up the MSP430-P sketch. PIC18? A different sketch. GALS, Cortex, whatever? Being able to fill 32k of program space for each processor type ought to be pretty liberating, and you could go pretty far, even if you restrict yourself to targets that don’t require significant programming currents…

  29. Mastro Gippo says:

    PicKit2 already did it.

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