Using Arduino to burn bootloader [Without Computer]

Hi All,

Just a general question really....

I know you can configure an Arduino [UNO for example] as an ISP for programming bootloaders with the Arduino IDE.

Now my question is can you make a unit that to burn bootloaders without the need for Arduino IDE?.

Use a 9v battery or lithium to power the unit [Arduino UNO for example], have a screen & rotary encoder / button to select your desired micro controller to be burned & a start process?.

Adafruit has a guide on building a standalone ISP programmer:
https://learn.adafruit.com/standalone-avr-chip-programmer

There is also a commercial unit available, http://www.crossroadsfencing.com/BobuinoRev17/Programmer.html that uses software by Nick Gammon https://github.com/nickgammon/arduino_sketches/tree/master/Atmega_Hex_Uploader_Fixed_Filename

I'm sure there are numerous other examples, standalone programmers using SD card storage is a fairly common topic.

1 Like

For something as small as a bootloader, or even more than one to pick can fit in PROGMEM though the AVR should be able to copy the bootloader it has. The sketch for that either exists or something a step away does, I don't remember every bit of what Nick Gammon wrote between Minimal Arduino and the standalone.

We lost Crossroads and many other forum lights to COVID.
Crossroads site is still up.

The programmer board is Open, is that what Adafruit sells?

Yes, it is possible to create a standalone unit for burning bootloaders without the need for the Arduino IDE. You can design a custom circuit using an Arduino board, such as an Arduino UNO, along with a few additional components to achieve this.

Here's a general outline of how you can approach this project:

  1. Power Supply: You can power the unit using a 9V battery or a lithium-ion battery. Make sure to choose a battery that can provide the necessary voltage and current for the Arduino and the other components.

  2. Microcontroller Selection: To select the desired microcontroller for burning the bootloader, you can use a screen (such as an LCD or OLED display) to display a menu of available options. A rotary encoder or buttons can be used for navigation and selection.

  3. User Interface: The rotary encoder or buttons can also be used to navigate through different settings or options in the unit. For example, you can include options for setting fuse bits, selecting clock speed, or any other relevant parameters.

  4. Burn Process: Once the user selects the desired microcontroller and sets any necessary parameters, you can incorporate the appropriate programming hardware (e.g., ICSP - In-Circuit Serial Programming) on your standalone unit. This hardware will be responsible for connecting to the target microcontroller and burning the bootloader onto it.

  5. Control Logic: Use the Arduino board to handle the control logic of the unit. You can program it to respond to user input, display menus on the screen, and initiate the bootloader burning process. You'll need to write custom firmware for the Arduino to implement these functionalities.

  6. Connectivity: Ensure that the unit provides the necessary connections to interface with the target microcontroller, such as SPI, power, and reset pins. These connections will allow the unit to communicate with the microcontroller and burn the bootloader onto it.

  7. Enclosure: Design an enclosure for your standalone unit to house the components and provide a user-friendly interface. The enclosure should protect the electronics and make the unit portable and easy to use.

Remember that the specifics of the circuit design and firmware implementation will depend on the microcontrollers you intend to support and the specific requirements of the bootloader burning process. You may need to refer to the datasheets and documentation of the target microcontrollers to understand their programming protocols and adjust your design accordingly.

There was "optiloader" - the original "just burn Optiboot onto AVRs that are supported (atmega8, atmega168, Atmega328, atmega328p), every time you hit the reset button."

Nick Gammon and Adafruit both expanded and enhanced this to make more general tools.

Yes, it is possible to create a standalone unit ...

ChatGPT? Please don't.
That's a very generic and needlessly complex set of steps, without any of them being particularly useful...

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.