skip navigational linksPJRC
Shopping Cart Checkout Shipping Cost Download Website
Home Products Teensy Blog Forum
You are here: Teensy Teensyduino Download+Install

PJRC Store
Teensy 3.6, $29.25
Teensy 3.5, $24.25
Teensy 3.2, $19.80
Teensy LC, $11.65
Teensy 2.0, $16.00
Teensy++ 2.0, $24.00
Main Page
Getting Started
How-To Tips
Code Library

Download Teensyduino, Version 1.40

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

Teensyduino Files:Other Files:

Teensyduino 1.40 supports Arduino versions 1.0.6 and 1.6.5-r5 and 1.8.1 and 1.8.2 and 1.8.3 and 1.8.4 and 1.8.5.
Future versions of Teensyduino will drop support for Arduino 1.8.2 and 1.8.3.
On Linux, PJRC tests X86 on Ubuntu and ARM on Raspbian. Other distros may work, but are not supported.

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 2: (Macintosh only) Pass Internet Download Question

You must run Arduino at least once before adding Teensyduino, to confirm you wish to run a program downloaded from the Internet.

If Teensyduino modifies your copy of Arduino before you confirm, recent versions of OS-X may not allow you to run Arduino, or even tell you Arduino will damange your computer. Simply run Arduino first to clear the question about running a program downloaded from the Internet, before adding Teensyduino!

Install Step 3: Run Teensyduino Installer

The Teensyduino installer adds the necessary support files to Arduino. Your copy of Arduino must be one of the supported versions listed on this first screen.
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. Windows 10 has the proper driver, which is automatically detected.
Select the location where you extracted the Arduino Software. On Windows, the location will default to the location where Arduino's installer places the software.

The Next button will only activate when a supported version of the Arduino Software is found.

If the Next button will not activate, click the "?" button for more information.
Teensyduino can automatically install many libraries that are tested and verified to work with Teensy. Usually it's best to allow the installer to add them all.
The installer will copy all the necessary files into your Arduino Software, when you click the "Install" button.
When installation is finished, you will see this final screen. Just click Done to quit the installer.
When using Arduino, be sure to select Teensy in the Tools > Boards menu. Arduino's File > Examples menu automatically changes to show the libraries and examples for the selected board.

Teensyduino History

Version 1.40

Support for Arduino 1.8.5

USBHost_t36: HID parsing, improved Mouse driver, new Joystick driver, hub driver fixes, idVendor() & idProduct() functions, keyboard improvements (Kurt)

Audio: fix stereo DAC right channel bug, fix DAC clipping overflow issue, fix FFT256 with LTO optimize (Frank)

Updated: Snooze, FastCRC, i2c_t3, TinyGPS, TeensyThreads

Fix systick hang when yield() overridden

Show warning for certain counterfeit boards, but still allow upload

Linux Teensy Loader now uses udev to find USB devices

Fix delay when uploading on Linux

Fix missing upload error messages in newer Arduino

Fix race condition causing "Teensy Loader is unable to read your compiled sketch (r)"

Version 1.39

Fix IntervalTimer compile error on Teensy LC

Use gnu++11 on Teensy 2.0 (was c++11)

Stream find functions now take const pointers on Teensy 2.0

Update Print class for Teensy 2.0

Don't redefined BYTE (for ancient Arduino compatibility) if already defined

Add pgmspace.h (no avr prefix) for ESP2866 compatibility

Support AVR pgm_read_ptr() on Teensy LC & 3.x

Fix srandom conflict

Updated libs: Adafruit_NeoPixel, openGLCD, Snooze, TFT_ILI9163C

Fix compiler warnings & improved error messages: EEPROM, Adafruit_CC3000, Adafruit_GFX, Adafruit_ILI9340, Adafruit_ILI9341, Adafruit_RA8875, ADC, FastCRC, FrequencyTimer2, i2c_t3, ILI9341_t3, IRremote, Keypad, ks0108, LowPower, OctoWS2811, OneWire, openGLCD, OSC, PulsePosition, RA8875, SerialFlash, SoftPWM, ssd1351, ST7565, Talkie, Time, TimerOne, TinyGPS, Tlc5940, x10

Raspberry Pi builds with 2017-07-05-jessie (previous builds were on 2014-12-24-wheezy)

Version 1.38

Support for Arduino 1.8.4

Use C++14 on 32 bit Teensy boards

Fix Wire lib with fastest optimize and >120 MHz CPU speed

Wire emulate AVR twi_writeTo - for Adafruit compatibility

Wire1 support pins on Teensy 3.5 & 3.6 SD socket (if not using SD card)

Fix install problem on Arduino 1.0.6

Fix analogReadAveraging with ADC1

Allow more memory for audio library on Teensy 3.5 & 3.6

Fix audio library delay effect on Teensy 3.5 & 3.6

Audio I2S uses 64 bit frame, improve compatibility with I2S mics

Fix OctoWS2811 seldom-used color conversion options

Add pure code choices in Tools > Optimization

USBHost_t36 improved handling of error & pipe stall

fix for disable of SD on Teensy 3.5 & 3.6 (Frank)

SPI.transfer(readbuf, writebuf, size) (KurtE)

Added TeensyThreads library (Fernando Trias)

Fixed Adafruit_CC3000 on Teensy 3.x

Audio envelope graceful handling of noteOn while gain > 0

Improved FreqMeasureMulti countToNanoseconds

[Experimental] EventResponder

[Experimental] MillisTimer

[Experimental] SPI async using DMA & EventResponder (KurtE)

Remove 2.5 second wait in Serial.begin

USBHost_t36 mouser driver (wwatson)

Update Adafruit_CC3000, AccelStepper, Adafruit_GFX, Adafruit_SSD1306, FastLED, IRremote, Keypad, MFRC522, SoftPWM, SPIFlash

Symbol table and disassembly listing are placed in temp build folder

Fix audio memory usage stats when more than 255 blocks allocated

Fix USB audio transmit with null data

Audio library support for external delay with CY15B104 (FrankB)

Version 1.37

Support for Arduino 1.8.3

Drop Arduino 1.6.12 & 1.6.13 support

Fix SD library larger than 64K read/write

SPI lib - unified SPIClass, constexpr

Wire lib - constexpr

Use gnu++11 for 32 bit Teensy

MTP fixes

add MTP Disk to USB Type menu

Print, Stream, Serial, Serial# use constexpr

analogWriteResolution returns prior setting

add missing kinetis.h register defines

availableForWrite & flush in Print class

map() improvements - now works with float & double

fix exp10 and stricmp

Audio: improved envelope, added TDM, Waveshaper, PWM Synth, CS42448, fix I2S slave

FastLED fixes

Update MIDI to latest version

Fix PS2Keyboard

Tlc5940 fixes

XPT2046_Touchscreen interrupt fix on non-Teensy boards

Fix auto-reboot on Windows 10 rev 1703 (Creator's Update)

Fix FastLED with OctoWS2811 on Teensy 3.6

Improve min() max() for C++ compatibility (tni)

Fix analogWrite to DAC with LTO (tni)

Fix DMAChannel repeated transferCount (KurtE)

Fix DMAChannel alignment on Teensy LC (tni)

Fixes to OctoWS2811, solve "first pixel" issue on Teensy 3.2

Fix SPI SCK (pin 13) drive strength (KurtE)

Increase USB Serial.begin() wait for serial monitor

Fix Audio SD WAV play status with LTO optimization

Teensy Loader window movable by clicking in center area

Support "Clear output" button in Arduino 1.8.3 serial monitor

Version 1.36

Support for Arduino 1.8.2

Update ARM toolchain to gcc 5.4

Add more optimization choices (including LTO) to Tools > Optimize

Ethernet socketBeginMulticast (manitou)

Fix IntervalTimer on Teensy 3.5

Wire library supports Wire1, Wire2

Wire library timeouts for error conditions

Libraries updated: AccelStepper, ADC, Audio, FastLED, LedDisplay, RadioHead, ShiftPWM, Snooze, SPI, TouchScreen, Wire

Libraries added: USBHost_t36

Minor improvements to AVR emulation

Hardware serial write() compatibility fix

Fix pin config on Serial6

Add extreme joystick, disabled by default, edit usb_desc.h

Fix String test as boolean

Faster installation, especially on Mac

Optimize SPI.transfer(buffer, length) (KurtE)

Fix USB audio on Macs & improve PassThroughUSB example

Start USB sooner

Add volume() function to AudioInputUSB

Fix rare memcpy issue (Frank B)

Fix 9 bit mode on Serial1 & Serial2 on Teensy LC (gecko)

Fix to dtostrf for small numbers (LAtimes2)

Serial.begin() waits up to 1 second for serial monitor open

analogWriteFrequency minimum on Teensy LC

Fixes in ADC library (KurtE)

Fixes in RadioHead library (KurtE)

Version 1.35

Support for Arduino 1.8.1

Improve buildin SD card startup on Teensy 3.5 & 3.6 after uploading

Fix SD card clock speed on Teensy 3.5 & 3.6

Fixes to Serial5 and Serial6 on Teensy 3.5 & 3.6

Fix string length check on readString() and readStringUntil()

Libraries update: Audio, FlexCAN, OctoWS2811,

Fix compiler warnings in USB Disk with Teensy 2.0

Version 1.34

Support for Arduino 1.8.0

Add Tools > Optimize menu, add "Faster" (-O2)

Fix driver install/update on Windows 7 & 8

Prevent "might not have installed correctly" message on Windows

Fix Teensy Loader "Illegal Instruction" on Windows 10 restart

Anti-alias font fix for Arduino 1.8.0 on Windows

Fixes for compiler warnings

Libraries updated: Adafruit_RA8875, Adafruit_ST7735, Adafruit_STMPE610, Artnet, Bounce2, FastCRC, FlexCAN, NewPing, OSC, ShiftPWM, UTFT

Version 1.33

Fix first-use communication error between Arduino & Teensy Loader

Teensy Loader Verbose Info now logs time with milliseconds

More logging in (tempdir)/teensy_reboot_log.txt

Teensy Loader GUI toolkit updated (now using wxWidgets 3.1.0)

Mac version now requires OSX 10.7 (Lion) or later

Libraries updated: Audio, Tlc5940, SPIFlash

Version 1.32

Add support for Arduino 1.6.13

Serial monitor shows status in title bar, Arduino 1.6.13 only

Ethernet library now supports W5500 chip

Fix SD library with old SD cards on Teensy 3.5 & 3.6

Fix IntervalTimer start/stop bug

Fix Audio library SPI hogging with Teensy 3.5/3.6 build in SD card (Frank B)

Libraries updated: Snooze, Time, TimerThree, Audio, UTFT

Libraries added: EasyTransfer, ResponsiveAnalogRead

Improved sync between Arduino IDE and Teensy Loader

Arduino IDE Tools > Ports menu labels ports as "Teensy"

Fix Arduino Verify starting upload when Teensy already in bootloader mode

Teensy Loader wrong chip dialog is now nonblocking.

pinMode supports INPUT_DISABLE on 32 bit Teensy boards

attachInterrupt supports uninitialized pins

Serial RTS watermarks scale with buffer size (Frank B)

Optimized Adafruit_ST7735 improved & renamed to ST7735_t3

Ethernet library optimizations & Ethernet.init(CS_PIN)

Improve audio library usage with smaller block sizes

Version 1.31

Add support for Arduino 1.6.12

Arduino SD library support 4 bit SDIO on Teensy 3.5 & 3.6 (special thanks WMXZ)

Fix EEPROM on Teensy 3.6 with CPU speed > 120 MHz (special thanks Defragster)

Update FlexCAN library for CAN1 on Teensy 3.6 (Pawelsky)

Update OctoWS2811 to support Teensy 3.5 & 3.6

Fix USB serial number on Teensy 3.6 with CPU speed > 120 MHz

Fix audio I2S output on Teensy 3.6 with CPU speed > 120 MHz when also using I2S input

Support Teensy 3.5 & 3.6 on older versons of Arduino

Fix SPI1 default SCK1 pin (KurtE)

Optimize attachInterrupt (tni)

Improve USB stability on Teensy 3.6 with CPU 180 or 216 MHz

Add USB MIDI custom name example

Fix Adafruit_ST7735 on Teensy 3.5 & 3.6 (MichaelMeissner)

Many library metadata files updated for PlatformIO

Fix Ethernet library socket receive bug (thanks ElOtroMateo)

Fix compiler warnings, eg: kinetis_hsrun_enable unused

Serial buffer sizes override from command line (Frank B)

Stream find functions use const for pointers

Add AudioOutputAnalogStereo and AudioInputAnalogStereo

Add Audio reverb effect (Joao Rossi Filho)

Add Audio waterfall spectrum example (Nathaniel Quillin)

Fix USB Audio on Windows when used with USB Serial

Fix auto-reboot for newer USB types

Fix serial monitor for newer non-serial USB types

Many ILI9341_t3 improvements (Frank B, Kurt E, Softegg)

SerialFlash allows other SPI ports (Martino Facchin)

Teensy Loader shows correct images for Teensy 3.5 & 3.6

Improved handling of float INF & NAN (Frank B)

Bundle libpng12 & libusb10 libraries, missing from some Linux distros.

Version 1.30

Add support for Arduino 1.6.10 and 1.6.11

Add support for Teensy 3.5 and 3.6 (still beta)

Improve USB audio - optional Mac workaround

Libraries updated: Audio, OctoWS2811, ADC, i2c_t3, IRremote, SPI, FastLED

Optimize analogRead

Version 1.29

Add support for Arduino 1.6.9

Add support for running on Raspberry Pi (Linux ARM)

Drop support for Arduino 1.6.3 and 1.6.6

USB Keyboard improved media keys, now Windows compatible

Add USB Touchscreen (up to 10 fingers)

Add USB Audio

USB Mouse adds horizontal scroll

More combinations in Tools > USB Type

Serial1.setTX() adds open drain option

Libraries updated: Audio, FastCRC, FreqMeasureMulti, PS2Keyboard, SerialFlash, FreqCount, LedDisplay, SerialFlash, Talkie, TFT_ILI9163C, FastLED, ADC, TimeAlarms, TimerOne, TimerThree

SPI setMOSI, setMISO, setCLK work after SPI.begin

Serial1 setTX, setRX support pins 24 & 25 on Teensy LC

Port Serial1.clear to Teensy3 (thanks KurtE)

Port digitalWriteFast & digitalReadFast to Teensy2 (thanks KurtE)

Port Arduino's AVR Serial1 optimization to Teensy2 (thanks KurtE)

Add missing hardware register defs (thanks Duff)

Fix undocumented flightsim callback (thanks jbliesener)

Fix Servo library compile issue on Arduino 1.6.9

Fix WCharacter and ctype functions

Allow SPI setMOSI, setMISO, setCLK after SPI.begin()

Document flash security lock in mk20dx128.c

Support more F_BUS overclock speeds

Fix pulseIn on Teensy LC (thanks KurtE)

Version 1.28

Support for Arduino 1.6.8

Ethernet library rewrite & performance improvement

Serial1, Serial2, Serial3 setTX(pin) setRX(pin)

Wire setSDA(pin) & setSCL(pin) & end()


USB Mouse supports MOUSE_BACK & MOUSE_FORWARD buttons (thanks Xenoamor)

SPI.usingInterrupt supports IntervalTimer

Add libraries: MFRC522, Bounce2, RA8875

Update LiquidCrystal, Adafruit_GFX, Adafruit_NeoPixel, AltSoftSerial, Audio, CapacitiveSensor, DS1307RTC, Encoder, i2c_t3, ILI9341_t3, OctoWS2811, OneWire, SerialFlash, ShiftPWM, Snooze, TFT_ILI9163C, Time, TimerOne, TimerThree, Adafruit_SSD1306, ADC, OctoWS2811

Added CMP register defs (thanks Duff)

Convert all built-in library from "legacy" format

Fix serial monitor transmit in non-Serial modes

Fix small error in IntervalTimer floating point init

Fix momentary wrong board display in Teensy Loader during "Reboot OK"

Fix back button in installer when an error is detected (easier to retry)

Remove ARDUINO_ARCH_AVR from non-AVR Teensy boards

Add IPAddress fromString()

Fix E2END to always represent actual EEPROM size

Fix SPI.end() to disable alternate pins, if used

Installer name changed from "teensyduino" to "TeensyduinoInstall" (runs as admin on Windows)

Version 1.27

Add support for Arduino 1.6.7

Updates to Ethernet, Wire and XPT2046_Touchscreen libraries.

Add Note Frequency detection to Audio (thanks Colin Duffy)

Fix attachRTS on Serial2 & Serial3 on Teensy 3.x

Add RA8875 library, optimized for Teensy 3.x (thanks Sumotoy)

Other minor fixes and improvements

Version 1.26

Add support for Arduino 1.6.6

Fix USB Serial on Macintosh 10.11 El Capitan

Partially fix Mac signatures (still must run Arduino once before installing)

AnalogWriteFrequency supports extremely low speeds (thanks Theremingenieur)

Improve tone() changing frequency while running

Serial1.attachRts() and Serial1.attachCts()

Update libraries: AltSoftSerial, FastLED, ILI9341_t3

Add XPT2046_Touchscreen library

Improve Ethernet library W5200 reset handling

Update SD library examples

Add I2S 2-port register bitfield names

Initial work on MTP Disk (incomplete)

Version 1.25

Add support for Arduino 1.6.5-r5

Detect Windows 10 serial driver during install, avoid adding Teensy's INF.
If you installed a previous version on Windows 10, you can remove Teensy's unneeded serial driver.

Drop support for Arduino 1.6.4, due to this bug

Update Adafruit_GFX, FastLED, ILI9341_t3 (added fonts)

Audio lib: play from SerialFlash (thanks Wyatt Olson), ext mem delay, bitchusher (thanks Pensive)

Floating point constants are now single precision on Teensy LC, 3.0, 3.1

SD root dir bug and other minor fixes

SD Teensy3 optimized (not enabled by default) has improved caching

Servo library easier to edit for more than 16 motors

Remove dedicated AVR toolchain (was only needed for Arduino 1.6.2)

Avoid interfering with new Arduino 1.6.5 color scheme

Serial flow control functions (C only for now)

XPlaneRefs with names >58 chars (thanks jbliesener)

USB MIDI Time code (thanks Karg)

Installer detects Windows 10, skips driver install

Installer looks in more places on Windows to auto-find Arduino

Version 1.24

Support for Arduino 1.6.5

Optimize Serial.print() and micros() on Teensy-LC

Update Snooze, ADC and i2c_t3 libraries

Several very minor bug fixes

Version 1.23

Support for Arduino 1.6.4

Improve Wire library, handle Lidar Lite issues

Add SerialFlash library

Optimize SD library for Teensy 3.x (SD_t3.h, disabled by default)

Default Systick interrupt to priority level 32

Fix 24 MHz speed on Teensy 3.1

Fix RawHID on Teensy 2.0 with newer Arduino version

Update Time library

Update i2c_t3 library, adds support for Teensy-LC

Update OSC library

analogWriteFrequency() now allow precise sub-1 Hz input

Fix SPI FIFO bug in ILI9341_t3

Fix delay() and micros() bug at startup on Teensy-LC

Version 1.22

Support Arduino 1.6.2 and 1.6.3

Update EEPROM and OneWire libraries

Add ADC and i2c_t3 libraries

Fix USB flightsim on Teensy-LC

Fix SPI.transfer16 & support SPI1 on Teensy-LC

Fix String(unsigned char) on Teensy 2.0

Add Serial.availableForWrite() on Teensy 2.0

Fix printing of long integers on Teensy 2.0

Improve USBtoSerial example

Fix harmless but annoying compiler warnings

Version 1.21

Support for Teensy-LC

Support Arduino 1.6.0 and 1.6.1

Keep Arduino Serial Monitor window open during Upload (Arduino 1.0.6, 1.6.0, 1.6.1)

Improve Arduino Serial Monitor efficiency & memory usage (Arduino 1.0.6)


Tools > CPU Speed menu supports speed vs size optimized (Teensy 3.1 & LC)

Update sample Makefile for non-Arduino usage

Simplify usb_desc.h for creating custom USB devices

Libraries added: Adafruit_VS1053, FastCRC, openGLCD, Snooze, TFT_ILI9163C

Libraries updated: Adafruit_CC3000, Adafruit_NeoPixel, Adafruit_SSD1306, Adafruit_ST7735, FastLED, FreqCount, FreqMeasure, ILI9341_t3, IRremote, MsTimer2, OctoWS2811, OneWire, PS2Keyboard, PulsePosition, Time, TimerOne, TimerThree, TinyGPS

Upgrade ARM Toolchain from 4.7.2 to 4.8.4.

Various minor bug fixes

Version 1.20

Support Arduino 1.0.6

Add libraries: Audio, FlexCAN, Adafruit_CC3000, SPIFlash, RadioHead, FastLED, Adafruit_ILI9341, ILI9431_t3, Artnet

Update libraries: Adafruit_NeoPixel, OctoWS2811, Time, Adafruit_SSD1306, Adafruit_ST7735, ShiftPWM

Libraries ported to Teensy 3.x: AltSoftSerial, CapacitiveSensor, FlexiTimer2, FreqCount, FreqMeasure, FrequencyTimer2, MsTimer2, ShiftPWM, TimerOne, TimerThree, Tlc5940

Libraries ported to use SPI transactions: SD, Ethernet, Adafruit_CC3000, Adafruit_ILI9341, Adafruit_STMPE610, RadioHead

Add SPI Transactions

Add DMAChannel & DMASetting objects

Add serialEvent (usb serial) & serialEvent# (hardware serial)

Add Serial.availableForWrite() & Serial#.availableForWrite()

Use Serial2 FIFO on Teensy 3.1

Add transmitterEnable() on Serial2 & Serial3

Fix analogWriteFrequency on Teensy 3.1 pins 25 & 32

Add Installer Directory Help Button

Fix strncpy_P on Teensy 3.x

Add Czech keyboard layout to menu

Add yield() function on Teensy 2.0

Add IntervalTimer priority()

Don't mix CPU speed setting switching from Teensy 2.0 to 3.x

Add FASTRUN, for functions in RAM on Teensy 3.x

Interrupt vector table moved to RAM for Teensy 3.x

Add attachInterruptVector()

Optimize Teensy 3.x hardware register definitions

Serial port names added to pins_arduino.h

Fix ARM toolchain linker & zlib issue (thanks to Andrew Kroll)

Add AVR emulation for util/parity.h

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.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 TeensyduinoInstall.linux32 and TeensyduinoInstall.linux64 files will not have execute permission enabled when saved by most web browsers. Use a file manager or type "chmod 755 TeensyduinoInstall.linux32" in a terminal to make the file executable. Then you can run it. In a terminal, type "./TeensyduinoInstall.linux32". Replace "32" with "64" if using the 64 bit version, or "arm" if using the ARM (Raspberry Pi) version.

Linux: Teensyduino only works with Arduino from 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


The Teensyduino installer is based in part on the work of the FLTK project (

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.