Howdy folks!

When I first got my ATtiny2313 it took me the better part of 4 hours to finally get it programmed. I went through countless tutorials online that were old and outdated. I was never able to get the correct files from one website. I had to combine the files from several websites before I was finally able to program my ATtiny.

NOTE: With the recent update of the Arduino IDE I can't figure out how to get the boards to show up in the list. I'm sure it's easy and I'll figure it out in a bit. For now you are still going to have to use the old version of arduino for programming any ATtiny chips.

The goal of my (Current and Updated!!!) series is to find tutorials online that are old, outdated, or nonworking and make a new tutorial that I have tested and used myself.
My first i'ble in this series is how to use IR remotes to control your Arduino.
I will keep updating my i'bles in this series to work with new Arduino boards, IDEs and the like.

Now I've never tested this process on a windows but I know that it works on a mac. It should be the same for windows, just delete any mac content in the zip.

Step 1: Download the Files

First you need to download the boards information for the Arduino IDE. This file will need to be downloaded in order to program a ATtiny2313. http://www.mediafire.com/download/ju012s124w4gbl2/tiny.zip

Once you have downloaded that you will need to extract the 'tiny' folder to your Arduino hardware folder. Now if you don't know where that is or if you don't have it here are the steps.

  • Go to your Arduino documents. This is where all the sketches are saved (by default).
  • For mac users it's Macintosh HD>Users>username>documents>Arduino.
  • Create a new folder and name it "hardware", just like that. Into this folder you will put the 'tiny' folder that you downloaded.
  • For PC usersProgram Files(x86)=>Arduino=>hardware. Copy the 'tiny' folder into it and restart the Arduino IDE.Delete the extra mac content.
<p>If i'm using Arduino IDE 1.6.8 is there a way to make 2313 work ? I've downloaded the board definition from: <a href="https://code.google.com/archive/p/arduino-tiny/">https://code.google.com/archive/p/arduino-tiny/</a></p><p>but it doesn't work, the error is &quot;invalid library found&quot; when i start the ide</p><p>Any ideeas?</p>
<p>When I try to upload the blink program this error appears.</p><p>ERROR COMPILING FOR BOARD ATTINY2313 @8 MHZ</p><p>Arduino: 1.6.9 (Windows 7), Board: &quot;ATtiny2313 @ 8 MHz&quot;</p><p>Warning: Board tiny:tiny:attiny44at1 doesn't define a 'build.board' preference. Auto-set to: TINY_ATTINY44AT1</p><p>Warning: Board tiny:tiny:attiny84at1 doesn't define a 'build.board' preference. Auto-set to: TINY_ATTINY84AT1</p><p>Warning: Board tiny:tiny:attiny84at16 doesn't define a 'build.board' preference. Auto-set to: TINY_ATTINY84AT16</p><p>Warning: Board tiny:tiny:attiny84at8 doesn't define a 'build.board' preference. Auto-set to: TINY_ATTINY84AT8</p><p>Warning: Board tiny:tiny:attiny4313at8 doesn't define a 'build.board' preference. Auto-set to: TINY_ATTINY4313AT8</p><p>Warning: Board tiny:tiny:attiny85at8 doesn't define a 'build.board' preference. Auto-set to: TINY_ATTINY85AT8</p><p>Warning: Board tiny:tiny:attiny4313at1 doesn't define a 'build.board' preference. Auto-set to: TINY_ATTINY4313AT1</p><p>Warning: Board tiny:tiny:attiny85at16e doesn't define a 'build.board' preference. Auto-set to: TINY_ATTINY85AT16E</p><p>Warning: Board tiny:tiny:attiny2313at1 doesn't define a 'build.board' preference. Auto-set to: TINY_ATTINY2313AT1</p><p>Warning: Board tiny:tiny:attiny85at1 doesn't define a 'build.board' preference. Auto-set to: TINY_ATTINY85AT1</p><p>Warning: Board tiny:tiny:attiny2313at8 doesn't define a 'build.board' preference. Auto-set to: TINY_ATTINY2313AT8</p><p>Warning: Board tiny:tiny:attiny85at16p doesn't define a 'build.board' preference. Auto-set to: TINY_ATTINY85AT16P</p><p>Warning: Board tiny:tiny:attiny25at1 doesn't define a 'build.board' preference. Auto-set to: TINY_ATTINY25AT1</p><p>Warning: Board tiny:tiny:attiny24at16 doesn't define a 'build.board' preference. Auto-set to: TINY_ATTINY24AT16</p><p>Warning: Board tiny:tiny:attiny85at128 doesn't define a 'build.board' preference. Auto-set to: TINY_ATTINY85AT128</p><p>Warning: Board tiny:tiny:attiny45at8 doesn't define a 'build.board' preference. Auto-set to: TINY_ATTINY45AT8</p><p>Warning: Board tiny:tiny:attiny44at8 doesn't define a 'build.board' preference. Auto-set to: TINY_ATTINY44AT8</p><p>Warning: Board tiny:tiny:attiny45at1 doesn't define a 'build.board' preference. Auto-set to: TINY_ATTINY45AT1</p><p>Warning: Board tiny:tiny:attiny25at8 doesn't define a 'build.board' preference. Auto-set to: TINY_ATTINY25AT8</p><p>Build options changed, rebuilding all</p><p>recipe.preproc.macros pattern is missing</p><p>Error compiling for board ATtiny2313 @ 8 MHz.</p><p>This report would have more information with</p><p>&quot;Show verbose output during compilation&quot;</p><p>option enabled in File -&gt; Preferences.</p>
You have all the boards installed in the wrong place or you are using a bad/outdated boards.txt
<p>i am having the same problem</p><p>please be elaborate.</p><p>thanks</p>
<p>it says as an error</p><p>recipe.preproc.macros pattern is missing</p>
<p>Instead of using the Blink program, I add my own of program that uses RGB led and three buttons to turn on the individual red, green and blue. </p>
<p>I like it!</p>
<p>Great ible, thank you very much from... John :)</p>
<p>Gracias por su Buen trabajo. &Eacute;l conseguido abrir y cerrar entendre y Programar el siempre utilizado. En Mi Caso, necesito dos Entradas anal&oacute;gicas y Parece Ser Que El att2313, sin DICHO Tiene o mejor, yo no se si las utilizarlo Tiene.</p><p>De todos modos gracias. </p>
De nada! Comprend&eacute; un poco :D
<p>Nice write up-even a newcomer like me can understand it.I have a question- Is it essential that attiny 2313 first needs to be boot loaded before programming it? sureshparanjape</p>
Not sure. I never had any problems with bootloading one. I just bought it, connected it up to my arduino and it worked fine.
<p>Sorry, I couldn't follow: you didn't have any problem with bootloading or using without bootloading? I purchase my first 4313 and studying it.I am familiar in writing small sketches for atmega 328.May I ask a question related to 4313-can a sketch work with same language on 4313? I have written a sketch for controlling heater and want to use 4313 for the purpose.Thanking you.Sawala</p>
<p>Sorry it was confusing :D . I didn't have to any boot loading or anything. I was able to program it (using the methods in my i'ble) straight from the manufacturer. </p><p>If you are just using inputs (i.e. light sensor) and output to like a relay your code will work. Just be aware there are certain functions that don't work such as using servos, melody, or quite a few other functions. Try googling attiny master slave and you should find some things that will allow you to use servos with the attunes. </p><p>But if you aren't doing anything complicated then you can just upload the same code for your 328 to the 4313.</p><p>Hope that helps. . .</p><p>Good luck.</p>
<p>(OR) please send me programming area around MADURAI. i am weighting for your better reply.</p>
<p>Dear friend, i have doing my project, i am using ATtiny 2313, i have program and Hex.code, i have no programmer kit, so i want your help. My mail id is welcomeahamed@gmail.com </p>
<p>works great, for clarifications sake... it's sometimes easy to get mixed up between digital pin 7 and the hardware 1-20 &quot;7&quot;. before chucking it in frustration, digital pin 7 is actually pin 9, just for people like me who make easy mistakes :)</p>
Thanks a ton for this i was about to lose it before where I was on all of these confusing sites for this board

About This Instructable




Bio: ¿Qué tal? I'm 16 and enjoy learning about electronics. I am self-taught. I love programming my Arduino and soldering circuits. My newest hobby is ... More »
More by HavocRC:DIY FPV Antenna Protector Case Control Your RC Plane With Your Phone's Acclerometer DIY Receiver Controlled Switch (Cheap and Easy) 
Add instructable to: