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

PJRC Store
Teensy 4.1, $26.85
Teensy 4.0, $19.95
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
Teensy
Main Page
Hardware
Getting Started
Tutorial
How-To Tips
Code Library
Projects
Teensyduino
Reference

Download Teensyduino, Version 1.53

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

Teensyduino Files:Other Files:

Teensyduino 1.53 supports Arduino versions 1.8.5 and 1.8.9 and 1.8.11 and 1.8.12 and 1.8.13.
Future versions of Teensyduino will drop support for Arduino 1.8.11
On Windows, the Arduino installer and ZIP are supported, but the "app" is not.
Windows 10 provides much better USB support than Windows 7, 8 & XP.
On Linux, PJRC tests X86 & AARCH64 on Ubuntu and ARM32 on Raspbian. Other distros may work, but are not supported.

Windows Installation

  1. Download and run Arduino's Windows Installer, for Windows 7 and up.
    Note: The Arduino "Windows app" from the Microsoft Store is incompatible with Teensyduino.
  2. Download and run the Teensyduino installer.
  3. (optional) Check for anti-virus performance problems.

Macintosh Installation

  1. Download Teensyduino for MacOS 10.10 - 10.15.
    Note: This download is a complete copy of all software. No separate installer is used.
  2. On first use, you must allow access to your Documents folder.

Linux Installation

  1. Download the Linux udev rules (link at the top of this page) and copy the file to /etc/udev/rules.d.
    sudo cp 49-teensy.rules /etc/udev/rules.d/
    
  2. Download and extract one of Arduino's Linux packages.
    Note: Arduino from Linux distro packages is not supported.
  3. Download the corresponding Teensyduino installer.
  4. Run the installer by adding execute permission and then execute it.
    chmod 755 TeensyduinoInstall.linux64
    ./TeensyduinoInstall.linux64
    

Windows Non-Admin Installation

  1. Download Arduino's Windows ZIP file for non admin install.
  2. Extract the ZIP file, and remember the extracted location.
  3. Download the Teensyduino installer. Save the file, do not run.
  4. Rename TeensyduinoInstall.exe to Teensyduino.exe.
    Note: Removing "Install" from the name causes Windows to treat the installer differently!
  5. Run the renamed Teensyduino installer. You will need to select the extracted Arduino location.
  6. (optional) Check for anti-virus performance problems.

Old Macintosh Installation

  1. Download Arduino 1.8.5 from Arduino's Previous IDE Releases Page.
  2. Move Arduino to Applications.
  3. Run Arduino and confirm running software downloaded from the internet.
    Note: This must be done before installing Teensyduino, to avoid a corrupted install.
  4. Download and run the Teensyduino Installer for MacOS 10.7 - 10.14.

Teensyduino Graphical 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.

Command Line Install

The Teensyduino installer supports a non-graphical command line install, using "--dir=<directory>" to specify Arduino's location.

For example, the following commands can be used to install Arduino and Teensyduino on a Linux 64 bit x86 system, and compile using the sample makefile for Teensy 4.0.

wget https://downloads.arduino.cc/arduino-1.8.13-linux64.tar.xz
wget https://www.pjrc.com/teensy/td_153/TeensyduinoInstall.linux64
wget https://www.pjrc.com/teensy/49-teensy.rules
sudo cp 49-teensy.rules /etc/udev/rules.d/
tar -xf arduino-1.8.13-linux64.tar.xz
chmod 755 TeensyduinoInstall.linux64
./TeensyduinoInstall.linux64 --dir=arduino-1.8.13
cd arduino-1.8.13/hardware/teensy/avr/cores/teensy4
make

Teensyduino History

Version 1.53

Support for Arduino 1.8.13

Reduce EventResponder and yield() overhead (KurtE)

Audio design tool checks I/O compatibility (thanks to Frank's JavaScript work)

Update audio design tool documentation

Speed up ILI9341_t3 and add setClock (Larry Bank)

USBHost_t36 add Keyboard attachRawPress & attachRawRelease (David "plugz")

Fix DmxSimple on Teensy 4.0 (Adam Demuri)

add pgmspace.h (not avr folder) compatability for Teensy 4.0

minor updates to SD and Wire examples

Improve C++ STL support

Fix compiler warnings in several library examples

Update libraries: FastLED, MIDI, RA8875, Adafruit_NeoPixel, FlexCAN, FlexCAN_T4, ILI9488_t3

Entropy library support for Teensy 4.x random number hardware

ILI9341_t3 proportional font rendering speedup (Larry Bank)

Audio: add rectifier effect and vocoder example by Bradley Sanders

Fix serialEventUSB1 & serialEventUSB2 on Teensy 4.x (KurtE)

Add MIDIUSB.h compatibility on Teensy 4.x

Check hardware serial FIFO in avalable and peek (KurtE)

Remove libraries: Adafruit_GFX, Adafruit_CC3000, Adafruit_RA8875, openGLCD, ST7565

Add SPI.end() on Teensy 4.x (KurtE)

Fix PT8211 output on Teensy 4.x

Fix USB BDT clear at startup on Teensy 3.x (Memotech-Bill)

Add digitalToggle(pin)

Fix numerical overflow in Audio CPU usage on Teensy 4.x

Remane addStorage to addMemory

Add Teensy 3.5/3.6 hardware random to Entropy (Manitou)

Fix ILI9341_r4 readcommand() & add readScanLine() on Teensy 4.x

Installer will delete old/stale libraries

Linux installer checks udev rules

Libraries updated: ADC, ILI9488_t3, RA8875

Fix audio library on Teensy LC

Fix ST7735_t3 spitftbitmap example (KurtE)

Version 1.52

Support for Teensy 4.1

USB Audio support for Teensy 4.0

OctoWS2811 ported to Teensy 4.0

WS2812Serial support for RGBW SK6812 LEDs

FreqMeasureMulti ported to Teensy 4.0 (KurtE)

Dual & Triple USB Serial (Geert Uytterhoeven)

Audio support for 4,6,8 channel I2S on Teensy 4.0

Audio support for SPDIF input on Teensy 4.0 (FrankB)

Audio DAC support for Teensy LC (Ben Kurtz)

Fix Serial.print() conflict with USB Touchscreen

Fix contact count on USB Touchscreen (purple-ben)

Defined FLASHMEM on Teensy 3.x, for compatibility with Teensy 4 code (FrankB)

Fix cache handling in I2S audio input on Teensy 4.0 (Frank B)

Fix numerous iMXRT register field defines

MTP USB descriptors on Teensy 4.0 - actual MTP support still experimental

Libraries updated: FlexCAN_t4, ST7735_t3, RA8875

Fix USB RawHID on Teensy 4.0 (KurtE)

Fix USB audio+midi+serial descriptor on Teensy 4.0 (widdly)

Add ADK to USBHost_t36 (Matt Bergman)

Fix USB Host MIDI transmit race condition (essej)

Optimize USB interrupt on Teensy 4.0 (Frank B)

Arduino compatibility of digitalWrite control pullups (FrankB)

Add missing MPU traps on Teensy 4.0 (FrankB)

Fix SGTL5000 clock ratio setting (FrankB)

Fix I2S slave on Teensy 4.0 (widdly)

Add DMAMEM & fix warnings in I2S on Teensy 4.0 (FrankB)

Improve SPI use by SD on Teensy LC (rutmarti)

Support alternate SPI pins on Teensy 4.1 (KurtE)

Support alternate Teensy 4.1 CS pins on ILI9341_t3 (KurtE)

Fix Teensy Loader on MacOS 10.13 with Catalina version

Fix teensy_serialmon 100% CPU on Linux if Arduino process killed

Workaround for rare Windows Defender flase positive when installing Java classes

Allow SD.begin() to be called more than once

Support hardware serial CTS pins on Teensy 4.1 (KurtE)

Fix double float promotion (Frank B)

Fix I2S input use of cache (Frank B)

Fix installer crash on Jetson Nano

Update libs: RA8875, ILI9844_t3, QuadEncoder, ST7735_t3

Fix RTC auto-set on Teensy 4.x with daylight savings time

Fix RTC set on Teensy 4.0 (Silverlock)

Audio ADC input on Teensy 4.0 - experimental

Hardware serial pin fixes for Teensy 4.1 (KurtE)

Add dummy Keyboard.h on Teensy 4, for Arduino compatibility

Use standard (not low power) ADC mode

Align DMA buffers to 32 bytes (Frank B)

Fix ADC_ETC defines

Use recommended analog bias current on Teensy 4.x (Frank B)

Update Snooze library

Fix Audio ADC input on Teensy 3.x

Initialize PSRAM chips at startup on Teensy 4.1

Increase PSRAM clock to 88 MHz & fix error in writing clock setting

Use strong drive & hysteresis for FlexSPI2 pins

Minor improvement in OctoWS2811 for Teensy 4.x

Workaround for USB memory bandwidth at very slow CPU speeds

Clean up compiler warnings in USBHost_t36 ADK driver

Fix import bug in Audio Design Tool (Frank B)

OctoWS2811 support for any group of pins on Teensy 4.x

OctoWS2811 fix memory use with fewer than 8 pins

Version 1.51

Support for Arduino 1.8.12

Add USB Flight Sim for Teensy 4.0 (Jorg Neves Bliesener)

fix panic temperature power off on Teensy 4.0 (FrankB)

SerialFlash support AT25SF128A (FrankB)

Wire lib minor updates

Fix analog comparator IRQ names (sgorsh)

Limit shiftOut to 10 MHz (FrankB)

Version 1.50

Support for Arduino 1.8.11

Fix soft reboot on Teensy 4.0

Fix 1 GHz in Tools > CPU Speed

Fix IntervalTimer minimum on Teensy 4.0 (KurtE)

Add defines for ethernet and PLLs

Add defines ARDUINO_TEENSY## for each board

Fix Printable.h with WiFiNANA lib on Teensy 4.0 (MichaelMeissner)

Minor fix to defines (Frank B)

Update ADC & ST7735_t3 libraries

Version 1.49

Support for MacOS Catalina

Optimize USB serial on Teensy 4.0

Add Teensy 4.0 USB MIDI, Keyboard, Mouse, Joystick

Port WS2812Serial to Teensy 4.0 (KurtE)

Move USB serial buffers from ITCM to OCRAM on Teensy 4.0

Fix stalled USB serial transmit if multiple of 64 bytes on Teensy 4.0

Support different USB descriptors for 12 vs 480 speed on Teensy 4.0

Add FLASHMEM keyword

Arduino memory usage for Teensy 4.0 shows only RAM1 (512K) bank usage

Fix Audio lib delay effect maximum (2.4 sec) on Teensy 4.0

Fix missing ITCM padding from Teensy 4.0 memory usage

Fix empty code on Teensy 3.x if yield() overridden and no core lib functions used

Reduce DTCM memory usage by USB descriptors on Teensy 4.0

Fix USB transfer complete callbacks on Teensy 4.0

Fix Audio lib memory limit on Teensy 4.0

WS2812Serial add functions for better compatibility with Adafruit_NeoPixel

Windows teensy_serialmon (hopefully) doesn't lock up (but still too much buffering!)

AVR register emulation on Teensy 4.0 (KurtE)

Fix serial DMA def on Teensy 4.0 (KurtE)

Improve ADC & XBAR defs on Teensy 4.0 (KurtE)

Improve quadrature encoder defs on Teensy 4.0 (mjs513)

Add Teensy 4.0 USB Touchscreen, not finished... work in progress

Remove serial monitor debug messages on Arduino 1.8.9

Fix delay() and micros() on Teensy 4.0 at 24 MHz

Fix USB touchscreen

Fix serial receive at very high baud rates on Teensy 4.0

Fix MIDI+Serial on Teensy 4.0

Fix USB Keyboard sending "garbage" in long strings on Teensy 4.0

Fix analogWrite for values >= 2^res on certain Teensy 4.0 pins

Wire only clear FIFO with bus is idle on Teensy 4.0 (KurtE)

Wire use open drain pin config on Teensy 4.0

Update ST7735_t3 library

SPI optimize usingInterrupt() on Teensy 4.0 (FrankB)

SPI allow faster clock speeds on Teensy 4.0 (KurtE)

Fix daylight saving time issue with automatic RTC set on Teensy 4.0

Add Makefile for Teensy 4.0

Add main.cpp for Teensy 4.0 (KurtE)

Fix compiler warnings on Teensy 2.0

Audio fix simultaneous input & output on I2S2

Audio allow larger queue & delay effect on Teensy 4.0

FastLED updated to allow WS2812Serial driver on Teensy 4.0 (KurtE)

PulsePosition support for Teensy 4.0 (mjs513)

TimerOne & TimerThree updates & fixes for Teensy 4.0 timers

Update ADC library (pedvide)

Update RA8875 for Teensy 4.0 (mjs513)

Add QuadTimer library (mjs513)

Add FlexCAN_T4 (tonton81)

Add ILI9488_t3 (mjs513)

Port ssd1351 to Teensy 4.0 (KurtE)

Port SoftPWM to Teensy 4.0

Add ADC_ETC definitions to imxrt.h (KurtE)

Adjust Wire library pin drive strenth on Teensy 4.0

Optimize Ethernet CS on Teensy 4.0 (Remo Jongeneelen)

Include stdbool.h - needed by Temboo library

Fix micros() non-monotonic output on Teensy 4.0 with slow CPU speeds

Optimize micros() on Teensy 4.0

ST7735_t3 & WS2812Serial minor cleanup

Improve Wire library FIFO handling for Teensy 4.0

ADC library updated for Teensy 4.0 (Pedvide)

Fix priority on 3rd & 4th IntervalTimer on Teensy 4.0 (KurtE)

Audio library I2S slave mode support on Teensy 4.0

Fix unused USB interface string descriptors

Version 1.48

Support for Arduino 1.8.10

Drop support for old Arduino versions 1.0.6, 1.6.5 and 1.8.1

Improve Serial Monitor efficiency, Arduino 1.8.9 & 1.8.10 only

Update FastLED to 3.3.1, fixes compile error on Teensy LC (Daniel Garcia)

Fix more than 2 IntervalTimer instances on Teensy 4.0

Fix Teensy 4.0 low power mode for 24 MHz (Defragster)

Teensy 4.0 SPI signal drive strength changed on Teensy 4.0 (KurtE)

Fix I2S output on Teensy 3.0

Fix non-transaction SPI use on Teensy 4.0 (KurtE)

Fix Arduino 1.8.10 disabled serial monitor selection & copy of text

Init Teensy 4.0 PIT timers after CPU clock set

USB RawHID on Teensy 4.0, still experimental

Update FastCRC (Frank B)

Add CPU Speed menu for Teensy 4.0

Fix SoftwareSerial on Teensy 4.0 (KurtE)

Fix Wire on Teensy 4.0 when I2C device prior NAK (KurtE)

Add startup hooks on Teensy 4.0 (Defragster)

Fix Audio TDM & I2C2 on Teensy 4.0

Improve Audio I/O on overclocked Teensy 3.6

Fix ST7735_t3 DMA (KurtE)

Update TeensyThreads

Version 1.47

First support for Teensy 4.0

Version 1.46

Support for Arduino 1.8.9

Improve startup behavior on Teensy 3.6 with external slowly rising power

Fix blank Arduino window issue after Teensyduino install

USBHost_t36 add MIDIDevice_BigBuffer

USBHost_t36 support some not fully MIDI class compliant Yahama & Roland devices

USBHost_t36 improve CP210X serial support (Kurt E)

Better error checking in Arduino Stream functions (Frank B)

Update libs: Adafruit_NeoPixel, Adafruit_GFX, Talkie, Time

Remove outdated libs: Adafruit_ILI9340, Adafruit_ILI9341, Adafruit_SSD1306, Adafruit_ST7735

Audio: Workaround for WM8731's poor I2C communication

Encoder: add atomic readAndReset() function (humanoid2050)

Use "-fpermissive" to treat some C++ errors as only warnings, as Arduino Uno does

Version 1.45

Support for Arduino 1.8.8

Updated libraries: i2c_t3, Snooze

Teensy 3.6 overclock to 256 MHz (Frank B) - need to uncomment lines in boards.txt

Fix serial begin() lockup if framing error received in FIFO when end() called

Audio add AudioControlTLV320AIC3206 (Chip Audette)

Teensy Loader icon added for Gnome desktop on Linux

Fix asm in delayMicroseconds on Teensy LC (Frank B)

Audio: Fix ADAT output with 168 MHz (Frank B)

Version 1.44

Support for Arduino 1.8.7

Add Linux AARCH64 (64 bit ARM, Jetson TX2) support
Download Arduino 1.8.7 for AARCH64

Improve Tools > Ports menu refresh speed

Support Tools > Get Board Info

teensy_ports now sends JSON on stdout

Audio: add wavetable synthesis (thanks PSU Student Team)

Version 1.43

A detailed explanation of new features was written on the blog.

Support for Arduino 1.8.6

Ethernet updated to 2.0.0

Fix default Ethernet CS pins on Teensy 2.0 & Teensy++ 2.0

Fix USB Keyboard '#' for UK & Irish layouts

Generic UDP class support beginMulticast

Fix USB MIDI hogging transmit buffers

Fix FreqCount for use at high frequencies

Installer automated install, use --dir=

Fix for Arduino 1.8.6 startup (Arduino issue #7917)

Fix SerialPlotter for Ports(Teensy)

USBHost_t36 fix for Gigabyte keyboard (thanks KurtE)

OctoWS2811 update movie2serial.pde

Remove BYTE define, previously for pre-1.0 Arduino compatibility

Update WS2812Serial documentation

Improve installer help dialog on Windows (advise "app" incompatible)

Workaround a USB buffering issue

Add Arduino's fix for slow 1.8.6 menus on Mac

Version 1.42

A detailed explanation of new features was written on the blog.

Add teensy_ports program and Tools > Ports "Teensy" section

Add teensy_serialmon - used for Serial Monitor when a "Teensy" Port selected

Fix USB Touchscreen

Add USB Touchscreen examples

Fix FlightSimFloat on Teensy 3.5

Fix USB bcdUSB number

Fix KEY_MEDIA_RANDOM_PLAY

Update OneWire, PS2Keyboard, SerialFlash, Time, PS2Keyboard

Unified logging in Teensy Loader's Verbose Info window

Fix teensy_ports crash when/if Teensy Loader closes

major USB device detection code cleanup....

teensy_reboot now uses device location info from Ports menu

teensy_ports quits automatically when Arduino no longer running

Optimize memory usage in Teensy Loader PNG image handling

Fix Teensy Loader Verbose Info menu Log > Clear

Improve elapsed time in teensy_ports, use native monotonic time

Drop support for Arduino 1.8.2 and 1.8.3 and 1.8.4

Fix incorrect serial monitor title bar on Windows

Workaround for 1 second lag when Teensy Loader not running

Fix non-serial reconnect on Windows XP (workaround missing DBT_DEVNODES_CHANGED)

fix teensy_ports and teensy_serialmon on Mac High Sierra

fix serial monitor title bar & online/offline status parsing from teensy_serialmon

fix teensy_serialmon verbose info in serial monitor, now prints to Arduino console

Fix Teensy Loader Help > About stalling verbose info log from other programs

Fix Teensy Loader File error dialog stalling verbose info log from other programs

fix blank lines appears in verbose info log on Windows

teensy_port better handling for large number of devinst on Windows (eg, MIDIx16)

Better messages when retrying serial open on Windows (eg, with USB "Everything")

show teensy_reboot output on Windows as it occurs, fixed wait until teensy_reboot exits

fixed sending reboot request to some com ports

fix teensy_ports incorrect append to devinst list on Windows

fix logging of windows device change events

prevent teensy_serialmon from interfering with HID bootloader access in Teensy Loader

remove #include from wiring.h, allowing faster compile for most C++ code

precompile Arduino.h, allows some speedup of rebuild all

update core library, Wire, Audio, Bounce to use precompile Arduino.h

Reduce startup delay from 400 ms to 300 ms

fix teensy_serialmon asser of DTR on Windows, fixes (bool)Serial

(bool)Serial to use DTR only, fixes Serail remaining true after serial monitor close

fix truncated usbmodem names in Ports menu on Macintosh

Verbose info log now uses high res time on Windows 8 & 10

Verbose info log users 1ms res time on Windows XP & 7 (was 16 ms & 10 ms)

Fix Verbose info random order for same timestamp events - now always chronological

Add numbering of non-loader verbose logging instances

Trim excessive verbose logging of status communication

Updates to audio library documentation

Add Teensy Loader about dialog icon (was generic info icon)

Teensy 3.5 now supports use of 256K RAM

EthernetClient fix for forced connection close

Small speedup to analogWrite for DAC pins

Fix DMAChannel transferSize() on Teensy LC

Fix FTM_CONF register bitfield defs

Update ADC library (Pedro Villanueva)

Audio: Add freeverb mono & stereo

Audio: Granular pitch shift & freeze effects (Bleep Labs)

Audio: envelope status functions

Audio: Fixes to waveform object

Audio: Add variable triangle waveform

Audio: Add modulated waveform, support for freq & phase modulation

Audio: Add simple amp/switch object

Audio: Add PDM input

PS2Keyboard: add UK & Spanish layouts

TimeAlarms: minor fixes

USBHost_t36: Joystick fixes (KurtE)

Macintosh build now uses 64 bits

Fix Teensy 3.5 stack address (thanks Frank)

Better detection of Teensy model in Ports menu

Audio: fix WM8731 input select

Improve multiple instance check in teensy_ports

Add -L option to teensy_ports (intended for PlatformIO)

Treat "narrowing conversion" as compiler warnings, not errors

Fix product ID for Flightsim+Joystick USB type

Audio: allow WAV files with extra/junk sections before "fmt" info

Ethernet: document Ethernet.init(cspin) in all examples

OctoWS2811: Fix timing problem on Teensy 3.5

USBHost_t36: Fix clobbering of pipe config on endpoint size change

USBHost_t36: Improve enumeration of Multi-TT hubs

Handle attempt to reopen serial port, clicking button while Arduino compiles

Windows: teensy_serialmon detect orphaned from Arduino IDE condition

Avoid unnecessary delays when upload can't find any board

Print more informative messages about selecting board in Tools > Ports

Added ARM 64 bit experimental installer

Version 1.41

Add IntervalTimer update()

Ethernet fix socket receive state caching bug

Ethernet improve handling of unexpected remote server disconnect

SD fix timeouts

SPI pin changes kept in sync with AVR SPI emulation

SPI avoid interfere with pin 45

Wire force recovery from stuck slave devices

Wire improve detection of arbitration loss to other bus masters

Add AudioConnection disconnect() (thanks b0rg3rt)

Update platform.txt for compatibility with Arduino 1.9 beta

Fix serial stall if higher than maximum baud rate configured

Improve delayMicroseconds on Teensy 2.0 (Graham)

Fix SERIAL_8N2 mode on Teensy LC

Update sample Makefile

Add abort() function, needed for Pozyx library

Update keywords for Serial formats & USB Keyboard special keys

Improve AVR SPI register emulation, speed bits

Fix tone() issue when 0 Hz requested, minimum is 1 Hz

Fix Teensy LC DMAChannel bug (thanks kbob)

Audio add ADAT output (thanks Ernstjan Freriks)

Audio fix RMS analysis when no data

Audio ToneSweep improvements (thanks Pio)

Audio design tool custom name bug fixed (thanks neurofun)

Audio modulated sine amplitude when no mod signal fix (thanks neurofun)

Audio library documentation updated, several minor errors fixed

FastLED updated to support WS2812Serial

Time library minor updates & fixes

i2c_t3 library updated

OctoWS2811 fix on Teensy 3.5

OctoWS2811 remove unnecessary delay

OctoWS2811 improve setPixel speed (thanks sgorsh)

USBHost_t36 support for CDC-ACM, PL2303 & CH341 serial (thanks KurtE)

USBHost_t36 support for RawHID (thanks KurtE)

USBHost_t36 support for Xbox One controller (thanks KurtE)

USBHost_t36 improve keyboard & joystick support (thanks KurtE)

USBHost_t36 fix USB MIDI fast data input

USBHost_t36 Ant+ wireless adaptor support (adapted from Michael McElligott)

USBHost_t36 access to device ID and name (thanks KurtE)

XPT2046_Touchscreen detect touch by interrupts (thanks Donziboy2 & Defragster)

Accept String in Stream find() and findUntil()

Update LedDisplay library

USBHost_t36 Fix device status functions usage in polling loops

USBHost_t36 Clean up bandwidth usage info when deleting a pipe

USB MIDI support for virtual cables (select from Tools > USB Type menu)

USB MIDI updated with most functions of Arduino MIDI lib 4.3.1

USB MIDI getType() now returns same as MIDI 4.3.1 -- NOT BACKWARDS COMPATIBLE

Support for compatibility with Arduino's MIDIUSB.h

Added more examples in File > Examples > Teensy > USB_MIDI

USBHost_t36 MIDI support for virtual cables

USBHost_t36 MIDI updated with most functions of Arduino MIDI lib 4.3.1

USBHost_t36 MIDI returns same as MIDI 4.3.1 -- NOT BACKWARDS COMPATIBLE

USBHost_t36 MIDI fix for devices using interrupt endpoints

USBHost_t36 MIDI workaround for devices sending improperly coded sysex message

XPT2046_Touchscreen add setRotation()

FreqMeasureMulti fixed on Teensy LC (thanks Manitou)

USB MIDI & USBHost_t36 MIDI pitch bend using signed integer -- NOT BACKWARDS COMPATIBLE

USB MIDI & USBHost_t36 Fix receiving some MIDI sysex messages

USB MIDI add Interface_3x3 example

USBHost_t36 fix MIDI getType for note off messages

USBHost_t36 add MIDI Interface_16x16 example

Adafruit_SSD1306 uses 400 kHz in I2C mode

USBHost_t36 Joystick improvements, More Axis, Rumble, LEDs (KurtE)

Libs updated: FastLED, Adafruit_NeoPixel, Adafruit_GFX

Libs removed: NewPing

Add USB MIDI Many_Knobs_Buttons example (oddson)

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()

pinMode INPUT_PULLDOWN, OUTPUT_OPENDRAIN (thanks Xenoamor)

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)

Wire.setClock()

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.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

Windows: Windows Defender and many anti-virus programs can dramatically slow down code compilation. A modern PC should take less than 10 seconds to verify simple programs. If Arduino takes 1 minute or longer to verify simple programs, that is a sure sign anti-virus software is slowing you down.

Configuring Windows Defender so that it does not check intermediate Arduino build folders & products (to keep it from slowing down the build).

1) Open Windows Defender
2) Click on "App & browser control"

3) Click on "Exploit protection settings"

4) Click on "Program settings"

5) Click on "Add program to customize" & specifically select "Choose exact file path"

6) Navigate to the location where your Arduino IDE is installed (typically "C:\Program Files (x86)\Arduino"), highlight the "arduino.exe" executable & click "Open"

7) Activate the "Override system settings" checkbox for every option & verify that they are all turned off (make sure to scroll down the list to get everything)

8) Click "Apply" to complete the process.

Special thanks to Mark J Culross (KD5RXT) for contributing these Windows Defender instructions.

Macintosh: Teensyduino requires access to your Documents folder, because Arduino stores installed libraries and boards in Documents/Arduino. If you have disallowed access to Documents, Teensyduino may fail to open. To solve this problem, open System Preferences, click Security & Privacy, and select Files and Folders. Then find Teensyduino on the list of applications which have requested access to your Documents Folder. This box must be checked for Teensyduino to work.

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 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.