Over the past 10 or so years there has been an explosion of development boards for embedded programming and each board has its own niche in the embedded world. This series of articles aims to help you decide what board to use for your project be it a making a drone or your very first project ever. The last board I discussed was the ESP8266, a small WIFI enabled board that is great for one-off mini projects or as an IoT node, you can check that out here.
In this article, I’m going to discuss another one of my favorite dev boards, the Teensy. The Teensy is a series of small breadboard friendly microcontroller boards that are programmable at the bare metal level or utilizing the Arduino IDE. The previous versions of the Teensy were very similar in SoC specs to the standard Arduino utilizing an ATMega, however more recent versions of the Teensy line run the much more powerful Cortex M-4 SoC. Before jumping into the newer versions though, I’d like to talk about the slower but very powerful Teensy 2.0.
I started using the Teensy microcontroller because of one main feature that other microcontrollers of the time lacked, USB. I don’t mean USB serial or a bootloader for uploading programs, I mean full USB baked into the SoC. One of my first projects with the Teensy was for a client who wanted to have a custom control panel that when various buttons were pushed, it would activate various keypresses on a computer. I thought of all sorts of ways of doing this with a serial based Arduino but none of the solutions were elegant. Eventually I came across the Teensy 2.0 which advertised the ability to utilize USB for more than serial communication, it offered mouse/keyboard, joystick, MIDI, and could even emulate a mass storage device. At the time, this seemed like pure magic that such a small device could do so much and be easy to program. Now of course, almost every dev board seems to be able to do at least some of these things but at the time almost nobody had caught on to utilizing the full USB stack built into a lot of these microcontrollers and even fewer made it easy to code. The Teensy did both because Paul Stoffregen, the guy who designed the Teensy, has also been responsible for all of the library and core support for the chips as well so he knows everything inside and out and is a really nice guy to boot.
Moving beyond the ease of development and a full USB stack, the Teensy 2.0 also has 12 analog inputs and 7 pwm channels (compared to the Arduino Uno’s 6 of each). Because of the fact that it has a USB stack, that also frees up the serial line to be dedicated to hardware allowing the Teensy 2.0 to be able to have a USB dedicated serial line as well as a hardware serial line (hello easy debugging of serial hardware!). Even with all of these advantages, the Teensy still only costs ~$16 depending on where you buy it from.
Now if you’re thinking that the Teensy 2.0 sounds good by now, just wait for the Teensy 3.2, the latest Teensy to come out of the woodworks. This board not only has a Cortex M-4 processor that runs at a blazing 96Mhz if you overclock it, but has 256k flash memory, and 64k of RAM. This is truly a powerhouse board. In addition to all of the features of the Teensy 2.0, the 3.x line of boards has 34 total I/O pins of which 21 can be used for analog input and 12 can be used for analog output. The board also features a true DAC for audio signal generation. The analog input also can be pushed to a usable resolution of 13 bits (thats a range of 0-8192!) and can be maxed at 16 bits of resolution. It also has not one, but three external hardware serial lines not including the USB serial. Even with all of this power, the board is still only about $20, cheaper than a low end Arduino!
On the software side of things, the Teensy does require a bit of work to get them setup on the Arduino IDE. You have to install the Arduino add-on found here but it’s is a fairly easy install as it’s all packaged into a convenient installer that is cross-platform and fairly self explanatory. The installer also includes a ton of useful libraries that are all known to work with the Teensy. In addition to the libraries that come with the “Teensyduino” installer, most libraries that work on Arduino also cross-compile for the Teensy. The only libraries that don’t are those that require hardware specific headers and such which are generally timer and other low level libraries.
Teensy 2.0 Specs:
- 8 bit AVR Atmel Atmega 32U4 @ 16Mhz
- 32k Flash / 2.5k RAM
- 5V logic & power
- Programmed via the Teensyduino loader
- 21 GPIO pins breadboard accessible
- 12 analog input pins
- 7 pwm pins
- 1 USB Serial / 1 Hardware Serial
Teensy 3.x Specs:
- 32 bit Cortex M-4 @ up to 96Mhz
- 256k Flash / 64k RAM
- 5V power but 3.3V logic (5V tolerant on 3.1+)
- Programmed via the Teensyduino loader
- 23 GPIO pins breadboard accessible (34 total)
- 21 analog input pins
- 12 pwm pins
- 1 DAC capable pin
- 1 USB serial / 3 Hardware serial
- Breadboard friendly design
- Relatively cheap (~$15-20 depending on model)
- Very well supported platform
- Native USB stack
- Arduino IDE compatible
- 3.3V logic on Teensy 3.x can be annoying at times
- Surface mount MCU means failures often brick the whole board
- 5V only Vcc (no onboard regulator to handle higher voltages)
All in all, the Teensy line of microcontrollers are some of the cheapest and most powerful I have yet seen. If you follow my Youtube channel, you will have seen them on more than one occasion and if you’ve watched my dev board showdown you know that the Teensy is my go-to board when it comes to general development, it’s a powerful and well supported platform and with every new board release gets just that much better.