• Stars
    star
    198
  • Rank 196,898 (Top 4 %)
  • Language
    C++
  • Created about 13 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Arduino sketch for burning new bootloaders
optiLoader.ino

Copyright (c) 2011 by Bill Westfield ("WestfW")
Distributed under the terms of the "MIT OSSW License."

Optiloader is a sketch designed for bulk upgrading of Arduino board
bootloaders using another Arduino as a device programmer.  It stores
multiple copies of the optiboot bootloader in program flash memory.  When
run (ie by hitting reset), it probes the target device, figures out the type
of CPU (ATmega8, ATmega168, ATmega168P, ATmega168PB, ATmega328, ATmega328P,
ATmega328PB) and initiates upload of the bootloader and appropriate fuse
programming.  Since optiLoader runs entirely with the Arduino and there is
no communications with a host PC required, this can procede very rapidly,
and is not subject to interference of (for example) avrdude with auto-reset.

The internal copies of the bootloader are prepared manually from the .hex
files compiled in the bootloader directories.  (There's an easy editor macro
process, but it is manual.)

While communication with a host PC is not required, the sketch does send
status information to the serial port at 19200bps.  Here's a sample:

OptiLoader Bootstrap programmer.
2011 by Bill Westfield (WestfW)

Target power on! ...
Starting Program Mode [OK]

Reading signature:950F
Searching for image...
  Found "optiboot_atmega328.hex" for atmega328P
  Start address at 7E00
  Total bytes read: 502

Setting fuses for programming
  Lock: 3F FFE000  Low: FF FFA000  High: DE FFA800  Ext: 5 FFA400

Programming bootloader: 512 bytes at 0x3F00
  Commit Page: 3F00:3F00
  Commit Page: 3F40:3F40
  Commit Page: 3F80:3F80
  Commit Page: 3FC0:3FC0

Restoring normal fuses
  Lock: 2F FFE000

Target power OFF!

Type 'G' or hit RESET for next chip

~~~
Apparently, this was a pretty neat idea, because several other people have taken it and (substantially!) enhanced, or re-written it.  (and done much more complete documentation as well.)

https://learn.adafruit.com/standalone-avr-chip-programmer?view=all
http://www.gammon.com.au/bootloader

More Repositories

1

4chipZ80

Z80 system using ATmega as IO/boot controller. 4 chips total.
Assembly
53
star
2

fusebytes

Arduino sketch for printing info about chip signature, fuses, bootloader version, etc
Arduino
28
star
3

Minimal-ARM

Minimalist ARM Cortex Microcontroller development, in assembler.
C
22
star
4

Duino-hacks

Tiny Arduino (and related) hacks not worth of their own repository.
C++
16
star
5

parser

Simple serial command line parser for Arduino/etc
C++
9
star
6

SAMD10-experiments

This code is experiments in adding functionality from the Arduino core to the Atmel SAMD10 Xplained Mini Eval Board.
C
9
star
7

ps2keypolled

Polled PS/2 keyboard functions for Arduino
C
8
star
8

structured_gas

"Structured programming" macros for Gnu Assembler (gas)
Assembly
7
star
9

ChipKit

Assorted ChipKit PIC32 hacks
C
4
star
10

ArduinoZero-PMUX-report

Generate a user-readable report of the current state of the pins (what they're doing) on Arduino Zero and other SAMD21 based systems
C
3
star
11

TOPS20-MODEM

The TOPS20 implementation of X/Y/ZModem, as used at SIMTEL-20.
BASIC
2
star
12

Eagle-lbr-published

Librarys and User-language-programs (ULPs) for CadSoft EAGLE's Schematics/PCB editor
2
star
13

ArduScan

ArduScan is a windows program that passively scans the COM ports on a system looking for ones that are likely to be Arduinos
C++
2
star
14

WestfW_SerComLib

C
2
star
15

Freeduino-historical

Files and history of the ~2007 "Freeduino" project.
2
star
16

Atmel_ATDF_parser

Python code that parses the XML from an Atmel .ATDF Device Description file, and allows you to find/print various information and relationships that are not present in the .h files.
Python
2
star
17

Arduino-avr-tools-install

Given Windows with some version of Arduino installed, set the paths to allow using avr-gcc/etc from the command line.
Batchfile
1
star
18

IBMFTP-historical

This was a terminal emulator and file transfer program I wrote near the beginning of my career.
BASIC
1
star
19

OSHPark-OSHW-designs

I have some PCB projects that I've made public on OSHPark. This is where I'll put the "source code" and any documentation that may exist.
1
star
20

ArduinoCore-tinyARM

Starting with teh standard ArduinoCore-samd, modify/re-write for the very small ARM chips (SAMD09, etc.)
C
1
star
21

RPi-Pico-Hacks

This is for hacks for or using the Rasberry Pi Cortex-m0+ microcontroller and SDK ("rp2040" and "Pico" board)
C
1
star