Tutorial – Make an Adafruit Trinket USB Keyboard – HID @ The Adafruit Learning System. Turning the Trinket into a standard USB keyboard! Frank shows you how!
The Trinket’s USB port is used for uploading sketches, but you can also use it for some basic USB 1.1 devices. For example, under USB 1.1, you can make low speed USB devices such as…
- HID devices
- many more… the drivers come from the operating system
- MIDI devices (input notes from sensors, or generate outputs from notes, etc)
- Custom devices (you have to write your own driver though)
There are a few more rare applications. However, USB 1.1 cannot do stuff like virtual serial ports or mass storage devices, these require USB 2.0, sorry. The easiest and most useful is an HID keyboard, which is a device that does not require a driver, and acts just like a plain keyboard, but a little more customized. I have created an Arduino library that will transform your Trinket into an USB keyboard, and give you an example of how to use the library to create a two button keyboard.
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).