Teensyduino 1.57 Released

Paul

Administrator
Staff member
Teensyduino 1.57 has been released

https://www.pjrc.com/teensy/td_download.html

Quick summary: 1.57 adds USB host support for disk drives, audio input by analog input pin, fixes a MacOS crash with unusual serial monitor usage, support for newer Lockable Teensy boards, Wire library slave mode support, and many bug fixes and small improvements.

Support for Arduino IDE 2.0-rc9 is available by adding this package index URL in File > Preferences.

https://www.pjrc.com/teensy/td_156/package_teensy_index.json


The only change since 1.57-beta5 is a minor edit to make startup delay code more similar between Teensy 3 and 4.


Changes since Teensyduino 1.56:

USBHost_t36 USBDrive & USBFilesystem (wwatson,KurtE,mjs513)
SdFat update to 2.1.2, fixes file append bug
Wire library support slave mode on Teensy 4
Workaround MacOS serial monitor crash
Add breadcrumb feature to CrashReport
Improve AudioInputAnalog on Teensy 4
Add AudioOutputPWM on Teensy 4 (Mark Tillotson)
Tlc5940 support for Teensy 4
Update ADC library
EEPROM fix get() & put() with String (Luni64)
Ethernet allow use of other SPI ports (KurtE)
SdFat FsVolume::begin allows explicit partition location
SdFat support FAT12 & single FAT on Circuit Python (KurtE)
SdFat volume name functons (KurtE)
SD fix listfiles example on Teensy LC
SD update SdFat_Usage example with other SPI ports
SD add setMediaDetectPin() for card detection (KurtE)
Increased use of yield() in blocking functions
IPAddress != operator (Shawn Silverman)
Dynamic AudioConnection on Teensy 4 (Jonathan Oakley)
MTP handle host cancel & status control transfer
LittleFS getMediaName (mjs513)
LittleFS support 255 char filenames
OctoWS2811 getPixel() supports RGBW (Tobias Johansson)
QuadEncoder fix home and index trigger (mjs513)
QuadEncoder setCompareValue() (mjs513)
boards.txt & platform.txt updated for Arduino 2.0 beta
Add pluggable discovery & monitor for Arduino 2.0 beta
Add USB Type Serial+MTP
Dynamic AudioConnection on Teensy 3 (Jonathan Oakley)
Fix RawHID revc with 0 timeout on Teensy 4 (KurtE)
Fix PT8211_2 initialization (KurtE)
Update QuadEncoder (mjs513)
USBHost_t36 USBDrive handle GPT & Ext partitions (KurtE)
USBHost_t36 USBFilesystem formatting (mjs513, KurtE)
USBHost_t36 USBDrive startFilesystems (KurtE)
Remove SdFat GPT & Ext partitions, now done in USBHost_t36
Improve Wire slave mode on Teensy 4
Fix for Arduino CLI & IDE 2.0 packages messing up Teensy on Arduino 1.8.x.
Support headless compile (but not yet upload) on Arduino CLI
Add Serial+MTP USB Type
Add function descriptions for Arduino IDE 2.0.0-rc7
SD, Ethernet, LiquidCrystal override Arduino 2.0.0-rc7 builtin libs (KurtE, PerT)
Audio TDM examples
Audio S/PDIF fixes on Teensy 4 (Jonathan Oakley)
Add signatures to utilities on Windows
Update Lockable Teensy to support newest hardware
Add pluggable discovery USB Type menu setting
Fix SD usedSize totalSize after media removal (Kurt E, mjs513)
Fix USBHost filesystem date / time functions (Kurt E)
USBHost_t3 support dual port FTDI USB-Serial (Kurt E)
Fix serial monitor transit with Arduino IDE 2.0 on Windows
Reformat I2S register defines (Kurt E)
Add signature to teensy_secure.exe on Windows
Fix bug affecting oldest (maybe beta) Lockable Teens
Similar startup delay code between Teensy 3 and 4
 
Was in OPEN IDE 2 RC9. Didn't show 1.57.0 until closed and restarted. Not sure of prompting Board update check from server ... and it was new ...

On restart board manager now installing TD 1.57.0 ... Works to See PSRAM working on LittleFS on Newest locked T_4.1. Prior build before update was QSPI flash - and that worked too!

Downloaded and installed TD 1.57 .exe too - but done with laptop ... back to desktop.
 
Is Malwarebytes behaving now?

Yes, because I excluded it from monitoring folders running Teensy_secure.exe :(

I had not heard back from them - so didn't remove the exceptions - or test.

Just tested the copy in TD 1.57 unzip folder - copied out to Downloads folder where it would scan and that passed.

Removed exception for the 'Arduino' folder and scanning all of it - only current install is 1.8.19
> scanned 200,996 files with ZERO 'threats detected'

Running the Jan 28 IDE 2 RC3 to update that to TD 1.57 to check. ... Updating ...
 
No, will have to check again if I get Support follow up.
MalwareBytes scan of updated IDE 2 folder - removed the Exception for 'no scan' of: C:\Users\Tim\AppData\Local\Arduino15.

There in %appdata% it still complains of: Teensy_SECURE.EXE as triggering the Malware.Sandbox.7

It does not trigger on IDE 1.8.19 folder {manual scan or execution} - just used IDE to build for newest locked T_4.1. Must be special code for %appdata%


Note the IDE 2 update still has folder for teensy:teensy-compile@1.56.1 - By design?:
Code:
Downloading packages
teensy:teensy-tools@1.57.0
[B]teensy:teensy-compile@1.56.1[/B]
teensy:teensy-discovery@1.57.0
teensy:avr@1.57.0
Installing teensy:teensy-tools@1.57.0
teensy:teensy-tools@1.57.0 installed
Installing teensy:teensy-compile@1.56.1
teensy:teensy-compile@1.56.1 installed
Installing teensy:teensy-discovery@1.57.0
teensy:teensy-discovery@1.57.0 installed
Installing platform teensy:avr@1.57.0
Configuring platform.
Platform teensy:avr@1.57.0 installed
 
@Paul - TD 1.57 seems good on a few sketches of the last 2 T_4.1's received.
One with 8MB the other 16MB of QSPI PSRAM just passed testing using the PJRC test sketch RND/Fixed values.
Running LFS_Integrity PSRAM on the 16MB and FLASH on the 64MB great so far.

Only issues with upload noted based on one pin when locked - NOTE Opps: pin# reported half wrong as the Serial6 wires from one are crossed feedback to the other TriHeader board with ALL_LEDS - altered when locked board moved from one to the other. Those wires in place even not running 8X Serial test break upload depending on state of 'other Teensy', not new but not seen doc for that proper handling.
 
Good morning all

IDE2 install went without a problem on the Windows 10 pc. Did see this on the install of IDE2:
Code:
[COLOR="#FF0000"]Tool teensy:teensy-compile@1.56.1 already installed[/COLOR]
Downloading packages
teensy:teensy-tools@1.57.0
teensy:teensy-discovery@1.57.0
teensy:teensy-monitor@1.57.0
teensy:avr@1.57.0
Installing teensy:teensy-tools@1.57.0
teensy:teensy-tools@1.57.0 installed
Installing teensy:teensy-discovery@1.57.0
teensy:teensy-discovery@1.57.0 installed
Installing teensy:teensy-monitor@1.57.0
teensy:teensy-monitor@1.57.0 installed
Replacing platform teensy:avr@1.57.0-beta5 with teensy:avr@1.57.0
Uninstalling teensy:teensy-tools@1.57.0-beta5, tool is no more required
Configuring platform.
Platform teensy:avr@1.57.0 installed
Just a note as Tim had mentioned teensy-compile. Its using the already installed one from 1.56.1?

Interesting though got this from Norton when I installed in 1.8.19:
Capture.PNG

Just clicked on "Trust Now" and installed no issues. Haven't seen that one in a long time - maybe something changed in Norton on the last update.
 
Last edited:
Just finished updating RPI4 with IDE 2.0 RC9 and installing 1.57. Install went well and was able to upload a simple sketch to the new unlocked T4 with no problem.
 
Only issues with upload noted based on one pin when locked - NOTE Opps: pin# reported half wrong as the Serial6 wires from one are crossed feedback to the other TriHeader board with ALL_LEDS - altered when locked board moved from one to the other. Those wires in place even not running 8X Serial test break upload depending on state of 'other Teensy', not new but not seen doc for that proper handling.

I'm having trouble parsing this. There's a problem with uploading to lockable boards associated with something connected to Serial6 pins? Sounds like another Teensy is connected, but I'm just not getting a clear picture of the hardware setup. I don't know specifically which program is "8X Serial test", not to mention which Teensy runs it or what code is running or uploaded to the other Teensy (if there really are 2 of them, that's also unclear to me). Maybe this is referencing another forum thread or an email message?

Could you write all the relevant info in a single message, with a photo or diagram or precise info about the hardware setup, so I can try to reproduce the problem here? Please give me the exact code or links to the specific code to run on each Teensy.
 
Installed on W10 both ways (1.8.19 and updated RC9)... SO far so good.

Also migrating to a W11 machine, Not much on it yet... But have both installed. So far I have built blink for T4.1 on RC9
 
I'm having trouble parsing this. ...

was detected on "new" hardware
8X Serial Code and details were in email ... 7/26 2:08 AM, follow up email 10:42 AM : Happens with Blink or any sketch when a locked T_4.1 is pin 25 connected to unpowered T_4.1.

Will setup and photo - Here?
 
Locked T_4.1 program fail with pin #25 connected to unpowered T_4.1:
> Original text case was 8 Serial test between two T_4.1's where Serial 6 uses pins 24/25.

Simple repro Setup:
Open IDE 1.8.19 example basic/Blink: Verify build
USB connect two T_4.1's: One Locked the other Lockable, but Unlocked or Standard Production
Connect pin #25 between these two T_4.1's
Connect GND pin wire between two T_4.1's {Optional :WHEN both GND'd to same USB hub and hub can switch power}
lockedt41setup.jpg

Proper function: BOTH
Power both T_4.1 together and press Button to upload Blink
Press Button and code uploads with RED LED, pin#13 blinks

Proper function: Unlocked
Unplug Locked (White Stamp / RED Cable) [Also plugged but unpowered]
On Powered Unlocked/Green T_4.1 press Button to upload Blink
Press Button and code uploads with RED LED, pin#13 blinks

Failed upload/Device Offline: Locked
Unplug Unlocked (Green USB Cable) [Also plugged but unpowered]
> GND wire required
On Powered Locked/RED Cable T_4.1 press Button to upload Blink
Press Button and No upload and No RED LED and Locked T_4.1 goes USB Offline
> Restore power to second T_4.1: Button press works
> Remove pin #25 wire: Button press works
> Power cycle Locked T_4.1 and it returns to blink

Failed upload/Device Offline: Locked
Single locked T_4.1
Fails as above when Pin #25 connected to GND
> Remove GND wire and Button then programs
> Same GND to Pin #25 on unlocked T_4.1 works

Notes (same as email):
T_4.1 under test is 7/2022 version with bl_1.08
No 'White Stamp' T_4.1 onsite with bl_1.07 to compare
Two 'beta' locked bl_1.07 showed one to work properly and one to fail as above.
 
Last edited:
@Paul: Got Support notice of update to fix MalwareBytes. It still sees Teensy_Secure as Malware in “%appdata%\..\local” - copied you on the email reply for ref.

Overnight the T_4.1 16 MB PSRAM LittleFS RamDrive ran continuous Integrity with no problems. On the FLASH drive it ran 1,000 iterations with no problem. This using TD 1.57 release.

Just finished detail/info update to post #13 above.
 
@Paul - BreadCrumb is noted as added - a lin kto the example might help it get use:
github.com/PaulStoffregen/MyFault/tree/main/examples/BreadCrumb

Though it is really short:
Code:
// MyFault - collection of examples to trigger fault exceptions

// Example for :  void breadcrumb(unsigned int num, unsigned int value) {
// num is a value 1 to 6 for possible unique storage entries

void setup() {
  if ( !CrashReport ) {
    CrashReport.breadcrumb( 1, 0x5000000 | __LINE__ ); // Upper bits hold '5' perhaps indicating func() for ref, lower bits show line #
    CrashReport.breadcrumb( 2, millis() );
    Serial.begin(9600);
    CrashReport.breadcrumb( 3, millis() );
    while (!Serial && millis() < 4000 );
    CrashReport.breadcrumb( 4, millis() );
    Serial.println("\n" __FILE__ " " __DATE__ " " __TIME__);
    CrashReport.breadcrumb( 5, millis() );
    CrashReport.breadcrumb( 6, 0xdeadbeef );
    *(volatile uint32_t *)0x30000000 = 0; // causes Data_Access_Violation
  }
  else {
    while (!Serial && millis() < 10000 );
    Serial.println("\n" __FILE__ " " __DATE__ " " __TIME__);
    Serial.print(CrashReport);
  }
}

void loop() {
}
 
This new version seems to have broken Visual Micro ( running with Visual Studio 2022 ). The Teensy cards no longer appear in the boards list. I have asked about this on the Visual Micro forum also.
 
[EDIT] Aug 3, 22 : MalwareBytes Support got the teensy_secure.exe program removed from unsafe list.

Going back and forth with MalwareBytes on False Positive detection for Quarantine of Teensy_Secure.exe in %appdata% folder on Win 11.
They have twice said it should be fixed with updates to their software - but it is still getting caught for Quarantine.
In gathering info for reply I noticed Win 11 showing a Certificate issue: ‘One of the counter signatures was invalid’

This is shown in the attached image digging into the File Certificate:
Teensy_secure_Cert.jpg
 
Last edited:
T_4.x has a RED LED that will blink AFAIK when USB is not connected when the Button is pushed.
This works on a production T_4.1, but does not work the same way when Lockable T_4.1 is Locked:

Not sure if this is something else expected when T_4.1 is locked?
For some reason my hub is offline it seems – this repeats with power cycle where prior Blink sketch comes up blinking.
 Production 1.08 gives RED LED blink on Button press
 Locked 1.08 just showing pin #24 LED on the ALL_LED board, NO RED LED blink when Button Pressed
o At the same time pin #25 is ‘half lit’/Dim
:: Got a repro of this using two of the PJRC TriHeader boards. One board w/T_4.1 is connected and powered.
o image below – white/black pair carry GND/5V from right to left (others unused UART Serial)
o 2nd T_4.1 on Green USB is running BlinkWithoutDelay – no active UART Serial
 GND and 5V fed from that USB powered board to USB unconnected TriHeader board
 No connection to Pin #24 or #25 except the LED’s on the ALL_LED breakout
 Push Button and #24 is BRIGHT and #25 is DIM and RED LED never lights.

Moved Locked 1.08 T_41 to an ‘active port’ and all is well.
Seems the RED LED blink was a feature to say ‘USB needed to program’? Though not sure that was documented anywhere?

Locked_T_4.1_NoUSB_NoRedLED.png
 

Just did a quick read through and just a couple of simple comments.

1. MTP, Improving But Still Experimental: May want to add @defragster since he did a ton of testing and identified a couple of issues.

2. Arduino IDE 2.0-rc9 Support: think the following line needs to be changed:
Code:
Arduino IDE 2.0 is still in development.  IDE 2.0-rc7 has become quite usable, but some issues remain.
to
Code:
Arduino IDE 2.0 is still in development.  IDE 2.0-rc9 has become quite usable, but some issues remain.

Assuming this is meant for a quick overview. Other than that didn't notice anything else.
 
Just did a quick read through and just a couple of simple comments.

Thanks. Made some edits, updating the page now.

Yeah, it's meant to be a quick overview, even though it turned out over 1800 words long! I had meant to write quite a bit more about the 3 audio library features and add a photo of the 22pF capacitor in Wire slave mode, and add more links to forum threads where the issues fixed were discussed. But last night I finally had to cut off more work on the article, since it's been 5 days since 1.57 release.
 
Just did a quick read through and just a couple of simple comments.

1. MTP, Improving But Still Experimental: May want to add @defragster since he did a ton of testing and identified a couple of issues.

2. Arduino IDE 2.0-rc9 Support: think the following line needs to be changed:
Code:
Arduino IDE 2.0 is still in development.  IDE 2.0-rc7 has become quite usable, but some issues remain.
to
Code:
Arduino IDE 2.0 is still in development.  IDE 2.0-rc9 has become quite usable, but some issues remain.

Assuming this is meant for a quick overview. Other than that didn't notice anything else.

RE #1: Would also be helpful perhaps to show the link to the active Forum DEV thread for MTP {54 pages!}:
> pjrc.com/threads/68139-Teensyduino-File-System-Integration-including-MTP-and-MSC

RE #2: for sure best to focus on RC9 or newer

Reading this:
Code:
\If this program crashes, the number CrashReport prints for Breadcrumb #1 can help establish which part of your program was running.  More [B][U]complex usage might other Breadcrumb numbers[/U][/B] throughout interrupt functions or certain libraries.
A Breadcrumb example program was contributed by Defragster which demonstrates [B][COLOR="#FF0000"]Breadcrum[/COLOR][/B] usage in a complete example you can run to see the results.
> Syntax error detected : complex usage might use other Breadcrumb numbers 1-6
> Spelling Error missing 'b': Breadcrumb

@Paul: CrashReport.breadcrumb() for 1062 could add 4 more DWORDS 7,8,9,10 using NVRAM locations at 0x400D4100. It could use the existing bitmask to detect when used for display. The only issue is needing "SNVS_LPCR |= (1 << 24); //Enable NVRAM" in a .begin or constructor. Or this could be done in "if (CrashReport)", or just added on any breadcrumb {6-10} update?
Note: in testing using 0x400D4100 as a pointer versus SNVS_LPGPR[0,1,2,3] is over 1,000 times slower.
 
Back
Top