A Tiny Programmer for ATtiny Microcontrollers With Arduino UNO : Part1-Older ATtinys

Introduction: A Tiny Programmer for ATtiny Microcontrollers With Arduino UNO : Part1-Older ATtinys

About: Concerned about projects and constructions in the field of electronics. New and old projects.

It is currently interesting to use ATtiny series microcontrollers due to their versatility, low price but also the fact that they can be easily programmed in environments such as Arduino IDE.

Programs designed for Arduino modules can be easily transferred to ATtiny microcontrollers.

That's why ATtiny programming with Arduino is interesting.

This project aims to program the ATtiny13,85,84 microcontrollers and the range they belong to.

Special attention will be paid to ATtiny2313 programming (and the range it belong to).

We will build a shield for Arduino UNO on which there is a ZIP socket through which ATtiny to be programmed is connected.

It is cheap, easy to make and useful.


All components can be found on AliExpress at low prices.

Exceptions are those from their own workshop, which are even cheaper.

Step 1: Schematic Diagram

It's very simple.

The shield is powered by Arduino UNO, the presence of the supply voltage being indicated by the LED lighting.

Of course, only one chip can be programmed at a time, main photo being only illustrative of how the chips to be programmed are inserted. This is also shown in the schematic diagram.

Important is the presence of C1 = 22uF / 16V at the Arduino Reset pin. Its lack leads to not being able to do the programming due to the Arduino reset at the start of programming.

Connector J5 will be in the ON position when programming ATtiny13, 84, 85 and OFF when programming ATtiny2313 (C1 is in circuit only in the first case).

C2 = 47uF / 16V is anti-oscillating on the power supply.

The actual programming is done at J1 pins 3,4,5,6, respectively D10, D11, D12, D13 Arduino.

Because programming is done on 4 wires only, it is easy to adapt the programming of other ATtiny instead of ATtiny 84, using appropriate adapter plates.

The shield is connected to the Arduino UNO so that there is a 1 to 1 correspondence of the pins of the 4 connectors (see main photo).

Step 2: List of Components, Materials, Tools.

1. Arduino UNO R3-1 pc.

2. ZIP socket 2X14 pin-1pc.

3. C=22uF/16V-1pc, C=47uF/16V-1pc.

4. R=0,33K/0,25W-1pc.

5. LED 5mm. Red-1pc.

6. Connector pinheader vertical 10pin-1pc, 8pin-2pcs, 6pin-1pc, 2pin-1pc.

7. SMD adapter socket 8in-1pc., 14pin-1pc. There are attachments to the shield, only if you use SMD chips.

8. PCB to plant these components.

9. Fludor, soldering tools, tool for cutting component pins.

10. Digital multimeter (any type).

11. Lust for work.

Step 3: Making PCB

Method1- Using KiCad program

The PCB project in KiCad can be found at:


From here all the files will be downloaded under the ZIP archive (there is a special order for this), it is unzipped and we get all the details of the project, including the labels.

For those who want to make PCB themselves, uses 1.6mm thick FR4,double sided.

No metallic holes.

The crossings are made with uninsulated wire.

After drilling and echting, cover with tin, manually.

We check with the digital multimeter the continuity of the routes and the possible short circuits between them.

The project in KiCad also allows the generation of Gerber files, for factory order.

Method2-Using EasyEda online program

For those who want to order PCBs at the factory,the address will be accessed:


Here, in addition to the wiring diagram, there is also the PCB project under EasyEda.

You can get:
-BOM (bill of materials)

-Gerber files

-Ordering PCB to factory simply and directly.

For this, we open the PCB in the editor(Open in Editor) and obtain the desired information and actions in "Fabrication".

Step 4: PCB Assembly.

It is simple (as in photo) using fludor and soldering tools.

It is useful to cover with plastic (white in the photo) 2X3 pins of ZIP socket. It helps a lot to correctly insert the chips in the socket.

The labels are made with the Inkscape program and are covered with transparent foil.

Once the assembly is finished, check.

Step 5: Upload Arduino UNO With Arduino ISP (In System Programmer).

It's simple, but care must be taken not to have the programmer board inserted in the Arduino!

Connect Arduino board to PC / laptop.

In PC / laptop--> Start--> Control Panel--> Device Manager, we see where the Arduino UNO board appears.

In Arduino IDE -->Tools --> Board -->choose Arduino UNO.

In Arduino IDE -->Tools-->Port-->the port to which Arduino is connected is given.

In Arduino IDE -->Tools-->Programmer:"AVRISP mkII"

In Arduino IDE -->File->-Examples-->ArduinoISP-->ArduinoISP. Upload this sketch on Arduino board.

Now we may insert the programmer in Arduino.

Step 6: Programming an ATtiny13

1. Launches Arduino IDE-->File--Preferences.-->Aditional Boards Managers URLs add adress:


This is done with Copy -->Ctrl + V.(Copy-->Paste not working).-->OK .A good Internet connection is required.

2. Tools-->Board-->Boards Manager. In the table that appears, scroll until we find DIY ATiny.-->Install. Installation may take some time.

After it is done, in Tools --> Board --> DIY ATtiny we will find more ATtiny. From here we will choose the chip we want to program.

To write a program for ATtiny13 using Arduino IDE, we need to consider how the Arduino IDE interprets ATtiny13's pins (pin map):

ATtiny13 pin..............Arduino IDE reference

1................................D5, A0 if Reset of ATtiny13 is disabled

2............................... D3, A3

3............................... D4, A2


5..............................D0(PWM), Tx , MOSI

6..............................D1(PWM), INT, Rx, MISO, SDA

7..............................D2, A1, SCK, SCL


A program that flashes an LED at pin 2 of ATtiny13 looks like this:

void setup() {
 // initialize D3 (ATtiny pin 2) as an output.
 pinMode(3, OUTPUT);
void loop() {
 digitalWrite(3, HIGH);   // turn the LED on 
 delay(1000);             // wait for a second
 digitalWrite(3, LOW);    // turn the LED off 
 delay(1000);             // wait for a second

It can be seen that pin 2 ATtiny13 is considered D3 (see pin map); is declared output, then raised to 1 logic for 1 s, lowered to 0 logic for 1 s, after which the cycle repeats.

Step 7: Programming an ATtiny84, 85

Suppose we want to program an ATtiny85.

It is inserted in the ZIP socket in the correct position, directly if it is THT or through the adapter if it is SMD.

Arduino IDE-->Tools-->Board-->DIY ATtiny-->ATtiny85

Now Tools-->Processor speed(chose), Internal Oscillator

We choose the port to which the Arduino is connected.

Tools-->Programmer-->Arduino as ISP

It is necessary to do Burn Bootloader first(from Tools-->Burn Bootloader).

The correctness of the operation is confirmed by the system.

Now we can do the actual programming of the chip, from Arduino IDE --> Upload.

Step 8: Programming ATtiny2313

Arduino Contest 2020

Participated in the
Arduino Contest 2020

Be the First to Share


    • Halloween Contest

      Halloween Contest
    • Plywood Contest

      Plywood Contest
    • Teach With Tinkercad Contest

      Teach With Tinkercad Contest