Teensyduino 1.56 Released

Status
Not open for further replies.

Paul

Administrator
Staff member
Teensyduino 1.56 has been released

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


Quick summary: 1.56 brings support for Arduino 1.8.19 and many fixes and improvements. Teensy 4.0, 4.1, MicroMod get a bootloader update which allows LittleFS_Program filesystem to persist across code uploads.



Changes since 1.56-beta6:

SD & LittleFS listfiles PrintTime check valid month
Fix Print::printf to call va_end (Shawn Silverman)
SD getModifyTime getCreateTime check 0 from SdFat (KurtE)


Complete list of changes since 1.55:

Support for Arduino 1.8.19
Fix serial monitor stall on Windows
Fix upload failure to locked Teensy 4 if button pressed
FS.h support file create and modify time
SD support file create and modify time
SD automatically uses RTC
LittleFS support file create and modify time
LittleFS automatically uses RTC
Add makeTime, breakTime, DateTimeFields
Fix serial monitor regression with MTP on Linux
Fix digitalPinHasPWM for higher pin numbers on Teensy 4
MTP configure event endpoint on Teensy 4
Add FS format() and mediaPresent()
Add String compatibility to FS,SD,LittleFS,etc
Add LittleFS format() (mjs513)
Add SD format() and mediaPresent()
Update SdFat to version 2.1.0 and enable UTF8 filenames
Edit SdFat examples to compile on Teensy 3 & 4
Audio fix PT8211 when no audio data input (Frank B)
Audio i2s2 slave mode (alex6679)
Update FastCRC (Frank B)
USBHost_t36 HID support 1000 Hz update (Kurt E)
USBHost_t36 Keyboard forward API and example (Kurt E)
Reduce wasted memory during linking (Frank B)
Fix MTP detection on Linux
Fix serial monitor on Linux with MTP
Fix rare serial monitor stall on Windows
Fix rare Null Pointer Exception when closing serial monitor
Teensy Loader updates Teensy 4.0, 4.1, MicroMod to bootloader 1.07
Improve SD.mediaPresent()
Fix SD compile error on Teensy LC
Show helpful error if original SdFat used
Fix SdFat example compile errors, FsFile & SD_FAT_TYPE
Delete SdFat examples not needed for Teensy
Improve SdFat format speed with SHARED_SPI
Improve SdFat free cluster count speed with SHARED_SPI
Add SdFat restart(), to reinitialize hardware & card
SdFat FAT16/32 format use existing buffer (Kurt E)
SdFat support for GPT partitions (Kurt E)
SdFat fix use of USE_SIMPLE_LITTLE_ENDIAN
SdFat fix exfat corruption when using timestamps (Kurt E)
Wire use inline functions for AVR
Wire increase buffer size on Teensy 3 & 4
Wire fix ambiguous requestFrom with bool
FS use block write (Kurt E)
Fix IMXRT_DMA_TCD define
Add comments in imxrt.h for clock gate requirements
Fix MTP count of bytes transferred (Kurt E)
Improve usbMIDI.send_now() on Teensy 3.x (Robert Jonkman)
Improve Stream comptibility with newer Arduino (Kurt E)
Audio add play queue setMaxBuffers() (Mark T)
Audio add play queue play() for raw data (Mark T)
Update FastLED to 3.4
FastLED fix OctoWS2811 driver on Teensy 4 (Shawn Silverman)
FastLED fix WS2812B timing on Teensy 4
OctoWS2811 add BasicTest_FastLED example
FreqCount fix for reading less slower than gate interval (mjs513)
FreqCount add missing end() function (mjs513)
LittleFS update internal littlefs to version 2.4.1 (mjs513)
Tlc5940 minor update for compiler flag setting (Adam Phelps)
OneWire minor updates for non-Teensy boards
USBHost_t36 fix HIDDumper example for Linux (Kurt E)
USBHost_t36 increase enum buffer for complex MIDI devices (Robert Jonkman)
Improve Teensy 4 Secure fusewrite and locksecuremode
Allow some old Teensy 4.x boards to run EHEX files
Add usage info with -h to teensy_post_compile and teensy_ports
Fix teensy_ports -L on Windows
Support for Arduino 1.8.18
SD faster detection of SDIO media change (KurtE)
SdFat fix SDIO on MicroMod (mjs513)
Fix pins 38 & 39 on MicroMod
LittleFS improve erase+write speed for NOR flash chips
LittleFS fix FRAM defines
LittleFS add Write_Speed_Test example
Fix PXP_PS_CTRL register defines
Fix USB receive packet loss with MTP on Teensy 4
Audio fixes for very small buffer size (Eric Fontaine)
FreqCount fix 1st reading on Teensy 4 (mjs513)
Teensy Loader verbose info clearer Standard vs Lockable
Drop Arduino 1.8.18
SdFat use same SDIO signal strength on all Teensy 4 (mjs513)
More MicroMod & Teensy 4 pin 38 & 39 fixes
Fix AudioPlayQueue internal stall (h4yn0nnym0u5e)
Add AudioControlCS42448 functions (modularev)
AudioInputAnalog compile on Teensy LC
Update FlexCAN_T4
Fix ILI9488_t3 examples (KurtE)
Update IRremote
LittleFS add LittleFS_SPI & LittleFS_QSPI wrappers (KurtE)
Fix LittleFS examples (mjs513)
Remove unneed LittleFS RAM cache flush (Defragster)
Fix OctoWS2811 VideoDisplay_Teensy4 extra cases (timethy96)
RA8875 examples fixed (KurtE)
RadioHead examples fixed (mjs513)
RadioHead fixes for Teensy 2
Snooze examples fixed (KurtE)
ST7789_t3 examples fixed (KurtE)
TeensyThreads updated
TFT_ILI9163C examples fixed
XPT2046_Touchscreen threshold adjusted (Andrew Kroll)
Fix SD example SdFat_Usage on Teensy 2.0
Fix SdFat example BackwardCompatibility on Teensy 2.0
SoftwareSerial add bool operator
Fix SD src-utility conflict when installed on top of 1.53 with Arduino 1.8.5-1.8.9
Audio fix compiler errors & warnings with Teensy LC
Audio Fix MidiSynthKeyboard example on Teensy 4
Audio async spdif example to compile on all boards
ILI9488_t3 fix compile errors in examples (KurtE)
ILI9488_t3 better document examples (mjs513)
LittleFS fix RAM Test_Integrity on Teensy 3.5 & 3.6 (Defragster)
LittleFS add Cypress and Fuji 2MBit FRAM support (KurtE)
MIDI fix DualMerger example
Fix Snooze hibernate/sd_datalogger example
SD & LittleFS listfiles PrintTime check valid month
Fix Print::printf to call va_end (Shawn Silverman)
SD getModifyTime getCreateTime check 0 from SdFat (KurtE)
 
Just installed over 1.56beta6 without an issue. Gave it a quick test on the Micromod with a ILI9341 display while doing some mods with the Quad encoder library. All is good so far will be playing more later today.
 
Now that 1.56 is released went ahead and locked the Teensy MicroMod board and ran the LittleFS_Program test to check limits of filesystem persistence. Ran it before and after locking just as a check. I used the following table;
Code:
Board            Normal  Secure
-----            ------  ------
Teensy 4.0       1472K   960K
Teensy 4.1       7424K   6912K  
MicroMod Teensy  15616K  15104K

Prior to locking the TMM with just the fuses set with
Code:
PROG_FLASH_SIZE = 1024*15616

ran the sketch twice to see if the FS persistent:
Code:
Startup Before LittleFS Begin - Run 2 
LittleFS Test
TotalSize (Bytes): 15990784
After LittleFS Begin
started
MAKE files
printDirectory [B]-(already on filesystem from prior run)[/B]
--------------
DIR	structureData1 / 
	FILE	temp_test.txt		19

 0 dirs with 1 files of Size 19 Bytes
FILE	temp_test1.txt		19
FILE	temp_test2.txt		19
FILE	temp_test3.txt		1024

 1 dirs with 3 files of Size 1062 Bytes

--------------
printDirectory -[B] after updating files[/B]
--------------
DIR	structureData1 / 
	FILE	temp_test.txt		38

 0 dirs with 1 files of Size 38 Bytes
FILE	temp_test1.txt		38
FILE	temp_test2.txt		38
FILE	temp_test3.txt		2048

 1 dirs with 3 files of Size 2124 Bytes
Basically means the file system persistent across runs (pressed program button).

Now I locked the TMM with the lock sketch
Code:
Set Lockable Teensy into secure mode
Success: Secure mode set
and repeated.

Code:
Startup Before LittleFS Begin
LittleFS Test
TotalSize (Bytes): 15466496 [B]= 1024x15104[/B]
After LittleFS Begin
started
MAKE files
printDirectory
--------------
DIR	structureData1 / 
	FILE	temp_test.txt		19

 0 dirs with 1 files of Size 19 Bytes
FILE	temp_test1.txt		19
FILE	temp_test2.txt		19
FILE	temp_test3.txt		1024

 1 dirs with 3 files of Size 1062 Bytes

--------------
printDirectory
--------------
DIR	structureData1 / 
	FILE	temp_test.txt		38

 0 dirs with 1 files of Size 38 Bytes
FILE	temp_test1.txt		38
FILE	temp_test2.txt		38
FILE	temp_test3.txt		2048

 1 dirs with 3 files of Size 2124 Bytes

A couple of things to note:
1. FS was erased from previous unlocked test and reset (can tell by the first print directory of file sizes of 19 bytes)
2. The second print directory shows that 19 bytes were added to the files that were already there which is correct for the correct

Now if I cycle power off and on you will see the file sizes to to 57 bytes for test1 and test2.txt files and the test3 is incremented by 1024 bytes:
Code:
Startup Before LittleFS Begin
LittleFS Test
TotalSize (Bytes): 15466496
After LittleFS Begin
started
MAKE files
printDirectory
--------------
DIR	structureData1 / 
	FILE	temp_test.txt		38

 0 dirs with 1 files of Size 38 Bytes
FILE	temp_test1.txt		38
FILE	temp_test2.txt		38
FILE	temp_test3.txt		2048

 1 dirs with 3 files of Size 2124 Bytes

--------------
printDirectory
--------------
DIR	structureData1 / 
	FILE	temp_test.txt		57

 0 dirs with 1 files of Size 57 Bytes
FILE	temp_test1.txt		57
FILE	temp_test2.txt		57
FILE	temp_test3.txt		3072

 1 dirs with 3 files of Size 3186 Bytes

Disk Usuage:
Bytes Used: 327680, Bytes Total:15466496

Bottom line - works as it should
 
Downloaded and updated on Windows 10 64 bit, Ubuntu 64 bit and Mac... They all appear to run :)

Locked MMod, now back to playing with MTP MSC...
 
Quick update: Playing with Locked MMOD Did an upload of new program this morning and got the dual led pins blinking for awhile:
Code:
05:57:48.224 (post_compile 1): Begin, version=1.56, high-res time
05:57:48.487 (loader): Teensy Loader 1.56, begin program
05:57:48.589 (loader): File "C:\Users\kurte\AppData\Local\Temp\arduino_build_SD_Program_SPI_QSPI_MTP-logger.ino\SD_Program_SPI_QSPI_MTP-logger.ino.hex", 171008 bytes
05:57:48.625 (loader): File "C:\Users\kurte\AppData\Local\Temp\arduino_build_SD_Program_SPI_QSPI_MTP-logger.ino\SD_Program_SPI_QSPI_MTP-logger.ino.ehex", 171008 bytes, and 5152 loader utility
05:57:48.625 (loader): ehex is valid, key hash: FB63C934 9683889D 3A20DB52 811A0593 83BEA33F 0F810CDF D6AD3C83 5DF1DA1A
05:57:48.625 (loader): File "SD_Program_SPI_QSPI_MTP-logger.ino.hex". 171008 bytes
05:57:48.641 (loader): Listening for remote control on port 3149
05:57:48.641 (loader): initialized, showing main window
05:57:48.695 (loader): remote connection 1272 opened
05:57:48.695 (loader): remote cmd from 1272: "comment: Teensyduino 1.56 - WINDOWS (teensy_post_compile)"
05:57:48.695 (loader): remote cmd from 1272: "status"
05:57:48.695 (loader): HID/win32:  vid:058F pid:9410 ver:0122  usb:0/140000/0/A/B
05:57:48.695 (loader): HID/win32:  vid:058F pid:9410 ver:0122  usb:0/140000/0/A/B
05:57:48.695 (loader): HID/win32:  vid:045E pid:07A5 ver:0797  usb:0/140000/0/9/B
05:57:48.695 (loader): HID/win32:  vid:045E pid:07A5 ver:0797  usb:0/140000/0/9/B
05:57:48.695 (loader): HID/win32:  vid:045E pid:07A5 ver:0797  usb:0/140000/0/9/A
05:57:48.702 (post_compile 1): Sending command: comment: Teensyduino 1.56 - WINDOWS (teensy_post_compile)
05:57:48.709 (loader): HID/win32:  vid:045E pid:07A5 ver:0797  usb:0/140000/0/9/B
05:57:48.709 (loader): HID/win32:  vid:16C0 pid:04D1 ver:0281  usb:0/140000/0/1/2/2
05:57:48.709 (loader): remote cmd from 1272: "dir:C:\Users\kurte\AppData\Local\Temp\arduino_build_SD_Program_SPI_QSPI_MTP-logger.ino\"
05:57:48.709 (loader): remote cmd from 1272: "file:SD_Program_SPI_QSPI_MTP-logger.ino.hex"
05:57:48.712 (post_compile 1): Status: 1, 0, 0, 0, 0, 0, C:\Users\kurte\AppData\Local\Temp\arduino_build_SD_Program_SPI_QSPI_MTP-logger.ino\, SD_Program_SPI_QSPI_MTP-logger.ino.hex
05:57:48.712 (post_compile 1): Sending command: dir:C:\Users\kurte\AppData\Local\Temp\arduino_build_SD_Program_SPI_QSPI_MTP-logger.ino\
05:57:48.713 (post_compile 1): Sending command: file:SD_Program_SPI_QSPI_MTP-logger.ino.hex
05:57:48.741 (loader): File "C:\Users\kurte\AppData\Local\Temp\arduino_build_SD_Program_SPI_QSPI_MTP-logger.ino\SD_Program_SPI_QSPI_MTP-logger.ino.hex", 171008 bytes
05:57:48.756 (loader): File "C:\Users\kurte\AppData\Local\Temp\arduino_build_SD_Program_SPI_QSPI_MTP-logger.ino\SD_Program_SPI_QSPI_MTP-logger.ino.ehex", 171008 bytes, and 5152 loader utility
05:57:48.756 (loader): ehex is valid, key hash: FB63C934 9683889D 3A20DB52 811A0593 83BEA33F 0F810CDF D6AD3C83 5DF1DA1A
05:57:48.756 (loader): File "SD_Program_SPI_QSPI_MTP-logger.ino.hex". 171008 bytes
05:57:48.756 (loader): remote cmd from 1272: "status"
05:57:48.772 (loader): remote cmd from 1272: "auto:on"
05:57:48.774 (post_compile 1): Status: 1, 0, 0, 0, 0, 0, C:\Users\kurte\AppData\Local\Temp\arduino_build_SD_Program_SPI_QSPI_MTP-logger.ino\, SD_Program_SPI_QSPI_MTP-logger.ino.hex
05:57:48.774 (post_compile 1): Sending command: auto:on
05:57:48.775 (post_compile 1): Disconnect
05:57:48.788 (loader): remote connection 1272 closed
05:57:51.124 (loader): handle 534
05:57:51.124 (loader): Device came online, code_size = 100
05:57:51.124 (loader): Board is: NXP IMXRT1062 ROM
05:57:51.124 (loader): begin operation
05:57:51.158 (loader): File "C:\Users\kurte\AppData\Local\Temp\arduino_build_SD_Program_SPI_QSPI_MTP-logger.ino\SD_Program_SPI_QSPI_MTP-logger.ino.hex", 171008 bytes
05:57:51.181 (loader): File "C:\Users\kurte\AppData\Local\Temp\arduino_build_SD_Program_SPI_QSPI_MTP-logger.ino\SD_Program_SPI_QSPI_MTP-logger.ino.ehex", 171008 bytes, and 5152 loader utility
05:57:51.181 (loader): ehex is valid, key hash: FB63C934 9683889D 3A20DB52 811A0593 83BEA33F 0F810CDF D6AD3C83 5DF1DA1A
05:57:51.181 (loader): File "SD_Program_SPI_QSPI_MTP-logger.ino.hex". 171008 bytes
05:57:51.181 (loader): set background IMG_ONLINE
05:57:51.194 (loader): nxp_write: success
05:57:51.194 (loader): HAB locked secure mode
05:57:51.199 (loader): sending ehex loader utility, 5152 bytes
05:57:51.199 (loader): nxp_write: success
05:57:51.199 (loader): nxp_write: success
05:57:51.199 (loader): nxp_write: success
05:57:51.199 (loader): nxp_write: success
05:57:51.199 (loader): nxp_write: success
05:57:51.199 (loader): nxp_write: success
05:57:51.199 (loader): nxp_write: success
05:57:51.199 (loader): run it..
05:57:51.199 (loader): nxp_write: success
05:57:51.209 (loader): ehex loader utility sucessfully started
05:57:51.209 (loader): end operation, total time = 0.085 seconds
05:57:51.219 (loader): redraw timer set, image 80 to show for 2000 ms
05:57:51.374 (loader): HID/win32:  vid:058F pid:9410 ver:0122  usb:0/140000/0/A/B
05:57:51.374 (loader): HID/win32:  vid:058F pid:9410 ver:0122  usb:0/140000/0/A/B
05:57:51.374 (loader): HID/win32:  vid:045E pid:07A5 ver:0797  usb:0/140000/0/9/B
05:57:51.379 (loader): HID/win32:  vid:045E pid:07A5 ver:0797  usb:0/140000/0/9/B
05:57:51.379 (loader): HID/win32:  vid:045E pid:07A5 ver:0797  usb:0/140000/0/9/A
05:57:51.379 (loader): HID/win32:  vid:045E pid:07A5 ver:0797  usb:0/140000/0/9/B
05:57:53.219 (loader): redraw, image 9
05:58:27.490 (loader): Verbose Info event
After this I tried pressing the program button on board and it updated without the dual blinking.
 
Had the same thing happen to me last night on the locked Micromod. The dual blinking went on for a couple of seconds but then the upload occurred. Attaching the verbose output.
 

Attachments

  • log.zip
    27.5 KB · Views: 392

There is a slight typo on the download page, the version was not updated in the description:

Teensyduino 1.55 supports Arduino versions 1.8.5 and 1.8.9 and 1.8.12 and 1.8.13 and 1.8.15 and 1.8.16 and 1.8.19.
Future versions of Teensyduino will drop support for Arduino 1.8.15
On Windows, the Arduino installer and ZIP are supported, but the Windows store "app" is not.
Windows 10 provides much better USB support than Windows 7, 8 & XP.
On Linux, PJRC tests X86 & AARCH64 on Ubuntu and ARM32 on Raspbian. Other distros may work, but are not supported.
 
I'm still having some trouble seeing which bootloader a Teensy 4.1 is on. The Verbose Info from 1.55:

Code:
17:57:22.395 (loader): Teensy Loader 1.55, begin program
17:57:22.474 (loader): Listening for remote control on port 3149
17:57:22.475 (loader): initialized, showing main window
17:57:24.882 (loader): Verbose Info event

From 1.56:
Code:
17:58:54.630 (loader): Teensy Loader 1.56, begin program
17:58:54.684 (loader): Listening for remote control on port 3149
17:58:54.685 (loader): initialized, showing main window
17:58:57.479 (loader): Verbose Info event

(Ref: https://forum.pjrc.com/threads/68748-Teensyduino-1-56-Beta-3?p=295515&viewfull=1#post295515)

Each time I go to the "Verbose Info" menu item under "Help", it merely prints "Verbose Info event".
 
Last edited:
I'm still having some trouble seeing which bootloader a Teensy 4.1 is on. The Verbose Info from 1.55:
...
(Ref: https://forum.pjrc.com/threads/68748-Teensyduino-1-56-Beta-3?p=295515&viewfull=1#post295515)

Each time I go to the "Verbose Info" menu item under "Help", it merely prints "Verbose Info event".

The version # is shown when Teensy enters Bootloader mode like on upload, not on power up or other log entries as Teensy events are shown.

> Do a Verify build of Blink.ino or other for the Teensy 4.1.
> The Teensy Loader will be open and do a 'Log / Clear' on the Verbose info window (makes it easier to find only the line showing the bootloader version)
> Press the Button on the Teensy for an upload

:: Or with Teensy Loader active
> disable the 'Auto'
> Do a 'Log / Clear' on the Verbose info window (makes it easier to find only the line showing the bootloader version)
> Press the Button on the Teensy


Then scan the Verbose output text - or copy to a searchable editor:
Code:
 ...
19:21:32.517 (loader): Device came online, code_size = 8126464
19:21:32.520 (loader): Board is: Teensy 4.1 (IMXRT1062), version 1.07
...
 
Thanks. I was able to see `Board is: Teensy 4.1 (IMXRT1062), version 1.07`. My Log->Clear menu option, however, is greyed out. Is there a way to enable it? I tried toggling the Auto mode, but the option is still greyed out.
 
Thanks. I was able to see `Board is: Teensy 4.1 (IMXRT1062), version 1.07`. My Log->Clear menu option, however, is greyed out. Is there a way to enable it? I tried toggling the Auto mode, but the option is still greyed out.

Not sure what UI is showing with things 'grayed' out - not that way here in Windows.

The Clear was just to minimize the verbose chatter to scan for the Version - but the answer was found.
 
It's greyed out in the Mac version. Yes, the answer was found, but I'll pose "why is 'Clear' greyed out in the Mac version" as my second question. :) (I should have said it was the Mac version in the first place.)
 
"why is 'Clear' greyed out in the Mac version" as my second question. :)

That's a bug, plain and simple, in the Macintosh version of Teensy Loader.

In the Linux and Windows versions, clicking it just deletes everything from the Verbose Info window. While sometimes convenient if that window has a lot of data and you just want to capture info after a certain point, the lack of this feature isn't considered to be as serious problem. Just to be realistic, this may never get fixed in the Mac version, since that window is mostly implemented by the wxWidgets toolkit rather than specific code in Teensy Loader. I'm not necessarily saying the bug is inside wxWidgets. But I am saying it's a very low priority to fix, and attempting any sort of fix would probably mean a deep dive into wxWidgets code, which realistically means it probably will never get fixed.

As a workaround, you can save to log to a file, with "Save as..." or by copy to clipboard and paste into another application. Then simply delete all the lines you had wanted to be deleted by the missing Clear feature.
 
I was randomly trying out 1.56 in a windows vm ( i normally use linux ), and it magically, and without warning, updated the bootloader of my Teensy4.0 from Halfkay Bootloader [0105] to [0107] , which (now i read the release notes) clearly corresponds to bootloader 1.07... this was NOT what i wanted, and completely undesirable to me. Please tell me how to back to the previous bootloader...?
 
I was randomly trying out 1.56 in a windows vm ( i normally use linux ), and it magically, and without warning, updated the bootloader of my Teensy4.0 from Halfkay Bootloader [0105] to [0107] , which (now i read the release notes) clearly corresponds to bootloader 1.07... this was NOT what i wanted, and completely undesirable to me. Please tell me how to back to the previous bootloader...?

Yes, the TD 1.56 Loader does that on first exposure.

Paul the real voice of course - but reverting not likely doable or planned.

Not sure what the fear or perceived problem is? Have been running 1.07 Beta units here for months and they act just the same as any 'normal production' Teensy - with the exception of not erasing all of Flash on Every upload. But the 15sec Restore will force a full erase, or if that was the worry a way to extend PROGMEM storage over the code could work to force overwriting beyond the used space. Some units could go through (depending on when they were made) a key writing process that would ALLOW (but not require) use of Encoded firmware to upload.

As far as LOCKING (to require Encoded firmware) - that is not an option on Production boards even if they get the 1.07 bootloader as Production units are Fused such that they are not lockable, or in any way more brickable than units with pre 1.07 firmware.

Unless the processor on that board was designed and made lockable by design as a separate Lockable product from PJRC - or if DIY made with a Locking PJRC bootloader chip - the ability to require that is blocked when the MCU is first set up by the bootloader with a permanent fuse.
 
Sorry, there is no bootloader downgrade process. Once updated to 1.07, there is no path go back to 1.05.

But why would you want to go back to 1.05 anyway?
 
If you haven't written an encryption key into the fuse memory, the only functional difference in 1.07 is how flash memory gets erased. 1.05 would fully erase the program flash before any code upload. 1.07 fully erases the first 512K in normal mode or 1024K in secure mode. Then the rest is erased only as needed in 64K chunks, depending on the size of your program. This lets you use the rest of the program flash for storing files with LittleFS_Program, which you could also do with 1.05 but every upload would destroy the saved files. With 1.07, LittleFS_Program storage persists across code uploads, as long as your filesystem size fits in the remaining space beyond 512K or 1M, and doesn't conflict with your program's size (rounded up to 64K block size). This improved erase also avoids a noticeable lag before uploading to Teensy 4.1 or MicroMod when their flash was previously written with a large amount of data (either code upload or LittleFS_Program data).

If you do write a key into fuse memory, 1.07 adds a way for Teensy Loader to check that the public key fingerprint inside the chip matches the key used to authenticate your code. It's meant as a safety feature to prevent programming encrypted code which can't possibly be used. If your hardware isn't permanently locked into secure mode (meaning it can run either encrypted or normal code), Teensy Loader will automatically detect the EHEX file can't work and write the HEX file which can.

If you use Teensyduino 1.53 or earlier, 1.07 is fully backwards compatible.
 
About a week ago, I installed Teensyduino 1.56 on a brand-new Ubuntu (20.04.3 LTS) installation and it seemed to go well. But the icon to launch the application has since mysteriously disappeared. I've tried reinstalling TD 1.56, carefully following the instructions. Again, the installation seemed to go well. The icon only shows up after a reboot and then, it only works the first time. After that, clicking the icon does nothing. I'm new to Linux and suspect that the problem is me, rather than the new versions of the IDE. Any help would be greatly appreciated.
 
Do you know the path where your copy of Arduino+Teensyduino is actually installed? Can you run it by manually navigating there?

In other words, is the software still installed and able to work, and this is just a problem with one of the many Linux desktop environments not keeping a shortcut icon? Or did something go more fundamentally wrong, where the software can't work if you do something like open a terminal and type "cd <pathname>" and "./arduino"?
 
Thanks for your help. I found it and when I typed in ./arduino, the IDE flashed on briefly, but immediately disappeared and the following message came up on the terminal.

Picked up JAVA_TOOL_OPTIONS:
Incorrect IDE installation folder: Your copy of the IDE is installed in a subfolder of your sketchbook.
Please move the IDE to another folder.
 
I FINALLY solved the problem. Just in case anyone else has a similar problem, here is the solution.
Somehow, I managed to get the path for the "sketchbook" in the same folder as the IDE. The error message (which only shows up if you run ./arduino from the terminal) tells you to move the IDE out of the folder. I have no idea how you'd do that, so the error message is of limited value. However, the web says to load preferences.txt into a text editor and change sketchbook.path = ... to a path that is outside of the IDE folder. The problem I hit was that there are two copies of preferences.txt - one in the lib subfolder of the arduino folder and one in the home/tom/.arduino15 folder. While both are needed for the IDE to run, It is the latter that needs to be modified.
 
Is there a known reason as to why USB Type: "No USB" no longer works in 1.56? (Used to work fine in 1.54b7).

Compiling for Teensy 4.1. Enabled No USB by uncommenting these lines in the boards.txt file:

Code:
teensy41.menu.usb.disable=No USB
teensy41.menu.usb.disable.build.usbtype=USB_DISABLED

None of my usual 'No USB' sketches are working. Not even the blink example compiles in 'No USB' mode.

Here's the output errors after a failed compile for the blink example with No USB:

Code:
/Applications/Teensyduino 1.8.19.app/Contents/Java/arduino-builder -dump-prefs -logger=machine -hardware /Applications/Teensyduino 1.8.19.app/Contents/Java/hardware -hardware /Users/isaacjacobson/Library/Arduino15/packages -tools /Applications/Teensyduino 1.8.19.app/Contents/Java/tools-builder -tools /Applications/Teensyduino 1.8.19.app/Contents/Java/hardware/tools/avr -tools /Users/isaacjacobson/Library/Arduino15/packages -built-in-libraries /Applications/Teensyduino 1.8.19.app/Contents/Java/libraries -libraries /Users/isaacjacobson/Documents/Arduino/libraries -fqbn=teensy:avr:teensy41:usb=disable,speed=600,opt=o2std,keys=en-us -ide-version=10819 -build-path /var/folders/l9/xltrt2yj42v2l7dr42xj_dzw0000gn/T/arduino_build_77787 -warnings=none -build-cache /var/folders/l9/xltrt2yj42v2l7dr42xj_dzw0000gn/T/arduino_cache_754067 -verbose /Applications/Teensyduino 1.8.19.app/Contents/Java/examples/01.Basics/Blink/Blink.ino
/Applications/Teensyduino 1.8.19.app/Contents/Java/arduino-builder -compile -logger=machine -hardware /Applications/Teensyduino 1.8.19.app/Contents/Java/hardware -hardware /Users/isaacjacobson/Library/Arduino15/packages -tools /Applications/Teensyduino 1.8.19.app/Contents/Java/tools-builder -tools /Applications/Teensyduino 1.8.19.app/Contents/Java/hardware/tools/avr -tools /Users/isaacjacobson/Library/Arduino15/packages -built-in-libraries /Applications/Teensyduino 1.8.19.app/Contents/Java/libraries -libraries /Users/isaacjacobson/Documents/Arduino/libraries -fqbn=teensy:avr:teensy41:usb=disable,speed=600,opt=o2std,keys=en-us -ide-version=10819 -build-path /var/folders/l9/xltrt2yj42v2l7dr42xj_dzw0000gn/T/arduino_build_77787 -warnings=none -build-cache /var/folders/l9/xltrt2yj42v2l7dr42xj_dzw0000gn/T/arduino_cache_754067 -verbose /Applications/Teensyduino 1.8.19.app/Contents/Java/examples/01.Basics/Blink/Blink.ino
Using board 'teensy41' from platform in folder: /Applications/Teensyduino 1.8.19.app/Contents/Java/hardware/teensy/avr
Using core 'teensy4' from platform in folder: /Applications/Teensyduino 1.8.19.app/Contents/Java/hardware/teensy/avr
Detecting libraries used...
"/Applications/Teensyduino 1.8.19.app/Contents/Java/hardware/teensy/../tools/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=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_DISABLED -DLAYOUT_US_ENGLISH "-I/Applications/Teensyduino 1.8.19.app/Contents/Java/hardware/teensy/avr/cores/teensy4" /var/folders/l9/xltrt2yj42v2l7dr42xj_dzw0000gn/T/arduino_build_77787/sketch/Blink.ino.cpp -o /dev/null
Generating function prototypes...
"/Applications/Teensyduino 1.8.19.app/Contents/Java/hardware/teensy/../tools/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=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_DISABLED -DLAYOUT_US_ENGLISH "-I/Applications/Teensyduino 1.8.19.app/Contents/Java/hardware/teensy/avr/cores/teensy4" /var/folders/l9/xltrt2yj42v2l7dr42xj_dzw0000gn/T/arduino_build_77787/sketch/Blink.ino.cpp -o /var/folders/l9/xltrt2yj42v2l7dr42xj_dzw0000gn/T/arduino_build_77787/preproc/ctags_target_for_gcc_minus_e.cpp
"/Applications/Teensyduino 1.8.19.app/Contents/Java/tools-builder/ctags/5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives /var/folders/l9/xltrt2yj42v2l7dr42xj_dzw0000gn/T/arduino_build_77787/preproc/ctags_target_for_gcc_minus_e.cpp
Compiling sketch...
"/Applications/Teensyduino 1.8.19.app/Contents/Java/hardware/teensy/../tools/precompile_helper" "/Applications/Teensyduino 1.8.19.app/Contents/Java/hardware/teensy/avr/cores/teensy4" /var/folders/l9/xltrt2yj42v2l7dr42xj_dzw0000gn/T/arduino_build_77787 "/Applications/Teensyduino 1.8.19.app/Contents/Java/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++" -x c++-header -O2 -g -Wall -ffunction-sections -fdata-sections -nostdlib -MMD -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=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_DISABLED -DLAYOUT_US_ENGLISH "-I/Applications/Teensyduino 1.8.19.app/Contents/Java/hardware/teensy/avr/cores/teensy4" /var/folders/l9/xltrt2yj42v2l7dr42xj_dzw0000gn/T/arduino_build_77787/pch/Arduino.h -o /var/folders/l9/xltrt2yj42v2l7dr42xj_dzw0000gn/T/arduino_build_77787/pch/Arduino.h.gch
"/Applications/Teensyduino 1.8.19.app/Contents/Java/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++" -c -O2 -g -Wall -ffunction-sections -fdata-sections -nostdlib -MMD -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=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_DISABLED -DLAYOUT_US_ENGLISH -I/var/folders/l9/xltrt2yj42v2l7dr42xj_dzw0000gn/T/arduino_build_77787/pch "-I/Applications/Teensyduino 1.8.19.app/Contents/Java/hardware/teensy/avr/cores/teensy4" /var/folders/l9/xltrt2yj42v2l7dr42xj_dzw0000gn/T/arduino_build_77787/sketch/Blink.ino.cpp -o /var/folders/l9/xltrt2yj42v2l7dr42xj_dzw0000gn/T/arduino_build_77787/sketch/Blink.ino.cpp.o
Compiling libraries...
Compiling core...
Using precompiled core: /var/folders/l9/xltrt2yj42v2l7dr42xj_dzw0000gn/T/arduino_cache_754067/core/core_5a1995182c771da1243827323527d949.a
Linking everything together...
"/Applications/Teensyduino 1.8.19.app/Contents/Java/hardware/teensy/../tools/arm/bin/arm-none-eabi-gcc" -O2 -Wl,--gc-sections,--relax "-T/Applications/Teensyduino 1.8.19.app/Contents/Java/hardware/teensy/avr/cores/teensy4/imxrt1062_t41.ld" -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -o /var/folders/l9/xltrt2yj42v2l7dr42xj_dzw0000gn/T/arduino_build_77787/Blink.ino.elf /var/folders/l9/xltrt2yj42v2l7dr42xj_dzw0000gn/T/arduino_build_77787/sketch/Blink.ino.cpp.o /var/folders/l9/xltrt2yj42v2l7dr42xj_dzw0000gn/T/arduino_build_77787/../arduino_cache_754067/core/core_5a1995182c771da1243827323527d949.a -L/var/folders/l9/xltrt2yj42v2l7dr42xj_dzw0000gn/T/arduino_build_77787 -larm_cortexM7lfsp_math -lm -lstdc++
[COLOR="#B22222"]/var/folders/l9/xltrt2yj42v2l7dr42xj_dzw0000gn/T/arduino_build_77787/../arduino_cache_754067/core/core_5a1995182c771da1243827323527d949.a(startup.c.o): In function `unused_interrupt_vector':
/Applications/Teensyduino 1.8.19.app/Contents/Java/hardware/teensy/avr/cores/teensy4/startup.c:592: undefined reference to `usb_isr'
collect2: error: ld returned 1 exit status
Error compiling for board Teensy 4.1.[/COLOR]

I'm slightly noobish, so I really don't understand how to resolve this error.

My reason for No USB is that it's necessary to use for TinyUSB (as far as I know).
 
This is all a but much for a 3.1 user. I don't understand what's going on here. I hooked up my Teensy 3.1 board to my iMac and Arduino IDE doesn't see it anymore. Instead I get Teensy 4 Security message. I don't have a Teensy 4 board and I can no longer use the IDE to upload sketches into my Teensy. Is the IDE broken? The Teensy toast? And what's this about a Security Key? What Key? There IS NO key .HEX nor .EHEX that I can see anywhere. Who's doing this and why?
 
I get a green line then a green box on my Smart Matrix then the SD card gets read and the display program runs behind the green box, about 4X4" in size. Any ideas what's going on here as I can no longer upload anything into my Teensy 3.1 board. (See above message)
 
Last edited:
Status
Not open for further replies.
Back
Top