Close
0%
0%

ATtiny84a tiniest development board

A development board for the ATtiny84a which can be used on a bread board. Just all the basics to run the micronucleus bootloader.

Similar projects worth following
Development boards are out there for the ATtiny, like the Digispark (ATtiny85) and Digispark pro (ATtiny167), but I prefer the ATtiny84a because of the size. The ATtiny167 has more pins (16 vs 12), and more program memory (16K vs 8K), but I prefer the 3x3mm package the ATtiny84a is offered in.
You can do development on the bread board with the 14-PDIP version of this chip, but in order to upload over USB, you have to add a lot of components (resistors, Zener diode, USB connector etc.). I am going to design a development board for the ATtiny84a, which is about the size of the 14-PDIP version, and will have an USB port. The USB port can be used to upload the firmware or power the board. There are no LED's on this board to lower power consumption during sleep mode. The only push button on this board is connected to INT0 to wake up the board to perform a certain task. I will use this board to develop new applications with super capacitors where low power consumption is key.

Special thanks to Spence Konde for making the Micronucleus bootloader a standard option in his ATtiny core. Follow these instructions to add this core to the Arduino IDE:
https://github.com/SpenceKonde/ATTinyCore/blob/master/Installation.md

After a successful install you will find the new boards under Tools -> Boards, and select ATtiny84a (Micronucleus / California STEAM).

You might have to install the Micronucleus drivers manually. See for more information the Quick Gotcha list:
https://github.com/SpenceKonde/ATTinyCore


ATtiny84a pin-out:

Schematic.pdf

Schematic of the board

Adobe Portable Document Format - 26.68 kB - 07/21/2019 at 15:43

Preview

  • 1 × PCB boad Custom designed PCB, see attached KiCAD and Gerber files for more information
  • 1 × ATtiny84a Microprocessors, Microcontrollers, DSPs / ARM, RISC-Based Microcontrollers
  • 1 × 100nF capacitor 0603
  • 2 × Zener diode 3.6V
  • 2 × 7 Pos. Pin Header 0.1" (2.54mm)

View all 10 components

  • Version 2 of ATtiny84a development board

    Sander van de Bor05/26/2019 at 05:20 3 comments

    Unfortunately the first prototypes did not work due to an error in the schematic, but I was still able to use these for some of my projects. I even used the micronucleus bootloader by adding some external resistors. Initially I had no LED on the board to determine if the chip is in bootloader mode or not and I was really missing that indicator light. So for my next set of boards I was going to fix all these issues and add the LED standard on the board.

    There were some issues in the "production" as well. I make these boards by hand, and I was able to work around the issues for now, but this was the right time to improve the design for manufacturing as well. The panel did not leave enough room for the USB connectors and these were soldered on after the reflow process. Since most components were 0805, I had to place these on the back to make them all fit. For this next prototype I decided to go down to 0402 and keep all the components on the same side.

    For the first prototype panel I used mouse bites to separate the boards. For this new design I use V-cuts and that is such an improvement!

    Here are some pictures of the new panel design with 36 boards per panel:

    The 0402 are small, but not impossible to place with a pair of tweezers. I tried the vacuum pick-up tool, but it sucked them up inside and they disappeared so that was no longer an option.

    It all seems to work now! The micronucleus bootloader is working over USB and it accepts sketches directly from Arduino. The LED indicator light is a great help to determine the status or the program.

    I will make these available on Tindie as well so that everybody can start using these in their own projects.

  • JSON file for ATtinyCore with micronucleus bootloader and LTO support

    Sander van de Bor02/26/2019 at 03:25 3 comments

    The JSON file is finished and can be used to update the Arduino boards manager. Add the following link to the Additional Boards Manager URLs in Preferences of the Arduino IDE:
    https://californiasteam.tech/californiasteamarduino/package_californiasteam_index.json

    Next go to the Boards Manager under Tools and search for ATtiny. You should get a result with ATtinyCore boards with

    micronucleus by California STEAM. Click on install to install these boards.

    It will download the ATtiny Core 1.2.2 from Spence Konde and Micronucleus 2.0a4 from Digistump. After a successful install you will find the new boards under Tools -> Boards.

    You can use LTO during compiling to reduce your sketch with about 10% (depending on the sketch). Activate LTO by going to Tools ->  LTO -> Enabled.

  • ATTinyCore with Micronucleus

    Sander van de Bor01/16/2019 at 05:00 0 comments

    I was able to create a custom 3rd party hardware configuration in the Arduino IDE, based on the ATtiny Core from SpenceKonde, more info here. The original uses AVRDUDE to upload the sketches, but I was able to change it to Micronucleus instead. Most common Micronucleus configurations are supported now in this new board manager:

    • ATtiny84a, used for my other project, the board for wearables
    • ATtiny85, original Digispark
    • ATtiny167, Digispark pro
    • ATtiny841, Wattuino (even smaller than the ATtiny84a board in this project)

    There are some advantages of using the ATtiny Core over the original Digispark hardware configuration in the Arduino IDE (which I used for the initial development) as follows:

    • More library support, for example FastLED compiles without issues with the ATtiny core
    • Link Time Optimization, makes the sketch smaller, so you will end up with a little bit more space on the ATtiny. I compiled a sketch without LTO and it resulted as follows: Sketch uses 4278 bytes (64%) of program storage space, and after enabling LTO: Sketch uses 3870 bytes (58%) of program storage space. Maximum is 6658 bytes.

    I have Digispark pro, a LilyPad ATTINY85 (same as digispark) and the ATtiny84a which I can use to test 3 of the 4 configurations shown above. After it all works well I can complete the board manager, and I will create a JSON file so that everybody can start using this in the board manager as well.

  • Manufacturing and testing of the board

    Sander van de Bor12/25/2018 at 01:37 0 comments

    I had some space available on another board I am working on, and I decided to add the ATtiny84a prototype board to this empty space. Putting one of these together is pretty easy, there are not too many components to add:

    This board is perfect for working on the bread board since it does not take too much space. The Arduino UNO as SPI programmer can be used to upload the Micronucleus bootloader. The LED was added to determine if the board is in bootloader mode:

    Unfortunately the board was not recognized by the computer, and after some troubleshooting I found an issue in the design. I designed this board pretty fast, and made a mistake by doing so. The pull-up resistor was on the D+ line instead of the D- line. I removed the resistor from the board and added and external resistor instead. See below how the sketch is uploaded:

    There is still some work to do to the firmware. The current sketch is compiled at 16Mhz, even with the CPU set to 8MHz in the board.txt file, causing the delay to run too slow (example above was 1000ms delay).

  • Why the ATtiny84a

    Sander van de Bor12/18/2018 at 04:17 0 comments

    A couple of months ago I started designing earrings with LED's, controlled by a micro-controller. I knew I was going to use the ATtiny, but I did not know which device to use. After some research I found an ATtiny with a very small foot print, the ATtiny84a with a 20-VQFN (3x3 mm) foot print.

    The ATtiny84a has 12 general I/O pins, 8 can be used for an analog in. It supports an external interrupt to wake up the device from sleep mode. Using it in a project is very simple, it just needs a capacitor next to the Vcc pin, and the Arduino UNO can be used to program the chip as an SPI programmer.

    There is just one little issue, this controller is really tiny, and hard to solder by hand. I have been using a stencil and reflow oven, and use a camera to check the connections.

    For upcoming new projects I like to create some concepts on the bread board. Unfortunately there is no development board for the ATtiny84a out there, so I decided to make one myself. It will have just the essentials to upload firmware over USB with Micronucleus, a push button to wake it up from sleep mode, and a capacitor on the input pins.

    I really like the sleep mode on this micro-controller for very low power consumption applications, and for that same reason there will be no LED's on this board (finding place for these was difficult anyway).

View all 5 project logs

Enjoy this project?

Share

Discussions

rasyoung wrote 04/29/2019 at 19:13 point

I'm catching an error from the Arduino IDE when I use the new json file to install your board ...

"Error downloading https://www.adafruit.com/package_adafruit_index.json
Warning: non trusted contribution, skipping script execution (C:\Users\randa\AppData\Local\Arduino15\packages\californiasteam\tools\micronucleus\2.0a4\post_install.bat)"

  Are you sure? yes | no

Sander van de Bor wrote 04/29/2019 at 19:48 point

You have two different errors:

1. For the adafruit board manager you can use https://adafruit.github.io/arduino-board-index/package_adafruit_index.json instead of https://www.adafruit.com/package_adafruit_index.json. This is unrelated to the California STEAM board manager.

2. After installing the California STEAM boards the script is trying to run the install.exe to install the USB drivers (but Admin rights are required, so it might fail). If you used Micronucleus before, like the Digispark board, then you are good to go since the drivers are already installed. Otherwise browse to C:\Users\randa\AppData\Local\Arduino15\packages\californiasteam\tools\micronucleus\2.0a4\ and run the install.exe.

Here is a video showing how to install the drivers when you still have issues: https://www.youtube.com/watch?v=MmDBvgrYGZs

Please let me know how it works for you.

  Are you sure? yes | no

davedarko wrote 12/17/2018 at 06:53 point

Do I understand you right that you want to add V-USB functionality to your board?

  Are you sure? yes | no

Sander van de Bor wrote 12/17/2018 at 15:16 point

That is correct, but it is only used to upload firmware and power the board. Here is some more information: https://github.com/micronucleus/micronucleus

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates