arduino:arduino_without_a_bootloader
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
arduino:arduino_without_a_bootloader [2020/01/04 02:21] – [Case 4: Pro Mini 3.3V/8MHz with Pro Mini 3.3V/8MHz as programmer] mithat | arduino:arduino_without_a_bootloader [2020/06/22 19:49] – old revision restored (2020/02/27 18:23) mithat | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Arduino without a bootloader ====== | ====== Arduino without a bootloader ====== | ||
- | |||
- | <WRAP center round important 60%> | ||
- | This is a work in progress. Not all cases described below have been vetted yet. | ||
- | </ | ||
- | |||
===== Blessed is the bootloader ===== | ===== Blessed is the bootloader ===== | ||
One of the things that simplifies Arduino development is its [[https:// | One of the things that simplifies Arduino development is its [[https:// | ||
- | In the case of the Arduino, the bootloader | + | In the case of the Arduino, the bootloader |
- | But a bootloader isn't the only way to program the microcontrollers on these boards. Instead, you can use an external programming device (a.k.a, // | + | But a bootloader isn't the only way to program the microcontrollers on these boards. Instead, you can use an external programming device (a.k.a, // |
- | So while it's entirely possible to program many Arduino boards without using a bootloader, you would have to tie up one USB port on your computer for programming | + | So while it's entirely possible to program many Arduino boards without using a bootloader, you would have to tie up one USB port on your computer for the programmer |
===== Cursed is the bootloader ===== | ===== Cursed is the bootloader ===== | ||
- | There are times when you might want to bypass the convenience a bootloader offers | + | In spite of the convenience a bootloader offers, there are times when you might want to forego this and program |
- | Another reason to not use a bootloader is that your project' | + | Another reason to not use a bootloader is that the startup time is critical. The Arduino bootloader introduces about a second and a half delay between power-up/ |
Yet another situation where you might not want a bootloader is if you have lowered or disabled the [[https:// | Yet another situation where you might not want a bootloader is if you have lowered or disabled the [[https:// | ||
Line 26: | Line 21: | ||
===== Hardware ===== | ===== Hardware ===== | ||
- | You're going to need a device you want to program (e.g., an Arduino board) and a device with which you will do the programming (a.k.a., the programmer). You can see the complete list of programmers supported by the Arduino framework by looking at the list available under //Tools > Programmer: " | + | To program an ATmega328P without a bootloader, you're going to need a device you want to program (e.g., an Arduino board) and a device with which you will do the programming (i.e., the programmer). You can see the complete list of programmers supported by the Arduino framework by looking at the list available under //Tools > Programmer: " |
{{ : | {{ : | ||
Line 32: | Line 27: | ||
That's a lot of options! | That's a lot of options! | ||
- | Below, I cover a few cases to get you started. Most of these use the USBtinyISP.((As near as I can tell, the original source of the USBtinyISP design is Dick Streefland' | + | Below, I cover a few cases to get you started. Most of these use the USBtinyISP.((As near as I can tell, the original source of the USBtinyISP design is Dick Streefland' |
- | The original USBtinyISP has a built-in 3x2 keyed IDC cable that carries the signals | + | The original USBtinyISP has a built-in 3x2 IDC cable that carries the signals |
- | If you are using a USBtinyISP clone, | + | If you are using a USBtinyISP clone, |
Depending on the board you are programming, | Depending on the board you are programming, | ||
Line 44: | Line 39: | ||
</ | </ | ||
===== Procedures ===== | ===== Procedures ===== | ||
- | As is the case when uploading a program to your Arduino using a bootloader, when uploading a program using a programmer you must specify what the target board is. So when doing any of the following, make sure //Tools > Board// and //Tools > Processor// are set correctly for your board. | + | As is the case when uploading a program to your Arduino using a bootloader, when uploading a program using a programmer you must specify what the target board is. So when doing any of the following, make sure //Tools > Board// and //Tools > Processor// |
Now is also a good time to mention a significant caveat about using a programmer as described here. <WRAP center round important 80%> | Now is also a good time to mention a significant caveat about using a programmer as described here. <WRAP center round important 80%> | ||
Line 62: | Line 57: | ||
</ | </ | ||
- | Directly uploading a sketch to an Uno or Nano using a USBtinyISP is very straightforward: | + | Directly uploading a sketch to an Uno or Nano using a USBtinyISP is pretty |
- Configure your IDE to use the USBtinyISP: //Tools > Programmer " | - Configure your IDE to use the USBtinyISP: //Tools > Programmer " | ||
Line 112: | Line 107: | ||
=== Method 1: Leverage the jumper === | === Method 1: Leverage the jumper === | ||
+ | |||
+ | <WRAP center round info 60%> | ||
+ | Tested. | ||
+ | </ | ||
Version 2 of the [[https:// | Version 2 of the [[https:// | ||
Line 148: | Line 147: | ||
=== Method 2: Use 5V anyway === | === Method 2: Use 5V anyway === | ||
+ | |||
+ | <WRAP center round info 60%> | ||
+ | Tested. | ||
+ | </ | ||
If your USBtinyISP doesn' | If your USBtinyISP doesn' | ||
Line 183: | Line 186: | ||
When you upload a program using a programmer, you overwrite the bootloader. This means your board will no longer work with the conventional //Sketch > Upload// command in the IDE. However, getting the bootloader back is straightforward. | When you upload a program using a programmer, you overwrite the bootloader. This means your board will no longer work with the conventional //Sketch > Upload// command in the IDE. However, getting the bootloader back is straightforward. | ||
- | Uploading a bootloader to your micro is almost identical to uploading a program using a programmer. The only difference is that instead of uploading a program using //Sketch > Upload Using Programmer//, | + | Uploading a bootloader to your micro is almost identical to uploading a program using a programmer. The only difference is that instead of uploading a program using //Sketch > Upload Using Programmer//, |
After uploading the bootloader, you should be able to use //Sketch > Upload// again just as you always have. | After uploading the bootloader, you should be able to use //Sketch > Upload// again just as you always have. | ||
arduino/arduino_without_a_bootloader.txt · Last modified: 2022/05/30 05:46 by mithat