How to delete the boot loader?

I want to rewrite the firmware on the OpenSegment display in pure AVR C/C++. It is currently Arduino-based. I have very limited experience with the AVR and none with Arduino. What I want to know is if the boot loader is protected or locked, if so can that be broken and how to overwrite it with my own code. I don’t want to brick the AVR on the display as I have no way of replacing it with the tools at my disposal.

You can set or unset the fuses that protect the bootloader region using almost any programmer.

If you delete the bootloader, you will need a standard ISP or JTAG programmer to flash new code, but then you can use all of flash memory for your program.

Thanks! That is what I needed to get going!

Well, unfortunately, this wasn’t as helpful as I was hoping. My Google searches turned up more confusion than anything. I have found many “With this technique, you can add or remove a bootloader!” followed by plenty of instructions on how to add one and none on how to remove one.

Which fuses do I set/clear? I have found two that deal with bootloaders, but the information is less than clear as to how to use them. Also, is there a way to find out which fuses have been set in the first place on the AVR? It would appear, from what I’ve read, that you cannot simply set a single fuse. They are set and cleared in blocks. I don’t want to brick the chip.

You don’t “remove” the bootloader, you just write over it with program or data.

If you are using Atmel Studio (I much prefer Studio IV over the later versions), the device programming page gives access to all the fuses (read and write). It is pretty obvious how to proceed.

It is also possible to set/reset fuses with other programming software, like avrdude. Consult the relevant documentation.

I can’t get anything to show on the Device Programming page. :confused: I’m not really liking Atmel Studio. It is causing a lot of irritation.

Anyway, yes, I am aware that I am not removing the bootloader. The issue is that I cannot find the correct fuses to change. When I upload the code to the AVR, Atmel Studio reads the fuses, so I can see what it set. However, how do I read the fuses without writing data? I’m using AVR Dude, if that helps any.’

I have only recently started using AVR microcontrollers. My previous experience was with the Parallax Propeller. The AVR is worlds apart.

What version of Atmel Studio are you using? The learning curve is much steeper as you go beyond version IV. In any case, I recommend use of an Atmel programmer with Studio IV and to avoid avrdude. Download Studio IV here: http://www.atmel.com/tools/STUDIOARCHIVE.aspx

To use Studio IV with avr-gcc, you may have to download and install winavr first. http://sourceforge.net/projects/winavr/files/

For as much trouble as you are having with this very simple step, you have tackled an ambitious project. What is the justification for this effort?

I’m using AVR Studio 6.2 with Sparkfun’s PocketAVR programmer through AVR Dude.