Teensyduino 1.61 Beta #1

Paul

Administrator
Staff member
Here is a first beta test for Teensyduino 1.61.

Arduino 2.3.x, all systems platforms: https://www.pjrc.com/teensy/td_161-beta1/package_teensy_0.61.1_index.json

Use Boards Manager to install Teensy version 0.61.1
(to refresh versions, Shift-Ctrl-P and click "Arduino: Update Package Index")

Arduino 1.8.x, Linux 64 bit: https://www.pjrc.com/teensy/td_161-beta1/TeensyduinoInstall.linux64

Arduino 1.8.x, Linux ARM: https://www.pjrc.com/teensy/td_161-beta1/TeensyduinoInstall.linuxarm

Arduino 1.8.x, Linux ARM64: https://www.pjrc.com/teensy/td_161-beta1/TeensyduinoInstall.linuxaarch64

Arduino 1.8.x, Windows: https://www.pjrc.com/teensy/td_161-beta1/TeensyduinoInstall.exe

PlatformIO, DIY beta support: https://forum.pjrc.com/threads/71730


Changes since Teensyduino 1.60:

Update .EHEX secure mode update for compatibility with bootloader 1.09
Add Tools > CPU Speed options for 60, 90, 120, 180, 240 MHz on Teensy 4.x
Adjust Teensy 4.x CPU voltage calculation
Audio library improve resilience to other libraries using large DMA - only with I2S1 so far
Audio library prevent unnecessary DMA channel allocation for PWM output ( Jonathan Oakley)
SD library add example programs mediaPresent.ino and SdFat_Usage_FourCards.ino
ST7735_t3 library break large updates into multiple SPI transactions (Defragster)
USBHost_t36 library add support for CP2105 dual serial
SdFat library allow use of BUILTIN_SDCARD to init SDIO on Teensy 4.x (jmarsh)
Fix USB MIDI on Teensy 2.0
Define UINT8_MAX on Teensy 2.0
Add missing bit defines for I2S registers on Teensy 4.x
Define FlexSPI LUT for flash memory reading on Teensy 4.x
Clean up unused stuff from Teensy 4.x startup code
Update sample Makefile comments/instructions
Teensy Loader show more hardware info in Verbose Info window
Delete all "Teensy 4 Security" plugin files with Arduino 2.3.x Boards Manager uninstall
 
Last edited:
IDE #1 EXE Download accepted and saved without extra approval on Windows 11 with Edge!
Did require 'properties / unblock' common for many exe downloads. Install ran fine

Built and uploaded the recent ROLF sketch on MINI's ST7796_t3 display and the AI written Tetris on Another.
 
@Paul You have the wrong address here
Opps - this is valid correction! Proper link: https://www.pjrc.com/teensy/td_161-beta1/TeensyduinoInstall.exe
(@BriComp 2nd link right text but wrong link)

Repeated p#2 step with same result! Except > Download came with prior version issue, required two clicks to save the download.
Also uploaded 3rd MINI Platform test sketch to work.
1778095502518.png
 
Last edited:
Linux64 version on Ubuntu 25.10 installed on three computers. So far everything I have compiled and ran without issue. Need to check out Devboard 5.0 usage yet. It was working fine with TD 1.60.
EDIT: Compiled and uploaded my MB library which uses several other libraries to the DEVboard 5.0 W/O issue.
Code:
teensy_size: Memory Usage on Teensy MicroMod:
teensy_size:   FLASH: code:312808, data:43096, headers:8636   free for files:16150532
teensy_size:    RAM1: variables:116576, code:301000, padding:26680   free for local variables:80032
teensy_size:    RAM2: variables:107232  free for malloc/new:417056
/home/wwatson/.arduino15/packages/teensy/tools/teensy-tools/0.60.5/stdout_redirect /tmp/arduino_build_707260/mb.ino.lst /home/wwatson/.arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/arm-none-eabi-objdump -d -S -C /tmp/arduino_build_707260/mb.ino.elf
Multiple libraries were found for "SD.h"
 Used: /home/wwatson/.arduino15/packages/teensy/hardware/avr/0.60.5/libraries/SD
 Not used: /home/wwatson/arduino-1.8.19-TD1.61B1/libraries/SD
Using library TeensyMiniOS at version 1.0.0 in folder: /home/wwatson/Arduino/libraries/TeensyMiniOS
Using library TeensyRA8876-8080_WW at version 1.0.0 in folder: /home/wwatson/Arduino/libraries/TeensyRA8876-8080_WW
Using library TeensyRA8876-GFX-Common_WW at version 1.0.0 in folder: /home/wwatson/Arduino/libraries/TeensyRA8876-GFX-Common_WW
Using library Wire at version 1.0 in folder: /home/wwatson/.arduino15/packages/teensy/hardware/avr/0.60.5/libraries/Wire
Using library FlexIO_t4 at version 1.0.0 in folder: /home/wwatson/.arduino15/packages/teensy/hardware/avr/0.60.5/libraries/FlexIO_t4
Using library DiskIO at version 3.0.6 in folder: /home/wwatson/Arduino/libraries/DiskIO
Using library SD at version 2.0.0 in folder: /home/wwatson/.arduino15/packages/teensy/hardware/avr/0.60.5/libraries/SD
Using library SdFat at version 2.1.2 in folder: /home/wwatson/.arduino15/packages/teensy/hardware/avr/0.60.5/libraries/SdFat
Using library SPI at version 1.0 in folder: /home/wwatson/.arduino15/packages/teensy/hardware/avr/0.60.5/libraries/SPI
Using library USBHost_t36 at version 0.2 in folder: /home/wwatson/.arduino15/packages/teensy/hardware/avr/0.60.5/libraries/USBHost_t36
Using library TeensyEXT4 at version 3.1.0 in folder: /home/wwatson/Arduino/libraries/TeensyEXT4
Using library stbasic40v2 at version 2.0.0 in folder: /home/wwatson/Arduino/libraries/stbasic40v2
Using library Audio at version 1.3 in folder: /home/wwatson/.arduino15/packages/teensy/hardware/avr/0.60.5/libraries/Audio
Using library Time at version 1.6.1 in folder: /home/wwatson/.arduino15/packages/teensy/hardware/avr/0.60.5/libraries/Time
Using library EEPROM at version 2.0 in folder: /home/wwatson/.arduino15/packages/teensy/hardware/avr/0.60.5/libraries/EEPROM
Using library SerialFlash at version 0.5 in folder: /home/wwatson/.arduino15/packages/teensy/hardware/avr/0.60.5/libraries/SerialFlash
 
Last edited:
I've edited msg #1 with list of changes.

If you have time & interest for testing, here's 3 questions I have:
  • For people who saw stability issues at 528 MHz, does the slight increase in CPU voltage help?
  • For low power usage, are the new CPU Speed options from 60 to 240 MHz useful?
  • For DMA-heavy projects (eg, combining ST7735_t3, Audio, OctoWS2811), is I2S1 audio output more stable?
 
I've edited msg #1 with list of changes.

If you have time & interest for testing, here's 3 questions I have:

  • For low power usage, are the new CPU Speed options from 60 to 240 MHz useful?
Yes. I've been using 136Mhz for the past 9 or so months as part of a power saving feature.
 
Hi,

I am still currently using 1.59 with Teensy 4.1 at 528Mhz.
Is this a mandatory update for this?
=> -Adjust Teensy 4.x CPU voltage calculation

I had no problems so far with it.

Thank you
Torsten
 
a mandatory update
Not if you are finding it to work without any unexpected behavior.
It might be chip variation or with specific code and hardware cases.

Recent failures were observed on some half of a few T_4.1's running a specific complex code on a specific PCB run by three remote persons each finding .at least one t_4.1 running and one failing with regularity when exchanged. Nothing in the code pointed to the problem as tested and changed. But the behavior followed (in generally 7-12 minutes) those units that demonstrated the behavior where the other exhibited expected stability for long duration on the same code. Paul posted notes on the change in a recent thread where this was discussed.
 
This thread is where stability problems at 528 MHz were reported.


Prior versions have configured the CPU voltage this way:

24 MHz = 0.950V
25 to 528 MHz = 1.150V
529 to 627 MHz = 1.250V
628 to 655 MHz = 1.275V
656 to 683 MHz = 1.300V
684 to711 MHz = 1.325V
712 to 739 MHz = 1.350V
740 to 767 MHz = 1.375V
768 to 795 MHz = 1.400V
796 to 823 MHz = 1.425V
824 to 851 MHz = 1.450V
852 to 879 MHz = 1.475V
880 to 907 MHz = 1.500V
908 to 935 MHz = 1.525V
936 to 963 MHz = 1.550V
964 to 1.008 GHz = 1.570V

The current plan for version 1.61 is this:

24 to 31 MHz = 0.950V
32 to 63 MHz = 0.975V
64 to 95 MHz = 1.000V
96 to 127 MHz = 1.025V
128 to 159 MHz = 1.050V
160 to 191 MHz = 1.075V
192 to 223 MHz = 1.100V
224 to 240 MHz = 1.125V
241 to 491 MHz = 1.150V
492 to 527 MHz = 1.175V
528 to 563 MHz = 1.200V
564 to 599 MHz = 1.225V
600 to 627 MHz = 1.250V
628 to 655 MHz = 1.275V
656 to 683 MHz = 1.300V
684 to711 MHz = 1.325V
712 to 739 MHz = 1.350V
740 to 767 MHz = 1.375V
768 to 795 MHz = 1.400V
796 to 823 MHz = 1.425V
824 to 851 MHz = 1.450V
852 to 879 MHz = 1.475V
880 to 907 MHz = 1.500V
908 to 935 MHz = 1.525V
936 to 963 MHz =1.550V
964 to 1.008 GHz = 1.570V

Everything is the same 600 MHz and up (overclock), and at 24 MHz, and between 241 to 491 MHz.

Between 492 to 528 MHz, voltage is increase by 25mV or 50mV. This is mainly in response to people reporting issues at 528 MHz.

Between 529 to 599 MHz, voltage is actually slightly lower. This is a consequence of using a gradual transition rather than 100 mV step at 529 MHz.

Between 25 to 240 MHz, voltage is decreased. This is also due to a gradual decline, which I'm hoping will help people wanting lower power but needing more performance than 24 MHz.

All of this is still up for discussion. Comments with actual testing carry a lot more weight than opinions based on theory.
 
Been playing with the 1.61-beta1 over the last couple of days using @KenHahn mini dev board with a st7796 install.

First out of curiosity ran the old coremark sketch just to see what happens at the lower speeds:
1778412467835.png


The other tests I ran was Demosauce graphics to run on the ST7796 and also my OpenGL lib that now works on the st7796 which kind of pushes memory and lots of calc's for the graphics.

Demosauce: Ran at 24mhz and 528mhz for a couple of hours and didn't see any issues with the graphics. Temp at 24mhz stayed at about 38 while at 528mhz about 46 deg C.

OpenGL: Again ran a highres rotating teapot for over 2 hours with not issues that I could see. Temps in this case were about 39 deg C and 46 deg C.

This is kind of a mem usuage for the openGl teapot
Code:
6:20:42.545 -> OpenGL Test!
16:20:43.495 -> FLASH: 124928  1.54% of 7936kB (8001536 Bytes free) FLASHMEM, PROGMEM
16:20:43.495 -> ITCM:   68424 69.60% of   96kB (  29880 Bytes free) (RAM1) FASTRUN
16:20:43.495 -> PSRAM: 8 MB
16:20:43.495 -> OCRAM:
16:20:43.495 ->    524288 Bytes (512 kB)
16:20:43.495 -> -   12416 Bytes (12 kB) DMAMEM
16:20:43.495 -> -   79816 Bytes (77 kB) Heap
16:20:43.495 ->    432056 Bytes heap free (421 kB), 92232 Bytes OCRAM in use (90 kB).
16:20:43.495 -> DTCM:
16:20:43.495 ->    425984 Bytes (416 kB)
16:20:43.495 -> -  168544 Bytes (164 kB) global variables
16:20:43.495 -> -    1360 Bytes (1 kB) max. stack so far
16:20:43.495 -> =========
16:20:43.495 ->    256080 Bytes free (250 kB), 169904 Bytes in use (165 kB).
based on Franks B powert4 lib.
 
Been playing with the 1.61-beta1 over the last couple of days using @KenHahn mini dev board with a st7796 install.

First out of curiosity ran the old coremark sketch just to see what happens at the lower speeds:


The other tests I ran was Demosauce graphics to run on the ST7796 and also my OpenGL lib that now works on the st7796 which kind of pushes memory and lots of calc's for the graphics.

Demosauce: Ran at 24mhz and 528mhz for a couple of hours and didn't see any issues with the graphics. Temp at 24mhz stayed at about 38 while at 528mhz about 46 deg C.

OpenGL: Again ran a highres rotating teapot for over 2 hours with not issues that I could see. Temps in this case were about 39 deg C and 46 deg C.

This is kind of a mem usuage for the openGl teapot
Code:
6:20:42.545 -> OpenGL Test!
....
[/QUOTE]
Stop one second, you have an OpenGL lib for the Teensy? If so, is this library public or can I gain access to it?
I'm an old school OpenGL fan and have ported a number of demos here and there. Direct ports of Boing and GLFW Particles to Teensy 4.1 would be cool.
 
Stop one second, you have an OpenGL lib for the Teensy? If so, is this library public or can I gain access to it?
I'm an old school OpenGL fan and have ported a number of demos here and there. Direct ports of Boing and GLFW Particles to Teensy 4.1 would be cool.

Yeah havent done much with it lately keep getting distracted. Its not really a port of anything but kind of a frankenstein version. And yeah its public. Here is a link to the thread about it and the link to the repo
 
If you have time & interest for testing, here's 3 questions I have:
  • For people who saw stability issues at 528 MHz, does the slight increase in CPU voltage help?
I am being the messenger here as the user doesn't spend much time on the forum. It appears that the changes fixed some units that previously demonstrated the issue, but on others it allowed them to get further along in the process but then still hung. It looks like 1.20V may not be a universal fix at 528MHz. In all cases changing to 600MHz allows all known test cases to work.

As per the original thread that reported this issue, both of these different baseboards (AP/PS) have a 7" RA8875 LCD on SPI1 that hangs, apparently when SPI transactions are not correctly completed at the lower operating voltages.
_____________________
User Notes:

It looks like the beta changes aren't a universal fix. I can confirm the following with the beta of Teensyduino 1.61 and my T41 software:

* The "bad" AP board that we tested before works at 528MHz on the beta. It needs 600MHz on 1.60.

* The beta with the recent board you made for me in the Project System and at 528MHz, now starts up and gets to about the place we saw the bad boards getting to on the AP and then freezes. It runs at 600MHz on 1.61 and 1.60. It didn't make it past display initialization at 528MHz on 1.60.

This is definitely display related. My software has changed since we tested last and I'm running these as "remote" units. They don't start drawing the detailed spectrum data to the display until connected to the "T41". The recent board on the PS runs just fine with the beta at 528MHz and waits for the T41 to be connected. It fails though right after connection and the data starts to be rendered.
_______________________

I'll add that I am not sure what the right trade off is on this issue. If boosting 528MHz up to 1.25V reduces most of the benefit gained for lifetime and thermals by running at 528MHz, then perhaps it would be better to just deal with the boundary cases than to change the default.
 
Last edited:
Back
Top