Use Sublime Text as an Arduino IDE replacement.

Did another update to Tset - the NEW command had two lines out of order and caused a silly warning creating the file then saying it already existed.

Also updated the readme to include notes as KurtE used to get the BUILD setup for sublime. There are added notes about T4 Beta - those can be ignored of course when using a prior shipping Teensy.

I found the sublimetext "F4" key works to walk through Multiple Errors - even across files! { just like it does for Global Search Ctrl+Shift+F } Sometimes it takes a click in the console window - a double click on the file/error line to get started when an error isn't in the open file. Then F4 will walk through any other errors with red annotation box (Shift+F4 walks the list backwards). Very handy and much nicer than the IDE - especially when it goes into Core Teensy files.

This morning I programmed 5 connected Teensy's of three types from within Sublime with two sketches using TyComm and it worked well. Just remember if the Tset option to make a Teensy specific directory is chosen - that subfolder Compile.cmd has to be open when the Build System is started as it uses that Current Directory to execute the command. If not using the subdirectory - then any file in the skwtch directory can be the current file and the build will work to build the sketch - Thanks yet again to FrankB.

And when using the SublimeAStyleFormatter package it is Ctrl+Alt+F to format the code where the IDE uses Ctrl+T. That and the BUILD info is noted in SublimeText.txt
 
Hi all - as a software developer I use Sublime text on Windows as my main editor. Is it simple/worth it to get sublime integrated with Arduino, or should I keep doing what I have been doing: (1) Editing code in Sublime (2) Compile/upload from Arduino IDE. ? From reading back a few pages it seems like it's a bit of a process to get it all working from within Sublime?
 
Good Morning all...

I am wondering, I keep running into an issue, where I try to build a sketch where the sketch contains header files or .cpp files and when there are error messages, the F4 key takes me to the copy of the file in the temp directory where I promptly edit and then build again and same error...

Wonder if we can change the error message processing to instead figure out to use the header file(or .cpp file) from the sketch folder.

If I am looking at the documents: https://www.sublimetext.com/docs/3/build_systems.html
I am wondering if we can change the "file_regex" stuff?
Code:
"shell_cmd": ".\\Compile.cmd 1",
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "working_dir": "${file_path}",
    "selector": "source.c, source.c++",

Example error right now shows:
Code:
C:\Users\kurte\AppData\Local\Temp\arduino_build_LSS_Phoenix.ino\sketch\_Phoenix_Driver_lss.h:99:1: error: 'BioloidControllerEx' does not name a type
Has anyone played with these settings?
 
Quick update on the above... On seeing the errors from the temp directory and not the original source.

I thought I would ask about this up on SublimeText forum and received a couple of responses from a member up there:
https://forum.sublimetext.com/t/sublime-build-file-regex-arduino-sketches

The first suggestion was needing to do a custom build setup and overwrite the file write function and use code to translate the paths back from the temp directory to the source directory. Not sure how hard it would be to figure out those parts...

But also pointed to an Arduino build setup using platformIO (based in part after the stino stuff). https://packagecontrol.io/packages/Deviot (Arduino IDE)
Wonder if anyone hare has tried it?
 
Good Morning all...

I am wondering, I keep running into an issue, where I try to build a sketch where the sketch contains header files or .cpp files and when there are error messages, the F4 key takes me to the copy of the file in the temp directory where I promptly edit and then build again and same error...

Hi Kurt, I have exactly the same problem using Geany under Linux. I simply dodge the problem by going back to the proper source .h file but it is a downright nuisance.
 
Still using this and working with Teensy up to T_4.1 and before on SublimeText with IDE 1.8.13 and TD 1.53 ... on WINDOWS >> github.com/Defragster/Tset

Looking at a change to specify target xxx.INO in the build - when multiple INO files are in the folder it picks the last alpha sorted one - and it that is not the right one the build fails. Quick Hack is add 'AA' to those secondary INO files so the desired sorts last. Fix will (it sees) pass "$file_name" to TSET.CMD that creates the Compile.cmd { must call from the primary SKETCH.ino to work } that can then check for that $file to exist and use it explicitly rather than doing a search for an INO to use that can find the wrong one.

In looking that start point is here for a refresher on build systems : sublimetext.com/docs/3/build_systems.html

Referring back to post #90 looking at this

And finding my build file : %appdata%\Sublime Text 3\Packages\User\Teensy.sublime-build

... working ... this line edit passes in the file name : "shell_cmd": "start T:\\Programs\\TSet\\TSet.cmd $file_name" ,
> Need to confirm in tset.cmd and edit into tset.cmd2 to override the *.ino search if it exists ...

... TBD ...
 
See post #107 - github.com/Defragster/Tset updated to work in the case where multiple INO's break command line build!

In SublimeText run the BUILD :: Tools Set { as updated below, stored as a 'Tools / Build System' in Sublime %appdata%\Sublime Text 3\Packages\User\Teensy.sublime-build } When the CURRENT FILE is the SKETCH.INO where setup() and loop() exist::
Code:
{
	"shell_cmd": ".\\Compile.cmd 1",
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "working_dir": "${file_path}",
    "selector": "source.c, source.c++",

	 "variants":
    [
     {
      "name": "Clean",
      "shell_cmd": ".\\Compile.cmd 2",
     },
     {
      "name": "New Sketch",
      "shell_cmd": "start [B][COLOR="#FF0000"]T:\\Programs\\TSet[/COLOR][/B]\\open_new.cmd",
     },
     {
      "name": "Verify",
      "shell_cmd": ".\\Compile.cmd 0",
     },
     {
      "name": "Tools Set",
      "shell_cmd": "start [B][COLOR="#FF0000"]T:\\Programs\\TSet[/COLOR][/B]\\TSet.cmd [B]$file_name $file_extension[/B]" ,
     }
   ]

}

Above now passes filename and the extension to TSET. { These two paths have to match where TSET is copied locally :: T:\\Programs\\TSet }
>> Verifies the file Exists and it is an INO ( because it can be run from any file in the sketch folder ) - that is added to the Compile.CMD file and then if it exists the search for the INO is not done. Again this is only changes command line build creation when two or more INO's are in the folder - otherwise it defaults to prior behavior - as long a not file named '~' Exists in the folder.

Another update in the NOTE is that 'D' on the final prompt ( instead of 'Y' ) will execute the GDB debugger after the build. Multi Serial has to have been specified in Serial and the GDB integration it used: Using-GDB-with-Teensy-without-hardware-debugger-first-Beta

Going to spend a minute on the ReadMe on github - at least adding a link to this post.
 
@defragster
Going to play with TSET a bit today but having a problem when I go to do a build i get the following error:
never mind on this error didnt read the instructions.

If I use
In SublimeText run the BUILD :: Tools Set { as updated below, stored as a 'Tools / Build System' in Sublime %appdata%\Sublime Text 3\Packages\User\Teensy.sublime-build } When the CURRENT FILE is the SKETCH.INO where setup() and loop() exist::
It compiles without error.

But to get it to upload i still have to double click on Compile.cmd in the sketch folder and then it will upload.

EDIT: Never Mind #2 use Build but make sure the IDE is closed when you do it!

EDIT2: getting this error now:
Code:
File 'C:\Users\Merli\AppData\Local\Temp\\arduino_build_NAND_SPI_TEST.ino\NAND_SPI_TEST.ino.teensy41.hex' does not exist
This is in the verbose info from teensyloader:
Code:
0, 0, 0, C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\, NAND_SPI_TEST.ino.hex
 
Last edited:
@defragster
Here is the whole results from SublimeText:
Code:
Building Sketch: ".\NAND_SPI_TEST.ino"
Using board 'teensy41' from platform in folder: F:\arduino-1.8.13\hardware\teensy\avr
Using core 'teensy4' from platform in folder: F:\arduino-1.8.13\hardware\teensy\avr
Warning: Board teensy:avr:teensy32 doesn't define a 'build.board' preference. Auto-set to: AVR_TEENSY32
Detecting libraries used...
"F:\\arduino-1.8.13\\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=153 -DARDUINO=10600 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-IF:\\arduino-1.8.13\\hardware\\teensy\\avr\\cores\\teensy4" "C:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino\\sketch\\NAND_SPI_TEST.ino.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
Alternatives for w25n01g_t4.h: [w25n01g_t4]
ResolveLibrary(w25n01g_t4.h)
  -> candidates: [w25n01g_t4]
"F:\\arduino-1.8.13\\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=153 -DARDUINO=10600 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-IF:\\arduino-1.8.13\\hardware\\teensy\\avr\\cores\\teensy4" "-ID:\\Users\\Merli\\Documents\\Arduino\\libraries\\w25n01g_t4" "C:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino\\sketch\\NAND_SPI_TEST.ino.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
"F:\\arduino-1.8.13\\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=153 -DARDUINO=10600 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-IF:\\arduino-1.8.13\\hardware\\teensy\\avr\\cores\\teensy4" "-ID:\\Users\\Merli\\Documents\\Arduino\\libraries\\w25n01g_t4" "D:\\Users\\Merli\\Documents\\Arduino\\libraries\\w25n01g_t4\\w25n01g_t4.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
Generating function prototypes...
"F:\\arduino-1.8.13\\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=153 -DARDUINO=10600 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-IF:\\arduino-1.8.13\\hardware\\teensy\\avr\\cores\\teensy4" "-ID:\\Users\\Merli\\Documents\\Arduino\\libraries\\w25n01g_t4" "C:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino\\sketch\\NAND_SPI_TEST.ino.cpp" -o "C:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino\\preproc\\ctags_target_for_gcc_minus_e.cpp" -DARDUINO_LIB_DISCOVERY_PHASE
"F:\\arduino-1.8.13\\tools-builder\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino\\preproc\\ctags_target_for_gcc_minus_e.cpp"
Compiling sketch...
"F:\\arduino-1.8.13\\hardware\\teensy/../tools/precompile_helper" "F:\\arduino-1.8.13\\hardware\\teensy\\avr/cores/teensy4" "C:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino" "F:\\arduino-1.8.13\\hardware\\teensy/../tools/arm/bin/arm-none-eabi-g++" -x c++-header -Og -g -DGDB_TAKE_OVER_SERIAL -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=153 -DARDUINO=10600 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-IF:\\arduino-1.8.13\\hardware\\teensy\\avr/cores/teensy4" "C:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino/pch/Arduino.h" -o "C:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino/pch/Arduino.h.gch"
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\pch\Arduino.h.gch
"F:\\arduino-1.8.13\\hardware\\teensy/../tools/arm/bin/arm-none-eabi-g++" -c -Og -g -DGDB_TAKE_OVER_SERIAL -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=153 -DARDUINO=10600 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-IC:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino/pch" "-IF:\\arduino-1.8.13\\hardware\\teensy\\avr\\cores\\teensy4" "-ID:\\Users\\Merli\\Documents\\Arduino\\libraries\\w25n01g_t4" "C:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino\\sketch\\NAND_SPI_TEST.ino.cpp" -o "C:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino\\sketch\\NAND_SPI_TEST.ino.cpp.o"
D:\Users\Merli\Documents\Arduino\libraries\w25n01g_t4\examples\NAND_SPI_TEST\NAND_SPI_TEST.ino: In function 'void check42(bool)':
D:\Users\Merli\Documents\Arduino\libraries\w25n01g_t4\examples\NAND_SPI_TEST\NAND_SPI_TEST.ino:88:8: warning: unused variable 'value' [-Wunused-variable]
   byte value;
        ^
In file included from D:\Users\Merli\Documents\Arduino\libraries\w25n01g_t4\examples\NAND_SPI_TEST\NAND_SPI_TEST.ino:3:0:
D:\Users\Merli\Documents\Arduino\libraries\w25n01g_t4/w25n01g_t4.h: At global scope:
D:\Users\Merli\Documents\Arduino\libraries\w25n01g_t4/w25n01g_t4.h:137:13: warning: 'flashID' defined but not used [-Wunused-variable]
 static char flashID[3];
             ^
D:\Users\Merli\Documents\Arduino\libraries\w25n01g_t4/w25n01g_t4.h:139:17: warning: 'currentPage' defined but not used [-Wunused-variable]
 static uint32_t currentPage = UINT32_MAX;
                 ^
D:\Users\Merli\Documents\Arduino\libraries\w25n01g_t4/w25n01g_t4.h:140:17: warning: 'timeoutAt' defined but not used [-Wunused-variable]
 static uint32_t timeoutAt;
                 ^
Compiling libraries...
Compiling library "w25n01g_t4"
"F:\\arduino-1.8.13\\hardware\\teensy/../tools/arm/bin/arm-none-eabi-g++" -c -Og -g -DGDB_TAKE_OVER_SERIAL -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=153 -DARDUINO=10600 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-IC:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino/pch" "-IF:\\arduino-1.8.13\\hardware\\teensy\\avr\\cores\\teensy4" "-ID:\\Users\\Merli\\Documents\\Arduino\\libraries\\w25n01g_t4" "D:\\Users\\Merli\\Documents\\Arduino\\libraries\\w25n01g_t4\\w25n01g_t4.cpp" -o "C:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino\\libraries\\w25n01g_t4\\w25n01g_t4.cpp.o"
D:\Users\Merli\Documents\Arduino\libraries\w25n01g_t4\w25n01g_t4.cpp: In member function 'void w25n01g_t4::writeBytes(uint32_t, const uint8_t*, int)':
D:\Users\Merli\Documents\Arduino\libraries\w25n01g_t4\w25n01g_t4.cpp:423:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if (length < bufTest) {
                ^
D:\Users\Merli\Documents\Arduino\libraries\w25n01g_t4\w25n01g_t4.cpp:401:12: warning: unused variable 'columnStart' [-Wunused-variable]
   uint16_t columnStart = LINEAR_TO_COLUMN(Address);
            ^
D:\Users\Merli\Documents\Arduino\libraries\w25n01g_t4\w25n01g_t4.cpp: In member function 'void w25n01g_t4::readBytes(uint32_t, uint8_t*, int)':
D:\Users\Merli\Documents\Arduino\libraries\w25n01g_t4\w25n01g_t4.cpp:553:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if (length < bufTest) {
              ^
D:\Users\Merli\Documents\Arduino\libraries\w25n01g_t4\w25n01g_t4.cpp:554:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if (length < bufTest) {
                ^
D:\Users\Merli\Documents\Arduino\libraries\w25n01g_t4\w25n01g_t4.cpp:535:12: warning: unused variable 'columnStart' [-Wunused-variable]
   uint16_t columnStart = LINEAR_TO_COLUMN(Address);
            ^
Compiling core...
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\memset.S.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\memcpy-armv7m.S.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\bootdata.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\clockspeed.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\eeprom.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\delay.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\debugprintf.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\digital.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\keylayouts.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\usb_keyboard.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\interrupt.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\startup.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\usb.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\usb_desc.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\tempmon.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\pwm.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\usb_midi.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\usb_joystick.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\usb_seremu.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\usb_rawhid.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\usb_mouse.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\usb_serial2.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\usb_serial.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\usb_touch.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\usb_serial3.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\analog.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\rtc.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\nonstd.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\HardwareSerial8.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\AudioStream.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\HardwareSerial1.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\HardwareSerial7.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\DMAChannel.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\HardwareSerial5.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\HardwareSerial6.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\EventResponder.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\HardwareSerial2.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\HardwareSerial.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\new.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\IPAddress.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\HardwareSerial4.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\serialEvent2.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\HardwareSerial3.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\WMath.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\IntervalTimer.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\WString.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\main.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\Stream.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\Tone.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\Print.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\serialEvent3.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\serialEvent4.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\serialEvent.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\serialEvent1.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\serialEvent5.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\usb_flightsim.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\serialEventUSB1.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\serialEvent7.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\usb_audio.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\serialEventUSB2.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\usb_inst.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\serialEvent6.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\serialEvent8.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\yield.cpp.o
Using previously compiled file: C:\Users\Merli\AppData\Local\Temp\arduino_build_NAND_SPI_TEST.ino\core\core.a
Archiving built core (caching) in: C:\Users\Merli\AppData\Local\Temp\arduino_cache_NAND_SPI_TEST.ino\core\core_190600ebdde382f4be53b25cb0d0291e.a
Linking everything together...
"F:\\arduino-1.8.13\\hardware\\teensy/../tools/arm/bin/arm-none-eabi-gcc" -Og -g -DGDB_TAKE_OVER_SERIAL -Wl,--gc-sections,--relax "-TF:\\arduino-1.8.13\\hardware\\teensy\\avr\\cores\\teensy4/imxrt1062_t41.ld" -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -o "C:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino/NAND_SPI_TEST.ino.elf" "C:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino\\sketch\\NAND_SPI_TEST.ino.cpp.o" "C:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino\\libraries\\w25n01g_t4\\w25n01g_t4.cpp.o" "C:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino/core\\core.a" "-LC:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino" -larm_cortexM7lfsp_math -lm -lstdc++
"F:\\arduino-1.8.13\\hardware\\teensy/../tools/arm/bin/arm-none-eabi-objcopy" -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 "C:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino/NAND_SPI_TEST.ino.elf" "C:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino/NAND_SPI_TEST.ino.eep"
"F:\\arduino-1.8.13\\hardware\\teensy/../tools/arm/bin/arm-none-eabi-objcopy" -O ihex -R .eeprom "C:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino/NAND_SPI_TEST.ino.elf" "C:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino/NAND_SPI_TEST.ino.hex"
"F:\\arduino-1.8.13\\hardware\\teensy/../tools/stdout_redirect" "C:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino/NAND_SPI_TEST.ino.lst" "F:\\arduino-1.8.13\\hardware\\teensy/../tools/arm/bin/arm-none-eabi-objdump" -d -S -C "C:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino/NAND_SPI_TEST.ino.elf"
"F:\\arduino-1.8.13\\hardware\\teensy/../tools/stdout_redirect" "C:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino/NAND_SPI_TEST.ino.sym" "F:\\arduino-1.8.13\\hardware\\teensy/../tools/arm/bin/arm-none-eabi-objdump" -t -C "C:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino/NAND_SPI_TEST.ino.elf"
"F:\\arduino-1.8.13\\hardware\\teensy/../tools/teensy_post_compile" -file=NAND_SPI_TEST.ino "-path=C:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino" "-tools=F:\\arduino-1.8.13\\hardware\\teensy/../tools/" -board=TEENSY41
Opening Teensy Loader...
Using library w25n01g_t4 in folder: D:\Users\Merli\Documents\Arduino\libraries\w25n01g_t4 (legacy)
"F:\\arduino-1.8.13\\hardware\\teensy/../tools/arm/bin/arm-none-eabi-size" -A "C:\\Users\\Merli\\AppData\\Local\\Temp\\arduino_build_NAND_SPI_TEST.ino/NAND_SPI_TEST.ino.elf"
Sketch uses 36256 bytes (0%) of program storage space. Maximum is 8126464 bytes.
Global variables use 49844 bytes (9%) of dynamic memory, leaving 474444 bytes for local variables. Maximum is 524288 bytes.
[B][COLOR="#FF0000"]File 'C:\Users\Merli\AppData\Local\Temp\\arduino_build_NAND_SPI_TEST.ino\NAND_SPI_TEST.ino.teensy41.hex' does not exist[/COLOR][/B]
[Finished in 4.2s]
 
Missed yesterday's post - IDE can be open but if IDE had been integrated to TyCommander then TeensyLoader must be closed.

The IDE can be open and used in parallel and it will work using Teensy Loader - it just requires a Button push - or TyCommander open and hit Bootloader that will trigger TeensyLoader to upload.

I'll have to look later regarding the p#110 error - all that comes to mind is that TyCommander needs to be Integrated for it to work. I think the integration process is where the "teensy41" decoration on the filename comes from. That is how you can compile the same sketch for two Teensy Models and TyCommander can push the HEX to the right one after selected and known.
 
Missed yesterday's post - IDE can be open but if IDE had been integrated to TyCommander then TeensyLoader must be closed.

The IDE can be open and used in parallel and it will work using Teensy Loader - it just requires a Button push - or TyCommander open and hit Bootloader that will trigger TeensyLoader to upload.

I'll have to look later regarding the p#110 error - all that comes to mind is that TyCommander needs to be Integrated for it to work. I think the integration process is where the "teensy41" decoration on the filename comes from. That is how you can compile the same sketch for two Teensy Models and TyCommander can push the HEX to the right one after selected and known.

Ok - maybe i can save you some trouble - don't have TyCommander intergrated with the IDE - guess that is mandatory :)
 
Another interesting thing I have run into, is sometimes I create sublime-text Projects as a way to load up the different directories I am using for a build.

So I open a directory, (example the directory for the JoystickBT sketch). I then go to project menu and add folder in this case the usbhost_t36 folder ...

and I configure to build Example for T4.1... And then configure to build teensy... And do this a few times no problem. So then then save the project file (under project menu)...

Later I come back and open back up the project so go to project menu Open Recent and then open this one back up.

And now it wont build. That is hit ctrl+b nothing happens ctrl+shift+b nothing happens. Select from tools menu, again nothing hapens. Not sure why or what is happening. Maybe needs to have directory set?

Investigating... Can always fall back to open folder... then Build runs.
 
@KurtE - never use projects in that way here. Wondering if it doesn't default to 'User Teeny Build' commands?

When opening a specific file it can see the type of file and may enable the Build for Teensy.

When returning to open the project what does the Selected Build entry show?

In typing that - and re-reading above 'Maybe ...?' - it needs a default directory. It uses the one of the current open file.

When in a non-Sketch folder though I get yelled at for not having a compile.cmd though - like if I just edited startup.c and hit F7/Ctrl+B it will trigger the build that can't find compile.cmd.


@mjs513 ... See post #116
 
Last edited:
@defragster - sometimes projects can be helpful, example doing a sketch that uses stuff from a few different folders.

Example: Joystick test
I have the main folder setup for the sketch

I then add the folder for USBHost sources

Other projects may also add in folder for the display driver I am using in the sketch...

Then the sidebar has easy to access to all of the main files you are mainly using. Also it adds in being able to locate the symbols. And plus there are Goto commands, like
goto symbol in project which works. So I can find the getButtons method by typing in name...

But I think I figured out fix, after loading the project Goto to tools menu, Build System and change from default to Teensy and now the builds appear to work again.
 
@mjs513 - Correction to the above I'll remove after this post....

> Opened TyComm and hit remove Integration. { IDE 1.8.13 folder with TD 1.53 beta 3 (opps) }
> Left TyComm open
> Powered a T_4.1 - running prior sketch active Serial on TyComm
> Left IDE closed
> Opened Sketch .ino in Sublime.
> Hit F7 in Sublime ( last Ctrl+Shift+B build same as Ctrl+B )
> TeensyLoader Auto opens
> Code compiles in Subline Console - and the IDE command line build using TSET from Sublime passes the HEX name to TeensyLoader
> Go to TyComm and tap 'Bootloader' in GUI or press T_4.1's Button
> Code uploads and runs

I do see that TSET 'EXPECTS' the TyComm integration to have created the TyComm build created file "Entropy.ino.teensy41.hex" - that doesn't exist in this case. I could/should probably fix that with 'if exist' ...
Code:
"T:\\arduino-1.8.13\\hardware\\teensy/../tools/arm/bin/arm-none-eabi-size" -A "T:\\TEMP\\arduino_build_Entropy.ino/Entropy.ino.elf"
Sketch uses 15280 bytes (0%) of program storage space. Maximum is 8126464 bytes.
Global variables use 41660 bytes (7%) of dynamic memory, leaving 482628 bytes for local variables. Maximum is 524288 bytes.
[B]File 'T:\TEMP\\arduino_build_Entropy.ino\Entropy.ino.teensy41.hex' does not exist[/B]
Teensy 4.1 [0x25] 

FlexRAM section ITCM+DTCM = 512 KB
    Config : aaaaaaab
    ITCM :   8064 B	(24.61% of   32 KB)
    DTCM :   8896 B	( 1.81% of  480 KB)
    Available for Stack: 482624
OCRAM: 512KB
    DMAMEM:  12384 B	( 2.36% of  512 KB)
    Available for Heap: 511904 B	(97.64% of  512 KB)
Flash:  15280 B	( 0.19% of 7936 KB)
[Finished in 3.5s]
 
@defragster - sometimes projects can be helpful, example doing a sketch that uses stuff from a few different folders.

Example: Joystick test
I have the main folder setup for the sketch

I then add the folder for USBHost sources

Other projects may also add in folder for the display driver I am using in the sketch...

Then the sidebar has easy to access to all of the main files you are mainly using. Also it adds in being able to locate the symbols. And plus there are Goto commands, like
goto symbol in project which works. So I can find the getButtons method by typing in name...

But I think I figured out fix, after loading the project Goto to tools menu, Build System and change from default to Teensy and now the builds appear to work again.

So the Default " Tools / Build System / Teensy " needs to be selected ... that was posted speculation. There is probably as setting for that ...

Setting up projects seems like extra steps I never tried - but having Sublime KNOW where all the sources are is probably a WIN - THANKS. I usually have multiple instances of Sublime open : one to sketch in Sketchbook - which includes sketchbook\libraries, one to "T:\arduino-1.8.13\hardware\teensy\avr\", then other for other issues - like TSET is its own folder, and now with NRF's an instance to "%appdata%\Local\Arduino15\packages\adafruit\hardware\nrf52\0.20.1\libraries\..." and Library Mgr also put libs in "T:\arduino-1.8.13\libraries\". And it seems like having 5 or 6 Sublime instances stresses Windows.
 
Updated github.com/Defragster/Tset to remove missing file warning when TyComm not integrated :: github.com/Defragster/Tset/commit
Code:
REM when TyComm integrated this .model. file will exist
    if EXIST "%temp1%\%sketchname%.%model%.hex" (
      "%TyTools%\TyCommanderC.exe" upload --autostart --wait  "%temp1%\%sketchname%.%model%.hex" )

DOH - Now I have to make the same edit in the GDB case ... Done.

So the Command Line Exec of IDE build works FINE with IDE closed and TyComm open - just requires manual Upload forcing as only the IDE has the magic params needed to ID the TeensyPort and with TyComm open the PORT is occupied .

NOTE: If the platform.txt didn't call TEENSYLOADER ( teensy_post_compile ) - then the REM'd line would send the HEX to TyComm without integration:
Code:
REM this fights with TeensyLoader     else ( "%TyTools%\TyCommanderC.exe" upload --autostart --wait  "%temp1%\%sketchname%.hex" )

So that would be an option for TSET integration when TyComm is in use - but that is basically what TyComm integration does.
 
Sounds good...

For the heck of it I updated my version of the imxrt-size program to also include T4.1... Obviously someone else has already done this...

I also slightly updated the config data to print out D's and I's for the 32kb slots.

Like:
Code:
FlexRAM section ITCM+DTCM = 512 KB
    Config : aaaaaaaf (DDDDDDDDDDDDDDII)
    ITCM :  65224 B	(99.52% of   64 KB)
    DTCM :  41664 B	( 9.08% of  448 KB)
    Available for Stack: 417088
OCRAM: 512KB
    DMAMEM:  12384 B	( 2.36% of  512 KB)
    Available for Heap: 511904 B	(97.64% of  512 KB)
Flash:  88808 B	( 1.09% of 7936 KB)
 
I'll look up the new imxrt-size. There was a posted version somewhere in the beta or something I picked up - maybe it was actually home built - seems I played with it once to isolate/confirm the ID to pass on to koromix.

Speaking of TyComm - I made an issue - wondering if he could add a UI switch/response to bring up the Teensy devices list on build to trigger a Reboot to trigger the TeensyLoader to upload.

EDIT> Updated the copy of imxrt_size.exe in TSET. _underbar_ better than -hypen- so renamed EXE again instead of using the dumb name in the batch files.
 
Last edited:
More on SublimeText Projects:

In case anyone else does some screwy stuff in a similar way than I do, I thought I would mention I have learned some things that have helped me working with building with tset...

One sort of different thing that I do, is having to do with libraries that do work on.

I like keeping most of my library sources on my Windows 10 D drive in the sub-directory Github

So for example I have been working on the library Adafruit_VL53L0X

To use it with Arduino builds, what I create a symbolic link:
Code:
C:\Users\kurte>mklink --help
The syntax of the command is incorrect.
Creates a symbolic link.

MKLINK [[/D] | [/H] | [/J]] Link Target

        /D      Creates a directory symbolic link.  Default is a file
                symbolic link.
        /H      Creates a hard link instead of a symbolic link.
        /J      Creates a Directory Junction.
        Link    Specifies the new symbolic link name.
        Target  Specifies the path (relative or absolute) that the new link
                refers to.

C:\Users\kurte>
So in a command window, I will CD to: C:\Users\kurte\Documents\Arduino\libraries
and issue the command:
Code:
mklink /D Adafruit_VL53L0X d:\github\Adafruit_VL53L0X

And now I can do Arduino builds using my version of the library... When I wish to use Adafruits version or if it is one that may ship with Teensyduino I remove the link and use the released version.
Note: You use the rmdir command to remove the directory link, if you use the del command it will go through the link and try to delete the actual files.

Now if I am doing a project that uses this library and I wish to see the directory, I will open folder on my Arduino sketch I wish to setup as a project, then in that window I will do the:
project->AddFolder command and navigate to the directory, which adds it.

The interesting thing with this, is if are careful and you think you navigated to it, you are actually opening up the real directory, in my case on D: drive. So I may have some files open on the library making changes. Bring up the sketch file and do a build. Now suppose there is an error, the error code processing will now open up the logical file on <arduino sketches folder>\libraries\...
So I end up with two windows open showing two different paths, both actually pointing to same file.

But there is a way around it. If you go back and edit the saved project file (assuming you saved the project), you can put in the logical name and tell the system to not go through the link.
One of my project file looks like:
Code:
{
	"folders":
	[
		{
			"path": "."
		},
		{
			"path": "C:\\Users\\kurte\\Documents\\Arduino\\libraries\\Adafruit_VL53L0X",
			"follow_symlinks": false
		}
	]
}
I found some of these details up at: https://www.sublimetext.com/docs/3/projects.html
 
Cool. I always just put github copy in 'sketchbook'\libraries to edit and build - then have to copy back to github to upload changes - but I do much less of that than KurtE :)

Sublime is super capable ... I just use what notepad offers and about 5% more ... plus TSET.
 
I use VS 2017 because it is the only editor/IDE that I can do a search on a word or phrase and have it highlight all found words AND keep them highlighted while I continue to edit. I have tried Sublime but it won't do it (unless there is a way I am not aware of to make it work that way).
 
@rfresh737 - Not sure - There may be a plug in that does what you want.

Maybe something like: https://github.com/SublimeText/WordHighlight

But I have not tried it.

I assume when you say VS you are saying Visual Studio. I do play some with Visual Studio stuff like Visual Micro plug in and the like. But when I was changing over to Sublimetext, One of the main reasons was I was looking for editor that works on Windows, Mac and Linux...

But you might also be referring to Visual SlickEdit... Which I used many many years ago when I was still working... I sort of dropped it after that as their price kept going up and did not need all of their features... But as I said it was years ago as I started off using their ancestor the character window version back on OS2 :eek:
 
Back
Top