skip navigational linksPJRC
Shopping Cart Checkout Shipping Cost Download Website
Home MP3 Player 8051 Tools All Projects PJRC Store Site Map
You are here: Teensy Teensyduino Download+Install

PJRC Store
Teensy 3.1, $19.80
Teensy 2.0, $16.00
Teensy++ 2.0, $24.00
USB Cable, $4.00
Teensy
Main Page
Teensy 3.1
Getting Started
How-To Tips
Code Library
Projects
Teensyduino
Reference

Download Teensyduino, Version 1.19

Teensyduino is a software add-on for the Arduino software.

Teensyduino Files:Other Files:

A release candidate for next version of Teensyduino is available, with support for Arduino 1.0.6.

Teensyduino 1.19 supports only Arduino version 1.0.5.

Arduino 1.5.x BETA versions are not yet supported. Multiple copies of the Arduino software can coexist and even run simultaneously on the same computer.

Install Step 1: Download & Extract Arduino

First, you must download the Arduino Software. Remember the location where you extracted the files.

Install Step 2: (Linux only) Install udev Rules

The udev rule file gives non-root users permission to use the Teensy device. More Linux tips below.
sudo cp 49-teensy.rules /etc/udev/rules.d/

Install Step 3: Run Teensyduino Installer

The Teensyduino installer adds the necessary support files to Arduino.
On Windows, this driver allows to you access the serial device type. This step is not necessary and does not appear on Mac OS-X and Linux.
Select the location where you extracted the Arduino Software. The Next button will only activate when a supported version of the Arduino Software is found.
Teensyduino can automatically install many libraries that are tested and verified to work with Teensy.
The installer will copy all the necessary files into your Arduino Software.
When installation is finished, you will see this final screen. Just click Done to quit the installer.

Teensyduino Revision History

Version 1.19

Add support for 72 MHz on Teensy 3.1

Fix relative positioning on Teensy 3.x USB mouse (now has hybrid relative+absolute)

Add more AVR emulation on Teensy 3.x: wdt.h, crc16.h, sleep.h, EMISK

Fix USB Serial break on Teensy3 (needed by some Labview applications)

Fix USB endpoint read with no data (thanks nox771)

Add USB MIDI SysEx callback (thanks pcbeard)

Workaround for auto-reboot problems on Teensy 2.0 when using watchdog

Fix initialization of local static vars from non-const data on Teensy 3.x

Make all Teensy 3.1 HardwareSerial functions virtual (fixes issue with pointers to objects)

Add extra zero to USB serial number, works around a Macintosh CDC driver bug
If previous versions have been used, Windows will detect a "new" device, "install" the driver again, and assign a new COM port number.

Add Kinetis register definitions: DMA bits, VREF bit, ADC PGA, DMA priority registers

Fix IRQ_PRIORITY hard-coding in Serial3

Fix lockup in AVR emulation of SPI.setDataMode(SPI_MODE0)

Fix lockup in AVR emulation of TWBR when running at 24 MHz

Fix rare lockup in repeated Wire.begin() on Teensy 3.1

Update DS1307 library with workaround Arduino Due names.

Update Entropy library, now fully compatible with Teensy 3.x.

Add Teensy 3.1 slow clock options, 2, 4, 8 & 16 MHz... thanks for all the help Duff

Add overclocking code (not enabled by default) for Teensy 3.x at 120, 144 & 168 MHz

Minor Makefile improvement (Matthias Lohr)

Aesthetic source code cleanup

Drop Teensy 1.0 support

Version 1.18

Fix compile errors in several Arduino libraries with Teensy 3.1

Fix OctoWS2811 on Teensy 3.1

Keep unused native SPI chip selects high (disabled), Teensy 3.0 & 3.1

Speed up SD library

Fix upload > 128k on Teensy 3.1

Update Windows driver, fix Serial+Keyboard on Windows 8

Fix __cxa_guard errors on Teensy 2.0

Add missing DMA & PGA & other register definitions for Teensy 3.1

Add Serial1.transmitterEnable(pin) for RS-485 applications

Fix startup issue impacting Neopixel library on Teensy 3.1

Fix analogRead(39) (1.2V ref) on Teensy 3.1

Improve Teensy3 early startup hook, thanks to Anbroz Bizjak

Fix Arduino IDE library conflicts, Adafruit_GFX vs Robot libs

Mouse wheel support for scrolling long menus in Arduino IDE on Windows & Linux

Teensyduino version can be seen in Arduino's Help > About screen

Version 1.17

Support for Teensy 3.1

Ethernet library support for W5200 chip

Print speedup for Teensy2

analogRead is now thread safe on Teensy3

Keep USB & serial working in Teensy3 fault condition

Support interrupt priority levels on Teensy3

Serial1 on Teensy3 to transmit even if interrupt blocked

Fix Teensy3 USB buffer memory leak with re-enumeration

USB Mouse on Teensy3 now uses absolute cursor positioning,

Mouse.moveTo(x, y) and Mouse.screenSize(width, height)

USB Keyboard on Teensy3 supports media keys (Mac & Linux only)

Add missing AVR string _P functions on Teensy3

Add missing AVR eeprom functions on Teensy3

Improve Serial1, Serial2, Serial3 buffer size configuration on Teensy3

Fix to Teensy3 Makefile

USB MIDI example improved

Stream printf, eg: Serial.printf()

Add missing new/delete

Add digitalPinToInterrupt

Added SPIFIFO for Teensy3

Ethernet library speedup (using SPIFIFO)

Hardware serial support for other data formats, 7E1, 8N2, etc

9 bit serial format (not enabled by default)

Czech keyboard layout (not enabled by default)

Fix Keyboard.releaseAll() on Teensy3

Fix USB MIDI setHandlePitchChange on Teensy2

Fix arm math lib warnings

Fix digital signatures for Windows exe files

Removed ancient Arduino 0023 support

Windows USB Serial driver signature (should now install on Windows 8 without reboot)

Windows Installer signature

Windows Installer tries to find Arduino and automatically select its location

Version 1.16

SPI library can assign alternate Teensy3 pins: setMOSI, setMISO, setSCK.

Reduce Teensy 3.0 power consumption while not uploading.

Improve Teensy 3.0 upload on Macintosh.

Avoid erasing EEPROM during Teensy 3.0 upload.

Version 1.15

Fixed Serial2 and Serial3 regression on Teensy 3.0.

Fixed USB MIDI sendProgramChange on Teensy 3.0.

Add ARM math library for Teensy 3.0.

Teensy Loader now recognizes ARM elf format, will not accidentally program Teensy 3.0 code to a pre-3.0 board.

Teensy Loader version number is now in sync with Teensyduino version.

Fix stall when connected to a Raspberry Pi that reboots

Add float number support to String

Add String remove()

String now formats unsigned char as a number, same as Print.

Add AVR pin number constants

Added open source license to Teensy3 core library files

Updated Firmata library

Fix USB product name customization header

Reduce USB memory usage

Emulate AVR's TWBR register on Teensy 3.0

Fix single-quote key for USB Keyboard on German and French Canadian layouts

Version 1.14

Updated Time library. "atime_t" on Teensy 3.0 changed back to "time_t". Date strings fixed on Teensy 3.0. NTP and GPS sync examples updated for Arduino 1.0.4. Many other fixes and improvements to the Time library examples.

Added DS1307RTC and TimeAlarms libraries (companions to Time library).

Linux select-paste supported (Arduino 1.0.4 and later, Linux only)

Added "Copy To Clipboard" button for compile errors (Arduino 1.0.4 and later)

Turkish keyboard layout special keys supported for USB keyboard.

Fixed Ethernet DNS client bug on Teensy 3.0.

KEY_MENU name added for the menu key.

Memory tuning parameters (heap_start, heap_end, malloc_margin) supported on Teensy 2.0.

Fix compile error on Teensy 2.0 with ps2dev library.

Fix F() macro "const" when used with newer versions of avr-gcc.

Added DDR registers and pullup resistors to AVR port register emulation on Teensy 3.0.

Optimized Serial1.write(buffer, length) on Teensy 3.0.

Added IntervalTimer to Teensy 3.0 - Thanks to Daniel Gilbert

Added compiler defines to example makefile, for compatibility with Arduino libraries

Added cxa_guard_acquire / cxa_guard_release needed for some Ethernet library applications

Fixed brief glitch at the beginning of analogWrite()

Round analogWriteFrequency() to the nearest possible frequency

Fix micros() bug on Teensy 3.0 when read while interrupts disabled.

Fix IPaddress Printable usage on Teensy 3.0

Fix Serial1 on Teensy 3.0 when more than 8 bytes written with interrupts disabled.

Optimize Serial1 FIFO handling on Teensy 3.0, for dramatically less CPU time per byte.

Convert tone() on Teensy 3.0 to use IntervalTimer.

Use serial number for all USB types on Teensy 3.0.

Remove MIDI message names which conflict with MIDI 3.2 library.

Allow override of USB manufacturer, product and serial strings on Teensy 3.0. See usb_names.h.

Add makeWord() to Teensy 3.0.

Fix buffer overflow in String + long integer concatenation on Teensy 3.0.

Update AccelStepper library.

Update Encoder library - now supports interrupts on all Teensy 3.0 pins.

Update PS2Keyboard library - French keymap, readUnicode() function, Teensy 3.0 interrupt support.

Update TinyGPS library

Support for Arduino 1.0.5.

Optimize Serial.readBytes(), both Teensy 2.0 and 3.0.

Optimize Serial.available() on Teensy 3.0.

Added IntervalTimer destructor.

Added String c_str() function.

Removed ArdOSC library.

DmxSimple library support for Teensy 2.0 and 3.0 (previously only Teensy++ 2.0 worked)

Fixed FastSPI compile problem on Teensy 2.0 and Teensy++ 2.0.

Update MIDI library to version 3.2.

Fixed error highlighting when using Teensy 3.0.

Improved recompile speed when Arduino is installed in a location with space in the pathname.

Improved automatic initialization of the Teensy 3.0 RTC, when a 32.768 kHz crystal is present.

Fix SD + Ethernet library compatibility on Teensy 3.0.

All 4 IntervalTimer objects usable on Teensy 3.0.

Fix off-by-one bug in delay() on Teensy 3.0.

Enable I/O after wakeup from lowest power stop mode on Teensy 3.0.

Fix analogInputToDigitalPin() on Teensy++ 2.0.

Added OSC (Open Sound Control) library

Updated VirtualWire library to 1.15 and support Teensy 3.0

Updated SoftPWM library to 1.5 and support Teensy 3.0

Updated XBee library to 0.4.

Added partial SoftwareSerial for Teensy 3.0. If the pins match one of the real serial ports, hardware serial is used. This allows use of libraries that are hard-coded for SoftwareSerial. If non-serial pins are specified, only transmit works. Software-based receive is not yet supported (but planned for a future release)

Version 1.13

Support for Arduino 1.0.4

Fix Serial.write(0)

Turkish keyboard layout (Teensy 3.0)

Fix while(!Serial)

Fixes for ST7565 library (Teensy 3.0)

Add OctoWS2811 library

Update libraries: Keypad, Metro, OneWire, Ping, ST7565

Version 1.12

Support for Teensy 3.0

Version 1.11

Support for Arduino 1.0.3

Fix French keyboard layout

Version 1.10

Support for Arduino 1.0.2

Fix error message line number bug.

Add Teensy 3.0 files (arm-none-eabi toolchain is not yet in the installer, use this copy for Teensy 3.0).

Version 1.09

Support for Arduino 1.0.1

Keyboard.press() & Keyboard.release(), for compatibility with Leonardo sketches

Add descriptions for most included libraries.

Fix USB Mouse Buttons example.

Version 1.08

Support for Arduino 1.0.1-rc2

Add Flight Sim Controls USB Type

Add function keys F13 to F24 to USB Keyboard

Add Canadian Multilingual keyboard layout

Add libraries AccelStepper, AltSoftSerial, Encoder, FlexiTimer2, LowPower, Ping, ShiftPWM

Minor fixes and changes for compatibility with libraries

Version 1.07

Serial + Keyboard + Mouse + Joystick type

Raw HID available() function

Fix Ethernet library UDP support on 0022 & 0023

Windows installer: faster detection of serial driver already installed

Version 1.06

Support for Arduino 1.0

German Mac keyboard layout

(experimental) Raw HID USB type

Version 1.05

Add media keys. See File > Examples > Teensy > USB_Keyboard > MediaButtons

Improve elapsedMillis & elapsedMicros.

Fix small delayMicroseconds at 1 & 2 MHz clock.

Version 1.04

Add elapsedMillis & elapsedMicros.

Fix slight timekeeping error in millis().

Fix errors with avr-gcc 4.5 on Fedora 15 (thanks to Ward Wouts).

Version 1.03

Support Arduino 0023

More minor fixes in Print

MIDI improvements, thanks to Sebastian Tomczak & Dave Sorlien

Version 1.02

Minor fixes in Print

Support CapacitiveSensor library

Version 1.01

Support Arduino 1.0-rc2

Fix pulseIn

Fix printing negative floats

Improve Disk claim/release, add pause/resume API

Add compatibility functions for Leonardo Mouse API

Improve serial emulation on Linux

Version 1.00

Fix obscure bug in pinMode

Fix slow memory leak on Linux

Version 0.99

Support Arduino 1.0-rc1

Add more keyboard mappings

Add pushbutton examples using Bounce library

Version 0.98

Fix Ethernet on 1.0-beta4

Fix slow startup of serial monitor in Mac

Fix compile speedups for Mac and Windows

Version 0.97

Support Arduino 1.0-beta4, drop old 0018 & 0021

Fix stall of compile/upload when auto-launching Teensy Loader

Many small fixes

Version 0.96

USB Joystick type

Improved keyword coloring

(not working yet) Disk.claim() to allow using SD library with USB Disk type

Serial using Stream class

MIDI 2.6 library included

Try to avoid stalling millis() with USB Disk and heavy PC access

Several minor bug fixes

Version 0.95

Installs 3rd Party Arduino Libraries

Installs Teensy Loader

More Examples, in File > Examples > Teensy

Version 0.94

Support for Arduino version 0022

USB MIDI type added

International USB Keyboard layouts

String class bug fixes

Rework boards.txt menu syntax (requested by Arduino devs, issue #257)

Fixed Ethernet with 0021 & 0022

Version 0.9

Support for Arduino versions 0019 and 0021

USB Disk type added, supporting both SD Flash and internal flash

Fix Arduino bugs #29, #78, #209, #235

Emulate Arduino reboot behavior with Serial Monitor window is opened

Windows - directory drop-down now says "[all drives]", instead of just blank space

Compatibility with 0019, String class, improved delay(), stream class, shiftIn()

Compatibility with 0018, Tone() and noTone()

USB Serial: ignore break signal (some buggy programs send it, eg winbatch)

Windows - Teensyduino installer now included Serial driver install

USB Type and CPU Speed menus added inside Tools menu

Version 0.8B

Fix rare digitalWrite and digitalRead interference bug

Add A0, A1, A2... for analogRead(A0) - Arduino 0019 compatibility

Version 0.8

Add support for Teensy++ 2.0

Add support for Arduino 0018

Fix ethernet library

Add Serial.end() - shuts off and disconnects USB, saves power!

Automatically shut down USB when possible

Serial.begin() attempts to wait until PC/Mac has initialized USB

Add Uart.end()

Remove Teensy_Firmata - StandardFirmata branch now supports Teensy

Optimize most functions

Minor bug fixes

Version 0.7

Better error checking when installing files

Do not require rxtx lib on linux, which is removed on 64 bit systems

Fix USB Keyboard/Mouse on Teensy 1.0

Support 8, 4, 2, 1 MHz if specified in boards.txt

Use ADC in high speed mode, makes analogRead() twice as fast

Use lower power idle mode inside delay()

Minor bugs fixed

Version 0.6

Add Keyboard and Mouse board types

Add support for Teensy 2.0 (ATMEGA32U4 chip)

Add support for 0017.

Version 0.5

Add Firmata example

Add USB serial extensions to Serial

Add support for 0016.

Fix Serial.available()

Fix HardwareSerial()

Check Arduino version, do not install onto wrong version!

Version 0.4

Library fixes included, compatible with Sanguino

Add support for 0015.

Update core with improvements and bug fixes from 0012 to 0015.

Many small improvements.....

Version 0.3

Version 0.3 adds support for the Teensy++.

Pin names are now defined automatically. PIN_B0, PIN_C7, etc.

Add support for 0014 (0013 on linux because 0014 was never released on linux).

Version 0.2

Change API to use Serial.print to talk to USB.

Fix pinout

Many bugs fixed

Version 0.1

Initial release

Known Issues

All: If the serial monitor is opened immediately after an upload, the Teensy may not have been detected by the operating system yet, and the serial monitor is unable to open the device. Future versions will retry for several seconds to solve this issue.

All: Serial + Keyboard + Mouse + Joystick requires Mac OS X Lion, or Windows XP SP3, Vista SP1, or Windows 7, or Linux 2.6.18 or later. Mac Snow Leopard and Windows XP SP2 do not support Serial when combined with other types.

Windows & Linux: When using the Serial Monitor with the USB Keyboard/Mouse option, sometimes a "teensy gateway communication error" can occur. Close and reopen the serial monitor to regain communication.

Windows: You may need to run the Teensyduino installer as administrator for it to install all files. Some anti-virus programs can also interfere with installation and must be temporarily disabled. A Norton AntiVirus Workaround was sent by Carl B.

All: The Upload button can only work if your Teensy is running a previously loaded sketch. If your board can not be rebooted automatically, a message will ask you to press the reset button.

Mac OS X: When you run Arduino after installing Teensyduino, the Leopard's firewall will recognize the program has changed and will ask again if you wish to allow internet connection (Arduino checks for updates). Teensyduino does not "phone home", but Arduino does! TODO: is this still an issue with recent versions of Arduino??

Linux: By default, the teensyduino.32bit and teensyduino.64bit files will not have execute permission enabled when saved by most web browsers. Use a file manager or type "chmod 755 teensyduino.32bit" in a terminal to make the file executable. Then you can run it. In a terminal, type "./teensyduino.32bit". Replace "32" with "64" if using the 64 bit version.

Linux: Teensyduino only works with Arduino from www.arduino.cc. The modified version provided by Ubuntu is not (yet) supported.

Linux (especially Gentoo): Arduino uses the AVR toolchain provided by your system. As of December 2011, Gentoo's avr-gcc is horribly broken. Some newer Fedora (avr-gcc 4.6.x) also have trouble. Faulty AVR toolchains are a persistent problem on Linux.

Please report bugs to paul@pjrc.com

Credits

The Teensyduino installer is based in part on the work of the FLTK project (http://www.fltk.org).

Numerous files covered by various open source licenses are installed by Teensyduino. Nearly all are provided in source code form. Please refer to the comments within each file for copyright and licensing information.

Files installed in compiled binary format that are based on code licensed under the GNU General Public License have their corresponding source code installed in a "src" directory. On Macintosh, use control-click on Arduino and select "Show Package Contents" from the menu.

The ARM toolchain source code (with PJRC's patches) is available on GitHub.