Introduction: Multiple ATtiny85/13A Programmer
Have you ever Made a Project like an “LDR x Arduino UNO Automatic Light” or similar which only uses 2-3 Digital I/O ports of your 32 Pin Microcontroller?
It’s okay if you’re just doing some prototyping work but what if you want to finalize or produce that prototype as a product, not as a project. One alternative is to use a smaller and cheaper Microcontroller which costs less and can be implemented easily in any low requirement project. Microchip has a line of microcontrollers called “ATTINY AVR” which are little microcontrollers that can do a lot of the work that an Arduino does in a much more compact form.
Attiny85 and Attiny13 are one of the most common Attiny microcontrollers as they are cheap and easily available.
To program them, we generally use an Arduino as ISP setup or USBasp, I wanted to use an Arduino nano to make an attiny85 programming shield but not for programming 1 attiny but 6. yes 6, we can program more than 1 attiny at the same time by connecting them all in parallel.
In this Post, i'm gonna show you guys how exacly i made this programmer and tips to program an attiny mcu.
- Arduino nano x1
- DIP8 Sockets x6
- 1uf 10V CAP x1
- male headers 28 to be exact
- LEDs 0603 package x4
- 1K Resistor 0805 package x2
- 3D printed enclosure
- attiny85 x6
Step 1: INTRODUCTION to Attiny85/13A
ATtiny85 is a high performance, low power 8-bit microcontroller based on Advanced RISC Architecture. It has 8 Kbytes of In-System Programmable Flash and is popular because of its compact size and its features
its operating voltage is +1.8 V to +5.5V
(read its datasheet for more info)
Attiny13 is a high-performance, low-power Microchip 8-bit AVR RISC-based microcontroller that combines 1KB ISP flash memory, 64B SRAM, 64B EEPROM, a 32B register file, and a 4-channel 10-bit A/D converter. The device supports a throughput of 20 MIPS at 20 MHz and operates between 2.7-5.5 volts.
By executing powerful instructions in a single clock cycle, the device achieves throughputs approaching 1 MIPS per MHz, balancing power consumption and processing speed.
(read its datasheet for more info)
these two chips are somewhat similar and have same pinout.
Attiny85 is superior to Attiny13 as its more popular and has libraries available than attiny13 which makes this chip easy to get started.
Step 2: Designing the Programming Shield
I designed this nano breakout board in OrCad Cadance, it has four LEDs (3 of them are connected to D7 D8 and D9 for ICSP programming status, and the fourth one is connected to D11 or D0 of attiny in case we need to test attiny onboard)
I send it to a PCBWAY and got PCBs in 22 days (because of the pandemic situation)
(I've added Gerber files along with the schematic so you can even send this to a PCB manufacturer or make your own version)
Step 3: Assembly
Watch the video for basic assembly tutorial-
Step 4: Testing and Flashing Nano With Arduino As ISP
First, I plugged the Arduino nano with my computer and flashed it with a simple Chaser led sketch which will toggle led connected to pin D7, 8, 9, and D11 in chaser order. left to right
(watch the video)
After this, I uploaded "Arduino as ISP" sketch from example sketches to this board and shorted the jumper after the sketched was uploaded. I plugged out the USB cable and bring out 6 attiny85, for programming.
Step 5: Programming!
Like many folks, I got introduced to microcontrollers through the Arduino platform, Arduino IDE can be used to program almost every Attiny Microcontroller by adding Attiny Core files by Spence Konde -
Installing process is quite well documented in the GitHub page
Flashing Process is pretty simple and straight forward.
- Put the attiny85 or 13 in DIP SOCKET according to right Orientation
- Go to Tools>Board and select your attiny85 board.
- Select the clock speed to 1MHz, 4MHz or 8MHz (for Blink Sketch 1MHz is fine)
- Select the right com port
- In Tool>Programmer select “Arduino as ISP”
- Hit BURN BOOTLOADER
- Now go to Sketch> and select “Upload using Programmer” or just Ctrl+Shift+U
Step 6: Result!
Put the programmed Attiny85 or 13 on a breadboard and connect led with D4* and GND and power them separately.
ALL GONNA BLINK (watch the video)
With this setup, you can program more than 1 attiny at the same time which is quite a useful feat, as you can now replicate your project at ease or you can even produce them for selling applications. I hope this post was helpful in some way. everything here is OPENSOURCE so if you need something, just leave a comment.