arduino:atmega328p_arduinos_and_custom_fuse_settings
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
arduino:atmega328p_arduinos_and_custom_fuse_settings [2020/01/04 02:34] – [Calculating new fuse settings] mithat | arduino:atmega328p_arduinos_and_custom_fuse_settings [2021/04/22 01:37] (current) – [2. How do I specify new board characteristics?] mithat | ||
---|---|---|---|
Line 17: | Line 17: | ||
===== Four general questions ===== | ===== Four general questions ===== | ||
- | ==== Where do I put new board specs? ==== | + | ==== 1. Where do I put new board specs? ==== |
Specs for Arduino boards, including fuse bit settings, are found in various '' | Specs for Arduino boards, including fuse bit settings, are found in various '' | ||
=== The install bundle === | === The install bundle === | ||
- | A '' | + | A '' |
< | < | ||
- | This file has board descriptions written in a syntax the IDE understands for the default boards Arduino supported at the time the package was released. This is //not// where you will add descriptions for your custom board or existing board with modified fuse settings, but it's good place to look to begin to grok the syntax. | + | This file has board descriptions written in a syntax the IDE understands for default boards Arduino supported at the time the package was released. This is //not// where you will add descriptions for your custom board or existing board with modified fuse settings, but it's good place to look to begin to grok the syntax. |
- | When you open the default | + | When you open this '' |
< | < | ||
Following that are a number of lines starting with '' | Following that are a number of lines starting with '' | ||
Line 40: | Line 40: | ||
This is //not// your Arduino sketch folder. Rather it's where global application configuration information is stored. You can see the path to your profile folder towards the end of the Preferences dialog box. The Arduino profile folder on Linux systems is ''/ | This is //not// your Arduino sketch folder. Rather it's where global application configuration information is stored. You can see the path to your profile folder towards the end of the Preferences dialog box. The Arduino profile folder on Linux systems is ''/ | ||
- | The '' | + | The '' |
- | + | ||
- | If you have added additional boards using the IDE, you are likely to find additional folders for their architectures under ''/ | + | |
It's my understanding that you can add your custom board descriptions in these areas, but the prevailing advice is not to. This area is designed to be managed by the IDE. If you make additions here, the IDE may overwrite them or you might corrupt the ability for the IDE to successfully add/ | It's my understanding that you can add your custom board descriptions in these areas, but the prevailing advice is not to. This area is designed to be managed by the IDE. If you make additions here, the IDE may overwrite them or you might corrupt the ability for the IDE to successfully add/ | ||
Line 50: | Line 48: | ||
The following method works on the version of Arduino I used at the time or writing this: 1.8.8. I don't know whether it can be relied on to hang around for a while or has been deprecated. | The following method works on the version of Arduino I used at the time or writing this: 1.8.8. I don't know whether it can be relied on to hang around for a while or has been deprecated. | ||
- | So, until I'm advised this is a horrible idea, the way I recommended you add your own custom board descriptions is to create a folder called '' | + | So, until I'm advised this is a horrible idea, the way I recommended you add your own custom board descriptions is to create a folder called '' |
- | ==== How do I specify new board characteristics? | + | ==== 2. How do I specify new board characteristics? |
- | There is a //lot// of arcane knowledge that applies to writing custom Arduino '' | + | There is a //lot// of arcane knowledge that applies to writing custom Arduino '' |
Another good resource to look through is the files found in the breadboard-1-6-x.zip archive found under " | Another good resource to look through is the files found in the breadboard-1-6-x.zip archive found under " | ||
- | ==== What specs do I want? ==== | + | ==== 3. What specs do I want? ==== |
This article covers making a variant of an existing board where only the fuses have been changed. The relevant parameters in the '' | This article covers making a variant of an existing board where only the fuses have been changed. The relevant parameters in the '' | ||
Line 68: | Line 66: | ||
There is one additional caveat here: You can only change fuses that are compatible with what the bootloader you plan to use will let you do. Again there isn't a lot of documentation here, so if you've done everything right but things still don't work, this might be the reason. The solution to this is to compile a custom bootloader, which is well beyond the scope of this piece. | There is one additional caveat here: You can only change fuses that are compatible with what the bootloader you plan to use will let you do. Again there isn't a lot of documentation here, so if you've done everything right but things still don't work, this might be the reason. The solution to this is to compile a custom bootloader, which is well beyond the scope of this piece. | ||
- | ==== How do I burn a bootloader? ==== | + | ==== 4. How do I burn a bootloader? ==== |
This too is a pretty big topic, but the TL;DR is: hook up a programmer to your board, select the right board and programmer, then do a //Tools > Burn Bootloader// | This too is a pretty big topic, but the TL;DR is: hook up a programmer to your board, select the right board and programmer, then do a //Tools > Burn Bootloader// | ||
Line 224: | Line 222: | ||
==== Burn the bootloader and test ==== | ==== Burn the bootloader and test ==== | ||
- | Whether you plan to upload your sketches with a USB to serial converter (i.e., using the bootloader) or directly | + | Whether you plan to upload your sketches with a USB to serial converter (i.e., using the bootloader) or directly |
=== Burn it === | === Burn it === | ||
Line 230: | Line 228: | ||
* Create a new project consisting of a simple sketch (e.g. blink.) | * Create a new project consisting of a simple sketch (e.g. blink.) | ||
* Under //Tools > Board// you should see an entry for "Pro Mini 3.3V/8Mhz, 1.8V BOD, ATmega328P" | * Under //Tools > Board// you should see an entry for "Pro Mini 3.3V/8Mhz, 1.8V BOD, ATmega328P" | ||
- | * As a sanity check, Verify/ | + | * As a sanity check, Verify/ |
* Hook up a programmer to a 3.3V/8MHz Pro Mini and select the programmer you're using under //Tools > | * Hook up a programmer to a 3.3V/8MHz Pro Mini and select the programmer you're using under //Tools > | ||
* Plug the programmer into your computer | * Plug the programmer into your computer | ||
Line 248: | Line 246: | ||
<WRAP center round important 60%> | <WRAP center round important 60%> | ||
- | If you reduce the BOD threshold or turn off BOD entirely, don't run programs uploaded by the bootloader at low voltages. See [[arduino: | + | If you reduce the BOD threshold or turn off BOD entirely, don't run programs uploaded by the bootloader at low voltages. To run a sketch at low voltage you should upload your sketch directly using a programmer. See [[arduino: |
</ | </ | ||
- | To run a sketch at low voltage you should upload your sketch directly using a programmer. | ||
==== Upload with programmer and test ==== | ==== Upload with programmer and test ==== | ||
- | After burning the bootloader to set the fuses, hook up your programmer. Be sure you have set both the board and programmer to the correct values under //Tools//. Then upload your simple test sketch with //Sketch > Upload Using Programmer// | + | After burning the bootloader to set the fuses, |
Follow the instructions above to read the fuse settings. You should see: | Follow the instructions above to read the fuse settings. You should see: | ||
Line 269: | Line 266: | ||
</ | </ | ||
- | The extended fuse should | + | Confirm that the extended fuse is still '' |
- | You can now connect the Pro Mini to a variable supply to see whether it works as expected below 2.7V. It may not work all the way down to 1.8V though, but because you're not using a bootloader, the chances | + | You can now connect the Pro Mini to a variable supply to see whether it works as expected below 2.7V. It may not work all the way down to 1.8V though, but because you're not using a bootloader, |
arduino/atmega328p_arduinos_and_custom_fuse_settings.1578105259.txt.gz · Last modified: 2020/01/04 02:34 by mithat