arduino-tiny and ATtiny44 Success! (kind of)

I've just been playing with an attiny44v and I've got it running with arduino-tiny!

I do have two questions about it though and I was wondering if anyone could shed any light on these.

Firstly, it appears to be running at 8 times slower than it should be. I've been following the high-low tech tutorial (from the guys at MIT - http://hlt.media.mit.edu/?p=1229) and the blink example changes every 8 seconds rather than every second.

Secondly, I've used the empty84at8.hex bootloader, as there wasn't one called empty44at8.hex in the arduino-tiny distribution. Where do I get / how do I build the proper version of this file? Do i need to?

The relevant section of my boards.txt follows. I'm running arduino-0022 and arduino-tiny-0022-0008, using an Uno as the ISP.

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

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

# The following do NOT work...
# attiny44at8.upload.using=avrispv2
# attiny44at8.upload.using=Pololu USB AVR Programmer

# The following DO work (pick one)...
# attiny44at8.upload.protocol=avrispv2
attiny44at8.upload.using=arduino:arduinoisp
# attiny44at8.upload.using=pololu

attiny44at8.upload.maximum_size=4096

# 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=empty84at8.hex

attiny44at8.bootloader.unlock_bits=0xFF
attiny44at8.bootloader.lock_bits=0xFF

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

Cheers, Pol.

I'm glad you have it working!

Processors leave the factory configured to run at 1 MHz (internal 8 MHz oscillator divided by 8). To reconfigure the processor to run at 8 MHz, the fuse bits have to be changed.

This is where the empty*.hex files come into play. They are not bootloaders but empty stubs. They allow the fuse bits to be changed from the Arduino IDE but serve no other purpose. You should be able to copy the empty84at8.hex to empty44at8.hex (or use the empty84at8.hex as-is).

Once you have the boards.txt entry correct (it looks like you do), you can change the fuse bits by selecting the board (ATtiny44 @ 8 MHz) and then executing Tools / Burn Bootloader in the Arduino IDE.

Edit: fixed the eight.

Bingo! Worked like a treat with the boards.txt above.

Thanks CB.