Arduino CLI And IDE now Released - Teensy Supported!

Quick note: Today I have received a couple of odd compiler errors one using B9RC1 and now B9RC2

Code:
Using board 'teensyMM' from platform in folder: C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.57.0
Using core 'teensy4' from platform in folder: C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.57.0
Detecting libraries used...
"C:\\Users\\kurte\\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_TEENSY_MICROMOD -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-IC:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\hardware\\avr\\1.57.0\\cores\\teensy4" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino-sketch-7EF54F97E6CB5EA561AC39B4A7F1E5CB\\sketch\\HIDDeviceInfo.ino.cpp" -o nul
Alternatives for USBHost_t36.h: [USBHost_T36@0.2 USBHost_t36@0.2]
ResolveLibrary(USBHost_t36.h)
  -> candidates: [USBHost_T36@0.2 USBHost_t36@0.2]
"C:\\Users\\kurte\\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_TEENSY_MICROMOD -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-IC:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\hardware\\avr\\1.57.0\\cores\\teensy4" "-Ic:\\Users\\kurte\\Documents\\Arduino\\libraries\\USBHost_T36" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino-sketch-7EF54F97E6CB5EA561AC39B4A7F1E5CB\\sketch\\HIDDeviceInfo.ino.cpp" -o nul
Alternatives for SdFat.h: [SdFat_-_Adafruit_Fork@1.5.1 SDFat@2.1.2 SdFat@2.1.2]
ResolveLibrary(SdFat.h)
  -> candidates: [SdFat_-_Adafruit_Fork@1.5.1 SDFat@2.1.2 SdFat@2.1.2]
"C:\\Users\\kurte\\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_TEENSY_MICROMOD -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-IC:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\hardware\\avr\\1.57.0\\cores\\teensy4" "-Ic:\\Users\\kurte\\Documents\\Arduino\\libraries\\USBHost_T36" "-Ic:\\Users\\kurte\\Documents\\Arduino\\libraries\\SDFat\\src" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino-sketch-7EF54F97E6CB5EA561AC39B4A7F1E5CB\\sketch\\HIDDeviceInfo.ino.cpp" -o nul
Alternatives for SPI.h: [SPI@1.0]
ResolveLibrary(SPI.h)
  -> candidates: [SPI@1.0]
"C:\\Users\\kurte\\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_TEENSY_MICROMOD -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-IC:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\hardware\\avr\\1.57.0\\cores\\teensy4" "-Ic:\\Users\\kurte\\Documents\\Arduino\\libraries\\USBHost_T36" "-Ic:\\Users\\kurte\\Documents\\Arduino\\libraries\\SDFat\\src" "-IC:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\hardware\\avr\\1.57.0\\libraries\\SPI" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino-sketch-7EF54F97E6CB5EA561AC39B4A7F1E5CB\\sketch\\HIDDeviceInfo.ino.cpp" -o nul
Using cached library dependencies for file: C:\Users\kurte\AppData\Local\Temp\arduino-sketch-7EF54F97E6CB5EA561AC39B4A7F1E5CB\sketch\HIDDumper.cpp
Using cached library dependencies for file: C:\Users\kurte\AppData\Local\Temp\arduino-sketch-7EF54F97E6CB5EA561AC39B4A7F1E5CB\sketch\USBDeviceInfo.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\USBHost_T36\MassStorageDriver.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\USBHost_T36\SerEMU.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\USBHost_T36\USBFilesystemFormatter.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\USBHost_T36\adk.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\USBHost_T36\antplus.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\USBHost_T36\bluetooth.cpp
"C:\\Users\\kurte\\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_TEENSY_MICROMOD -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-IC:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\hardware\\avr\\1.57.0\\cores\\teensy4" "-Ic:\\Users\\kurte\\Documents\\Arduino\\libraries\\USBHost_T36" "-Ic:\\Users\\kurte\\Documents\\Arduino\\libraries\\SDFat\\src" "-IC:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\hardware\\avr\\1.57.0\\libraries\\SPI" "-ID:\\github\\USBHost_t36\\utility" "c:\\Users\\kurte\\Documents\\Arduino\\libraries\\USBHost_T36\\digitizer.cpp" -o nul
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\USBHost_T36\ehci.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\USBHost_T36\enumeration.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\USBHost_T36\hid.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\USBHost_T36\hub.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\USBHost_T36\joystick.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\USBHost_T36\keyboard.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\USBHost_T36\keyboardHIDExtras.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\USBHost_T36\memory.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\USBHost_T36\midi.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\USBHost_T36\mouse.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\USBHost_T36\print.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\USBHost_T36\rawhid.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\USBHost_T36\serial.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\ExFatLib\ExFatDbg.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\ExFatLib\ExFatFile.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\ExFatLib\ExFatFilePrint.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\ExFatLib\ExFatFileWrite.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\ExFatLib\ExFatFormatter.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\ExFatLib\ExFatName.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\ExFatLib\ExFatPartition.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\ExFatLib\ExFatVolume.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\ExFatLib\upcase.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\FatLib\FatDbg.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\FatLib\FatFile.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\FatLib\FatFileLFN.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\FatLib\FatFilePrint.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\FatLib\FatFileSFN.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\FatLib\FatFormatter.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\FatLib\FatName.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\FatLib\FatPartition.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\FatLib\FatVolume.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\FreeStack.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\FsLib\FsFile.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\FsLib\FsNew.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\FsLib\FsVolume.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\MinimumSerial.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\SdCard\SdCardInfo.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\SdCard\SdSpiCard.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\SdCard\SdioTeensy.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\SpiDriver\SdSpiArtemis.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\SpiDriver\SdSpiChipSelect.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\SpiDriver\SdSpiDue.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\SpiDriver\SdSpiESP.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\SpiDriver\SdSpiParticle.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\SpiDriver\SdSpiSTM32.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\SpiDriver\SdSpiSTM32Core.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\SpiDriver\SdSpiTeensy3.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\common\FmtNumber.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\common\FsCache.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\common\FsDateTime.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\common\FsName.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\common\FsStructs.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\common\FsUtf.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\common\PrintBasic.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\common\upcase.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\iostream\StdioStream.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\iostream\StreamBaseClass.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\iostream\istream.cpp
Using cached library dependencies for file: c:\Users\kurte\Documents\Arduino\libraries\SDFat\src\iostream\ostream.cpp
Using cached library dependencies for file: C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.57.0\libraries\SPI\SPI.cpp
Generating function prototypes...
"C:\\Users\\kurte\\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_TEENSY_MICROMOD -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-IC:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\hardware\\avr\\1.57.0\\cores\\teensy4" "-Ic:\\Users\\kurte\\Documents\\Arduino\\libraries\\USBHost_T36" "-Ic:\\Users\\kurte\\Documents\\Arduino\\libraries\\SDFat\\src" "-IC:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\hardware\\avr\\1.57.0\\libraries\\SPI" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino-sketch-7EF54F97E6CB5EA561AC39B4A7F1E5CB\\sketch\\HIDDeviceInfo.ino.cpp" -o "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino-sketch-7EF54F97E6CB5EA561AC39B4A7F1E5CB\\preproc\\ctags_target_for_gcc_minus_e.cpp"
"C:\\Users\\kurte\\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\\kurte\\AppData\\Local\\Temp\\arduino-sketch-7EF54F97E6CB5EA561AC39B4A7F1E5CB\\preproc\\ctags_target_for_gcc_minus_e.cpp"
Compiling sketch...
"C:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\tools\\teensy-tools\\1.57.0/precompile_helper" "C:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\hardware\\avr\\1.57.0/cores/teensy4" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino-sketch-7EF54F97E6CB5EA561AC39B4A7F1E5CB" "C:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\tools\\teensy-compile\\1.56.1/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=157 -DARDUINO=10607 -DARDUINO_TEENSY_MICROMOD -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-IC:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\hardware\\avr\\1.57.0/cores/teensy4" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino-sketch-7EF54F97E6CB5EA561AC39B4A7F1E5CB/pch/Arduino.h" -o "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino-sketch-7EF54F97E6CB5EA561AC39B4A7F1E5CB/pch/Arduino.h.gch"
Using previously compiled file: C:\Users\kurte\AppData\Local\Temp\arduino-sketch-7EF54F97E6CB5EA561AC39B4A7F1E5CB\pch\Arduino.h.gch
"C:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\tools\\teensy-compile\\1.56.1/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=157 -DARDUINO=10607 -DARDUINO_TEENSY_MICROMOD -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-IC:\\Users\\kurte\\AppData\\Local\\Temp\\arduino-sketch-7EF54F97E6CB5EA561AC39B4A7F1E5CB/pch" "-IC:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\hardware\\avr\\1.57.0\\cores\\teensy4" "-Ic:\\Users\\kurte\\Documents\\Arduino\\libraries\\USBHost_T36" "-Ic:\\Users\\kurte\\Documents\\Arduino\\libraries\\SDFat\\src" "-IC:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\hardware\\avr\\1.57.0\\libraries\\SPI" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino-sketch-7EF54F97E6CB5EA561AC39B4A7F1E5CB\\sketch\\HIDDeviceInfo.ino.cpp" -o "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino-sketch-7EF54F97E6CB5EA561AC39B4A7F1E5CB\\sketch\\HIDDeviceInfo.ino.cpp.o"
Using previously compiled file: C:\Users\kurte\AppData\Local\Temp\arduino-sketch-7EF54F97E6CB5EA561AC39B4A7F1E5CB\sketch\USBDeviceInfo.cpp.o
Using previously compiled file: C:\Users\kurte\AppData\Local\Temp\arduino-sketch-7EF54F97E6CB5EA561AC39B4A7F1E5CB\sketch\HIDDumper.cpp.o
[COLOR="#FF0000"]internal error in mingw32_gt_pch_use_address, at config/i386/host-mingw32.c:190: MapViewOfFileEx: Attempt to access invalid address. [/COLOR]

Multiple libraries were found for "USBHost_t36.h"
  Used: D:\github\USBHost_t36
  Not used: C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.57.0\libraries\USBHost_t36
Multiple libraries were found for "SdFat.h"
  Used: D:\github\SdFat
  Not used: C:\Users\kurte\Documents\Arduino\libraries\SdFat_-_Adafruit_Fork
  Not used: C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.57.0\libraries\SdFat
Using library USBHost_T36 at version 0.2 in folder: D:\github\USBHost_t36 
Using library SDFat at version 2.1.2 in folder: D:\github\SdFat 
Using library SPI at version 1.0 in folder: C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.57.0\libraries\SPI 
exit status 1

Compilation error: exit status 1

Cleared previously by building for different board and then back. Will do again.
 
@Paul and all,

I try to keep up with the IDE2 RC and nightly builds.

Most things are getting better, but with the last few nightly builds I have tried, it feels like the IDE loses track of which COM port which
I am building for and/or trying to use the Serial monitor on, more often than with the RC9.2 release.

I posted about this up on the Arduino Forum: https://forum.arduino.cc/t/serial-monitor-issues-hopefully-fixed-before-release/1026548/4
And @ptillisch up there was able to confirm that he would intermittently see the issue where he was running the IDE but monitoring the Serial ports using the CLI.

He had a question up there:
What doesn't make sense is why the removal and addition of the teensy protocol port during upload only occurs intermittently. I see that the removal and addition of the teensy protocol port also occurs when I upload using Teensyduino 1.56+Arduino IDE 1.8.19, so I don't think this behavior is abnormal for the Teensy.

Do you know why the removal and addition of the teensy protocol port during upload only occurs intermittently @KurtE?

I am guessing it always does, but maybe sometimes fast enough that the monitor code does not see it?
He is guessing probably related to a recent PR: https://github.com/arduino/arduino-ide/pull/1328
 
along the lines that this one is 9.1 instead of 10

There was a purely technical reason for using 2.0.0-rc9.1 instead of 2.0.0-rc10:

According to semver, 2.0.0-rc10 < 2.0.0-rc9. This is why you should always use a dot separator for numeric identifiers, like 1.2.3-rc.1

Unfortunately, the correct version format was not selected when the 2.0.0-rc series was started, which put us in a jam when we finally reached the tenth release of the series. The new version format was the workaround for this dilemma.

There is no other significance behind the switch to this 2.0.0-rc9.n version format. 2.0.0-rc10 would have been used if it was permitted by semver.
 
Teensy port discovery for Arduino 1.8.x has an undocumented hack where teensy_ports waits 1.6 seconds before informing the IDE of a remove event. If an add event occurs at that same location within those 1.6 seconds (the norm when Teensy reboots), the IDE only gets the new add event and remove event is never sent to the IDE. The IDE treats an add event at the same location as a prior add as if the device changed without being removed. This gives a smooth user experience on Arduino 1.8.5 to 1.8.19.

For Arduino IDE 2.0, which has a newer pluggable discovery protocol, I didn't implement any delays. The teensy_discovery utility transmits add and remove events to IDE / CLI as soon as the operating system provides the information. Even if this doesn't give the best user experience, I felt it was best to avoid this sort of delay trickery, at least in this early stage of testing. Teensy may be the only 3rd party board using the new pluggable discovery protocol, with a C implementation rather than Google Go language. If there are timing issues or race conditions or just UI imperfections, at least for now I'd rather prioritize helping the Arduino developers uncover issues over hidden tricks that give a smoother user experience by hiding those remove events.

But eventually smooth user experience will become the main priority. Hopefully the delays and hiding remove events won't be needed with IDE 2. If they are, I'm open to feedback about when to change priorities...
 
Quick update: RC9.3 was released today.

There are full details up on the Arduino Forum thread:
https://forum.arduino.cc/t/arduino-ide-2-0-0-rc9-3-available-for-download/1028858

This release pretty well fixed the issue I mentioned above about losing the Serial port, and the teensy maybe not showing up in the list of devices.
Plus, I am not seeing the errors I mentioned in the RC9.1/2 where it hang at startup if some strange condition of complicated sketch that was the last one opened and restored ...

Again, lots of improvements.
 
Is there an equivalent to the "Use external editor" option from 1.x IDE? I've become accustomed to using Notepad++, and I'm disappointed that the new editor has no configuration UI. Not even tab settings.
 
Is there an equivalent to the "Use external editor" option from 1.x IDE? I've become accustomed to using Notepad++, and I'm disappointed that the new editor has no configuration UI. Not even tab settings.

I haven't seen an option. But I have been using Notepad++ to editor ino files and the ide2 has been automatically picking up the changes once I hit the save button in the ext editor. So they must be checking if the file changed. Sure its said someplace.
 
an equivalent to the "Use external editor" option from 1.x IDE?

As explained by @mjs513, that preference from Arduino IDE 1.x is unnecessary in Arduino IDE 2.x because it uses the modern approach of using a file watcher to automatically pick up any external changes to the sketch files.

The one exception is if you have the sketch in an unsaved state (which can only be attained if you have the "Auto save" preference disabled). In this case, if changes are made externally, the application will warn of the out of sync condition the next time you attempt to save in the IDE and ask what you want to do, as is the standard practice in modern editors.

the new editor has no configuration UI

There is quite some configurability in the advanced settings:

  • Open the "Command Palette" by pressing the Ctrl+Shift+P (Command+Shift+P for macOS users) keyboard shortcut.
  • Select the "Preferences: Open Settings (UI)" command.

The need to document how to access these settings is tracked here:

https://github.com/arduino/arduino-ide/issues/1367

Not even tab settings.

If you want to choose tabs vs spaces, you can quickly find the setting by typing editor.insertSpaces in the "Search Settings" field of the advanced settings.

If you want to choose tab size, you can quickly find the setting by typing editor.tabSize in the "Search Settings" field of the advanced settings.
 
Instead of wearing myself out trying to find a potentially obvious answer, I figured that I would just ask.

When using arduino-cli with Teensy 4.1, what would be the equivalent command/steps for changing the "USB Type" from Serial to Keyboard or MIDI in the Arduino IDE 1.8x Tools menu?
 
Custom board options such as "USB Type" are set via the FQBN you pass to arduino-cli commands via the --fqbn flag. The format of the FQBN is like this:

Code:
<vendor ID>:<architecture>:<board ID>[<menu ID>=<option ID>[,<menu ID>=<option ID>]...]

You can learn all the available menu IDs and option IDs from the arduino-cli board details command:

Code:
$ arduino-cli board details -b teensy:avr:teensy41
Board name:            Teensy 4.1
FQBN:                  teensy:avr:teensy41
Board version:         1.57.0

Package name:          teensy
Package maintainer:    Paul Stoffregen
Package URL:           https://www.pjrc.com/teensy/td_156/package_teensy_index.json
Package website:       https://www.pjrc.com/teensy/td_download.html
Package online help:   https://forum.pjrc.com/forum.php

Platform name:         Teensy
Platform category:     Contributed
Platform architecture: avr
Platform URL:          https://www.pjrc.com/teensy/td_157/teensy-package.tar.bz2
Platform file name:    teensy-package.tar.bz2
Platform size (bytes): 33493974
Platform checksum:     SHA-256:1922c67a3d1261efb085eda1d99f5907936b89cc078f3567825cfc49661141c2

Required tool:         teensy:teensy-tools                                 1.57.0

Required tool:         teensy:teensy-compile                               1.56.1

Option:                USB Type                                                   usb
                       Serial                                              ✔      usb=serial
                       Dual Serial                                                usb=serial2
                       Triple Serial                                              usb=serial3
                       Keyboard                                                   usb=keyboard
                       Keyboard + Touch Screen                                    usb=touch
                       Keyboard + Mouse + Touch Screen                            usb=hidtouch
                       Keyboard + Mouse + Joystick                                usb=hid
                       Serial + Keyboard + Mouse + Joystick                       usb=serialhid
                       MIDI                                                       usb=midi
                       MIDIx4                                                     usb=midi4
                       MIDIx16                                                    usb=midi16
                       Serial + MIDI                                              usb=serialmidi
                       Serial + MIDIx4                                            usb=serialmidi4
                       Serial + MIDIx16                                           usb=serialmidi16
                       Audio                                                      usb=audio
                       Serial + MIDI + Audio                                      usb=serialmidiaudio
                       Serial + MIDIx16 + Audio                                   usb=serialmidi16audio
                       MTP Disk (Experimental)                                    usb=mtp
                       Serial + MTP Disk (Experimental)                           usb=serialmtp
                       Raw HID                                                    usb=rawhid
                       Flight Sim Controls                                        usb=flightsim
                       Flight Sim Controls + Joystick                             usb=flightsimjoystick
Option:                CPU Speed                                                  speed
                       600 MHz                                             ✔      speed=600
                       528 MHz                                                    speed=528
                       450 MHz                                                    speed=450
                       396 MHz                                                    speed=396
                       150 MHz                                                    speed=150
                       24 MHz                                                     speed=24
                       720 MHz (overclock)                                        speed=720
                       816 MHz (overclock)                                        speed=816
                       912 MHz (overclock, cooling req'd)                         speed=912
                       960 MHz (overclock, cooling req'd)                         speed=960
                       1.008 GHz (overclock, cooling req'd)                       speed=1008
Option:                Optimize                                                   opt
                       Faster                                              ✔      opt=o2std
                       Fast                                                       opt=o1std
                       Fastest                                                    opt=o3std
                       Debug                                                      opt=ogstd
                       Smallest Code                                              opt=osstd
Option:                Keyboard Layout                                            keys
                       US English                                          ✔      keys=en-us
                       Canadian French                                            keys=fr-ca
                       Canadian Multilingual                                      keys=xx-ca
                       Czech                                                      keys=cz-cz
                       Danish                                                     keys=da-da
                       Finnish                                                    keys=fi-fi
                       French                                                     keys=fr-fr
                       French Belgian                                             keys=fr-be
                       French Swiss                                               keys=fr-ch
                       German                                                     keys=de-de
                       German (Mac)                                               keys=de-dm
                       German Swiss                                               keys=de-ch
                       Icelandic                                                  keys=is-is
                       Irish                                                      keys=en-ie
                       Italian                                                    keys=it-it
                       Norwegian                                                  keys=no-no
                       Portuguese                                                 keys=pt-pt
                       Portuguese Brazilian                                       keys=pt-br
                       Serbian (Latin Only)                                       keys=rs-rs
                       Spanish                                                    keys=es-es
                       Spanish Latin America                                      keys=es-mx
                       Swedish                                                    keys=sv-se
                       Turkish (partial)                                          keys=tr-tr
                       United Kingdom                                             keys=en-gb
                       US International                                           keys=usint
Programmers:           Id                                                  Name

Here we can see that the ID for the "USB Type" menu is usb and the ID for the "Keyboard" option is keyboard

So the full FQBN is:
Code:
teensy:avr:teensy41:usb=keyboard
 
Instead of wearing myself out trying to find a potentially obvious answer, I figured that I would just ask.

When using arduino-cli with Teensy 4.1, what would be the equivalent command/steps for changing the "USB Type" from Serial to Keyboard or MIDI in the Arduino IDE 1.8x Tools menu?

Not sure if WINDOWS in is use? If so this: github.com/Defragster/Tset
Uses batch files to build a usable batch file that runs the builder from command line:

Code:
set model=teensy41
set speed=600
set opt=o2std
[B]set usb=serial2[/B]
rem set keys=de-de
set keys=en-us

...
set fqbn=teensy:avr:%model%:usb=%usb%,speed=%speed%,opt=%opt%,keys=%keys%

...
"%arduino%\arduino-builder" -verbose=1 -warnings=more -compile -logger=human -hardware "%arduino%\hardware" -hardware "%LOCALAPPDATA%\Arduino15\packages" -tools "%arduino%\tools-builder" -tools "%arduino%\hardware\tools\avr" -tools "%LOCALAPPDATA%\Arduino15\packages" -built-in-libraries "%arduino%\libraries" -libraries "%libs%" [B][COLOR="#FF0000"]-fqbn=%fqbn%[/COLOR][/B] -build-path %temp1% -build-cache "%temp2%"  %ino%

where USB strings for Teensy are:
Code:
REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>   USB

:U25
set usb=rawhid512
goto BeDone

:U24
set usb=mtpserial
goto BeDone

:U23
set usb=serial3
goto BeDone

:U22
set usb=serial2
goto BeDone

:U21
set usb=disable
goto BeDone

:U20
set usb=everything
goto BeDone

:U19
set usb=flightsimjoystick
goto BeDone

:U18
set usb=flightsim
goto BeDone

:U17
set usb=rawhid
goto BeDone

:U16
set usb=mtp
goto BeDone

:U15
set usb=serialmidi16audio
goto BeDone

:U14
set usb=serialmidiaudio
goto BeDone

:U13
set usb=audio
goto BeDone

:U12
set usb=serialmidi16
goto BeDone

:U11
set usb=serialmidi4
goto BeDone

:U10
set usb=serialmidi
goto BeDone

:U9
set usb=midi16
goto BeDone

:U8
set usb=midi4
goto BeDone

:U7
set usb=midi
goto BeDone

:U6
set usb=serialhid
goto BeDone

:U5
set usb=hid
goto BeDone

:U4
set usb=hidtouch
goto BeDone

:U3
set usb=touch
goto BeDone

:U2
set usb=keyboard
goto BeDone

:U1
set usb=serial
goto BeDone
 
Custom board options such as "USB Type" are set via the FQBN you pass to arduino-cli commands via the --fqbn flag. The format of the FQBN is like this:

Code:
<vendor ID>:<architecture>:<board ID>[<menu ID>=<option ID>[,<menu ID>=<option ID>]...]

Thank you. That makes everything super clear for me now.
 
You are welcome.

By the way, I notice now I made an error in my previous post. This:
Code:
<vendor ID>:<architecture>:<board ID>[<menu ID>=<option ID>[,<menu ID>=<option ID>]...]

Should instead be:

Code:
<vendor ID>:<architecture>:<board ID>[:<menu ID>=<option ID>[,<menu ID>=<option ID>]...]

(there is a : separator between <board ID> and the first <menu ID>)
 
Might be worth mentioning one of the open issues with Arduino CLI is allowing discovery of the FQBN menu options.

https://github.com/arduino/arduino-cli/issues/1660

Starting with Teensyduino 1.57, we are publishing a pluggable discovery utility and boards.txt which allows for discovery of the USB Type menu setting from the hardware. I'm planning to eventually add the other 4 menu settings in future versions.

My hope is Arduino will eventually merge Cristian's code into Arduino CLI to pave the way for IDE 2 to automatically detect the previously used menu settings from the hardware and configure them when selecting from the discovered boards drop-down menu.
 
I know maybe slightly unrelated to this topic. But up on the Arduino forum, I created a new thread wondering about the mechanisms of how Arduino IDE2 decides which libraries can be updated and what happens in different cases. https://forum.arduino.cc/t/library-manager-rc9-x-updateable-list/1029998


@PerT - Thanks for your highly detailed responses. I am still wondering about a few things about how Arduino 1.x was handling this. Gut tells me, maybe it changed over time. But it is good to understand what Arduino is currently doing.

Again thanks!
 
Is there a page somewhere that lists the current status/usability of arduino cli with teensy? From the sound of this forum thread it doesn't seem like it's quite ready yet.
Will you still have to install teensyduino to use arduino-cli?
 
Is there a page somewhere that lists the current status/usability of arduino cli with teensy? From the sound of this forum thread it doesn't seem like it's quite ready yet.
Will you still have to install teensyduino to use arduino-cli?

Yes, for Teensy to work it takes either TeensyInstaller for IDE 1.8.x or, an IDE 2.0 Board Mgr install of the PJRC device Tools/Hardware/Software ( like any other board not included ) to get the Arduino-builder to have what is needed to create a usable HEX and get it uploaded.

IDE 2.0 is in RC/Release Candidate mode - pending Arduino issue resolution for not just Teensy, but the whole of the new environment. But that relates more to IDE GUI and functional issues for replicating and improving on the IDE 1.8.x features.

Perhaps just annecdotal - and not FULL use? - but the CLI seems to function fully in 1.8.19 and the same in current RC's of IDE 2.0. {As used/tested on Windows} With that a complete 'IDE matching' HEX is created and uploaded using Teensy.exe Loader - from command line executed by a Windows Batch file.

This is based on past years of using the noted TSET up through current 1.8.19 and seeing that given links (noted in recent posts) to the Arduino15 'install/run' directory can then execute a build from command line with Board installed in IDE 2.0 structure.

<<EDIT>> Those TSET posts are not on this thread, but the thread with this post: pjrc.com/threads/71048-Teensyduino-1-58-Beta-1-(updated-toolchain-trial)

<<EDIT #2>> - IDE 2.0 doesn't seem to have a program called 'arduino-builder' the 1.8.19 IDE uses - TSET works because it uses that installed program and provides the paths to the IDE 2.0 install that has the same layout. IDE 1.x exposes the call of the -builder tool in the console - I've not seen the equivalent yet for IDE 2.0 usage.
 
Last edited:
Is there a page somewhere that lists the current status/usability of arduino cli with teensy? From the sound of this forum thread it doesn't seem like it's quite ready yet.
Will you still have to install teensyduino to use arduino-cli?

I am not totally sure, as I have been mostly using it through the Teensy IDE2. And the IDE2 uses the CLI stuff under the covers.

You might try following some of the instructions like: https://create.arduino.cc/projecthub/B45i/getting-started-with-arduino-cli-7652a5a
As Paul has setup the install for IDE2 to work the same as other boards do.

Setup the additional boards stuff to include: https://www.pjrc.com/teensy/td_156/package_teensy_index.json
I was able to download the Teensy setup. And then follow the instructions mentioned by @PerT a few posts up on how to specify the options

Edit On my secondary Ubuntu machine I was able to do:
Code:
kurte@kurte-750-435st:~/Documents/GitHub/USBHost_t36/examples/MouseKeyboardForward$ arduino-cli compile -p \dev\ttyACM0 -b "teensy:avr:teensy41:usb=serial" MouseKeyboardForward.ino 
In file included from /home/kurte/Documents/GitHub/USBHost_t36/examples/MouseKeyboardForward/MouseKeyboardForward.ino:5:
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h: In member function 'USBFilesystem::operator bool()':
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h:2395:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 2395 |                 Device_t *dev = *(Device_t * volatile *)&device;
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/digitizer.cpp:25:
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h: In member function 'USBFilesystem::operator bool()':
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h:2395:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 2395 |                 Device_t *dev = *(Device_t * volatile *)&device;
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/adk.cpp:26:
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h: In member function 'USBFilesystem::operator bool()':
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h:2395:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 2395 |                 Device_t *dev = *(Device_t * volatile *)&device;
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/SerEMU.cpp:25:
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h: In member function 'USBFilesystem::operator bool()':
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h:2395:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 2395 |                 Device_t *dev = *(Device_t * volatile *)&device;
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBFilesystemFormatter.h:4,
                 from /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBFilesystemFormatter.cpp:2:
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h: In member function 'USBFilesystem::operator bool()':
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h:2395:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 2395 |                 Device_t *dev = *(Device_t * volatile *)&device;
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/antplus.cpp:29:
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h: In member function 'USBFilesystem::operator bool()':
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h:2395:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 2395 |                 Device_t *dev = *(Device_t * volatile *)&device;
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/ehci.cpp:25:
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h: In member function 'USBFilesystem::operator bool()':
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h:2395:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 2395 |                 Device_t *dev = *(Device_t * volatile *)&device;
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/MassStorageDriver.cpp:28:
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h: In member function 'USBFilesystem::operator bool()':
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h:2395:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 2395 |                 Device_t *dev = *(Device_t * volatile *)&device;
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/bluetooth.cpp:28:
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h: In member function 'USBFilesystem::operator bool()':
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h:2395:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 2395 |                 Device_t *dev = *(Device_t * volatile *)&device;
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/MassStorageDriver.cpp: In member function 'virtual void USBDrive::disconnect()':
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/MassStorageDriver.cpp:211:15: warning: 'void* memset(void*, int, size_t)' clearing an object of non-trivial type 'struct msDriveInfo_t'; use assignment or value-initialization instead [-Wclass-memaccess]
  211 |         memset(&msDriveInfo, 0, sizeof(msDriveInfo_t));
      |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h:33,
                 from /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/MassStorageDriver.cpp:28:
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/utility/msc.h:155:16: note: 'struct msDriveInfo_t' declared here
  155 | typedef struct {
      |                ^
In file included from /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/enumeration.cpp:25:
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h: In member function 'USBFilesystem::operator bool()':
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h:2395:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 2395 |                 Device_t *dev = *(Device_t * volatile *)&device;
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/hid.cpp:25:
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h: In member function 'USBFilesystem::operator bool()':
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h:2395:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 2395 |                 Device_t *dev = *(Device_t * volatile *)&device;
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/hub.cpp:25:
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h: In member function 'USBFilesystem::operator bool()':
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h:2395:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 2395 |                 Device_t *dev = *(Device_t * volatile *)&device;
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/joystick.cpp:25:
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h: In member function 'USBFilesystem::operator bool()':
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h:2395:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 2395 |                 Device_t *dev = *(Device_t * volatile *)&device;
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/keyboard.cpp:25:
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h: In member function 'USBFilesystem::operator bool()':
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h:2395:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 2395 |                 Device_t *dev = *(Device_t * volatile *)&device;
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/memory.cpp:25:
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h: In member function 'USBFilesystem::operator bool()':
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h:2395:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 2395 |                 Device_t *dev = *(Device_t * volatile *)&device;
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/midi.cpp:25:
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h: In member function 'USBFilesystem::operator bool()':
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h:2395:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 2395 |                 Device_t *dev = *(Device_t * volatile *)&device;
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/mouse.cpp:25:
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h: In member function 'USBFilesystem::operator bool()':
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h:2395:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 2395 |                 Device_t *dev = *(Device_t * volatile *)&device;
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/print.cpp:25:
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h: In member function 'USBFilesystem::operator bool()':
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h:2395:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 2395 |                 Device_t *dev = *(Device_t * volatile *)&device;
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/rawhid.cpp:25:
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h: In member function 'USBFilesystem::operator bool()':
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h:2395:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 2395 |                 Device_t *dev = *(Device_t * volatile *)&device;
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/serial.cpp:27:
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h: In member function 'USBFilesystem::operator bool()':
/home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36/USBHost_t36.h:2395:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 2395 |                 Device_t *dev = *(Device_t * volatile *)&device;
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Memory Usage on Teensy 4.1:
  FLASH: code:60444, data:14232, headers:8264   free for files:8043524
   RAM1: variables:30912, code:55744, padding:9792   free for local variables:427840
   RAM2: variables:12384  free for malloc/new:511904

Used library Version Path                                                                                  
USBHost_t36  0.2     /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/USBHost_t36
SdFat        2.1.2   /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/SdFat      
SPI          1.0     /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1/libraries/SPI        

Used platform Version      Path                                                            
teensy:avr    1.58.0-beta1 /home/kurte/.arduino15/packages/teensy/hardware/avr/1.58.0-beta1

kurte@kurte-750-435st:~/Documents/GitHub/USBHost_t36/examples/MouseKeyboardForward$ arduino-cli upload -p \dev\ttyACM0 -b "teensy:avr:teensy41:usb=serial" MouseKeyboardForward.ino 
Opening Teensy Loader...
kurte@kurte-750-435st:~/Documents/GitHub/USBHost_t36/examples/MouseKeyboardForward$
Looks like I have not picked up the updated usbhost...
 
Last edited:
I am not totally sure, as I have been mostly using it through the Teensy IDE2. And the IDE2 uses the CLI stuff under the covers.

...

The arduino-cli seems to be spawned internally ???

Looking for EXE I saw lots of .JS files that apparently Electron engine uses under the covers.

Not seeing an analog for arduino-builder called on a single line as is done for IDE 1.8.19 that lets TSET work using the same overt call IDE 1.8.19 uses.
 
Looking for EXE I saw lots of .JS files that apparently Electron engine uses under the covers.

It is at this path under the Arduino IDE 2.x installation folder:
Code:
resources/app/node_modules/arduino-ide-extension/build


Not seeing an analog for arduino-builder called on a single line as is done for IDE 1.8.19 that lets TSET work using the same overt call IDE 1.8.19 uses.

Arduino IDE 2.x does not use the command line interface of Arduino CLI as Arduino IDE 1.x does with arduino-builder. Instead, communication between the two is done via the much more powerful gRPC interface:

https://arduino.github.io/arduino-cli/latest/rpc/commands/

As you noticed, this means you won't see an arduino-cli command line invocation in the verbose output from a compile/upload/burn bootloader operation as there is with arduino-builder in Arduino IDE 1.x, which is unfortunate but unavoidable.

You can add the gRPC communication to the logs in order to facilitate troubleshooting or just to get a better understanding of the processes happening under the hood. Because this adds a lot of verbosity to the logs, it is disabled by default. You can enable it by following these instructions:

  1. Press the Ctrl+Shift+P keyboard shortcut (Command+Shift+P for macOS users) to open the "Command Palette".
  2. Select the "Preferences: Open Settings (UI)" command from the menu.
  3. In the "Search Settings" field, type arduino.cli.daemon.debug
  4. Check the box under the "Arduino › Cli: Daemon: Debug" setting.
  5. Select File > Quit from the Arduino IDE menus (the setting change doesn't take effect until you restart the IDE.
  6. Start the Arduino IDE. WARNING: do not start it from the command line. The terminal program may not be able to effectively handle the huge amount of log output produced when this setting is on.
  7. Do whatever processes you are interested in studying the gRPC output for.


You can now check the log file to see the gRPC communication. They are located under the following path:

Windows:

Code:
%APPDATA%\Arduino IDE\
(e.g., C:\Users\<user name>\AppData\Roaming\Arduino IDE\)

Linux:

If XDG_CONFIG_HOME is set:

Code:
${XDG_CONFIG_HOME}/Arduino IDE

otherwise:

Code:
~/.config/Arduino IDE


macOS:

Code:
~/Library/Logs/Arduino IDE/




After you are done checking the logs, remember to disable the "Arduino › Cli: Daemon: Debug" setting following the same process you used to enable it.
 
It is at this path under the Arduino IDE 2.x installation folder:

...

Thanks for the details! Will give them a look.

Seems this was a question KurtE referred to - regarding the build and include logic. When I trigger a CMDLINE build with IDE 2 install from Arduino15 using IDE 1.8x -builder will the same 'make' process be followed? It seems to be working and just realized I was 'getting lucky'.
 
Beta 1.58b2 install on Win10 laptop - Seeing Teensy ports oddities - this from td 1.58b2 thread

Started OLD IDE 2 - offered 9.4RC update - done and restarted
Saw and offered Teensy 1.58b1 update - Done, no restart

Teensy Ports not available with T_4.1 plugged in, hit Button and still no Teensy ports

Restarted IDE and then T_4.1 on Teensy ports as Button HID
> build and upload completed

Tports SerMon worked online
> Rebuild and SerMon does not restart. Requires SerMon Toggle Off/On to get Serial Output connected

ALSO noted on BETA 1.58 thread regarding IDE 2::

With multiple sketch windows open, if all not using same 'ports' either IDE Serial or Teensy version, it seems that one open for SerMon display will prevent the other from doing an Auto upload without Button.
 
Thanks for your reports defragster
Saw and offered Teensy 1.58b1 update - Done, no restart

Teensy Ports not available with T_4.1 plugged in, hit Button and still no Teensy ports

I did some experiments but was not able to reproduce this. Please provide detailed step by step instructions I can follow to reproduce it and I'll investigate further.

Rebuild and SerMon does not restart. Requires SerMon Toggle Off/On to get Serial Output connected

I did some experiments but was not able to reproduce this. Please provide detailed step by step instructions I can follow to reproduce it and I'll investigate further.

With multiple sketch windows open, if all not using same 'ports' either IDE Serial or Teensy version, it seems that one open for SerMon display will prevent the other from doing an Auto upload without Button.

I am able to reproduce this. I don't know that there is any way for the IDE to handle this situation. It knows that, when uploading to a given port, it needs to close that port in Serial Monitor or Serial Plotter. But when the upload is to one port and Serial Monitor has a different port, it has no way to know that the port needs to be closed in Serial Monitor.

In a case where the two different ports were two different boards, it would be frustrating if an upload to one board triggered a cycle of the Serial Monitor (which actually resets some boards) in the other IDE window.

I would be interested in any ideas about how this could be handled automatically by the IDE.
 
Thanks for your reports defragster

I did some experiments but was not able to reproduce this. Please provide detailed step by step instructions I can follow to reproduce it and I'll investigate further.

I did some experiments but was not able to reproduce this. Please provide detailed step by step instructions I can follow to reproduce it and I'll investigate further.

I am able to reproduce this. I don't know that there is any way for the IDE to handle this situation. It knows that, when uploading to a given port, it needs to close that port in Serial Monitor or Serial Plotter. But when the upload is to one port and Serial Monitor has a different port, it has no way to know that the port needs to be closed in Serial Monitor.

In a case where the two different ports were two different boards, it would be frustrating if an upload to one board triggered a cycle of the Serial Monitor (which actually resets some boards) in the other IDE window.

I would be interested in any ideas about how this could be handled automatically by the IDE.

@PerT - glad to note things that might catch others and be trouble.
In these three cases it seemed Teensy_ports was the odd factor where it showed here:

#3: Indeed - AFAIK: IDE_Serial_ports knows about the ones it has handed out? Likewise Teensy_ports controls others? With two or more 'sketches' open that seem independant the _port handlers don't seem to know about each other?

#2: This was using Teensy_ports where it didn't auto reconnect. In fact IDE_Serial_ports did auto reconnect.
That was on Laptop Win 10 - trying to repro here on Desktop Win 11 using code just posted here and changing line #7 value between rebuilding: uint8_t codeVer = 2;, to make clear when new code prints. Every other time is enough for new output - though build date time changes each build.
> It perhaps failed with some confusion a time or two but has now worked 4 times in a row for Teensy_ports to auto reconnect.
> also with 2nd sketch open Teensy_ports for Serial Monitor was closed in the first opened in the second and that worked. {annoying the SerMon window won't "pop-out"}

#1: Did you try after a fresh Teensy install (here Teensy updated 1.57? to 1.58b2) - it just appeared that without IDE restart that Teensy_ports was not able to actively connect on 'first run'?
 
glad to note things that might catch others and be trouble.

That is always welcome. Feedback from the Teensy community has been instrumental in improving quality and flexibility of Arduino CLI and Arduino IDE 2.x.

IDE_Serial_ports knows about the ones it has handed out? Likewise Teensy_ports controls others?

With the pluggable discovery tools like Arduino's serial-discovery and mdns-discovery and Paul Stoffregen's teensy-discovery, it is only a matter of "knows". These tools simply provide Arduino CLI with a list of ports.

The IDE knows and controls all the discovered ports. What it doesn't know is that your teensy protocol port and your serial protocol port are the same board and that the other must be closed in Serial Monitor during an upload.

I don't know a lot about the details of the Teensy platform. From reading this, it seems that teensy_ports may be the pluggable discovery tool for the original Arduino IDE 1.x/Teensyduino implementation, but not used by Arduino CLI and Arduino IDE 2.x

It perhaps failed with some confusion a time or two but has now worked 4 times in a row for Teensy_ports to auto reconnect.

This sort of intermittency is unfortunately all too often the way with the Arduino IDE bugs. It makes it very difficult to investigate, develop a potential fix, and then validate the potential fix.

I find that usually what at first seems to be an intermittent fault occurring at random turns out to be "pseudo-intermittent", where the fault is perfectly reproducible once the required conditions are known, and the apparent randomness was caused by the previously unknown factor (e.g., timing) not being controlled.

Finding all the relevant conditions can be quite difficult. Sometimes they become more clear over time as a pattern emerges of the incidental occurrences of the fault I encounter while using the IDE during the normal course of my work.

So please keep an eye on it and let me know if you are able to find a way to reproduce it. I'll do the same.

annoying the SerMon window won't "pop-out"

Maybe you are referring to this?

https://github.com/arduino/arduino-ide/issues/289

#1: Did you try after a fresh Teensy install (here Teensy updated 1.57? to 1.58b2) - it just appeared that without IDE restart that Teensy_ports was not able to actively connect on 'first run'?

This is what I tried:

Using Windows 10

  1. Install "Teensy" boards platform version 1.57.0
  2. Select File > Quit from Arduino IDE menus.
  3. Start Arduino IDE 2.0.0-rc9.4 (the restart is just to make sure there was no persistent state from the 1.58.0-beta2 installation I had in place before installing 1.57.0).
  4. Click the "INSTALL ALL" button on the "Updates are available for some of your boards." notification.
  5. Wait for installation of "Teensy" boards platform version 1.58.0-beta2 to finish.
  6. Connect a Teensy 4.1 board to my computer.

When I open the "Board Selector" menu on the Arduino IDE toolbar, I see this:

board-selector.png

When I select Tools > Port from the Arduino IDE menus, I see this:

port-menu.png

So it seems everything is working correctly for me even through the update.

Do you get a different result if you perform the steps I provided above?
 
Back
Top