Arduino pro mini

From mems wiki
Jump to: navigation, search

Contents

About

NOTE: guide is incomplete.

I was unable to set eFuse, so I modified arduinos boards.txt as shown below:

pro5v.bootloader.extended_fuses=0xf8

after changing the above line and restarting arduino I was able to flash the boot loaded.

Burning Bootloader using avrdude

Preparing Arduino

Wire according to diagram shown in this article: https://www.arduino.cc/en/Hacking/MiniBootloader

Ensure your arduino uno is configured as "Arduino as ISP"

run this command from the terminal (note I assume linux, but it should work in windows).

avrdude -P /dev/ttyACM0 -c arduino -p m328p

If avrdude can talk to your device you should see something like this:

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f (probably m328p)

avrdude: safemode: Fuses OK (E:00, H:00, L:00)

avrdude done.  Thank you.

root@linux1:~# avrdude -P /dev/ttyACM0 -c arduino -p m328p

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f (probably m328p)

avrdude: safemode: Fuses OK (E:00, H:00, L:00)

avrdude done.  Thank you.

Locate bootloader

run this command to see what bootloaders we already have:

updatedb && locate -i arduino | grep hex

here is what I have:

/usr/share/arduino/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_atmega1280.hex
/usr/share/arduino/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex
/usr/share/arduino/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex
/usr/share/arduino/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_diecimila.hex
/usr/share/arduino/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_ng.hex
/usr/share/arduino/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_pro_8MHz.hex
/usr/share/arduino/hardware/arduino/bootloaders/atmega8/ATmegaBOOT-prod-firmware-2009-11-07.hex
/usr/share/arduino/hardware/arduino/bootloaders/atmega8/ATmegaBOOT.hex
/usr/share/arduino/hardware/arduino/bootloaders/bt/ATmegaBOOT_168.hex
/usr/share/arduino/hardware/arduino/bootloaders/bt/ATmegaBOOT_168_atmega328_bt.hex
/usr/share/arduino/hardware/arduino/bootloaders/caterina/Caterina-Esplora.hex
/usr/share/arduino/hardware/arduino/bootloaders/caterina/Caterina-Leonardo.hex
/usr/share/arduino/hardware/arduino/bootloaders/caterina/Caterina-Micro.hex
/usr/share/arduino/hardware/arduino/bootloaders/caterina/Esplora-prod-firmware-2012-12-10.hex
/usr/share/arduino/hardware/arduino/bootloaders/caterina/Leonardo-prod-firmware-2012-04-26.hex
/usr/share/arduino/hardware/arduino/bootloaders/caterina/Leonardo-prod-firmware-2012-12-10.hex
/usr/share/arduino/hardware/arduino/bootloaders/caterina/Micro-prod-firmware-2012-11-23.hex
/usr/share/arduino/hardware/arduino/bootloaders/caterina/Micro-prod-firmware-2012-12-10.hex
/usr/share/arduino/hardware/arduino/bootloaders/caterina-Arduino_Robot/Caterina-Robot-Control.hex
/usr/share/arduino/hardware/arduino/bootloaders/caterina-Arduino_Robot/Caterina-Robot-Motor.hex
/usr/share/arduino/hardware/arduino/bootloaders/caterina-LilyPadUSB/Caterina-LilyPadUSB.hex
/usr/share/arduino/hardware/arduino/bootloaders/lilypad/LilyPadBOOT_168.hex
/usr/share/arduino/hardware/arduino/bootloaders/optiboot/optiboot_atmega168.hex
/usr/share/arduino/hardware/arduino/bootloaders/optiboot/optiboot_atmega328-Mini.hex
/usr/share/arduino/hardware/arduino/bootloaders/optiboot/optiboot_atmega328.hex
/usr/share/arduino/hardware/arduino/bootloaders/optiboot/optiboot_atmega8.hex
/usr/share/arduino/hardware/arduino/bootloaders/stk500v2/Mega2560-prod-firmware-2011-06-29.hex
/usr/share/arduino/hardware/arduino/bootloaders/stk500v2/stk500boot_v2_mega2560.hex
/usr/share/arduino/hardware/arduino/firmwares/atmegaxxu2/Arduino-COMBINED-dfu-usbserial-atmega16u2-Mega2560-Rev3.hex
/usr/share/arduino/hardware/arduino/firmwares/atmegaxxu2/Arduino-COMBINED-dfu-usbserial-atmega16u2-MegaADK-Rev3.hex
/usr/share/arduino/hardware/arduino/firmwares/atmegaxxu2/Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex
/usr/share/arduino/hardware/arduino/firmwares/atmegaxxu2/MEGA-dfu_and_usbserial_combined.hex
/usr/share/arduino/hardware/arduino/firmwares/atmegaxxu2/UNO-dfu_and_usbserial_combined.hex
/usr/share/arduino/hardware/arduino/firmwares/atmegaxxu2/arduino-usbserial/Arduino-usbserial-atmega16u2-Mega2560-Rev3.hex
/usr/share/arduino/hardware/arduino/firmwares/atmegaxxu2/arduino-usbserial/Arduino-usbserial-atmega16u2-MegaADK-Rev3.hex
/usr/share/arduino/hardware/arduino/firmwares/atmegaxxu2/arduino-usbserial/Arduino-usbserial-atmega16u2-Uno-Rev3.hex
/usr/share/arduino/hardware/arduino/firmwares/atmegaxxu2/arduino-usbserial/Arduino-usbserial-mega.hex
/usr/share/arduino/hardware/arduino/firmwares/atmegaxxu2/arduino-usbserial/Arduino-usbserial-uno.hex

filtering futher, it seems I have the optibootloader available by default:

root@linux1:~# locate -i arduino | grep hex | grep -i mini
/usr/share/arduino/hardware/arduino/bootloaders/optiboot/optiboot_atmega328-Mini.hex