arduino / Arduino

Arduino IDE 1.x
https://www.arduino.cc/en/software
Other
14.15k stars 7.01k forks source link

Problems programming bootloader arduino 2009 to ATtiny 85 and ATtiny 84 #3022

Closed glprinamello closed 9 years ago

glprinamello commented 9 years ago

Working with arduino board 2009 with new Bootloader and shield for programming ATtiny 44/84 and Attiny25/85

Have problems during programming. Error which appears:

Arduino:1.6.3 (Windows XP), Scheda:"ATtiny x5, ATtiny85 @ 8 MHz (internal oscillator; BOD disabled)"
avr_read(): error reading address 0x0000 read operation not supported for memory "lock" avrdude: failed to read all of lock memory, rc=-2
Errore durante la scrittura del bootloader

Need Help

mschlenker commented 9 years ago

Workaround: Try reading the fuses without reading memory lock, the path to avrdude and the config used can be taken from the output of the Arduino IDE:

avrdude -C "$AVRCONF" -p t45 -c arduino -b19200 -P /dev/ttyACM0 -U lfuse:r:-:h -U hfuse:r:-:h -U efuse:r:-:h

If this is successful you can set the fuses accordingly:

avrdude -C "$AVRCONF" -p t45 -c arduino -b19200 -P /dev/ttyACM0 -U lfuse:w:0xE2:m -U hfuse:w:0xDF:m -U efuse:w:0xFF:m

Take the fuse settings you need from the boards.txt containing your HW definitions and set the -p flag (which MCU you are using) accordingly.

I think this problem exists since a while. However I never cared since I use shell scripts to change fuse settings which is quicker than opening the Arduino IDE.

glprinamello commented 9 years ago

Thank you very much, i shall try this evening as soon as i get home.

The only thing i don't understand if memory is locked how can i program it in the future?

mschlenker commented 9 years ago

Related to https://github.com/arduino/Arduino/issues/808

Changing the avrdude.conf for more ATtinys might help.

ffissore commented 9 years ago

Can this patch help? https://github.com/arduino/toolchain-avr/pull/21 It's available with avr core 1.6.4 (through boards manager)

mschlenker commented 9 years ago

@ffissore I doubt. The problem seems to be related to a missing read section in `avrdude.conf, see #808

memory "lock"
         size            = 1;
         write           = "1 0 1 0  1 1 0 0  1 1 1 x  x x x x",
                           "x x x x  x x x x  1 1 i i  i i i i";
        min_write_delay = 9000;
        max_write_delay = 9000;
       ;

I'll fix and test this later today at least for the ATtiny85 and 45. I can only test with ATtiny85 and 45, so someone else has to test for other ATtinys.

mschlenker commented 9 years ago

@glprinamello Would you please provide me with the exact version of boards.txt you are using for the ATtiny?

glprinamello commented 9 years ago

I'll fix and test this later today at least for the ATtiny85 and 45. I can only test with ATtiny85 and 45, so someone else has to test for other ATtinys.

Nop still have problems but now something is moving.

I changed avrdude.conf file and added missing part for reading but still gives me error trough IDE.

Arduino:1.6.3 (Windows XP), Scheda:"ATtiny x5, ATtiny85 @ 8 MHz  (internal
oscillator; BOD disabled)"

C:\Documents and
Settings\Giangy_Home\Desktop\PROGETTAZIONE\ArduinoProg\Arduino\hardware\tools\avr/bin/avrdude
-CC:\Documents and
Settings\Giangy_Home\Desktop\PROGETTAZIONE\ArduinoProg\Arduino\hardware\tools\avr/etc/avrdude.conf
-v -v -v -v -pattiny85 -cstk500v1 -PCOM2 -b19200 -e -Ulock:w:0xFF:m
-Uefuse:w:0xFF:m -Uhfuse:w:0xD7:m -Ulfuse:w:0xE2:m

avrdude: Version 6.0.1, compiled on Mar 30 2015 at 14:56:06

     Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

     Copyright (c) 2007-2009 Joerg Wunsch

     System wide configuration file is "C:\Documents and

Settings\Giangy_Home\Desktop\PROGETTAZIONE\ArduinoProg\Arduino\hardware\tools\avr/etc/avrdude.conf"

avrdude: error at C:\Documents and
Settings\Giangy_Home\Desktop\PROGETTAZIONE\ArduinoProg\Arduino\hardware\tools\avr/etc/avrdude.conf:332:
programmer type must be written as "id_type"

Errore durante la scrittura del bootloader
glprinamello commented 9 years ago

please provide me with the exact version of boards.txt you are using for the ATtiny?

i'm using this file:

menu.cpu=Micro

###########################################################################

tinyx4.name=ATtiny x4

tinyx4.bootloader.tool=avrdude
tinyx4.bootloader.unlock_bits=0xFF
tinyx4.bootloader.lock_bits=0xFF
tinyx4.build.board=AVR_TINYX4

tinyx4.menu.cpu.attiny84at16=ATtiny84 @ 16 MHz  (external crystal; 4.3 V BOD)

tinyx4.menu.cpu.attiny84at16.upload.tool=arduino:arduinoisp
tinyx4.menu.cpu.attiny84at16.upload.maximum_size=8192
tinyx4.menu.cpu.attiny84at16.upload.maximum_data_size=512

# Frequency 8.0- MHz; Start-up time PWRDWN/RESET: 16K CK/14 CK + 65 ms; [CKSEL=1111 SUT=11]

# Brown-out detection level at VCC=4.3 V; [BODLEVEL=100]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

# Serial program downloading (SPI) enabled; [SPIEN=0]

tinyx4.menu.cpu.attiny84at16.bootloader.low_fuses=0xFF
tinyx4.menu.cpu.attiny84at16.bootloader.high_fuses=0xD4
tinyx4.menu.cpu.attiny84at16.bootloader.extended_fuses=0xFF
tinyx4.menu.cpu.attiny84at16.bootloader.path=empty
tinyx4.menu.cpu.attiny84at16.bootloader.file=empty84at16.hex

tinyx4.menu.cpu.attiny84at16.build.mcu=attiny84
tinyx4.menu.cpu.attiny84at16.build.f_cpu=16000000L
tinyx4.menu.cpu.attiny84at16.build.core=tiny

###########################################################################

tinyx4.menu.cpu.attiny84at8=ATtiny84 @ 8 MHz  (internal oscillator; BOD disabled)

tinyx4.menu.cpu.attiny84at8.upload.tool=arduino:arduinoisp
tinyx4.menu.cpu.attiny84at8.upload.maximum_size=8192
tinyx4.menu.cpu.attiny84at8.upload.maximum_data_size=512

# Default clock (slowly rising power; long delay to clock; 8 MHz internal)

# Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms; [CKSEL=0010 SUT=10]; default value

# Brown-out detection disabled; [BODLEVEL=111]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

tinyx4.menu.cpu.attiny84at8.bootloader.low_fuses=0xE2
tinyx4.menu.cpu.attiny84at8.bootloader.high_fuses=0xD7
tinyx4.menu.cpu.attiny84at8.bootloader.extended_fuses=0xFF
tinyx4.menu.cpu.attiny84at8.bootloader.path=empty
tinyx4.menu.cpu.attiny84at8.bootloader.file=empty84at8.hex

tinyx4.menu.cpu.attiny84at8.build.mcu=attiny84
tinyx4.menu.cpu.attiny84at8.build.f_cpu=8000000L
tinyx4.menu.cpu.attiny84at8.build.core=tiny

###########################################################################

tinyx4.menu.cpu.attiny84at1=ATtiny84 @ 1 MHz  (internal oscillator; BOD disabled)

tinyx4.menu.cpu.attiny84at1.upload.tool=arduino:arduinoisp
tinyx4.menu.cpu.attiny84at1.upload.maximum_size=8192
tinyx4.menu.cpu.attiny84at1.upload.maximum_data_size=512

# Default clock (slowly rising power; long delay to clock; 8 MHz internal; divide clock by 8)

# Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms; [CKSEL=0010 SUT=10]; default value

# Divide clock by 8 internally; [CKDIV8=0]

# Brown-out detection disabled; [BODLEVEL=111]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

tinyx4.menu.cpu.attiny84at1.bootloader.low_fuses=0x62
tinyx4.menu.cpu.attiny84at1.bootloader.high_fuses=0xD7
tinyx4.menu.cpu.attiny84at1.bootloader.extended_fuses=0xFF
tinyx4.menu.cpu.attiny84at1.bootloader.path=empty
tinyx4.menu.cpu.attiny84at1.bootloader.file=empty84at1.hex

tinyx4.menu.cpu.attiny84at1.build.mcu=attiny84
tinyx4.menu.cpu.attiny84at1.build.f_cpu=1000000L
tinyx4.menu.cpu.attiny84at1.build.core=tiny

###########################################################################

tinyx4.menu.cpu.attiny44at8=ATtiny44 @ 8 MHz  (internal oscillator; BOD disabled)

tinyx4.menu.cpu.attiny44at8.upload.tool=arduino:arduinoisp
tinyx4.menu.cpu.attiny44at8.upload.maximum_size=4096
tinyx4.menu.cpu.attiny44at8.upload.maximum_data_size=256

# Default clock (slowly rising power; long delay to clock; 8 MHz internal)

# Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms; [CKSEL=0010 SUT=10]; default value

# Brown-out detection disabled; [BODLEVEL=111]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

tinyx4.menu.cpu.attiny44at8.bootloader.low_fuses=0xE2
tinyx4.menu.cpu.attiny44at8.bootloader.high_fuses=0xD7
tinyx4.menu.cpu.attiny44at8.bootloader.extended_fuses=0xFF
tinyx4.menu.cpu.attiny44at8.bootloader.path=empty
tinyx4.menu.cpu.attiny44at8.bootloader.file=empty44at8.hex

tinyx4.menu.cpu.attiny44at8.build.mcu=attiny44
tinyx4.menu.cpu.attiny44at8.build.f_cpu=8000000L
tinyx4.menu.cpu.attiny44at8.build.core=tiny

###########################################################################

tinyx4.menu.cpu.attiny44at1.name=ATtiny44 @ 1 MHz  (internal oscillator; BOD disabled)

tinyx4.menu.cpu.attiny44at1.upload.tool=arduino:arduinoisp
tinyx4.menu.cpu.attiny44at1.upload.maximum_size=4096
tinyx4.menu.cpu.attiny44at1.upload.maximum_data_size=256

# Default clock (slowly rising power; long delay to clock; 8 MHz internal; divide clock by 8)

# Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms; [CKSEL=0010 SUT=10]; default value

# Divide clock by 8 internally; [CKDIV8=0]

# Brown-out detection disabled; [BODLEVEL=111]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

tinyx4.menu.cpu.attiny44at1.bootloader.low_fuses=0x62
tinyx4.menu.cpu.attiny44at1.bootloader.high_fuses=0xD7
tinyx4.menu.cpu.attiny44at1.bootloader.extended_fuses=0xFF
tinyx4.menu.cpu.attiny44at1.bootloader.path=empty
tinyx4.menu.cpu.attiny44at1.bootloader.file=empty44at1.hex

tinyx4.menu.cpu.attiny44at1.build.mcu=attiny44
tinyx4.menu.cpu.attiny44at1.build.f_cpu=1000000L
tinyx4.menu.cpu.attiny44at1.build.core=tiny

###########################################################################

tinyx4.menu.cpu.attiny24at16=ATtiny24 @ 16 MHz  (external crystal; BOD disabled)

tinyx4.menu.cpu.attiny24at16.upload.tool=arduino:arduinoisp
tinyx4.menu.cpu.attiny24at16.upload.maximum_size=2048
tinyx4.menu.cpu.attiny24at16.upload.maximum_data_size=2128

# Ext. Crystal Osc.; Frequency 8.0-    MHz; Start-up time PWRDWN/RESET: 16K CK/14 CK + 65 ms;  [CKSEL=1111 SUT=11]

# Brown-out detection disabled; [BODLEVEL=111]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

# Serial program downloading (SPI) enabled; [SPIEN=0]

tinyx4.menu.cpu.attiny24at16.bootloader.low_fuses=0xFF
tinyx4.menu.cpu.attiny24at16.bootloader.high_fuses=0xD7
tinyx4.menu.cpu.attiny24at16.bootloader.extended_fuses=0xFF
tinyx4.menu.cpu.attiny24at16.bootloader.path=empty
tinyx4.menu.cpu.attiny24at16.bootloader.file=empty24at16.hex

tinyx4.menu.cpu.attiny24at16.build.mcu=attiny24
tinyx4.menu.cpu.attiny24at16.build.f_cpu=16000000L
tinyx4.menu.cpu.attiny24at16.build.core=tiny

###########################################################################

tinyx5.name=ATtiny x5

tinyx5.bootloader.tool=avrdude
tinyx5.bootloader.unlock_bits=0xFF
tinyx5.bootloader.lock_bits=0xFF
tinyx5.build.board=AVR_TINYX5

tinyx5.menu.cpu.attiny85at16e=ATtiny85 @ 16 MHz  (external crystal; 4.3 V BOD)

tinyx5.menu.cpu.attiny85at16e.upload.tool=arduino:arduinoisp
tinyx5.menu.cpu.attiny85at16e.upload.maximum_size=8192
tinyx5.menu.cpu.attiny85at16e.upload.maximum_data_size=512

# Ext. Crystal Osc.; Frequency 8.0- MHz; Start-up time PWRDWN/RESET: 16K CK/14 CK + 65 ms; [CKSEL=1111 SUT=11]

# Brown-out detection level at VCC=4.3 V; [BODLEVEL=100]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

# Serial program downloading (SPI) enabled; [SPIEN=0]

tinyx5.menu.cpu.attiny85at16e.bootloader.low_fuses=0xFF
tinyx5.menu.cpu.attiny85at16e.bootloader.high_fuses=0xD4
tinyx5.menu.cpu.attiny85at16e.bootloader.extended_fuses=0xFF
tinyx5.menu.cpu.attiny85at16e.bootloader.path=empty
tinyx5.menu.cpu.attiny85at16e.bootloader.file=empty85at16.hex

tinyx5.menu.cpu.attiny85at16e.build.mcu=attiny85
tinyx5.menu.cpu.attiny85at16e.build.f_cpu=16000000L
tinyx5.menu.cpu.attiny85at16e.build.core=tiny

###########################################################################

tinyx5.menu.cpu.attiny85at16p=ATtiny85 @ 16 MHz  (internal PLL; 4.3 V BOD)

tinyx5.menu.cpu.attiny85at16p.upload.tool=arduino:arduinoisp
tinyx5.menu.cpu.attiny85at16p.upload.maximum_size=8192
tinyx5.menu.cpu.attiny85at16p.upload.maximum_data_size=512

# PLL Clock; Start-up time PWRDWN/RESET: 1K CK/14 CK + 4 ms; [CKSEL=0001 SUT=00]

# Brown-out detection level at VCC=4.3 V; [BODLEVEL=100]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

# Serial program downloading (SPI) enabled; [SPIEN=0]

tinyx5.menu.cpu.attiny85at16p.bootloader.low_fuses=0xC1
tinyx5.menu.cpu.attiny85at16p.bootloader.high_fuses=0xD4
tinyx5.menu.cpu.attiny85at16p.bootloader.extended_fuses=0xFF
tinyx5.menu.cpu.attiny85at16p.bootloader.path=empty
tinyx5.menu.cpu.attiny85at16p.bootloader.file=empty85at16.hex

tinyx5.menu.cpu.attiny85at16p.build.mcu=attiny85
tinyx5.menu.cpu.attiny85at16p.build.f_cpu=16000000L
tinyx5.menu.cpu.attiny85at16p.build.core=tiny

###########################################################################

tinyx5.menu.cpu.attiny85at8=ATtiny85 @ 8 MHz  (internal oscillator; BOD disabled)

tinyx5.menu.cpu.attiny85at8.upload.tool=arduino:arduinoisp
tinyx5.menu.cpu.attiny85at8.upload.maximum_size=8192
tinyx5.menu.cpu.attiny85at8.upload.maximum_data_size=512

# Default clock (slowly rising power; long delay to clock; 8 MHz internal)

# Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms; [CKSEL=0010 SUT=10]; default value

# Brown-out detection disabled; [BODLEVEL=111]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

tinyx5.menu.cpu.attiny85at8.bootloader.low_fuses=0xE2
tinyx5.menu.cpu.attiny85at8.bootloader.high_fuses=0xD7
tinyx5.menu.cpu.attiny85at8.bootloader.extended_fuses=0xFF
tinyx5.menu.cpu.attiny85at8.bootloader.path=empty
tinyx5.menu.cpu.attiny85at8.bootloader.file=empty85at8.hex

tinyx5.menu.cpu.attiny85at8.build.mcu=attiny85
tinyx5.menu.cpu.attiny85at8.build.f_cpu=8000000L
tinyx5.menu.cpu.attiny85at8.build.core=tiny

###########################################################################

tinyx5.menu.cpu.attiny85at1=ATtiny85 @ 1 MHz  (internal oscillator; BOD disabled)

tinyx5.menu.cpu.attiny85at1.upload.tool=arduino:arduinoisp
tinyx5.menu.cpu.attiny85at1.upload.maximum_size=8192
tinyx5.menu.cpu.attiny85at1.upload.maximum_data_size=512

# Default clock (slowly rising power; long delay to clock; 8 MHz internal; divide clock by 8)

# Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms; [CKSEL=0010 SUT=10]; default value

# Divide clock by 8 internally; [CKDIV8=0]

# Brown-out detection disabled; [BODLEVEL=111]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

tinyx5.menu.cpu.attiny85at1.bootloader.low_fuses=0x62
tinyx5.menu.cpu.attiny85at1.bootloader.high_fuses=0xD7
tinyx5.menu.cpu.attiny85at1.bootloader.extended_fuses=0xFF
tinyx5.menu.cpu.attiny85at1.bootloader.path=empty
tinyx5.menu.cpu.attiny85at1.bootloader.file=empty85at1.hex

tinyx5.menu.cpu.attiny85at1.build.mcu=attiny85
tinyx5.menu.cpu.attiny85at1.build.f_cpu=1000000L
tinyx5.menu.cpu.attiny85at1.build.core=tiny

###########################################################################

tinyx5.menu.cpu.attiny85at128=ATtiny85 @ 128 KHz  (watchdog oscillator; 1.8 V BOD)

tinyx5.menu.cpu.attiny85at128.upload.tool=arduino:arduinoisp
tinyx5.menu.cpu.attiny85at128.upload.maximum_size=8192
tinyx5.menu.cpu.attiny85at128.upload.maximum_data_size=512

# WD. Osc. 128 kHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 0 ms; [CKSEL=0100 SUT=00]

# Brown-out detection level at VCC=1.8 V; [BODLEVEL=110]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

# Serial program downloading (SPI) enabled; [SPIEN=0]

tinyx5.menu.cpu.attiny85at128.bootloader.low_fuses=0xC4
tinyx5.menu.cpu.attiny85at128.bootloader.high_fuses=0xD6
tinyx5.menu.cpu.attiny85at128.bootloader.extended_fuses=0xFF
tinyx5.menu.cpu.attiny85at128.bootloader.path=empty
tinyx5.menu.cpu.attiny85at128.bootloader.file=empty85at1.hex

tinyx5.menu.cpu.attiny85at128.build.mcu=attiny85
tinyx5.menu.cpu.attiny85at128.build.f_cpu=128000L
tinyx5.menu.cpu.attiny85at128.build.core=tiny

###########################################################################

tinyx5.menu.cpu.attiny45at8=ATtiny45 @ 8 MHz

tinyx5.menu.cpu.attiny45at8.upload.tool=arduino:arduinoisp
tinyx5.menu.cpu.attiny45at8.upload.maximum_size=4096
tinyx5.menu.cpu.attiny45at8.upload.maximum_data_size=256

# Default clock (slowly rising power; long delay to clock; 8 MHz internal)

# Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms; [CKSEL=0010 SUT=10]; default value

# Brown-out detection disabled; [BODLEVEL=111]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

tinyx5.menu.cpu.attiny45at8.bootloader.low_fuses=0xE2
tinyx5.menu.cpu.attiny45at8.bootloader.high_fuses=0xD7
tinyx5.menu.cpu.attiny45at8.bootloader.extended_fuses=0xFF
tinyx5.menu.cpu.attiny45at8.bootloader.path=empty
tinyx5.menu.cpu.attiny45at8.bootloader.file=empty45at8.hex

tinyx5.menu.cpu.attiny45at8.build.mcu=attiny45
tinyx5.menu.cpu.attiny45at8.build.f_cpu=8000000L
tinyx5.menu.cpu.attiny45at8.build.core=tiny

###########################################################################

tinyx5.menu.cpu.attiny45at1=ATtiny45 @ 1 MHz

tinyx5.menu.cpu.attiny45at1.upload.tool=arduino:arduinoisp
tinyx5.menu.cpu.attiny45at1.upload.maximum_size=4096
tinyx5.menu.cpu.attiny45at1.upload.maximum_data_size=256

# Default clock (slowly rising power; long delay to clock; 8 MHz internal; divide clock by 8)

# Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms; [CKSEL=0010 SUT=10]; default value

# Divide clock by 8 internally; [CKDIV8=0]

# Brown-out detection disabled; [BODLEVEL=111]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

tinyx5.menu.cpu.attiny45at1.bootloader.low_fuses=0x62
tinyx5.menu.cpu.attiny45at1.bootloader.high_fuses=0xD7
tinyx5.menu.cpu.attiny45at1.bootloader.extended_fuses=0xFF
tinyx5.menu.cpu.attiny45at1.bootloader.path=empty
tinyx5.menu.cpu.attiny45at1.bootloader.file=empty45at1.hex

tinyx5.menu.cpu.attiny45at1.build.mcu=attiny45
tinyx5.menu.cpu.attiny45at1.build.f_cpu=1000000L
tinyx5.menu.cpu.attiny45at1.build.core=tiny

###########################################################################

tinyx5.menu.cpu.attiny25at8=ATtiny25 @ 8 MHz

tinyx5.menu.cpu.attiny25at8.upload.tool=arduino:arduinoisp
tinyx5.menu.cpu.attiny25at8.upload.maximum_size=2048
tinyx5.menu.cpu.attiny25at8.upload.maximum_data_size=128

# Default clock (slowly rising power; long delay to clock; 8 MHz internal)

# Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms; [CKSEL=0010 SUT=10]; default value

# Brown-out detection disabled; [BODLEVEL=111]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

tinyx5.menu.cpu.attiny25at8.bootloader.low_fuses=0xE2
tinyx5.menu.cpu.attiny25at8.bootloader.high_fuses=0xD7
tinyx5.menu.cpu.attiny25at8.bootloader.extended_fuses=0xFF
tinyx5.menu.cpu.attiny25at8.bootloader.path=empty
tinyx5.menu.cpu.attiny25at8.bootloader.file=empty25at8.hex

tinyx5.menu.cpu.attiny25at8.build.mcu=attiny25
tinyx5.menu.cpu.attiny25at8.build.f_cpu=8000000L
tinyx5.menu.cpu.attiny25at8.build.core=tiny

###########################################################################

tinyx5.menu.cpu.attiny25at1=ATtiny25 @ 1 MHz

tinyx5.menu.cpu.attiny25at1.upload.tool=arduino:arduinoisp
tinyx5.menu.cpu.attiny25at1.upload.maximum_size=2048
tinyx5.menu.cpu.attiny25at1.upload.maximum_data_size=128

# Default clock (slowly rising power; long delay to clock; 8 MHz internal)

# Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms; [CKSEL=0010 SUT=10]; default value

# Brown-out detection disabled; [BODLEVEL=111]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

tinyx5.menu.cpu.attiny25at1.bootloader.low_fuses=0x62
tinyx5.menu.cpu.attiny25at1.bootloader.high_fuses=0xD7
tinyx5.menu.cpu.attiny25at1.bootloader.extended_fuses=0xFF
tinyx5.menu.cpu.attiny25at1.bootloader.path=empty
tinyx5.menu.cpu.attiny25at1.bootloader.file=empty25at1.hex

tinyx5.menu.cpu.attiny25at1.build.mcu=attiny25
tinyx5.menu.cpu.attiny25at1.build.f_cpu=1000000L
tinyx5.menu.cpu.attiny25at1.build.core=tiny

###########################################################################

tinyx313.name=ATtiny x313

tinyx313.bootloader.unlock_bits=0xFF
tinyx313.bootloader.lock_bits=0xFF
tinyx313.bootloader.tool=avrdude
tinyx313.build.board=AVR_TINYX313

tinyx313.menu.cpu.attiny4313at8=ATtiny4313 @ 8 MHz

tinyx313.menu.cpu.attiny4313at8.upload.tool=arduino:arduinoisp
tinyx313.menu.cpu.attiny4313at8.upload.maximum_size=4096
tinyx313.menu.cpu.attiny4313at8.upload.maximum_data_size=256

# Default clock (slowly rising power; long delay to clock; 8 MHz internal)

# Int. RC Osc. 8 MHz; Start-up time: 14 CK + 65 ms; [CKSEL=0100 SUT=10]; default value

# Brown-out detection disabled; [BODLEVEL=111]

# Serial program downloading (SPI) enabled; [SPIEN=0]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

tinyx313.menu.cpu.attiny4313at8.bootloader.low_fuses=0xE4
tinyx313.menu.cpu.attiny4313at8.bootloader.high_fuses=0x9F
tinyx313.menu.cpu.attiny4313at8.bootloader.extended_fuses=0xFF
tinyx313.menu.cpu.attiny4313at8.bootloader.path=empty
tinyx313.menu.cpu.attiny4313at8.bootloader.file=empty4313at8.hex

tinyx313.menu.cpu.attiny4313at8.build.mcu=attiny4313
tinyx313.menu.cpu.attiny4313at8.build.f_cpu=8000000L
tinyx313.menu.cpu.attiny4313at8.build.core=tiny

###########################################################################

tinyx313.menu.cpu.attiny4313at1=ATtiny4313 @ 1 MHz

tinyx313.menu.cpu.attiny4313at1.upload.tool=arduino:arduinoisp
tinyx313.menu.cpu.attiny4313at1.upload.maximum_size=4096
tinyx313.menu.cpu.attiny4313at1.upload.maximum_data_size=256

# Default clock (slowly rising power; long delay to clock; 8 MHz internal; divide clock by 8)

# Int. RC Osc. 8 MHz; Start-up time: 14 CK + 65 ms; [CKSEL=0100 SUT=10]; default value

# Divide clock by 8 internally; [CKDIV8=0]

# Brown-out detection disabled; [BODLEVEL=111]

# Serial program downloading (SPI) enabled; [SPIEN=0]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

tinyx313.menu.cpu.attiny4313at1.bootloader.low_fuses=0x64
tinyx313.menu.cpu.attiny4313at1.bootloader.high_fuses=0x9F
tinyx313.menu.cpu.attiny4313at1.bootloader.extended_fuses=0xFF
tinyx313.menu.cpu.attiny4313at1.bootloader.path=empty
tinyx313.menu.cpu.attiny4313at1.bootloader.file=empty4313at1.hex

tinyx313.menu.cpu.attiny4313at1.build.mcu=attiny4313
tinyx313.menu.cpu.attiny4313at1.build.f_cpu=1000000L
tinyx313.menu.cpu.attiny4313at1.build.core=tiny

###########################################################################

tinyx313.menu.cpu.attiny2313at8=ATtiny2313 @ 8 MHz

tinyx313.menu.cpu.attiny2313at8.upload.tool=arduino:arduinoisp
tinyx313.menu.cpu.attiny2313at8.upload.maximum_size=2048
tinyx313.menu.cpu.attiny2313at8.upload.maximum_data_size=128

# Default clock (slowly rising power; long delay to clock; 8 MHz internal)

# Int. RC Osc. 8 MHz; Start-up time: 14 CK + 65 ms; [CKSEL=0100 SUT=10]; default value

# Brown-out detection disabled; [BODLEVEL=111]

# Serial program downloading (SPI) enabled; [SPIEN=0]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

tinyx313.menu.cpu.attiny2313at8.bootloader.low_fuses=0xE4
tinyx313.menu.cpu.attiny2313at8.bootloader.high_fuses=0x9F
tinyx313.menu.cpu.attiny2313at8.bootloader.extended_fuses=0xFF
tinyx313.menu.cpu.attiny2313at8.bootloader.path=empty
tinyx313.menu.cpu.attiny2313at8.bootloader.file=empty2313at8.hex

tinyx313.menu.cpu.attiny2313at8.build.mcu=attiny2313
tinyx313.menu.cpu.attiny2313at8.build.f_cpu=8000000L
tinyx313.menu.cpu.attiny2313at8.build.core=tiny

###########################################################################

tinyx313.menu.cpu.attiny2313at1=ATtiny2313 @ 1 MHz

tinyx313.menu.cpu.attiny2313at1.upload.tool=arduino:arduinoisp
tinyx313.menu.cpu.attiny2313at1.upload.maximum_size=2048
tinyx313.menu.cpu.attiny2313at1.upload.maximum_data_size=128

# Default clock (slowly rising power; long delay to clock; 8 MHz internal; divide clock by 8)

# Int. RC Osc. 8 MHz; Start-up time: 14 CK + 65 ms; [CKSEL=0100 SUT=10]; default value

# Divide clock by 8 internally; [CKDIV8=0]

# Brown-out detection disabled; [BODLEVEL=111]

# Serial program downloading (SPI) enabled; [SPIEN=0]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

tinyx313.menu.cpu.attiny2313at1.bootloader.low_fuses=0x64
tinyx313.menu.cpu.attiny2313at1.bootloader.high_fuses=0x9F
tinyx313.menu.cpu.attiny2313at1.bootloader.extended_fuses=0xFF
tinyx313.menu.cpu.attiny2313at1.bootloader.path=empty
tinyx313.menu.cpu.attiny2313at1.bootloader.file=empty2313at1.hex

tinyx313.menu.cpu.attiny2313at1.build.mcu=attiny2313
tinyx313.menu.cpu.attiny2313at1.build.f_cpu=1000000L
tinyx313.menu.cpu.attiny2313at1.build.core=tiny

###########################################################################
###########################################################################

attiny85.name=Optiboot ATtiny85 @ 8 MHz  (internal osc)

attiny85.upload.protocol=arduino
attiny85.upload.speed=9600
#bootloader takes up last 10 pages, so there is a limit on the max size.
attiny85.upload.maximum_size=7616
attiny85.upload.maximum_data_size=512

attiny85.bootloader.tool=avrdude
attiny85.bootloader.low_fuses=0xE2
attiny85.bootloader.high_fuses=0xD7
attiny85.bootloader.extended_fuses=0xFE
attiny85.bootloader.unlock_bits=0xFF
attiny85.bootloader.lock_bits=0xFF
attiny85.bootloader.file=optiboot
attiny85.bootloader.file=optiboot_attiny85.hex

attiny85.build.mcu=attiny85
attiny85.build.f_cpu=8000000L
attiny85.build.core=tiny
attiny85.build.variant=tinyX5
attiny85.build.board=AVR_TINY85

###########################################################################

# Arduino AVR Core and platform.

# ------------------------------

# For more info:

# https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification

name=Arduino AVR Boards
version=1.5.6

# AVR compile variables

# ---------------------

# Default "compiler.path" is correct, change only if you want to overidde the initial value

compiler.path={runtime.ide.path}/hardware/tools/avr/bin/
compiler.c.cmd=avr-gcc
compiler.c.flags=-c -g -Os -w -ffunction-sections -fdata-sections -MMD

# -w flag added to avoid printing a wrong warning http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59396

# This is fixed in gcc 4.8.3 and will be removed as soon as we update the toolchain

compiler.c.elf.flags=-w -Os -Wl,--gc-sections
compiler.c.elf.cmd=avr-gcc
compiler.S.flags=-c -g -x assembler-with-cpp
compiler.cpp.cmd=avr-g++
compiler.cpp.flags=-c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD
compiler.ar.cmd=avr-ar
compiler.ar.flags=rcs
compiler.objcopy.cmd=avr-objcopy
compiler.objcopy.eep.flags=-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0
compiler.elf2hex.flags=-O ihex -R .eeprom
compiler.elf2hex.cmd=avr-objcopy
compiler.ldflags=
compiler.size.cmd=avr-size

# This can be overriden in boards.txt

build.extra_flags=

# These can be overridden in platform.local.txt

compiler.c.extra_flags=
compiler.c.elf.extra_flags=
compiler.S.extra_flags=
compiler.cpp.extra_flags=
compiler.ar.extra_flags=
compiler.objcopy.eep.extra_flags=
compiler.elf2hex.extra_flags=

# AVR compile patterns

# --------------------

## Compile c files

recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.c.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.c.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}"

## Compile c++ files

recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.cpp.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}"

## Compile S files

recipe.S.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.S.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.S.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}"

## Create archives

recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{build.path}/{archive_file}" "{object_file}"

## Combine gc-sections, archives, and objects

recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -mmcu={build.mcu} {compiler.c.elf.extra_flags} -o "{build.path}/{build.project_name}.elf" {object_files} "{build.path}/{archive_file}" "-L{build.path}" -lm

## Create eeprom

recipe.objcopy.eep.pattern="{compiler.path}{compiler.objcopy.cmd}" {compiler.objcopy.eep.flags} {compiler.objcopy.eep.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.eep"

## Create hex

recipe.objcopy.hex.pattern="{compiler.path}{compiler.elf2hex.cmd}" {compiler.elf2hex.flags} {compiler.elf2hex.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.hex"

## Compute size

recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A "{build.path}/{build.project_name}.elf"
recipe.size.regex=^(?:.text|.data|.bootloader)\s+([0-9]+).*
recipe.size.regex.data=^(?:.data|.bss|.noinit)\s+([0-9]+).*
recipe.size.regex.eeprom=^(?:.eeprom)\s+([0-9]+).*

# AVR Uploader/Programmers tools

# ------------------------------

tools.avrdude.cmd.path={runtime.ide.path}/hardware/tools/avr/bin/avrdude
tools.avrdude.config.path={runtime.ide.path}/hardware/tools/avr/etc/avrdude.conf

tools.avrdude.upload.params.verbose=-v -v -v -v
tools.avrdude.upload.params.quiet=-q -q
tools.avrdude.upload.pattern="{cmd.path}" "-C{config.path}" {upload.verbose} -p{build.mcu} -c{upload.protocol} -P{serial.port} -b{upload.speed} -D "-Uflash:w:{build.path}/{build.project_name}.hex:i"

tools.avrdude.program.params.verbose=-v -v -v -v
tools.avrdude.program.params.quiet=-q -q
tools.avrdude.program.pattern="{cmd.path}" "-C{config.path}" {program.verbose} -p{build.mcu} -c{protocol} {program.extra_params} "-Uflash:w:{build.path}/{build.project_name}.hex:i"

tools.avrdude.erase.params.verbose=-v -v -v -v
tools.avrdude.erase.params.quiet=-q -q
tools.avrdude.erase.pattern="{cmd.path}" "-C{config.path}" {erase.verbose} -p{build.mcu} -c{protocol} {program.extra_params} -e -Ulock:w:{bootloader.unlock_bits}:m -Uefuse:w:{bootloader.extended_fuses}:m -Uhfuse:w:{bootloader.high_fuses}:m -Ulfuse:w:{bootloader.low_fuses}:m

tools.avrdude.bootloader.params.verbose=-v -v -v -v
tools.avrdude.bootloader.params.quiet=-q -q
tools.avrdude.bootloader.pattern="{cmd.path}" "-C{config.path}" {bootloader.verbose} -p{build.mcu} -c{protocol} {program.extra_params} "-Uflash:w:{runtime.platform.path}/bootloaders/{bootloader.path}/{bootloader.file}:i" -Ulock:w:{bootloader.lock_bits}:m

# USB Default Flags

# Default blank usb manufacturer will be filled it at compile time

# \- from numeric vendor ID, set to Unknown otherwise

build.usb_manufacturer=
build.usb_flags=-DUSB_VID={build.vid} -DUSB_PID={build.pid} '-DUSB_MANUFACTURER={build.usb_manufacturer}' '-DUSB_PRODUCT={build.usb_product}'

###########################################################################
#

# Example boards.txt from...

#

# http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1236434254/94#94

# http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1274754985/6#6

# http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1274820597/49#49

#
###########################################################################

attiny84at16.name=ATtiny84 @ 16 MHz  (external crystal; 4.3 V BOD)

attiny84at16.upload.tool=arduino:arduinoisp

attiny84at16.upload.maximum_size=8192
attiny84at16.upload.maximum_data_size=512

# Frequency 8.0- MHz; Start-up time PWRDWN/RESET: 16K CK/14 CK + 65 ms; [CKSEL=1111 SUT=11]

# Brown-out detection level at VCC=4.3 V; [BODLEVEL=100]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

# Serial program downloading (SPI) enabled; [SPIEN=0]

attiny84at16.bootloader.low_fuses=0xFF
attiny84at16.bootloader.high_fuses=0xD4
attiny84at16.bootloader.extended_fuses=0xFF

attiny84at16.bootloader.path=empty
attiny84at16.bootloader.file=empty84at16.hex
attiny84at16.bootloader.tool=arduino:avrdude

attiny84at16.build.mcu=attiny84
attiny84at16.build.f_cpu=16000000L
attiny84at16.build.core=tiny

###########################################################################

attiny84at8.name=ATtiny84 @ 8 MHz  (internal oscillator; BOD disabled)

attiny84at8.upload.tool=arduino:arduinoisp

attiny84at8.upload.maximum_size=8192
attiny84at8.upload.maximum_data_size=512

# Default clock (slowly rising power; long delay to clock; 8 MHz internal)

# Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms; [CKSEL=0010 SUT=10]; default value

# Brown-out detection disabled; [BODLEVEL=111]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

attiny84at8.bootloader.low_fuses=0xE2
attiny84at8.bootloader.high_fuses=0xD7
attiny84at8.bootloader.extended_fuses=0xFF

attiny84at8.bootloader.path=empty
attiny84at8.bootloader.file=empty84at8.hex
attiny84at8.bootloader.tool=arduino:avrdude

attiny84at8.build.mcu=attiny84
attiny84at8.build.f_cpu=8000000L
attiny84at8.build.core=tiny

###########################################################################

attiny84at1.name=ATtiny84 @ 1 MHz  (internal oscillator; BOD disabled)

attiny84at1.upload.tool=arduino:arduinoisp

attiny84at1.upload.maximum_size=8192
attiny84at1.upload.maximum_data_size=512

# Default clock (slowly rising power; long delay to clock; 8 MHz internal; divide clock by 8)

# Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms; [CKSEL=0010 SUT=10]; default value

# Divide clock by 8 internally; [CKDIV8=0]

# Brown-out detection disabled; [BODLEVEL=111]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

attiny84at1.bootloader.low_fuses=0x62
attiny84at1.bootloader.high_fuses=0xD7
attiny84at1.bootloader.extended_fuses=0xFF

attiny84at1.bootloader.path=empty
attiny84at1.bootloader.file=empty84at1.hex
attiny84at1.bootloader.tool=arduino:avrdude

attiny84at1.build.mcu=attiny84
attiny84at1.build.f_cpu=1000000L
attiny84at1.build.core=tiny

###########################################################################

attiny44at8.name=ATtiny44 @ 8 MHz  (internal oscillator; BOD disabled)

attiny44at8.upload.tool=arduino:arduinoisp

attiny44at8.upload.maximum_size=4096
attiny44at8.upload.maximum_data_size=256

# Default clock (slowly rising power; long delay to clock; 8 MHz internal)

# Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms; [CKSEL=0010 SUT=10]; default value

# Brown-out detection disabled; [BODLEVEL=111]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

attiny44at8.bootloader.low_fuses=0xE2
attiny44at8.bootloader.high_fuses=0xD7
attiny44at8.bootloader.extended_fuses=0xFF

attiny44at8.bootloader.path=empty
attiny44at8.bootloader.file=empty44at8.hex
attiny44at8.bootloader.tool=arduino:avrdude

attiny44at8.build.mcu=attiny44
attiny44at8.build.f_cpu=8000000L
attiny44at8.build.core=tiny

###########################################################################

attiny44at1.name=ATtiny44 @ 1 MHz  (internal oscillator; BOD disabled)

attiny44at1.upload.tool=arduino:arduinoisp

attiny44at1.upload.maximum_size=4096
attiny44at1.upload.maximum_data_size=256

# Default clock (slowly rising power; long delay to clock; 8 MHz internal; divide clock by 8)

# Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms; [CKSEL=0010 SUT=10]; default value

# Divide clock by 8 internally; [CKDIV8=0]

# Brown-out detection disabled; [BODLEVEL=111]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

attiny44at1.bootloader.low_fuses=0x62
attiny44at1.bootloader.high_fuses=0xD7
attiny44at1.bootloader.extended_fuses=0xFF

attiny44at1.bootloader.path=empty
attiny44at1.bootloader.file=empty44at1.hex
attiny44at1.bootloader.tool=arduino:avrdude

attiny44at1.build.mcu=attiny44
attiny44at1.build.f_cpu=1000000L
attiny44at1.build.core=tiny

###########################################################################

attiny24at16.name=ATtiny24 @ 16 MHz  (external crystal; BOD disabled)

attiny24at16.upload.tool=arduino:arduinoisp

attiny24at16.upload.maximum_size=2048
attiny24at16.upload.maximum_data_size=128

# Ext. Crystal Osc.; Frequency 8.0-    MHz; Start-up time PWRDWN/RESET: 16K CK/14 CK + 65 ms;  [CKSEL=1111 SUT=11]

# Brown-out detection disabled; [BODLEVEL=111]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

# Serial program downloading (SPI) enabled; [SPIEN=0]

attiny24at16.bootloader.low_fuses=0xFF
attiny24at16.bootloader.high_fuses=0xD7
attiny24at16.bootloader.extended_fuses=0xFF

attiny24at16.bootloader.path=empty
attiny24at16.bootloader.file=empty24at16.hex
attiny24at16.bootloader.tool=arduino:avrdude

attiny24at16.build.mcu=attiny24
attiny24at16.build.f_cpu=16000000L
attiny24at16.build.core=tiny

###########################################################################

attiny85at16e.name=ATtiny85 @ 16 MHz  (external crystal; 4.3 V BOD)

attiny85at16e.upload.tool=arduino:arduinoisp

attiny85at16e.upload.maximum_size=8192
attiny85at16e.upload.maximum_data_size=512

# Ext. Crystal Osc.; Frequency 8.0- MHz; Start-up time PWRDWN/RESET: 16K CK/14 CK + 65 ms; [CKSEL=1111 SUT=11]

# Brown-out detection level at VCC=4.3 V; [BODLEVEL=100]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

# Serial program downloading (SPI) enabled; [SPIEN=0]

attiny85at16e.bootloader.low_fuses=0xFF
attiny85at16e.bootloader.high_fuses=0xD4
attiny85at16e.bootloader.extended_fuses=0xFF

attiny85at16e.bootloader.path=empty
attiny85at16e.bootloader.file=empty85at16.hex
attiny85at16e.bootloader.tool=arduino:avrdude

attiny85at16e.build.mcu=attiny85
attiny85at16e.build.f_cpu=16000000L
attiny85at16e.build.core=tiny

###########################################################################

attiny85at16p.name=ATtiny85 @ 16 MHz  (internal PLL; 4.3 V BOD)

attiny85at16p.upload.tool=arduino:arduinoisp

attiny85at16p.upload.maximum_size=8192
attiny85at16p.upload.maximum_data_size=512

# PLL Clock; Start-up time PWRDWN/RESET: 1K CK/14 CK + 4 ms; [CKSEL=0001 SUT=00]

# Brown-out detection level at VCC=4.3 V; [BODLEVEL=100]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

# Serial program downloading (SPI) enabled; [SPIEN=0]

attiny85at16p.bootloader.low_fuses=0xC1
attiny85at16p.bootloader.high_fuses=0xD4
attiny85at16p.bootloader.extended_fuses=0xFF

attiny85at16p.bootloader.path=empty
attiny85at16p.bootloader.file=empty85at16.hex
attiny85at16p.bootloader.tool=arduino:avrdude

attiny85at16p.build.mcu=attiny85
attiny85at16p.build.f_cpu=16000000L
attiny85at16p.build.core=tiny

###########################################################################

attiny85at8.name=ATtiny85 @ 8 MHz  (internal oscillator; BOD disabled)

attiny85at8.upload.tool=arduino:arduinoisp

attiny85at8.upload.maximum_size=8192
attiny85at8.upload.maximum_data_size=512

# Default clock (slowly rising power; long delay to clock; 8 MHz internal)

# Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms; [CKSEL=0010 SUT=10]; default value

# Brown-out detection disabled; [BODLEVEL=111]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

attiny85at8.bootloader.low_fuses=0xE2
attiny85at8.bootloader.high_fuses=0xD7
attiny85at8.bootloader.extended_fuses=0xFF

attiny85at8.bootloader.path=empty
attiny85at8.bootloader.file=empty85at8.hex
attiny85at8.bootloader.tool=arduino:avrdude

attiny85at8.build.mcu=attiny85
attiny85at8.build.f_cpu=8000000L
attiny85at8.build.core=tiny

###########################################################################

attiny85at1.name=ATtiny85 @ 1 MHz  (internal oscillator; BOD disabled)

attiny85at1.upload.tool=arduino:arduinoisp

attiny85at1.upload.maximum_size=8192
attiny85at1.upload.maximum_data_size=512

# Default clock (slowly rising power; long delay to clock; 8 MHz internal; divide clock by 8)

# Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms; [CKSEL=0010 SUT=10]; default value

# Divide clock by 8 internally; [CKDIV8=0]

# Brown-out detection disabled; [BODLEVEL=111]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

attiny85at1.bootloader.low_fuses=0x62
attiny85at1.bootloader.high_fuses=0xD7
attiny85at1.bootloader.extended_fuses=0xFF

attiny85at1.bootloader.path=empty
attiny85at1.bootloader.file=empty85at1.hex
attiny85at1.bootloader.tool=arduino:avrdude

attiny85at1.build.mcu=attiny85
attiny85at1.build.f_cpu=1000000L
attiny85at1.build.core=tiny

###########################################################################

attiny45at8.name=ATtiny45 @ 8 MHz

attiny45at8.upload.tool=arduino:arduinoisp

attiny45at8.upload.maximum_size=4096
attiny45at8.upload.maximum_data_size=256

# Default clock (slowly rising power; long delay to clock; 8 MHz internal)

# Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms; [CKSEL=0010 SUT=10]; default value

# Brown-out detection disabled; [BODLEVEL=111]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

attiny45at8.bootloader.low_fuses=0xE2
attiny45at8.bootloader.high_fuses=0xD7
attiny45at8.bootloader.extended_fuses=0xFF

attiny45at8.bootloader.path=empty
attiny45at8.bootloader.file=empty45at8.hex
attiny45at8.bootloader.tool=arduino:avrdude

attiny45at8.build.mcu=attiny45
attiny45at8.build.f_cpu=8000000L
attiny45at8.build.core=tiny

###########################################################################

attiny45at1.name=ATtiny45 @ 1 MHz

attiny45at1.upload.tool=arduino:arduinoisp

attiny45at1.upload.maximum_size=4096
attiny45at1.upload.maximum_data_size=256

# Default clock (slowly rising power; long delay to clock; 8 MHz internal; divide clock by 8)

# Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms; [CKSEL=0010 SUT=10]; default value

# Divide clock by 8 internally; [CKDIV8=0]

# Brown-out detection disabled; [BODLEVEL=111]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

attiny45at1.bootloader.low_fuses=0x62
attiny45at1.bootloader.high_fuses=0xD7
attiny45at1.bootloader.extended_fuses=0xFF

attiny45at1.bootloader.path=empty
attiny45at1.bootloader.file=empty45at1.hex
attiny45at1.bootloader.tool=arduino:avrdude

attiny45at1.build.mcu=attiny45
attiny45at1.build.f_cpu=1000000L
attiny45at1.build.core=tiny

###########################################################################

attiny85at128.name=ATtiny85 @ 128 KHz  (watchdog oscillator; 1.8 V BOD)

attiny85at128.upload.tool=arduino:arduinoisp

attiny85at128.upload.maximum_size=8192
attiny85at128.upload.maximum_data_size=512

# WD. Osc. 128 kHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 0 ms; [CKSEL=0100 SUT=00]

# Brown-out detection level at VCC=1.8 V; [BODLEVEL=110]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

# Serial program downloading (SPI) enabled; [SPIEN=0]

attiny85at128.bootloader.low_fuses=0xC4
attiny85at128.bootloader.high_fuses=0xD6
attiny85at128.bootloader.extended_fuses=0xFF

attiny85at128.bootloader.path=empty
attiny85at128.bootloader.file=empty85at1.hex
attiny85at128.bootloader.tool=arduino:avrdude

attiny85at128.build.mcu=attiny85
attiny85at128.build.f_cpu=128000L
attiny85at128.build.core=tiny

###########################################################################

attiny25at8.name=ATtiny25 @ 8 MHz

attiny25at8.upload.tool=arduino:arduinoisp

attiny25at8.upload.maximum_size=2048
attiny25at8.upload.maximum_data_size=128

# Default clock (slowly rising power; long delay to clock; 8 MHz internal)

# Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms; [CKSEL=0010 SUT=10]; default value

# Brown-out detection disabled; [BODLEVEL=111]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

attiny25at8.bootloader.low_fuses=0xE2
attiny25at8.bootloader.high_fuses=0xD7
attiny25at8.bootloader.extended_fuses=0xFF

attiny25at8.bootloader.path=empty
attiny25at8.bootloader.file=empty25at8.hex
attiny25at8.bootloader.tool=arduino:avrdude

attiny25at8.build.mcu=attiny25
attiny25at8.build.f_cpu=8000000L
attiny25at8.build.core=tiny

###########################################################################

attiny25at1.name=ATtiny25 @ 1 MHz

attiny25at1.upload.tool=arduino:arduinoisp

attiny25at1.upload.maximum_size=2048
attiny25at1.upload.maximum_data_size=128

# Default clock (slowly rising power; long delay to clock; 8 MHz internal)

# Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms; [CKSEL=0010 SUT=10]; default value

# Brown-out detection disabled; [BODLEVEL=111]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

attiny25at1.bootloader.low_fuses=0x62
attiny25at1.bootloader.high_fuses=0xD7
attiny25at1.bootloader.extended_fuses=0xFF

attiny25at1.bootloader.path=empty
attiny25at1.bootloader.file=empty25at1.hex
attiny25at1.bootloader.tool=arduino:avrdude

attiny25at1.build.mcu=attiny25
attiny25at1.build.f_cpu=1000000L
attiny25at1.build.core=tiny

###########################################################################

attiny4313at8.name=ATtiny4313 @ 8 MHz

attiny4313at8.upload.tool=arduino:arduinoisp

attiny4313at8.upload.maximum_size=4096
attiny4313at8.upload.maximum_data_size=256

# Default clock (slowly rising power; long delay to clock; 8 MHz internal)

# Int. RC Osc. 8 MHz; Start-up time: 14 CK + 65 ms; [CKSEL=0100 SUT=10]; default value

# Brown-out detection disabled; [BODLEVEL=111]

# Serial program downloading (SPI) enabled; [SPIEN=0]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

attiny4313at8.bootloader.low_fuses=0xE4
attiny4313at8.bootloader.high_fuses=0x9F
attiny4313at8.bootloader.extended_fuses=0xFF

attiny4313at8.bootloader.path=empty
attiny4313at8.bootloader.file=empty4313at8.hex
attiny4313at8.bootloader.tool=arduino:avrdude

attiny4313at8.build.mcu=attiny4313
attiny4313at8.build.f_cpu=8000000L
attiny4313at8.build.core=tiny

###########################################################################

attiny4313at1.name=ATtiny4313 @ 1 MHz

attiny4313at1.upload.tool=arduino:arduinoisp

attiny4313at1.upload.maximum_size=4096
attiny4313at1.upload.maximum_data_size=256

# Default clock (slowly rising power; long delay to clock; 8 MHz internal; divide clock by 8)

# Int. RC Osc. 8 MHz; Start-up time: 14 CK + 65 ms; [CKSEL=0100 SUT=10]; default value

# Divide clock by 8 internally; [CKDIV8=0]

# Brown-out detection disabled; [BODLEVEL=111]

# Serial program downloading (SPI) enabled; [SPIEN=0]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

attiny4313at1.bootloader.low_fuses=0x64
attiny4313at1.bootloader.high_fuses=0x9F
attiny4313at1.bootloader.extended_fuses=0xFF

attiny4313at1.bootloader.path=empty
attiny4313at1.bootloader.file=empty4313at1.hex
attiny4313at1.bootloader.tool=arduino:avrdude

attiny4313at1.build.mcu=attiny4313
attiny4313at1.build.f_cpu=1000000L
attiny4313at1.build.core=tiny

###########################################################################

attiny2313at8.name=ATtiny2313 @ 8 MHz

attiny2313at8.upload.tool=arduino:arduinoisp

attiny2313at8.upload.maximum_size=2048
attiny2313at8.upload.maximum_data_size=128

# Default clock (slowly rising power; long delay to clock; 8 MHz internal)

# Int. RC Osc. 8 MHz; Start-up time: 14 CK + 65 ms; [CKSEL=0100 SUT=10]; default value

# Brown-out detection disabled; [BODLEVEL=111]

# Serial program downloading (SPI) enabled; [SPIEN=0]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

attiny2313at8.bootloader.low_fuses=0xE4
attiny2313at8.bootloader.high_fuses=0x9F
attiny2313at8.bootloader.extended_fuses=0xFF

attiny2313at8.bootloader.path=empty
attiny2313at8.bootloader.file=empty2313at8.hex
attiny2313at8.bootloader.tool=arduino:avrdude

attiny2313at8.build.mcu=attiny2313
attiny2313at8.build.f_cpu=8000000L
attiny2313at8.build.core=tiny

###########################################################################

attiny2313at1.name=ATtiny2313 @ 1 MHz

attiny2313at1.upload.tool=arduino:arduinoisp

attiny2313at1.upload.maximum_size=2048
attiny2313at1.upload.maximum_data_size=128

# Default clock (slowly rising power; long delay to clock; 8 MHz internal; divide clock by 8)

# Int. RC Osc. 8 MHz; Start-up time: 14 CK + 65 ms; [CKSEL=0100 SUT=10]; default value

# Divide clock by 8 internally; [CKDIV8=0]

# Brown-out detection disabled; [BODLEVEL=111]

# Serial program downloading (SPI) enabled; [SPIEN=0]

# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

attiny2313at1.bootloader.low_fuses=0x64
attiny2313at1.bootloader.high_fuses=0x9F
attiny2313at1.bootloader.extended_fuses=0xFF

attiny2313at1.bootloader.path=empty
attiny2313at1.bootloader.file=empty2313at1.hex
attiny2313at1.bootloader.tool=arduino:avrdude

attiny2313at1.build.mcu=attiny2313
attiny2313at1.build.f_cpu=1000000L
attiny2313at1.build.core=tiny

###########################################################################
mschlenker commented 9 years ago

The boards file looks OK, to cross check you might want to install: http://highlowtech.org/?p=1695

Stay tuned. Give me another hour for the avrdude.conf

glprinamello commented 9 years ago

thank you.

mschlenker commented 9 years ago

What the hell? I just updated the AVR toolchain to 1.6.4 via the boards manager and tested with an ATtiny45 and the highlowtech version of the board definitions. The problem went away. As far as I can see there were no changes related to ATtiny45 (just to 85) in the avrdude.conf. If it goes away for you as well please close - this bug will probably resurface from time to time.

glprinamello commented 9 years ago

still gives me:

Arduino:1.6.3 (Windows XP), Scheda:"ATtiny, ATtiny85, 1 MHz (internal)"

C:\Documents and
Settings\Giangy_Home\Desktop\PROGETTAZIONE\ArduinoProg\Arduino\hardware\tools\avr/bin/avrdude
-CC:\Documents and
Settings\Giangy_Home\Desktop\PROGETTAZIONE\ArduinoProg\Arduino\hardware\tools\avr/etc/avrdude.conf
-v -v -v -v -pattiny85 -cstk500v1 -PCOM2 -b19200 -e -Uefuse:w:0xff:m
-Uhfuse:w:0xdf:m -Ulfuse:w:0x62:m

avrdude: Version 6.0.1, compiled on Mar 30 2015 at 14:56:06

     Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

     Copyright (c) 2007-2009 Joerg Wunsch

     System wide configuration file is "C:\Documents and

Settings\Giangy_Home\Desktop\PROGETTAZIONE\ArduinoProg\Arduino\hardware\tools\avr/etc/avrdude.conf"

avrdude: error at C:\Documents and
Settings\Giangy_Home\Desktop\PROGETTAZIONE\ArduinoProg\Arduino\hardware\tools\avr/etc/avrdude.conf:332:
programmer type must be written as "id_type"

Errore durante la scrittura del bootloader

while trying to write boot to ATtiny85 1MHz internal

glprinamello commented 9 years ago

where do i find the avr toolchain you are using?

mschlenker commented 9 years ago

I am using the updated toolchain provided via the boards manager.

Would you try to replace your C:\Documents and Settings\Giangy_Home\Desktop\PROGETTAZIONE\ArduinoProg\Arduino\hardware\tools\avr/etc/avrdude.conf with this file and test again:

https://gist.github.com/mschlenker/c3ac5c8bb455fc5f98df

BTW: Did you restart Arduino after doing "Tools > Boards > Boards Manager > Update"?

glprinamello commented 9 years ago

Holy cow.. now it works.. why? you are great...

Thank you...

mschlenker commented 9 years ago

@glprinamello Replacing C:\Documents and Settings\Giangy_Home\Desktop\PROGETTAZIONE\ArduinoProg\Arduino\hardware\tools\avr/etc/avrdude.confdid two things: First make sure the config is correct, second add the missing read section.

Da steh ich nun ich armer Tor und bin so klug als wie zuvor.

Maybe the changes on avrdude did trigger some assumptions. I do not know, I probably never will. Please close this bug, it will resurface soon enough. Regarding the old avrdude.conf that was still used this might be another issue when instlled from zip.

glprinamello commented 9 years ago

Thank you again have a nice day.