Miniaturizing Your Arduino Project using ATtiny85

I am currently creating an “Arc Reactor” similar to that of Tony Stark’s. And I initially created a prototype using my DIY Arduino-compatible on breadboard. Then I decided to use an Arduino-compatible Arduino Nano V3. Refer to the images below:

Through some researches I did online on how to minimize components use, I stumbled with using an ATtiny85 chip to be used in the project. And through some more researching, I decided to have the “Arc Reactor” project done using the ATtiny85 Development Board, picture below:

I bought these boards from DJ Elektronix (transaction was fast, and the items were delivered cia GrabExpress if you want them at your doorstep ASAP). I then began soldering the male headers which came with each board:


Now that the male header pins were soldered, let’s study first the pinout of the ATtiny85, and relate this to the ATtiny85 Development Board. The image below shows the pinout of the integrated circuit itself:

The notch at the top of the chip indicates where pin 1 is, then the count continues consecutively counter-clockwise. Now, let’s look at the ATtiny85 Development Board, and let’s see where the ATtiny85 pins are in this board:

At the ATtiny85 IC diagram, we see the following pims labeled with PB0, PB1, PB2, PB3, PB4, and PB5. These pins correspond to P0, P1, P2, P3, P4, and P5 from the Development Board. You will also see 5V, GND and VIN pins. These correspond to the output 5V from the board, the Ground (Pin 4 of the IC), and Input Voltage (Pin 8 of the IC). The board also has a micro USB to power it.

CONNECTING THE WIRES (ARDUINO UNO to ATTINY85 BOARD)

Let’s connect the necessary pins together on both boards. You need the following ready beforehand:

1 x Arduino UNO (or any Arduino board will do)
1 x ATtiny85 Development Board
6 x Jumper Wires
(Note: In my case, I used 8: 4 male to male and 4 male to female. I decided to extend the female to male jumper wires for the power supply to ATtiny board. If you have a longer male to male jumper wires, you only need 6 all in all)

Let’s take a look how the pin connections are made:

We need to connect the MOSI, MISO and SCK pins of both boards together (refer to the IC pinout), and Digital Pin 10 of the Arduino UNO to P5 of the ATtiny85 Development Board.

On the Arduino UNO board, the following jumper wires are attached:

MOSI = Digital Pin 11 (Blue jumper wire)
MISO = Digital Pin 12 (Orange jumper wire)
SCL = Digital Pin 13 (Yellow jumper wire)
Digital Pin 10 = White Jumper wire
VCC = Red Jumper wire
GND = Black Jumper wire

On the ATtiny85 Development Board, the same set of jumper wires are also attached:

MOSI = P0 (Blue jumper wire)
MISO = P1 (Orange jumper wire)
SCL = P2 (Yellow jumper wire)
RESET = P5 (White Jumper wire)
VCC = Red Jumper wire (IC pin 8)
GND = Black Jumper wire (IC pin 4, not to be confused with P4)

There are two things we need to set up still to successfully program the ATTiny85 Developement Board via the Arduino UNO as an ISP:

  1. Installing the ATtiny board from Boards Manager.
  2. Make the Arduino UNO as an ISP (this board will be our programmer to the ATtiny85 board.

INSTALLING THE ATTINY BOARDS

  1. Open Arduino UNO
  2. Go to Files > Preferences
  3. You will see Additional Boards Manager URLs.
  4. Add this link there, by pressing the rightmost icon: https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
  5. Press OK (then another OK to exit from Preferences).
  6. Now, go to Tools > Board > Boards Manager.
  7. Type attiny in the search field, and you should see attiny by David A. Mellis.
  8. Click it (attiny by David A. Mellis) and i nstall the board.
  9. Now, you should see attiny boards from the list when you go to Tool > Boards. Scroll down to verify that the board is indeed installed.

ARDUINO AS ISP

  1. Attach the Arduino UNO to your computer.
  2. Go to File > Examples > ArduinoISP, and click on Arduino ISP.
  3. Go to Tools > Boards and select Arduino/Genuino UNO (or your preferred board).
  4. Go to Tools > Port and select the port where your board is connected to.
  5. Upload the ArduinoISP sketch to your Arduino UNO (or your preferred board) by going to Sketch > Upload (or CTRL+U).
  6. At this stage, your Arduino UNO is ready to be used as a programmer.

UPLOADING SKETCH TO ATTINY85 DEVELOPMENT BOARD

  1. Make sure that the connections are as stated previously in this article.
  2. Open the program / sketch you want uploaded to your ATtiny85 Developement Board.
  3. Go to Tool and setup the following, as shown from the screenshot below:
  4. Upload your desired sketch to your ATtiny85 Development Board (or your preferred board) by going to Sketch > Upload Using Programmer (or CTRL+SHIFT + U).
  5. The sketch should be uploading to your ATtiny85 Development Board at this stage.

NOTE: Programmer should be Arduino as ISP, and NOT ArduinoISP! 

In my case, I created my simple “Arc Reactor” controlled by the ATtiny85 Development Board. The “Arc Reactor” consists of two WS2812 RGB LED rings (8 and 16 bits). The first photo in this article shows the “Arc Reactor” begin controlled by the Arduino-compatible Arduino Nano V3. Since I need to use as little as components as possible, for for this matter as small component as possible (since I do not need the whole capability of Arduino Nano V3), I used the ATtin85 Development Board to power my “Arc Reactor”:

img_2939

img_2938

 

2 thoughts on “Miniaturizing Your Arduino Project using ATtiny85

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.