Optiboot Makes Your Arduino Faster, Sleeker

Tired of waiting for that Arduino sketch to upload? Find yourself limited by code space? Optiboot eases both of these problems. The package is an alternative bootloader that runs at a higher baud rate (115200 versus 57600) and it takes up 1.5 KB less space than the stock version. This means your sketches can be larger without upgrading to a beefier chip and they will take less time to upload, a lot less.

This fully compatible alternative to the Arduino bootloader requires an AVR ISP programmer to burn it to the chip on your Arduino. If you have an extra AVR lying around you could use the Arduino as a programmer and then physically swap the chips.

[Thanks Peter]

31 thoughts on “Optiboot Makes Your Arduino Faster, Sleeker

  1. #1, even large sketches load in seconds, are we really that impatient

    #2 if your code is sucking up 30kb 1.5 extra kb is really not that helpful, and you need to learn how to optimize you junk

  2. #1, even large sketches load in seconds, are we really that impatient

    yes we are very impatient. I normally use PIC and a ICD3 and don’t wait when I program. Since I am working on open source project, I use a Arduino and damn it is slow to program!

    Why do we have USB3 now? It is faster!

  3. well it typically takes 5 seconds to fill up the storage on a 328, if you DONT like that then you can use a programmer

    AND again you need one anyway so why not just use it???

    the arduino environment spits out hex files you can load any way you want, progammer, serial bootloader, some goldburg design maybe?

  4. my stance is it requires more advanced skills than the plug n play average arduino, and if your 100% with this you should already have the skills to prototype up to that point and beyond making this another stepping stone that is not really needed

    I have nothing against the project I just don’t see its place

  5. “if your 100% with this you should already have the skills to prototype up to that point and beyond making this another stepping stone that is not really needed”

    Perhaps you like the easy to setup workflow of the current bootloader and you are willing to be one of the leading edge testing this new bootloader with the hopes of seeing it being made the official bootloader when it is proved to be a no-downside replacement?

  6. According to the site, this does NOT require an AVR programmer, and can be burnt using the normal Arduino software.

    This looks great btw, a couple seconds may not sound like much, but every second makes a big difference when dealing with iteration times.

  7. @ Drakonite, if you already have a programmer plugged in to install a ‘better’ bootloader, why use the bootloader, just use the programmer, you save space and its MUCH faster

    AND yes you can burn hex files using the arduino software, but it uses different wiring or a bounce off effect where 1 arduino is programed as a programmer

    putting you back at square one, you want faster uploads???

    you want more storage space???

    wire up an arduino to another as a programmer and what???

    install a bootloader so you can waste space WHILE YOU HAVE A PROGRAMMER STILL CONNECTED???

    just send the damn hex file if you have a programmer, no bootloader needed AT ALL and you can STILL USE the arduino enviroment to develop your code, if that is what your best suited for

  8. @osgeld
    i dont see your point at all. i mean these people
    optimized the bootloader and you are trying to bash the effort.. and of course iteration times depend on upload time! you implement a function and what do u do before moving on?
    exactly, u test it first.. and for that u need to upload it! and again and again until it works flawless.
    so your opinion is just arrogant

  9. osgeld: If the manufacturer of your Arduino programs in this bootloader then the end user wouldn’t need to have a programmer. Maybe you’ll borrow a programmer and program all your spare Arduinos in one go yourself. Maybe you’ve got a friend with a programmer and they’ll program them all for you.

    Once programmed, you shouldn’t need a programmer again and you’ll continue to benefit from the increased baud rate, increased speed of programming and increased space available. All 3 sound like useful attributes to me but I guess you’re happy with the existing bootloader which is completely okay.

  10. I tried to build the SVN version 11, but it seems to be missing some signatures. Anyone else get this ? I’m running Ubuntu 9.10 32-bit.

    avr-gcc -g -Wall -Os -fno-inline-small-functions -fno-split-wide-types -mshort-calls -mmcu=atmega168 -DF_CPU=8000000L ‘-DMAX_TIME_COUNT=F_CPU>>1’ ‘-DNUM_LED_FLASHES=3’ -c -o optiboot.o optiboot.c
    optiboot.c: In function ‘main’:
    optiboot.c:312: error: ‘SIGNATURE_0’ undeclared (first use in this function)
    optiboot.c:312: error: (Each undeclared identifier is reported only once
    optiboot.c:312: error: for each function it appears in.)
    optiboot.c:313: error: ‘SIGNATURE_1’ undeclared (first use in this function)
    optiboot.c:314: error: ‘SIGNATURE_2’ undeclared (first use in this function)
    make: *** [optiboot.o] Error 1

  11. Osgeld:
    1) It’s a pain in the ass to use a programmer with the Arduino IDE, unless yours is directly supported. (unlike the Bus Pirate, or a serial programmer)

    2) Some people don’t have a programmer, and it is much cheaper to get an ATMEGA and some jumpers than to get a programmer.

    3) If you’re building a minimal Arduino, or a project based on Arduino, or using a breadboard and bare ATMEGA, it’s nice to have options.

    4) It’s a natural evolution. Software will get smaller, faster, and better as time goes on. Necessity aside, it happens.

  12. ignoring the idiocy of the idea that optimization is a bad thing, I just want to say that it doesn’t seem to work.

    Burned it onto my Diecimilia with my new BootPirate v3, and I couldn’t get it to communicate. And yes I made sure to install the IDE component and select the correct board type. Worked with it for a couple of hours, gave up, burned the original bootloader back onto the chip.

    Not a bad idea, but needs work.

  13. So let me get this straight…someone’s taken one of the most popular prototyping tools out there (whether you personally use it or not), improved upon it…and this is somehow a bad thing? I’ll never understand the haters. So if you’re consistent in your logic, taking this in the other direction and making an 8K bootloader that tops out at 9600 bps would be cause for celebration?

    Though I have an AVR programmer and can do without a bootloader just fine, traveling small and light with a laptop and minimal supporting hardware is a really nice thing. And with a few ‘168 parts still lying around, that extra 1.5K could come in handy.

    Like others, I had some trouble getting the bootloader to burn. For whatever reason, The Mac version of the Arduino app kept flaking out on that step. Worked fine on an XP box though, go figure, and after that I could download sketches just fine on the Mac when using Optiboot, rock solid. If the kinks get worked out, I’d love to see this become the standard Arduino bootloader in the future.

  14. Hi. I’m the author of Optiboot. Replies to a few comments.

    osgeld and others: Yes, 1.5k is potentially an insignificant flash size increase. But you get what you pay for, and this is free. However, the bootloader has shrunk by 75%. There are lots of interesting optimisations happening in the source and build process to produce code that tight.

    Jerome and others: Yes, it isn’t as fast as an ISP programmer. Yet. However, it is getting pretty close. Programming happens at 115kbaud. It takes 9ms to erase and reprogram a 128 byte flash page – that works out at a 142kbaud theoretical maximum. When the Arduino IDE updates its Avrdude package, there will be an Optiboot release supporting 250kbaud, and then it will be as fast as any commercial programmer.

    Tom: Sorry you had build problems. Optiboot inherits the Arduino bootloader makefile, which is ‘unusual’. Check the ‘makeall’ script – that should get you started.

    Alexander Rossie: Best comment EVAR!!

    glitch: Sorry you had programming issues. I haven’t seen those sorts of problems – but I’d like to work with you to fix things and update documentation/software as appropriate. Could you post an issue on the Google Code page, or post a message on the support group so I can gather some more info?

    Phil Burgess: Love the opening line! Optiboot was developed on Mac, so I’d like to get to the bottom of your issue too. Some feedback on the Google Code page would be appreciated so I can fix things or at least document workarounds.

  15. Oh – and an addendum to that:

    glitch: If you’re having issues getting it to work, make sure you have installed the optiboot directory into Arduino according to instructions, and you select the [Optiboot] board type when uploading using the optiboot bootloader. Both sides need to be in place as the baud rates are increased, and there is no auto-baud rate code on the bootloader side for size reasons.

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.