Teensyduino 1.59 Released


Staff member
Teensyduino 1.59 has been released


Quick summary: (coming soon...)

Support for Arduino IDE 2.0.4 and later is available by adding this package index URL in File > Preferences.


Since 1.59-beta6, the only change is a fix for launching Teensy Loader on MacOS with Arduino 1.8.19.

Changes since Teensyduino 1.58:

C++17 used for Teensy 3.x and 4.x
Enable LTO options in Arduino Tools > Optimization menu
Fix startup for LTO optimization
Remove serialEvent_default, refactor yield_active_check_flags
Add inplace_function for callbacks
IntervalTimer use inplace_function
IntervalTimer demo callback backwards compatibility
Delete unused flags from String
Use C++17 to simplify IntervalTimer (Luni)
Fault handler use main vs process stack pointer (Christian Kahlo)
USBHost_t36 update DriveInfo example (Warren Watson)
FastLED fix C++17 compiler warnings
Tlc5940 update documentation, SCLK overshoot sensitivity
Fix const init on Wire, SPI, HardwareSerial
Update FlexIO_t4 - ??? (KurtE)
make availableForWrite virtual (Shawn Silverman)
remove old abs() and round() (mjs513)
CrashReport breadcrumbs improved
update example Makefile
fix Lockable Teensy auto-reboot with optimize smallest size with LTO
fix USB Touchscreen on Teensy 4.x with Windows
extmem_calloc() clears memory (Shawn Silverman)
add Print::vprintf() (Randy Palamar)
Audio improve AudioEffectWaveshaper initialization
Update ILI9488_t3 - ???
Update Keypad - Allow time for signals to settle
Update LittleFS - Add support for GigaDevice NOR Flash
Update RA8875 - ???
Update ST7735_t3 - ???
USBHost_t36 improve timers, fixes simultaneous transmit to 3+ devices
USBHost_t36 fix MIDI fast sustained receive
USBHost_t36 HID parser changes??? (KurtE)
USBHost_t36 RawHID improvements (KurtE)
USBHost_t36 Serial example update (KurtE)
teensy_secure add encrypthex_unlocksnvs option
Teensy monitor on Windows avoid 0 baud setting - not yet in IDE2 packages
Publish Arduino IDE 2.x.x packages using zstd compression
SD/SdFat Workaround for old version 1 cards with SDIO on Teensy 4.1
SD/SdFat Handle cards which falsely claim high speed support (tompilot)
FlexIO_t4 add setClock(), setClockUsingAudioPLL(), setClockUsingVideoPLL()
FlexIO_t4 fix minor issues and update examples
HardwareSerial base class
SoftwareSerial fix for MicroMod (KurtE)
SPI fix constinit for Teensy 3.x
Don't allow writing to ITCM after startup on Teensy 4.x
Update Stream parseInt and parseFloat for LookaheadMode
USB MIDI add realtime send functions (same API as MIDI library)
Add alternate names for FlexIO register bit fields
Fix Serial2 on MicroMod (KurtE)
Fix vprintf on Teensy 2.0
Fix pulldown on half duplex serial (KurtE)
Use namespace "teensy" for inplace_function
IPAddress compare operators are const (ssilverman)
ILI9431 fix DemoSauce example
ILI9488_t3 for clearChangedRange() on Teensy 3.2 (mjs513)
LittleFS fix wrote info in example (karelv)
USBHost_t36 fix race condition in MIDI read()
USBHost_t36 fix sustained fast MIDI receive
USBHost_t36 improve USBDriverTimer to fix fast transmit to 3+ USB devices
USBHost_t36 fix USBHIDDumper example (KurtE)
USBHost_t36 fix typos and spelling mistakes in comments (KurtE)
USBHost_t36 update virtual function defs (pr8x)
Show warning if IDE 2.x.x package used on IDE 1.8.x
analogRead() disable pin input keeper on Teensy 4.x
attachInterrupt always turn on pin hystersis on Teensy 4.x
Add DSB before return from interrupts from attachInterrupt
Wire: Scanner example scans all ports
Wire: Use WIRE_INTERFACES_COUNT for instances on Teensy 3.x
Add SEMC bitfield defines
Add MPU config for SEMC needed by SDRAM_t4 library
SdFat: Fix compiler warning with LTO linking on Teensy 4.x
SdFat: Removed a couple extraneous printfs (mjs513)
Fix makeWord() return type
Fix compiler warning with LTO on Teensy 3.x
LittleFS: Fix compiler warning with LTO linker
Close Teensy Loader on Arduino IDE 2.2.2 Boards Manager uninstall
Fix for wrong Teensy auto-reboot during upload
USB Serial emulation availableForWrite()
Add LCDIF defines (A-Dunstan)
Remove unused IntervalTimer code (Luni)
Audio fix CS4274 (WeTac)
Snooze fix on Teensy 4.x (BriComp)
Fix unable to auto-reboot on Linux
Fix for launching Teensy Loader on MacOS Sonoma from Arduino 1.8.19
Last edited:
Updated IDE 2.3 JSON as posted, it was downloaded by IDE
Board manager showed 1.59 to update when Teensy was searched.
Clicked update and Install completed:
Tool teensy:teensy-compile@11.3.1 already installed
Downloading packages
Installing teensy:teensy-tools@1.59.0
Configuring tool.
teensy:teensy-tools@1.59.0 installed
Installing teensy:teensy-discovery@1.59.0
Configuring tool.
teensy:teensy-discovery@1.59.0 installed
Installing teensy:teensy-monitor@1.59.0
Configuring tool.
teensy:teensy-monitor@1.59.0 installed
Replacing platform teensy:avr@0.59.6 with teensy:avr@1.59.0
Uninstalling teensy:avr@0.59.6
Running pre_uninstall script.
Platform teensy:avr@0.59.6 uninstalled
Uninstalling teensy:teensy-tools@0.59.6, tool is no more required
Running pre_uninstall script.
Uninstalling teensy:teensy-compile@11.3.1, tool is no more required
Uninstalling teensy:teensy-discovery@1.59.0, tool is no more required
Uninstalling teensy:teensy-monitor@1.59.0, tool is no more required
Configuring platform.
Platform teensy:avr@1.59.0 installed
It seems to have closed Teensy.exe and nothing else open conflicting prevented instalation.
Downloaded TeensyDuino EXE for IDE 1.8.19 and ran that to completion.

Built open T_3.5 listfiles no problem in IDE 2.3
I'm getting an update failure in Arduino IDE 2.3.0

Downloaded and installed 1.59 on both IDE 2.3.0 and 1.8.19 no issues. Did a few compiles on both with no issues - still having coffee :)
Downloaded & installed TD 1.59 into Arduino IDE 1.8.19 (download failed first time...Microsoft Win11pro strikes again...but succeeded 2nd time) & Arduino IDE 2.3.0 (download/install succeeded). Tested both with several of my current (quite large) projects, all worked as expected.

Mark J Culross

Should Print memory info on Arduino IDE 2.x.x normal color, not red be removed from the release notes . . . wasn't that put in, then backed out after the fact ??

Mark J Culross
I went for the update to 1.59. Code with HardwareSerial no longer compiled ok. I had things like this (only showing the troubled code - what the real app does is allowing two serial ports to take on the role of 'host communication serial port' on the fly):

HardwareSerial *HostPort = NULL;

void setup() {
  HostPort = &Serial1;

void loop() {
  // put your main code here, to run repeatedly:


Can only get it compiling again by changing that to:
HardwareSerialIMXRT *HostPort = NULL;

void setup() {
  HostPort = &Serial1;

void loop() {
  // put your main code here, to run repeatedly:


Glad it now compiles again. But not amused about the hassle of having to dive into this just to keep things working as before the update...
Just as a heads up looks like Arduino released an update to the IDE. Went from 2.3.0 to 2.3.1 . Looks like primarily security updates plus a couple of other issues.
I run windows 11
I updated to 2.3.0 and 1.59 using the zip file option....all worked OK.
My PC has a small 100GB C: ssd (where windows and some programmes are) and also have a 1TB D: hard drive for other data and programmes. I try to keep the ssd with as much free space as possible and that is why I use the Zip option to install Arduino on D:.
This works OK for the download and unzip but when I use the board/library manager setup it installs all the other prog. files in C:\Users\abc\AppData\Local\Arduino15 ....847 MB.
My link in preferences is.... https://www.pjrc.com/teensy/package_teensy_index.json.
The next day on startup I got dialogue box saying 2.3.1 was available so I clicked to install and it ignored my 2.3.0 that was on D: and installed a new 2.3.1 in C:\programfiles\....... I don't think there was any option to change the install folder. It still all works now as Arduino2.3.1 with Teensy1.59 and I simply deleted the 2.3.0 D: folders.
So my question .... Is there a way of getting Arduino15 folder to install on D: instead of C:.??
And if using Zip option should I always update by downloading a new updated Zip file from Arduino instead of dialogue box links.... ??
And what happens now if (Arduino2.3.2 comes) do I update via the dialogue box and will it create a new 2.3.2 in C:programme files..?

When I opened up Arduino2.3.1 it told me it was downloading index......
Downloading index: package_teensy_index.json .....was at bottom RHS of screen....
Is this normal will it do this from time to time even no update available.... OR can it not find something..??

After or during install of 2.3.1 I got dialogue box saying "mdns-discovery" with "public" box ticked. Not sure what to do so unticked the public box and clicked cancel...??
What is the proper option for this....?? and do I need to do anything now..??
So my question .... Is there a way of getting Arduino15 folder to install on D: instead of C:.??

I don't know. But I can tell you the directory used is completely outside of Teensyduino's control. Arduino IDE's Boards Manager installs the files. At every step of installing and running Teensy's tools, Arduino IDE (or Arduino CLI being used by Arduino IDE) gives full pathnames for everything. None of the decisions about which drive and folder to use come from Teensy's software. It's dictated by the Arduino software.

How much the Arduino IDE really controls this, I'm not sure. It might be using pathnames set up by Windows. I personally don't use Windows much (I do all dev stuff on Linux and sometimes use MacOS for video... I even make the Windows version of Teensyduino on a Linux machine using a cross compiler). But I tried a quick search and found this page about moving AppData to another drive. I'm sure you can find many more with Google.

Before you try this, consider it could result in much slower compile speed. Windows is already slow for access to many small files, as happens when compiling code. Using a rotating hard drive for the libraries and compiler's C library could possibly make performance much worse.

You might also try asking on Arduino's forum. I believe Arduino CLI allows you to control which pathnames are used. Maybe there is some way in Arduino IDE too? I know Arduino IDE has a lot of special functionality with Shift-Ctrl-P, but I couldn't tell you which of those many options (if any) to use. Someone like Per would know...
If you use the old Arduino IDE 1.8.19, you can choose the install location or just use the ZIP file. The old IDE had a special "portable" mode which made it 100% self contained. If you create the extra directory to put it into that mode (Google search to turn up instructions) before you run the Teensyduino installer, the installer will automatically recognize portable mode and act accordingly. Portable mode was originally meant for students to have a completely self-contained copy of Arduino IDE on a USB stick or other portable drive, so none of their code or settings would get put onto shared computers. Sadly, the new IDE doesn't support portable mode and the several requests people have made have all been closed and locked for no additional comment, so seems unlikely the new IDE will ever support portable mode.
Thank you for your replies and good info

"Teensyduino 1.59 supports Arduino versions 1.8.5 and 1.8.9 and 1.8.13 and 1.8.15 and 1.8.16 and 1.8.19."
In the past I have always used the ZIP versions up to 1.8.19 and T1.57 programs installed on D: using the "portable" folder with sketchbook in it. Not sure where "AppData" was, .... probably in C: ...?

"Future versions of Teensyduino will drop support for Arduino 1.8.15" ...... I thought this meant need to update to Arduino 2.0 etc
I changed to Arduino 2.0 ?? and T1.58 some time ago using the Arduino ZIP and the Teensy preferences link and board manager.
"Arduino 2.0.4 and later are supported by use of Arduino Boards Manager."

Your current guidance for non admin windows install is ....??....
"Windows Non-Admin Installation
Download Arduino's Windows ZIP file for non admin install.
Extract the ZIP file, and remember the extracted location.
Download the Teensyduino installer. Save the file, do not run.
Rename TeensyduinoInstall.exe to Teensyduino.exe."

........ I didn't do TeensyInstaller when installing Arduino 2.30 etc, I just Unzipped and used the board manager....???

Regarding moving appdata...... it would affect all programs I have on C: not just Arduino, so I can cope with the windows install to C: as long as the prog. files and appdata don't "grow" with updates.

I think as long as I keep my sketch folder and local libraries separate I can uninstall and do clean install again anytime without loosing anything...?......and if I go back to using the windows installs instead of Zip ..... maybe updates will not create new versions as it did this time.