Teensyduino 1.57 Beta #4

Paul

Administrator
Staff member
Here is a fourth beta test for Teensyduino 1.57.


Linux 32 bit:
https://www.pjrc.com/teensy/td_157-beta4/TeensyduinoInstall.linux32

Linux 64 bit:
https://www.pjrc.com/teensy/td_157-beta4/TeensyduinoInstall.linux64

Linux ARM:
https://www.pjrc.com/teensy/td_157-beta4/TeensyduinoInstall.linuxarm

Linux ARM64:
https://www.pjrc.com/teensy/td_157-beta4/TeensyduinoInstall.linuxaarch64

MacOS (Catalina to Monterey)
https://www.pjrc.com/teensy/td_157-beta4/Teensyduino_MacOS_Catalina.zip

Old MacOS (Lion to Mojave)
https://www.pjrc.com/teensy/td_157-beta4/TeensyduinoInstall.dmg

Windows:
https://www.pjrc.com/teensy/td_157-beta4/TeensyduinoInstall.exe

Arduino IDE 2.0.0-rc7 (all systems):
https://www.pjrc.com/teensy/td_156/package_teensy_index.json



Changes since Teensyduino 1.56-beta3:

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)
 
All good here - Install and build upload 1 sketch.

Wiped old 1.8.19 unzip dir and unpacked the ZIP there again.
> fighting with IDE 2 all %appdata% Arduino folders killed off, so no preferences or history exist

Installed TD1.57b4 to that folder

All Good.

IDE 2 still no start after clean and working IDE 1.8.19 above ... ongoing issue reading before logging it ...
 
Morning all.

Just did a install on a Windows10 pc x64. Install for IDE2 went well no issues - just took a while for it to update the boards. Shows as 1.57.0-beta4 in the dropdown. Running RC9 now. Did verify that the updates to teensy-monitor worked for rawHid and MTP_DISK. Hope you still have some hair left Paul working with windows :)

Absolutely no issues with the install for 1.8.19 as well.
 
Paul,

As mentioned in other places including email (I think),

The main Teensy specific things I see missing from RC9/1.57B4 stuff...

1) Teensy 4 security menu. - Not sure if there is any prescribed way to add one to the IDE?
My guess is not. At least I have not found a way. And saw some posting by PerT a couple of years ago in Arduino library, so assuming that was about 1.x but...

Edit: I created an issue on Arduino IDE: https://github.com/arduino/arduino-ide/issues/1242
To see if they have prescribed way to do this

2) Teensy Specific Examples: I opened up an issue awhile ago on this: https://github.com/arduino/arduino-ide/issues/869

The Arduino way to do this would be to add Library: example _Teensy to the install,
and then have either dummy header file or dummy header file under src and library properties and add the examples under this. This is how for example ESP32 does it, like wise others like OpenCM, OpenCR,
Although I don't see them there for the Arduino installed boards, like SAM, SAMD...

Note: I hacked it up with this beta, but not showing up yet, as the menu is probably cached... Will try workaround mentioned
in comment in a different issue: https://github.com/arduino/arduino-ide/issues/1030
Of deleting the cache directory
 
Last edited:
2) Teensy Specific Examples: I opened up an issue awhile ago on this: https://github.com/arduino/arduino-ide/issues/869

The Arduino way to do this would be to add Library: example _Teensy to the install,
and then have either dummy header file or dummy header file under src and library properties and add the examples under this. This is how for example ESP32 does it, like wise others like OpenCM, OpenCR,
Although I don't see them there for the Arduino installed boards, like SAM, SAMD...

Here is a version that I have put into my install of RC8... Beta4...

I have the directory: C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.57.0-beta4\libraries\01.Teensy

And so it shows up now like:
screenshot.jpg

Note: I renamed all of the .pde files to .ino in this zip file
 

Attachments

  • 01.Teensy.zip
    111.3 KB · Views: 62
IDE 2.0 RC9 TD 1.57b4 install/update worked Windows 10 - not connected board yet.
Board connected and working - noted below.

Here is the TD update console output in case it shows anything of interest:
Code:
Tool teensy:teensy-compile@1.56.1 already installed
Downloading packages
teensy:teensy-tools@1.57.0-beta4
teensy:teensy-discovery@1.57.0-beta4
teensy:teensy-monitor@1.57.0-beta4
teensy:avr@1.57.0-beta4
Installing teensy:teensy-tools@1.57.0-beta4
teensy:teensy-tools@1.57.0-beta4 installed
Installing teensy:teensy-discovery@1.57.0-beta4
teensy:teensy-discovery@1.57.0-beta4 installed
Installing teensy:teensy-monitor@1.57.0-beta4
teensy:teensy-monitor@1.57.0-beta4 installed
Replacing platform teensy:avr@1.56.1 with teensy:avr@1.57.0-beta4
Uninstalling teensy:teensy-tools@1.56.1, tool is no more required
Tool teensy:teensy-tools@1.56.1 uninstalled
Uninstalling teensy:teensy-monitor@1.56.1, tool is no more required
Tool teensy:teensy-monitor@1.56.1 uninstalled
Configuring platform.
Platform teensy:avr@1.57.0-beta4 installed

IDE 2 note: Initial was unZip for rc7, power up and it installed RC8 using MSI. Powering RC8 today it again offered update and again running RC9 from C:\Users\Tim\AppData\Local\Programs\Arduino IDE, not unique folder of original rc7 install. Obviously, this is 'by design' and known 'to them' - but it orphaned a folder and changed location without catching my attention.

Plugged in a T_4.1 and got this on first build? What Error?
Code:
Using board 'teensy41' from platform in folder: C:\Users\Tim\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.57.0-beta4
Using core 'teensy4' from platform in folder: C:\Users\Tim\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.57.0-beta4
Detecting libraries used...
"C:\\Users\\Tim\\AppData\\Local\\Arduino15\\packages\\teensy\\tools\\teensy-compile\\1.56.1/arm/bin/arm-none-eabi-g++" -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=157 -DARDUINO=10607 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-IC:\\Users\\Tim\\AppData\\Local\\Arduino15\\packages\\teensy\\hardware\\avr\\1.57.0-beta4\\cores\\teensy4" "C:\\Users\\Tim\\AppData\\Local\\Temp\\arduino-sketch-C72C8084D35136FD667C46238282C44C\\sketch\\BlinkWithoutDelay.ino.cpp" -o nul
Generating function prototypes...
"C:\\Users\\Tim\\AppData\\Local\\Arduino15\\packages\\teensy\\tools\\teensy-compile\\1.56.1/arm/bin/arm-none-eabi-g++" -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=157 -DARDUINO=10607 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-IC:\\Users\\Tim\\AppData\\Local\\Arduino15\\packages\\teensy\\hardware\\avr\\1.57.0-beta4\\cores\\teensy4" "C:\\Users\\Tim\\AppData\\Local\\Temp\\arduino-sketch-C72C8084D35136FD667C46238282C44C\\sketch\\BlinkWithoutDelay.ino.cpp" -o "C:\\Users\\Tim\\AppData\\Local\\Temp\\arduino-sketch-C72C8084D35136FD667C46238282C44C\\preproc\\ctags_target_for_gcc_minus_e.cpp"
"C:\\Users\\Tim\\AppData\\Local\\Arduino15\\packages\\builtin\\tools\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Users\\Tim\\AppData\\Local\\Temp\\arduino-sketch-C72C8084D35136FD667C46238282C44C\\preproc\\ctags_target_for_gcc_minus_e.cpp"

exit status 1

Compilation error: exit status 1

Second build, unchanged code, uploaded working blink.
It did try to run teensy_secure and I did see notice that MalwareBytes quarantined it:
Code:
Malwarebytes
www.malwarebytes.com

-Log Details-
Protection Event Date: 7/24/22
Protection Event Time: 12:31 AM
Log File: a456d158-0b22-11ed-83ae-a4423b9a1847.json

-Software Information-
Version: 4.5.10.200
Components Version: 1.0.1709
Update Package Version: 1.0.57670
License: Premium

-System Information-
OS: Windows 10 (Build 19044.1826)
CPU: x64
File System: NTFS
User: System

-Blocked Malware Details-
File: 1
Malware.Sandbox.7, C:\Users\Tim\AppData\Local\Arduino15\packages\teensy\tools\teensy-tools\1.57.0-beta4\teensy_secure.exe, Quarantined, 7, 0, 1.0.57670, 7, dds, 01872364, 66D0BA7F1B9B9FB68DC4DCBA18AC2386, 24D916CEC81451F6543CFDBED112B885585740568196D6FAE808A23CB60954F2


(end)

So still not trusted and given install subfolder changes with updates, added a broader folder exclusion up to 'teensy-tools'.

Edit and rebuilds and adding Serial.println to SerMon working.
Though last printed line off the lower edge except upper pixel line of digits from millis() print? IDE issue or SerMon code? It scrolls up on next print - but again newline only shows top pixel row.
 
Good morning Defragster and all,

Glad it is working at least on W10 and they fix the W11 issues soon.

Last line being clipped: https://github.com/arduino/arduino-ide/issues/972
There is also other issues with Serial monitor, like standard ways to select text and navigate and the like: https://github.com/arduino/arduino-ide/issues/812

Also another one about selecting multiple lines, if it scrolls the selection is screwy: https://github.com/arduino/arduino-ide/issues/1081

We probably need to add some of this information to the thread: https://forum.pjrc.com/threads/53548-Arduino-CLI-And-IDE-2-RC-Release-Teensy-Support
And update the first post with RC9 information
 
So still not trusted and given install subfolder changes with updates, added a broader folder exclusion up to 'teensy-tools'.

Can you check if it has a valid digital signature (as far as your version of Windows believes)?

I don't have a Windows machine set up right now, but as I recall the process goes something like right click on the EXE file and select properties. Then in the window, look for a signature tab. Inside that tab should be info about the signature and which algorithm it uses. It should be SHA256 (the signature on the main installer EXE should have both SHA256 and SHA1). It should also have timestamp info about when it was signed (the timestamp is a crpyographically signed verification of the time). There should also be a button to get more info about the certificate. Somewhere it should say who issued the cert (ought to say Sectigo or Commodo - the companies Microsoft trusts) and in that info the cert should say PJRC is the author. In there should also be info about how long until we have to pay again for them to rubber stamp reissue the cert... I believe it's not until early 2014. But the crypto timestamp stuff is supposed to allow Windows to keep trusting the signature even after PJRC's cert expires.

I checked all this stuff a few days ago on Windows 10. But I don't have a Windows 11 machine.
 
Paul,
I don't have W11 either yet. Should in a couple of weeks... My current i7 is not supported by W11 as I understand it, too many Security issues....

Digital signatures:
So far on my machine it does not look like teensy_secure has one?
screenshot.jpg

But others do:
screenshot2.jpg

Teensy.exe - yes
teensy_gateway - yes
teensy_ports - yes
teensy_post_compile - yes
teensy_reboot - yes
teensy_restart - yes
teensy_secure - NO
teensy_serialmon - yes
teensy_size - yes
 
Good morning Defragster and all,

Glad it is working at least on W10 and they fix the W11 issues soon.

Last line being clipped: https://github.com/arduino/arduino-ide/issues/972
There is also other issues with Serial monitor, like standard ways to select text and navigate and the like: https://github.com/arduino/arduino-ide/issues/812

Also another one about selecting multiple lines, if it scrolls the selection is screwy: https://github.com/arduino/arduino-ide/issues/1081

We probably need to add some of this information to the thread: https://forum.pjrc.com/threads/53548-Arduino-CLI-And-IDE-2-RC-Release-Teensy-Support
And update the first post with RC9 information

I didn't set up Virtual Ram Drive on Win 10 laptop - I only bumped it to 16GB - I don't often use it and RAM was more $$$ last year. That isn't a Win 11 issue - the other reported case was on Win 10. Where that issue on Win 10 that also 'worked until a ~month ago' as well when that issue was reported.

Thanks for digging up #812 clipped line.

I'll go read them and comment.
 
Looking at SerMon - is any of that ported in PJRC code? Or just the IDE 2 sermon offering?

Sorry out on deck,


Some of both. That is the main stuff like displaying, scrolling window… is IDE2, or parts might be CLI,

But there is pluggable monitor code that talks to teensy through serial or SEREMU That then outputs.inputs to arduino code

Edit more details about pluggable monitor can be found: https://arduino.github.io/arduino-cli/dev/pluggable-monitor-specification/
 
Last edited:
@KurtE - thanks - knew enough that T_sermon was injected somewhere ... so not responsible for the ui. A shame it is stuck in that frame under code and not a popout for full size view. Also once in Arduino mode the UI host doesn't allow ZOOM Ctrl +/-. Seems the UI Host does have that as seen in early RC3 release that zoom control worked until it jumps to Arduino layout? Maybe there are issues for those things?

Sitting on the deck myself ... working with the laptop ... fullsize keyboard is nice ... except the frustrating compromised keys: they put Home/End on F11/F12 so have to hit fn key too much, but they gave CALC and CE and +/- keys over NumPad so bookkeepers can be happy :(

Somebody asked about Sketch doing 12Mbps - I posted an idea that seemed to work. Maybe I'll run that against the IDE2 here with PJRC's line count test to see how the IDE 2 SerMon clocks the speed since we are in shade and temp staying nice out here.
 
Can you drop a copy here and I can see if MalwareBytes approves of it now?

I've rebuilt the Windows installer. The new build should be identical, except teensy_secure.exe is now signed (sha256 only). The installer from Wednesday was 91871992 bytes. Today's copy is 91873016 bytes.

I didn't rework the IDE 2.0 package. To play with teensy_secure.exe on IDE2, just install into a copy of Arduino 1.8.19, then grab teensy_secure.exe from C:\Program Files (x86)\Arduino\hareware\tools. (or whereever your 1.8.19 is located if not the default place)


Looking at SerMon - is any of that ported in PJRC code? Or just the IDE 2 sermon offering?

I don't understand this question.

But I can explain that 2 similar but not identical program are used. On Arduino 1.8.19, teensy_serialmon.exe is run by the IDE to access hardware. On Arduino 2.0, teensy-monitor.exe does pretty much the same thing, but the method of communication between this program and the IDE is different on IDE 2.0.

The way these programs use the native WIN32 API also differs. For old Arduino, teensy_serialmon.exe uses a single thread built around MsgWaitForMultipleObjects() to do everything. However, Windows implements stdin / stdout with anonymous pipes which don't support "overlapped" I/O, so you will observe 3 threads because 2 special threads are created merely for the purpose of creating event handles which MsgWaitForMultipleObjects() can use, which those extra threads filling in the missing event signaling stuff.

For new Arduino, teensy-monitor.exe uses a multi-thread approach. One thread waits on stdin and replies on stdout to Arduino 2.0 commands. Two other threads actually move data between the hardware device and a localhost socket which communicates with Arduino 2.0 for the actual data transfer. Even though the usage of ReadFile from devices is done in a dedicated thread where we just wait for data to arrive, it turns out Microsoft implementation of ReadFile blocks WriteFile on other threads, unless overlapped mode is used. So the more complex non-blocking overlapped mode is used by calling GetOverlappedResult() to actually wait for data to arrive. Earlier attempts didn't do this, which caused the bug Kurt found where data sent from the IDE 2.0 serial monitor wouldn't immediately transmit. 1.57-beta4 fixes that problem.

You should see 4 threads from teensy-monitor.exe, because a thread is also created to listen for Windows messages and query Configuration Manager and Setup API for device change info.

The change from single thread to multi-thread model was prompted by the MacOS kernel bug which hard crashes (not just the app, the whole Mac) in certain unlikely cases. I reported the bug to Apple, but it's unlikely they'll fix it anytime soon. So I restructured all the code to avoid their buggy async I/O stuff. Windows and Linux got redesigned too, because I'm trying to keep all 3 as similar as possible to make long term maintenance (hopefully) less work.

For Arduino 1.8.x, the Java code gets a large set of patches to add the capability to communicate with teensy_serialmon.exe, and the speed up how the IDE manages the serial data buffer.

On Arduino 2.0, no modifications are made to Arduino's code. I'm happy to report their new IDE is able to handle the fastest speeds Teensy 4 can transmit, even when overclocked to 1 GHz.

Not sure if that answered your question, but there's all the details about how the serial monitor stuff is implemented.
 
Last edited:
I've rebuilt the Windows installer. The new build should be identical, except teensy_secure.exe is now signed (sha256 only). The installer from Wednesday was 91871992 bytes. Today's copy is 91873016 bytes.

I didn't rework the IDE 2.0 package. To play with teensy_secure.exe on IDE2, just install into a copy of Arduino 1.8.19, then grab teensy_secure.exe from C:\Program Files (x86)\Arduino\hareware\tools. (or whereever your 1.8.19 is located if not the default place)

I don't understand this question.
...

Got the updated EXE xx,3016 ... will put that on laptop w/1.8.19 and test the secure...exe against MalwareBytes.

Also got the PaulStoffregen/USB-Serial-Print-Speed-Test
Will see how my laptop runs against IDE 2 ... and try out that sketch push to 12 Mbps with it.

Question wasn't based on much knowing ... so answer gave good background and got to an answer.
 
Put the teensy_secure.exe in a scanned directory, confirmed it is signed, MalwareBytes approved of it:
T_secureSigned.png

However, when executing it then triggers on its real time operation testing?
T_secureSignedBlocked.png

So, so back to blocking scan of that %appdata% teensy-tools folder :(
> IDE 1.8.19 in an unzipped folder "D:\T_Drive\arduino-1.8.19\hardware\tools" does not trigger the quarantine, and that folder is not on an exclude from scan exception.
It seems the RansomeWare programs were found abusing %appdata% so it gets special protection/attention.


In IDE 2 RC9: usb_serial_print_speed is showing a consistent and steady lps count!
Code:
count=69075035, lines/sec=512653
> running now some few minutes and it is maintaining that 500K number
>> 8 Core laptop has all 8 cores at >50% : TaskMan shows Arduino IDE showing 55-60% usage!
-> unplugging the running T_4.1 in some 10's of seconds now under 3% cpu usage

NOTE: With that running 500K lps the IDE 2 "Toggle Autoscroll" FAILS to stop AutoScroll!
>> This ran a decent time, need to plug in my laptop now:: count=342601810, lines/sec=498181
 
running now some few minutes and it is maintaining that 500K number

As a sanity check, do you see the millions digit steadily incrementing every 2 seconds?


NOTE: With that running 500K lps the IDE 2 "Toggle Autoscroll" FAILS to stop AutoScroll!

Yes, I've seen this too. It's a IDE 2.0 bug, where they're (probably) only stopping the GUI but not watching for when their buffer is full and keeping it from overflowing (and losing the data which should be kept on screen). Not sure if anyone has reported it yet. I'm pretty sure they're not testing with Teensy 4.0 or any other boards capable of transmitting at anywhere near this speed, so they would need a long time to reproduce this bug.
 
As a sanity check, do you see the millions digit steadily incrementing every 2 seconds?

Yes, I've seen this too. It's a IDE 2.0 bug, where they're (probably) only stopping the GUI but not watching for when their buffer is full and keeping it from overflowing (and losing the data which should be kept on screen). Not sure if anyone has reported it yet. I'm pretty sure they're not testing with Teensy 4.0 or any other boards capable of transmitting at anywhere near this speed, so they would need a long time to reproduce this bug.

Yes: Hard to watch 1M ... timing on 2M change was 4 secs and 4M in 8 secs
> running fast and smooth with no apparent garbage. 80%+ on Arduino and 8 cores showing all 100%
 
Back
Top