Imagine my delight when I discovered the world of Microcontrollers. These things have big capability, but tiny (and I mean tiny) memory spaces. My current microcontroller project, the Adafruit Trinket, based on the ATMel ATtiny85, has 5,2k of available programming memory and 512 BYTES of RAM (as well as 512 bytes of EEPROM.)
Having found some cool 2×16 LCD panels for five bucks each at Radio Shack, these Trinkets and a bunch of parts, I set out to make a game for my step son. I’m still working on a game concept that will keep his interest, but I did a proof of concept game based on Space Invaders (my all time favorite game.) So, how can one make a Space Invaders on a TWO line by SIXTEEN character display? Well…you need to be creative. AND…you have to fit it, along with a necessary library, into under 5.1K.
So…what did I do? Well, found an old notebook I kept from my TRS-80 days. Looked at some old Tiny Basic game code and…coded.
TRINKET 3.3V and TRINKET 5.5V versions. Trinket may be small, but do not be fooled by its size! It’s a tiny microcontroller board, built around the Atmel ATtiny85, a little chip with a lot of power. We wanted to design a microcontroller board that was small enough to fit into any project, and low cost enough to use without hesitation. Perfect for when you don’t want to give up your expensive dev-board and you aren’t willing to take apart the project you worked so hard to design. It’s our lowest-cost arduino-IDE programmable board!
The Attiny85 is a fun processor because despite being so small, it has 8K of flash, and 5 I/O pins, including analog inputs and PWM ‘analog’ outputs. We designed a USB bootloader so you can plug it into any computer and reprogram it over a USB port just like an Arduino. In fact we even made some simple modifications to the Arduino IDE so that it works like a mini-Arduino board. You can’t stack a big shield on it but for many small & simple projects the Trinket will be your go-to platform.
There are two versions of the Trinket. One is 3V and one is 5V. Both work the same, but have different operating logic voltages. Use the 3V one to interface with sensors and devices that need 3V logic, or when you want to power it off of a LiPo battery. The 3V version should only run at 8 MHz. Use the 5V one for sensors and components that can use or require 5V logic. The 5V version can run at 8 MHz or at 16MHz by setting the software-set clock frequency.
Here are some useful specifications!
- ATtiny85 on-board, 8K of flash, 512 byte of SRAM, 512 bytes of EEPROM
- Internal oscillator runs at 8MHz, but can be doubled in software for 16MHz
- USB bootloader with a nice LED indicator looks just like a USBtinyISP so you can program it with AVRdude (with a simple config modification) and/or the Arduino IDE (with a few simple config modifications)
- Mini-USB jack for power and/or USB uploading, you can put it in a box or tape it up and use any USB cable for when you want to reprogram.
- We really worked hard on the bootloader process to make it rugged and foolproof, this board wont up and die on you in the middle of a project!
- ~5.25K bytes available for use (2.75K taken for the bootloader)
- Available in both 3V and 5V flavors
- On-board 3.3V or 5.0V power regulator with 150mA output capability and ultra-low dropout. Up to 16V input, reverse-polarity protection, thermal and current-limit protection.
- Power with either USB or external output (such as a battery) – it’ll automatically switch over
- On-board green power LED and red pin #1 LED
- Reset button for entering the bootloader or restarting the program. No need to unplug/replug the board every time you want to reset or update!
- 5 GPIO – 2 shared with the USB interface. The 3 independent IO pins have 1 analog input and 2 PWM output as well. The 2 shared IO pins have 2 more analog inputs and one more PWM output.
- Hardware I2C / SPI capability for breakout & sensor interfacing.
- Works with many basic Arduino libraries including Adafruit Neopixel!
- Mounting holes! Yeah!
- Really really small.
- Dimensions: 1.2″ x 0.6″ x 0.2″ / 31mm x 15.5 x 5mm , 1.85 grams (no headers).