From 9b879df55d481b64a6574d5f1b2c901925d630b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Hru=C5=A1ka?= Date: Thu, 15 Dec 2022 22:21:24 +0100 Subject: [PATCH] add files --- 46-avr.rules | 11 +++++++++++ README.md | 16 ++++++++++++++++ burn.sh | 18 ++++++++++++++++++ optiboot_atmega328.hex | 33 +++++++++++++++++++++++++++++++++ 4 files changed, 78 insertions(+) create mode 100644 46-avr.rules create mode 100644 README.md create mode 100755 burn.sh create mode 100644 optiboot_atmega328.hex diff --git a/46-avr.rules b/46-avr.rules new file mode 100644 index 0000000..8bc5df0 --- /dev/null +++ b/46-avr.rules @@ -0,0 +1,11 @@ +# udev rules file for ATMEL AVR isp +# +ACTION!="add|change", GOTO="avrisp_rules_end" +SUBSYSTEM!="usb|usb_device", GOTO="avrisp_rules_end" + +# AVR Dragon v1 +ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2104", MODE="0660", GROUP="plugdev" +# AVR Dragon v2 (the one without shitty voltage regulators) +ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2107", MODE="0660", GROUP="plugdev" + +LABEL="avrisp_rules_end" diff --git a/README.md b/README.md new file mode 100644 index 0000000..7c60843 --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +# Rescue script for atmega328P + +This script sets fuses and installs Optiboot using AVR Dragon. + +The file "46-avr.rules" contains the necessary rules to make AVR Dragon work without sudo. + +## Usage + +Run `./burn.sh` + + +## Sources: + +46-avr.rules ... https://gist.github.com/TobleMiner/7507b0571e9151dffaa638628601fdd9 +Optiboot ... Optiboot-8.0.zip from https://github.com/Optiboot/optiboot/releases/tag/v8.0 + diff --git a/burn.sh b/burn.sh new file mode 100755 index 0000000..d8fa5e8 --- /dev/null +++ b/burn.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +set -e + +# Settings: +# LFUSE: no ckdiv, no ckout, maximum settle time, external 8MHz crystal +# HFUSE: smallest bootloader (optiboot uses 512B = 256W), bootloader enabled +# EFUSE: Brown-out level set to 1.8V +# LOCK: disable bootloader overwrite from app section + +avrdude -p m328p -c dragon_isp \ + -U lfuse:w:0xff:m \ + -U hfuse:w:0xde:m \ + -U efuse:w:0xfe:m \ + -U lock:w:0xef:m \ + -U flash:w:optiboot_atmega328.hex + +echo "Done." diff --git a/optiboot_atmega328.hex b/optiboot_atmega328.hex new file mode 100644 index 0000000..6be487c --- /dev/null +++ b/optiboot_atmega328.hex @@ -0,0 +1,33 @@ +:107E000001C0DCC0112484B7882361F0982F9A70D8 +:107E1000923041F081FF02C097EF94BF282E80E09E +:107E2000B8D0EEC085E08093810082E08093C000EE +:107E300088E18093C10086E08093C20080E1809356 +:107E4000C4008EE0A6D0259A86E020E33CEF91E0C6 +:107E5000309385002093840096BBB09BFECF1D9A83 +:107E6000A8954091C00047FD02C0815089F7EE24DB +:107E7000E39495E0D92E21E1C22E7FD0813461F4C4 +:107E80007CD0182F8CD01238E9F0113811F488E02A +:107E900001C083E06BD067C0823411F484E103C079 +:107EA000853419F485E083D05EC0853539F465D01A +:107EB000C82F63D0D82FCC0FDD1F54C0863521F4D6 +:107EC00084E075D080E0E6CF843609F02EC055D02E +:107ED00054D0F82E52D0B82E00E011E04ED0F80168 +:107EE00081938F01FE12FACF5AD0F5E4BF1201C080 +:107EF000FFCF83E0FE0187BFE89507B600FCFDCF0A +:107F0000A0E0B1E0FE018D919D910C01E7BEE895E6 +:107F100011243296FA12F7CFFE01D7BEE89507B6C4 +:107F200000FCFDCFC7BEE8951EC0843771F425D094 +:107F300024D0F82E22D033D08E01F80185918F0104 +:107F400015D0FA94F110F9CF0EC0853739F427D047 +:107F50008EE10CD085E90AD08FE09CCF813511F4F9 +:107F600088E017D01CD080E101D087CF9091C0006D +:107F700095FFFCCF8093C60008958091C00087FFD5 +:107F8000FCCF8091C00084FD01C0A8958091C600FF +:107F90000895E0E6F0E098E1908380830895EDDFB6 +:107FA000803219F088E0F5DFFFCF84E1DFCFCF9397 +:107FB000C82FE3DFC150E9F7CF91F1CFFC010A01EF +:107FC00067BFE895112407B600FCFDCF667029F065 +:0C7FD000452B19F481E187BFE895089566 +:027FFE00000879 +:0400000300007E007B +:00000001FF