BOOT LOADER

How exactly a boot loader is programmed into a blanks processor on the UNO ?

Thanks Elico

Here's one way: http://arduino.cc/en/Tutorial/ArduinoISP.

Thanks Elico

Can you Write/Modify and then Compile a Bootloader from within the Arduino IDE or do you need to be a "Power Users" and do that sort of thing with VIM and the CLI.

You cannot do it in the IDE, no. You don't need VIM and the CLI though, you can do it through another IDE that works generically with AVR chips, like AVR Studio.

Is there a tutorial or "How-To" for this? Or is there so little interest, no one had made one?

Do you mean: "how to upload one of the precompiled bootloaders onto a blank chip", or "how to write my own bootloader"?

Write/Modify and then Compile a Bootloader.

There are some smart people writing bootloaders. I might learn something by understanding their code. I might want to add my own feature, a feature so unique that I may be the only one to want it.

Then download the boot-loader source code. There are files in there that tell you about the content (or there should be).

If you are capable of writing and understanding boot-loader code then you are capable of working out that there are other IDEs than the Arduino one, and that you may have to use one.

I'll leave the rest up to you.

If you can't even get as far as getting the right IDE, then stick to sketches.

Yes, you need to be a "power user" to program good boot loader code.

"and do that sort of thing with VIM and the CLI"

What is VIM and CLI exactly ?

Thanks Elico

VIM = "Vi IMproved" - a newer version of the old "vi" editor for *nix.

CLI = "Command Line Interface" - a generic term for any terminal interface to an operating system or control system.

elico: What is VIM and CLI exactly ?

http://en.wikipedia.org/wiki/Vim_%28cleaning_product%29

As for CLI he might have meant JIF (also explained on the above page).

More information here:

http://www.gammon.com.au/vi

CLI as in Clit Bang?

I trust that is a typo and you meant this:

https://en.wikipedia.org/wiki/Cillit_Bang

You can trust what you like :P

I knew y'all would understand. If I need to be a "Power User" then I should change jobs. One that requires cleaning products.

I wonder why installing a boot loader directly on a blank ATmaga from the IDE is not an option at arduino UNO ??

Is it so complicated matter ? Is the change needed so big ?

Elico

Installing the bootloader is not difficult, just need an AVR ISP to control the SCK/MISO/MOSI/Reset pins. One can use a dedicated device to do it, I use this one http://www.mdfly.com/index.php?main_page=product_info&cPath=5&products_id=415 and select Tools: Burn Bootloader in the IDE.

Or one can use the Optiloader sketch, download it into an Uno or equivalent, connect power, gnd, D13 to D13 (SCK), D12 to D12 (MISO), D11 to D11 (MOSI) and Uno's D10 to programmed devices' Reset pin. Programmed device needs 16 MHz crstal/caps, or comparable resonator, or be another board: https://github.com/WestfW/OptiLoader See the video in this thread http://arduino.cc/forum/index.php/topic,68183.0.html

Nick Gammon also has a nice article on programming bootloaders, http://www.gammon.com.au/forum/?id=11635

Alternately if one has an FTDI equipped board, or an FTDI breakout board, one can use that to bit-bang a bootloader in. http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html

elico: I wonder why installing a boot loader directly on a blank ATmaga from the IDE is not an option at arduino UNO ??

Installing a boot loader onto a blank chip is not a big deal. However, it is not part of the Arduino design. The most common method is to use ISP (In System Programming) also know as an ICSP (In Circuit Serial Programming). Devices to do this are very common.

You have options, some you have read about and some pointed out by CrossRoads.

The easiest, and maybe the cheapest is to get a USBasp. They can be had for less than $5. It probably will have a 10 pin connector, you will need to spend another $2.50 to get a 10 pin to 6 pin adapter. After that you are set to program as many chips as you would like. Just plug it up and go to town.

I believe that you can also load the sketch "ArduinoISP". This will turn your Arduino into an ISP. I suspect it will work on the Uno, although I have never used it. You then need to wire up the new chip. You can't replace the chip in your Uno because you will be using that one to run the sketch. All you need is a little breadboard and 6 wires. I have not purchased a breadboard in a while but this might be a couple dollars cheaper. But you need to be careful with your wiring.

elico: Is it so complicated matter ? Is the change needed so big ?

I'm sure that you would like to be able to use the same USB cable that you use to load your sketches to also load your boot loader, but alas it is not to be.

"I'm sure that you would like to be able to use the same USB cable that you use to load your sketches to also load your boot loader, but alas it is not to be." Not totally true - the final option I listed does just that, works great on a duemilanove style board where one has access to the pins of an FTDI chip.