Skip to main content
19 votes
Accepted

Arduino Nano ATmega328P bootloader difference

The bootloader currently shipped on the official Arduino Nano boards and selected via the Arduino IDE's Tools > Processor > ATmega328P after choosing Tools > Board > Arduino Nano is the same version ...
per1234's user avatar
  • 4,298
11 votes
Accepted

Can we burn Arduino bootloader into any microcontroller chip?

The answer needs to have multiple parts: Yes, in principle you can create a bootloader for any microcontroller, which acts like the Arduino's. Please be aware that there are different bootloaders, ...
the busybee's user avatar
  • 2,466
9 votes
Accepted

ino.hex vs ino.with_bootloader.hex

If flashing with AVR In System Programing (ISP) the bootloader is not needed. Only the flashing over Serial needs a bootloader. The ISP erases the flash including the bootloader. To be able to use ...
Juraj's user avatar
  • 18.3k
9 votes
Accepted

Can I program a factory fresh Atmega328P through UART pins without burning a bootloader?

No, the ATmega's ISP does not operate over the UART pins but only the ISP pins. To program it via a UART, you need to first load a bootloader, unless your chip was pre-programmed by the vendor, ...
Chris Stratton's user avatar
8 votes
Accepted

Can I force a function to live in the boot sector without overwriting the bootloader?

The Optiboot version 8 has a do_spm function which can be called from application. The Optiboot repository contains an example for the use of this function. SPM is the AVR CPU instruction to write to ...
Juraj's user avatar
  • 18.3k
7 votes
Accepted

Purpose of USB (FTDI) and ICSP connectors

The ICSP is used for 'bare metal' programming. This what you'd use if you wanted to replace or remove the bootloader, change the clock oscillator settings, or program the device as a bare 328. The ...
Neil_UK's user avatar
  • 404
6 votes

Is it possible to upload an arduino sketch through the serial port (RX) instead of USB

No need to have a specific bootloader. The basic bootloader can do that (in Arduino that's the case so I hope this answer will apply in your case. But if not, the principle is certainly the same). ...
Peter's user avatar
  • 365
6 votes
Accepted

Extend program space by getting rid of bootloader on NANO

It's enforcing this line from the arduino:avr boards.txt nano.menu.cpu.atmega328.upload.maximum_size=30720 To be clear, the board is assumed to have a bootloader, even if you're not using it to get ...
timemage's user avatar
  • 5,739
5 votes
Accepted

Arduino Burn the code programmatically

First, the Arduino Uno has 32 KB of flash, but only 1 KB of RAM. So, to be able to store the new program in a string means your new program can only be, at most, 1kb. Secondly, only the bootloader ...
Gerben's user avatar
  • 11.3k
5 votes
Accepted

How does the compiler/assembler work wrt bootloader?

On the Uno and similar AVR-based boards, the compiler and assembler are not aware of the bootloader. The compiled program starts at address zero. There you have the interrupt vector table, starting ...
Edgar Bonet's user avatar
  • 45.2k
4 votes

avrdude fuse error when programming ATMEGA328 without crystal

The ATMega328P datasheet has the following table in it: The top 5 bits of the of the Extended Fuse Byte are default 1 and are reserved. You're not really supposed to change them, since they might be ...
timemage's user avatar
  • 5,739
4 votes
Accepted

What does avrdude: Device signature = 0x000000 mean? Faulty wiring? Software issue? Incorrect tutorial?

There is one part of the tutorial that is incorrect - or rather missing. When you open the serial port the Arduino resets. That includes when the serial port is opened by avrdude. You need to prevent ...
Majenko's user avatar
  • 106k
4 votes

As a novice, how do I program my Atmega328p?

Are the ATMEGA and STM32 programmers not universal? They are not the same. As far as I know their programming arrangements are completely distinct. What programming methods can this chip support? ...
RedGrittyBrick's user avatar
4 votes
Accepted

How do I escape a boot loop?

Start holding the reset button. This is to prevent the Arduino from entering the boot loop. Unplug the Arduino and plug it back in. Open a new sketch. Remove all of the code and replace it with int ...
glibg10b's user avatar
  • 317
4 votes

How to compile without adding the bootloader?

Seeing .bootloader section in size output doesn't mean it's really present. It just means the sum of all three is 4152 bytes. You can check the hex file if it contains large block of data at the ...
KIIV's user avatar
  • 4,907
3 votes
Accepted

add ID number to the feather m0 bootloader (flash)

This is quite an easy fix, actually. The problem here is the compiler doesn't think the const is used for anything - so it (quite rightly) throws it away. All you need to do is tell the compiler ...
Majenko's user avatar
  • 106k
3 votes

ino.hex vs ino.with_bootloader.hex

While flashing the Arduino over USB (UART) you use the bootloader in that case the bootloader doesn't delete itself that's why the Arduino IDE sends the file without the bootloader. You need to use ...
Coder_fox's user avatar
  • 686
3 votes
Accepted

ATTiny85 Digispark clones failing USB handshake - how to program them?

I had problems too - SHORT: all about USB-hub or PC's root-hub and extension cables +Luck. My ebay items were going under the name "Digispark Kickstarter ATTINY85 Arduino Micro USB Development Board"...
vR0M's user avatar
  • 46
3 votes

Arduino Pro Micro bricked?

Problem solved! By taping twice the reset and holding it the second time I managed to program my board and now the arduino ide detectes it and it works as expected. Taping and releasing the button ...
George Sp's user avatar
  • 163
3 votes

Arduino Pro Micro bricked?

After bricking a few units I finally sat down and read the manual for my SparkFun Qwiic Pro Micro - USB-C (ATmega32U4). I also figured out the cause. The cause of my unit bricking was bad code. ...
Marc's user avatar
  • 131
3 votes
Accepted

AVR-GCC can't call function located on fixed address

I've tried this code with arduino and it worked (i taught, of course, i can't add the "-Wl,--section-start=.app_start=0xFA0" flag to the compilation process so the function not gonna be moved to other ...
Dankó Dávid's user avatar
3 votes

Is there some hardware that can be used to upload sketch source code via USB flash disk (Automatically By plugging it in)

There is a solution with SD card and SD bootloader. You put a bin file on SD card, insert it into the SD adapter and power up the Arduino. The bootloader loads the bin file to flash memory. I use '...
Juraj's user avatar
  • 18.3k
3 votes

Can we burn Arduino bootloader into any microcontroller chip?

You cannot just load a sketch into any microcontroller, because every microcontroller has different memory layout, peripherals, ways of uploading, FLASH size etc. You can use the atMega (or any ...
Michel Keijzers's user avatar
3 votes

D1 mini esp8266 error: esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header

I'm not sure if this will help EVERYONE, but I hope it at least helps someone. I had the same issue with several different boards (3 Nano's, 2 NodeMCU ESP8266's, and 1 Uno). I searched and searched ...
jsmwrench's user avatar
3 votes
Accepted

Forcing bootloader startup through program

Theoretically it is quiet easy to fake that double-tap with software, but there might be some obstacles in practice. The bootloader uses an unsigned long value in RAM memory to indicate if the double ...
Peter Paul Kiefer's user avatar
3 votes
Accepted

Loading code to a mega 2560

Only from bootloader section is it possible to write to flash on ATmega2560. Optiboot 8 has a do_spm function to write to flash. It is accesible over a header file available in examples in the ...
Juraj's user avatar
  • 18.3k
3 votes

How to Burn Bootloader with custom Fuses

You can use MiniCore boards support package for Arduino IDE to work with nonstandard AVR boards or breadboard setups. This core has many settings in Tools menu to set different parameters of the board....
Juraj's user avatar
  • 18.3k
3 votes
Accepted

Problem in upload bootloader into esp32

esp32 has a fixed bootloader in read only memory. it is not replaceable ArduinoISP sketch is a programmer only for classic ATmega MCU boards in valid case you would have to select the programmer in ...
Juraj's user avatar
  • 18.3k
3 votes

How does Arduino board separate USB traffic (uploading code vs. communication)?

It doesn't distinguish anything. It's all down to what code is running on the board at any moment. When you reset or power up the bootloader runs. It listens for uploaded code. If it doesn't get an ...
Majenko's user avatar
  • 106k
3 votes
Accepted

How do I upload a sketch without a bootloader, using another Arduino as a programmer?

There are a few guides on the internet that explain how to do this, but I've found that most of them contain too much ambiguity or leave important details out. This is my attempt at writing a short ...
glibg10b's user avatar
  • 317

Only top scored, non community-wiki answers of a minimum length are eligible