Instructables
loading
loading
Picture of Installing Attiny13 core files
In an instructable "Make an Attiny13 based IR proximity sensor for $2.42" by Dustin Andrews refers to having to install the Attiny13 core files.


Unfortunately the core files that are linked to do not contain the boards.txt file that will let the Attiny 13 show up as choice under 'Tools-boards' in the IDE. If you are a novice at installing core files this may seem daunting, but since I just did it, I thought I'd just share that knowledge with you.

Do the following:
-Download the Attiny cores from: http://sourceforge.net/projects/ard-core13/
-Go to your sketches folder
-most likely there is a folder called 'hardware' if not, create that.
-open the hardware folder
-create a folder called 'attiny13'
-open that folder
-create a folder called cores
-open that folder
-create a new folder called 'core13'
-so now you have the structure /hardware/attiny13/cores/core13
-open that deepest folder and unzip the attiny core files to that folder
-go back to your /hardware/attiny13 folder
-create a text file called 'boards.txt'
open that file.
paste the following text in that file:

###########################################################################
attiny13int.name=Attiny13 @ 128 KHz (internal watchdog oscillator)
attiny13int.upload.using=arduino:arduinoisp
attiny13int.upload.maximum_size=1024
attiny13int.upload.speed=250 # important for not losing connection to a slow processor
attiny13int.bootloader.low_fuses=0x7B
attiny13int.bootloader.high_fuses=0xFF
attiny13int.bootloader.unlock_bits=0x3F
attiny13int.bootloader.lock_bits=0x3F
attiny13int.build.mcu=attiny13
attiny13int.build.f_cpu=128000
attiny13int.build.core=core13

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

attiny13at4.name=ATtiny13 @ 4.8MHz (internal 4.8 MHz clock)
attiny13at4.upload.using=arduino:arduinoisp
attiny13at4.bootloader.low_fuses=0x69
attiny13at4.bootloader.high_fuses=0xff
attiny13at4.upload.maximum_size=1024
attiny13at4.build.mcu=attiny13
attiny13at4.build.f_cpu=600000
attiny13at4.build.core=core13
###############################################################

attiny13.name=ATtiny13 @ 9.6MHz (interne 9.6 MHz clock)
attiny13.upload.using=arduino:arduinoisp
attiny13.bootloader.low_fuses=0x7a
attiny13.bootloader.high_fuses=0xff
attiny13.upload.maximum_size=1024
attiny13.build.mcu=attiny13
attiny13.build.f_cpu=1200000
attiny13.build.core=core13
###############################################################

I got this 'boards.txt' file from here, but had to adapt it a little as that file 'sneekishly'  suddenly changes the programmer in its last definition and also I had big trouble getting more than 2 boards to show up, until I realised that 2 of the board definitions carried the same name, so I had to change that as well. Also, the names of the boards are not entirely correct. The fuses on the 4.8 MHz board  are 0x69 and 0xFF. That indicates that the prescaler is already set to division by eight, which corresponds with the f_cpu of 600.000.
For the 9.6MHz internal clock board, we see that the fuses 0x7a and 0xFF are in fact correct for 9.6MHz without prescaler, but then the f_cpu of 1200.000 is not correct, that  points to a division by 8 for which the fuses should be 0x6A and 0xFF. However, i didnt mess with that and everything worked fine, but the timings might be off.
You may want to adapt your boards.txt file once you have it all installed to reflect the true settings. Also, you will not find the 128kHz setting very useful and the danger is that you may not be able to communicate with your  chip anymore because it becomes too slow

So, just as a final check that you have done everything right:
Go to your hardware folderYou should see a folder there called attiny13
Open that folder
It should have 2 entries: a folder called 'cores' and a text file called 'boards.txt'
open the folder 'cores'
That should have one entry: a folder called 'core13'
open 'core13'. There you should find 13 files with 'h', 'c' and 'cpp' extensions.

To make it easy I made a zip file that should unpack with the right directory structure. Unzip it in the 'hardware' folder.

As an added note: in 2015 when i wanted to  program some Attiny13's, seemingly i had screwed up my installation and I couldnt program the chips anymore. Apparently I had forgotten I wrote this ibble. A search found my own ibble and  when i installed the zip file... everything went like clockwork again.
a1m91817 days ago

its Done :)
thank you for your help diy_bloke ! :) you helped me a lot.

Thank you very much.

a1m918 a1m91817 days ago

Now I am going to follow your

Simple and cheap Fuse Doctor for Attiny
diy_bloke (author)  a1m91817 days ago

left a comment there for you. What happened that you already need a fusedoctor? screwed up yr fuses?

Yes I had actually bricked my 2 Attiny13 so the IDE was giving the Yeiks (what ever) error. I read your comments and post regarding that error and found simple fuse doctor. that fixed my Chip without any trouble :)

diy_bloke (author)  a1m91815 days ago

we have all been there :-)

diy_bloke (author)  a1m91817 days ago

my pleasure. good luck. left a comment there for you

a1m91828 days ago

I am using Arduino as ISP
ArduinoISP Sketch is uploaded to UNO's Atmega Chip

then Selected board ATTINY13 internal oscillator.

Selected Programmer > Arduino as ISP

Open the Blink program for ATtiny13 where pin0 is set for output as shown in picture.

when click upload. it gives me following error. Help please.

Capture.PNG
diy_bloke (author)  a1m91827 days ago

read my earlier reply as well, but maybe you have your sequence wrong and you are trying to upload to your UNO.
Make sure you have the ISP uploades to UNO
then attach your Attinyprogrammer
Then select Attiny13 under 'tools make sure you have Arduino as ISP selected.
Go to file and select
'Upload using Programmer"

Sorry But I guess there is some miss understanding :)

actually I just want to burn boot loader to attiny (if it is necessary) to make it arduino compatible.for this purpose, I am uploading ArduinoISP sketch to my Arduino UNO board to use UNO as ISP for ATTINY. but the problem is that I am unable to uplaod any program to it.

diy_bloke (author)  a1m91825 days ago

I see and I think I know where the problem is. What bootloader did you upload to the Attiny13?
As far as I know there is no bootloader for the Attiny13. If you just clicked the option "Tools- Burn Bootloader", The only thing that happens is that it sets some fuses that define some characteristics of the Attiny, like what the oscillator speed is.
It is not that it suddenly has a bootloader that will upload programs. For that you just have to use "File-Upload Using Programmer"

So, again.. what you do is to laod the ISP in your UNO, connect the progarmming circuit (did you include the resistor in your circuit to prevent resetting?)
Then you choose "Tools-board-Attiny13-9.6MHz" (or 4.8 or whatever) and you then choose 'Burn bootloader"
As I explained, that doesnt burn a bootloader, it just sets fuses to tell the attiny it is 9.6 MHz (in this case).
Then you load the program you want into yr attiny13 in the IDE and you go to Files-Upload using programmer"
Done

Well thank you again diy_bloke !

okay it seems I have bricked my ATtiny13. Not a big issue , I'll buy new one :)
but I have a question, do ATtiny really need boot loader ? I mean can I directly upload program again and again using Arduino IDE ?? like ATMEGA 328.

Thank you again. I will again perform these steps as you directed then I will post the results.

diy_bloke (author)  a1m91824 days ago

you really should read my replies as I explained that already.
There is no bootloader for the Attiny13.
you upload programs through ISP using "Files upload using programmer"

"burning the bootloader" only sets fuses, it doesnt put a bootloader in the chip as there is no bootloader.
Just follow the steps as i described

diy_bloke (author)  diy_bloke25 days ago

I see you have the capacitor in yr circuit so there is no need for a resistor

diy_bloke (author)  a1m91825 days ago

Make sure you read all my answers: with regard to tyhe 'Yikes' error message. If you have burned a bootloader, thinking you needed to burn the UNO bootloader, you have burnt some unexpected fuses in your Attiny13. And therefore it isnt properly recognized. So if your problem persists and you have checked all your connections and settings, you have most likely bricked your Attiny13.
need a HV programmer to set them back to factory values.
If you have more than one Attiny13, I suggest you take a fresh one and follow my instructions on what to do to the letter (make sure you read all 3 replies I gave you). If you only have one Attiny13, you must first unbrick it

No I have just read few of them. Sorry for that. I will read them first then I'll ask you the next question.
Thanks.

diy_bloke (author)  a1m91827 days ago

the first error about PAGEL and BS you can just ignore.
The 2nd error can mean a lot, e.g. that you do not have your connections right, but it can alos mean that somehow some unwanted fuses were set that make your chip unprogrammable via ISP.
so just a few questions:
are you sure you made all the right connections in your programmer.
Are you sure it is an Attiny13?
Is that a new attiny or has it been used before

@diy_bloke, Thank you for your quick reply.

Yes the Chip is new, actually it is my first time that I am trying to upload program into ATTINY chip, and failing since the first time I tried to upload. and about connections, the chip is connected as follows:

ATTINY13 || Arduino UNO

pin 1 (reset) = 10

pin 4 (GND) = GND

pin 5 (SCK) = 11

pin 6 (MISO) = 12

pin 7 (MOSI) = 13

pin 8 (Vcc) = 5v

A 10uf capacitor (-) side to GND of arduino and (+) to Reset

attiny-ispx5_bb.png
diy_bloke (author) 2 months ago

The new Arduino IDE structure requires a different installation of the files. Currently I cannot update this 'ibble' due to the new editor, but when that is solved I will update this ibble for the Arduino IDE 1.6 and higher

diy_bloke (author) 2 months ago

by now my boards file looks like this:

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

attiny13at4.name=ATtiny13 @ 4.8MHz (internal 4.8 MHz clock/w 8 prescaler)
attiny13at4.upload.using=arduino:arduinoisp
attiny13at4.bootloader.low_fuses=0x69
attiny13at4.bootloader.high_fuses=0xff
attiny13at4.upload.maximum_size=1024
attiny13at4.build.mcu=attiny13
attiny13at4.build.f_cpu=600000
attiny13at4.build.core=core13
###############################################################

attiny13at4np.name=ATtiny13 @ 4.8MHz (internal 4.8 MHz clock no prescaler)
attiny13at4np.upload.using=arduino:arduinoisp
attiny13at4np.bootloader.low_fuses=0x79
attiny13at4np.bootloader.high_fuses=0xff
attiny13at4np.upload.maximum_size=1024
attiny13at4np.build.mcu=attiny13
attiny13at4np.build.f_cpu=4800000
attiny13at4np.build.core=core13
###############################################################

attiny13.name=ATtiny13 @ 9.6MHz (internal 9.6 MHz clock/no prescaler)
attiny13.upload.using=arduino:arduinoisp
attiny13.bootloader.low_fuses=0x7a
attiny13.bootloader.high_fuses=0xff
attiny13.upload.maximum_size=1024
attiny13.build.mcu=attiny13
attiny13.build.f_cpu=9600000
#attiny13.build.f_cpu=1200000
attiny13.build.core=core13
###############################################################

attiny13ps.name=ATtiny13 @ 9.6MHz (internal 9.6 MHz clock/w 8 prescaler)
attiny13ps.upload.using=arduino:arduinoisp
attiny13ps.bootloader.low_fuses=0x6a
attiny13ps.bootloader.high_fuses=0xff
attiny13ps.upload.maximum_size=1024
attiny13ps.build.mcu=attiny13
attiny13ps.build.f_cpu=1200000
attiny13ps.build.core=core13

###############################################################
attiny13ex.name=ATtiny13 @ 16MHz (External Crystal)
attiny13ex.upload.using=arduino:arduinoisp
attiny13ex.bootloader.low_fuses=0x78
attiny13ex.bootloader.high_fuses=0xff
attiny13ex.upload.maximum_size=1024
attiny13ex.build.mcu=attiny13
attiny13ex.build.f_cpu=16000000
attiny13ex.build.core=core13

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

Thanks for the write up, diy_bloke! This has been a big help!

diy_bloke (author)  HDL_CinC_Dragon6 months ago

Happy to be of service :-)

Nice work!

Did you also have to change the wiring.c like it says here? I think I ended up needing to do that to get the blink program to work at the right speed. It may not matter for the IR sensor.
diy_bloke (author)  dustinandrews11 months ago

Blink on 1.05 works

diy_bloke (author)  dustinandrews3 years ago
No I did not do that. I did not try the blink program, just quickly a few other statements and that worked. I did not really set out to validate the core, just to instruct how to install the available one.
A quick test showed me it was working
diy_bloke (author)  diy_bloke3 years ago
Let me add that I am not sure if the link you gave above is the same core and I used the 22 IDE, not the 1.0
diy_bloke (author)  diy_bloke3 years ago
I checked a bit further and it seems that the article about changing the wiring.c that you provide th elink for, deals with a different core. That wiring.c has references to the 44 and 84, whereas the one I describe above (that is coming from yr ibble :-) ) does not have these. Also the header file 'iotn13.h' is not present in the core (from 'Smeezekitty' you and I link to, suggesting the change in wiring.c involves a different core.
ihart11 months ago

Thanks for writing this up. I know it's been a while. I am running Arduino 1.5.4 and I am having issues with getting the Attiny13 to compile.

First, the only place I can get the Attiny13's to show up in the Arduino IDE is when I put the folder here:

C:\Program Files\Arduino\hardware\arduino

Second, when I chose any of the 3 Attiny13's offered in the Arduino IDE and compile my sample sketch I get this error:
processing.app.debug.RunnerException
at processing.app.debug.Compiler.getCommandCompilerCPP(Compiler.java:554)
at processing.app.debug.Compiler.compileFiles(Compiler.java:246)
at processing.app.debug.Compiler.compileSketch(Compiler.java:592)
at processing.app.debug.Compiler.compile(Compiler.java:96)
at processing.app.Sketch.build(Sketch.java:1569)
at processing.app.Sketch.build(Sketch.java:1548)
at processing.app.Editor$DefaultRunHandler.run(Editor.java:1915)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NullPointerException
at processing.app.helpers.StringReplacer.replaceFromMapping(StringReplacer.java:99)
at processing.app.helpers.StringReplacer.replaceFromMapping(StringReplacer.java:91)
at processing.app.helpers.StringReplacer.formatAndSplit(StringReplacer.java:39)
at processing.app.debug.Compiler.getCommandCompilerCPP(Compiler.java:552)
... 7 more

Note: If I compile my sample sketch for an UNO, it looks good.

Any ideas?

gussmith1 year ago

Does not work for me in 1.5.6-r2

diy_bloke (author)  gussmith1 year ago

sorry about that. I have no experience with 1.5.6-r2. It is a bèta release. maybe that is the problem

I installed 1.05 and there it works.

Idrispo1 year ago

i made this!!!...but not yet try the led blinking...

diy_bloke (author)  Idrispo1 year ago

Great! :-)

danm_daniel2 years ago
legit, thanks DIY_Bloke
diy_bloke (author)  danm_daniel2 years ago
my pleasure
WWC2 years ago
Very good!

I was actually trying to install the 13 files and not working. Then i came across your ible on it and you saved the day. Works perfectly.

Thanks

W
diy_bloke (author)  WWC2 years ago
My pleasure