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]

Comments

  1. Brennan says:

    Best. PCB Design. Ever.

  2. walt says:

    naa. I hate things that look silly. its functionality makes it very cool though.

  3. Dan says:

    I don’t think that’s an actual PCB. I think that’s just their logo.

  4. Brennan says:

    So what, it’s a photoshopped PCB? What’s the point in that??

  5. ClutchDude says:

    It’s just an shopped boot-shaped transparency overlay on a regular arduino.

    Neat as logos go.

  6. osgeld says:

    #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

  7. pelrun says:

    Osgeld, what about code that is already optimised as much as is feasible and still needs 31k? When you need the extra space, you *really* need it.

  8. osgeld says:

    um you dont use a bootloader and then have full access to the 32kb on board, and since you already have to use a programmer anyway …

  9. Jerome says:

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

  10. osgeld says:

    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?

  11. Victor says:

    I think the point is that even though you COULD use the 100 other methods, this bootloader is a drop-in replacement for the stock one, and is faster. So why not?

  12. dan says:

    I can’t believe people in these comments are arguing against speed and efficiency…

  13. osgeld says:

    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

  14. adam says:

    “some goldburg design maybe?”

    I’d like to see that, i bet it would be Awesome!!! Just for the lols lets make it controlled by a PIC

  15. Drakonite says:

    “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?

  16. Drakonite says:

    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.

  17. osgeld says:

    @ 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

  18. osgeld says:

    oh and ps the time it takes to burn a program to the atmega’s flash has nothing to do with iteration times

  19. Cantrip says:

    Yes, I fully agree that people should optimize their code. These particular people started with the bootloader’s code.

  20. jan says:

    @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

  21. nowhereman says:

    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.

  22. jamieriddles says:

    I’m not even going to get into the usefulness of this but I will say this:
    It did not work for me.

  23. Tom says:

    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.

    make
    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

  24. Alexander Rossie says:

    It’s a fucking hack. There is no need for purpose. It can be done. It was done.

  25. Sal_The_Tiller says:

    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.

  26. glitch says:

    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.

  27. Phil Burgess says:

    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.

  28. Peter Knight says:

    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.

  29. Peter Knight says:

    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.

  30. Sparr says:

    This bootloader also launches sketches faster than the stock one. That is, when you turn the device on, your code starts running sooner.

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 94,655 other followers