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]
Best. PCB Design. Ever.
naa. I hate things that look silly. its functionality makes it very cool though.
I don’t think that’s an actual PCB. I think that’s just their logo.
So what, it’s a photoshopped PCB? What’s the point in that??
It’s just an shopped boot-shaped transparency overlay on a regular arduino.
Neat as logos go.
#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
Sure, sure – 640k ought to be enough for everyone!
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.
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 …
#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!
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?
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?
I can’t believe people in these comments are arguing against speed and efficiency…
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
“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
“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?
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.
@ 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
oh and ps the time it takes to burn a program to the atmega’s flash has nothing to do with iteration times
Yes, I fully agree that people should optimize their code. These particular people started with the bootloader’s code.
@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
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.
I’m not even going to get into the usefulness of this but I will say this:
It did not work for me.
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
It’s a fucking hack. There is no need for purpose. It can be done. It was done.
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.
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.
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.
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.
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.
This bootloader also launches sketches faster than the stock one. That is, when you turn the device on, your code starts running sooner.