Teensyduino 1.59 Beta #4


Staff member
Here is a fourth beta test for Teensyduino 1.59.

Arduino 2.0.x, all systems platforms:
use Boards Manager to install Teensy version 0.59.4
(to refresh versions, Shift-Ctrl-P and click "Arduino: Update Package Index")

Arduino 1.8.x, Linux 32 bit:

Arduino 1.8.x, Linux 64 bit:

Arduino 1.8.x, Linux ARM:

Arduino 1.8.x, Linux ARM64:

Arduino 1.8.x, MacOS (Catalina to Ventura)

Arduino 1.8.x, Old MacOS (Mojave)

Arduino 1.8.x, Windows:

PlatformIO, DIY beta support:

Changes since Teensyduino 1.59-beta3:

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
Just installed on win 11 home edition with 2.2.2-nightly-20231021, path for package: https://www.pjrc.com/teensy/package_teensy_index.json. Installation went smoothly and quickly.

Tool teensy:teensy-compile@11.3.1 already installed
Tool teensy:teensy-discovery@1.58.0 already installed
Tool teensy:teensy-monitor@1.58.0 already installed
Downloading packages
Installing teensy:teensy-tools@0.59.4
Configuring tool.
teensy:teensy-tools@0.59.4 installed
Replacing platform teensy:avr@0.59.3 with teensy:avr@0.59.4
Uninstalling teensy:avr@0.59.3
Platform teensy:avr@0.59.3 uninstalled
Uninstalling teensy:teensy-tools@0.59.3, tool is no more required
Tool teensy:teensy-tools@0.59.3 uninstalled
Uninstalling teensy:teensy-compile@11.3.1, tool is no more required
Uninstalling teensy:teensy-discovery@1.58.0, tool is no more required
Uninstalling teensy:teensy-monitor@1.58.0, tool is no more required
Configuring platform.
Platform teensy:avr@0.59.4 installed
Installed on W11 machine. Did a couple quick compiles, MMOD tft viewer with ILI9341_t3n is working
Win 11 - Ctrl+P command didn't work? JSON string was right - closed IDE 2.1.1 and reopened and saw 0.59.4.

It installed in under 30 seconds to update from 59.3

Had a sketch open and i built fine and uploaded to a locked T_4.1
I also verified I could download this to my older MAC: MacBook Pro 2013 variety running Catalina 10.15.7.
Verified I could build the MTP TFT picture viewer for Micromod...
Using Arduino IDE 2.2.1, boards manager is only offering me up to 1.58.1, no 1.59. I also tried SHIFT+CTRL+"Arduino: Update Package Index" but that didn't change anything. Note that I cannot use 1.58.1 or 1.58.0 as they mess up the uploaded firmware (including the default LED blinking program when built with those versions) so I'm stuck with 1.57.2 so far.
@hlide The current beta shows as 0.59.# - is that not there? The number starts ZERO so IDE doesn't push it.
Assuming the URL string to PJRC is correct.
I just noticed it in the list. I have both 0.59.3 and 0.59.4. So having 0 instead of 1 is a way to say they are BETA?
I just noticed it in the list. I have both 0.59.3 and 0.59.4. So having 0 instead of 1 is a way to say they are BETA?
Yes, anything showing newer/larger than current prompts IDE to offer immediate update.
Then the problem is with 0.? Beta installed - it always prompts to get the latest 1.? release
Not sure if this is best place to mention this. But ran into interesting issue this morning trying out some beta stuff.

Recently the library manager prompted that some libraries have been updated... So I update to the latest including JPEGDEC to version 1.3.0
Now none of my sketches that include this library build. They all fail with errors in the NEON code. There are tons of errors that overflow
the Arduino Output buffer: like:
from c:\Users\kurte\Documents\Arduino\libraries\JPEGDEC\src\JPEGDEC.cpp:32:
c:\users\kurte\appdata\local\arduino15\packages\teensy\tools\teensy-compile\11.3.1\arm\lib\gcc\arm-none-eabi\11.3.1\include\arm_neon.h:8218:1: error: inlining failed in call to 'always_inline' 'int16x8_t vqdmulhq_lane_s16(int16x8_t, int16x4_t, int)': target specific option mismatch
8218 | vqdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
      | ^~~~~~~~~~~~~~~~~
In file included from c:\Users\kurte\Documents\Arduino\libraries\JPEGDEC\src\JPEGDEC.cpp:32:
c:\Users\kurte\Documents\Arduino\libraries\JPEGDEC\src\jpeg.inl:2858:39: note: called from here
2858 |           i168Temp = vqdmulhq_lane_s16(i168Crx2.val[0], i164Constants, 1); // Cr x -0.71414
      |                      ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from c:\Users\kurte\Documents\Arduino\libraries\JPEGDEC\src\jpeg.inl:35,
                 from c:\Users\kurte\Documents\Arduino\libraries\JPEGDEC\src\JPEGDEC.cpp:32:
c:\users\kurte\appdata\local\arduino15\packages\teensy\tools\teensy-compile\11.3.1\arm\lib\gcc\arm-none-eabi\11.3.1\include\arm_neon.h:605:1: error: inlining failed in call to 'always_inline' 'int16x8_t vaddq_s16(int16x8_t, int16x8_t)': target specific option mismatch
  605 | vaddq_s16 (int16x8_t __a, int16x8_t __b)
      | ^~~~~~~~~
In file included from c:\Users\kurte\Documents\Arduino\libraries\JPEGDEC\src\JPEGDEC.cpp:32:
c:\Users\kurte\Documents\Arduino\libraries\JPEGDEC\src\jpeg.inl:2857:28: note: called from here
2857 |           i168R = vaddq_s16(i168Temp, i168Y); // now we have 8 R values

When I looked up the recent changes to the library I found he added the NEON code about 2 weeks ago:

Not sure if the issue is with how he is using NEON or our compiler and/or settings or...
I also created an issue up on the library:
The Cortex M7 doesn't support NEON. Look like HAS_NEON is getting defined somewhere when it shouldn't be.
Thanks, He has fix for library, which I just tried... He will be probably doing new release soon.