Arduino IDE and ATtiny45


****Upgraded 01-03-2010 ***** Now it works also in Arduino 0018 IDE attention to the new position of cores ********
****Upgraded ***** found an error on the schematic, corrected
******* not for newbies ****** you MUST have experience with AVR chips and a good relationship with soldering iron ******

Few weeks ago out of curiosity (and by the way the need to have a simple way to program ATTiny45 for simple tasks) I started to look into adding ATtiny45 as processor into Arduino IDE.
First thing I did was designing a board for Attiny45, something on the tune of the arduinos boards, still modifying it, but usable right now ( schematic Visualizza and board Visualizza or Eagle pkg Scarica ), then started to look into adding to the IDE.

Being the lazy person I am , I decided to go with the quickest route modify an existing core set of files and use an external programmer .
Looking in the net for clues found a set of cores files for another Tiny chip and modified them to suit the tiny45, dropped them into the cores folder in the ide and i was ready to roll !!! piece o' cake ... really, just some minor snafus took me a few day to iron out, but now it's ok. 

You can find my set of cores files here Scarica
Some information useful that come out from a discussion in the Arduino Forum

You HAVE to modify "board.txt" to include the Attiny45 processor, add this part to end of the file

attiny45.name=Arduino w ATtiny45

attiny45.upload.protocol=stk500
attiny45.upload.maximum_size=4096
attiny45.upload.speed=19200

attiny45.bootloader.low_fuses=0xdf
attiny45.bootloader.high_fuses=0xca
attiny45.bootloader.path= attiny45
attiny45.bootloader.file=ATmegaBOOT.hex
attiny45.bootloader.unlock_bits=0x3F
attiny45.bootloader.lock_bits=0x0F

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

these line will define the board giving max memory size for program (4096) and instruct the compiler to build code for the tiny45.

to know which mcu are supported by avr-gcc and their names use
avr-gcc --target-help
in a terminal window (works in Mac OSX and probably in Linux)

PIN MAPPING
The best I can do for the pin mapping is in the pins_arduino.c in the core folder, the function are multiple per pin depends on the function you use to refer to the pin;
I.E. analogWrite (0,231) // output a pwn signal to real pin 5
digitalRead(5) // read a digital value from real pin 1
analogRead(5) // read an analog value from real pin 1
and so on ... like in a real arduino .

Use it , modify it, and report here or in the Arduino forum 
thank you for your time and enjoy !


ċ
ATTiny45board_1.zip
(82k)
Alessandro Saporetti,
25 dic 2009, 00:03
ċ
attiny45.zip
(28k)
Alessandro Saporetti,
01 mar 2010, 03:02
Ċ
Alessandro Saporetti,
25 dic 2009, 00:04
Ċ
Alessandro Saporetti,
25 dic 2009, 00:04
Ċ
Alessandro Saporetti,
25 dic 2009, 00:04
Comments