Teensyduino 1.42 Beta #2

Status
Not open for further replies.
Rebooted Win 10. Opened twin IDE's - one for T_3.5 and one for T_3.6. Programmed both devices in turn.

Pressed T_3.5 button and got ERROR: Code for T_3.6.

Can Teensyloader track which .HEX last went to the device and send the proper one in response to a device Button?

Then pushed button T_3.6 and it has gone NEUROTIC again: View attachment Tport3536nuerotic.txt
 
Can Teensyloader track which .HEX last went to the device and send the proper one in response to a device Button?

No, it can't.

If fact, Teensy Loader doesn't even (yet) have the ability to verify the board it's programming is really the intended location. In fact, on top of that, so far the teensy_reboot program doesn't even have a way to send that location info to Teensy Loader.

At this point, Teensy Loader is still a very simple single-file, single-board approach. Multiple boards only works because teensy_reboot can now send the reboot request to the correct board, and the ports menu now offers selection based on actual physical port location. It all depends on Teensy Loader having the right file open and be configure in auto mode (both of which teensy_reboot does do) when the Teensy shows up in bootloader mode.

I'm very likely going to leave Teensy Loader this way for 1.42. We're already into March, which means the ~3 month release cycle is coming up soon. I really want to get the new ports menu and serial monitor working well, and then roll up a big batch of minor fixes and improvements for a 1.42 release. Expanding the scope of this work to also change how Teensy Loader works internally would delay 1.42 too much.
 
Any chance you still have Teensy Loader open and the Verbose Info window has the log from when that unresponsive serial monitor window opened?

I ran another one... The interesting thing is the window says offline... But I am getting output showing up in the window, although it is grayed/dimmed in the off line state...

Code:
15:29:07.992 (ports): nothing new, skipping HID & Ports enum
15:30:22.457 (ports): got command: "list"
15:30:22.458 (ports): nothing new, skipping HID & Ports enum
15:30:30.867 (post_compile): Begin, version=1.42-beta3-pre2, high-res time
15:30:31.020 (loader): Teensy Loader 1.42-beta3-pre2, begin program
15:30:31.075 (loader): File "WellMonitor.ino.hex". 74696 bytes, 7% used
15:30:31.083 (loader): Listening for remote control on port 3149
15:30:31.084 (loader): initialized, showing main window
15:30:31.167 (loader): remote connection 1252 opened
15:30:31.168 (loader): remote cmd from 1252: "comment: Teensyduino 1.42-beta3-pre2 - WINDOWS (teensy_post_compile)"
15:30:31.169 (post_compile): Sending command: comment: Teensyduino 1.42-beta3-pre2 - WINDOWS (teensy_post_compile)
15:30:31.169 (loader): remote cmd from 1252: "status"
15:30:31.171 (loader): HID/win32:  vid:045E pid:07A5 ver:0797
15:30:31.171 (loader): HID/win32:  vid:045E pid:07A5 ver:0797
15:30:31.172 (loader): HID/win32:  vid:045E pid:07A5 ver:0797
15:30:31.172 (loader): HID/win32:  vid:045E pid:07A5 ver:0797
15:30:31.172 (loader): remote cmd from 1252: "dir:C:\Users\kurte\AppData\Local\Temp\arduino_build_606612\"
15:30:31.172 (loader): remote cmd from 1252: "file:WellMonitor.ino.hex"
15:30:31.173 (post_compile): Status: 1, 0, 0, 0, 0, 0, C:\Users\kurte\AppData\Local\Temp\arduino_build_606612\, WellMonitor.ino.hex
15:30:31.173 (post_compile): Sending command: dir:C:\Users\kurte\AppData\Local\Temp\arduino_build_606612\
15:30:31.173 (post_compile): Sending command: file:WellMonitor.ino.hex
15:30:31.183 (loader): File "WellMonitor.ino.hex". 74696 bytes, 7% used
15:30:31.187 (loader): remote cmd from 1252: "status"
15:30:31.189 (post_compile): Status: 1, 0, 0, 0, 0, 0, C:\Users\kurte\AppData\Local\Temp\arduino_build_606612\, WellMonitor.ino.hex
15:30:31.189 (post_compile): Sending command: auto:on
15:30:31.189 (loader): remote cmd from 1252: "auto:on"
15:30:31.190 (post_compile): Disconnect
15:30:31.201 (loader): remote connection 1252 closed
15:30:31.470 (loader): remote connection 1252 opened
15:30:31.475 (ports): got command: "list"
15:30:31.476 (ports): nothing new, skipping HID & Ports enum
15:30:31.476 (ports): got command: "list"
15:30:31.477 (ports): nothing new, skipping HID & Ports enum
15:30:31.502 (loader): remote connection 1304 opened
15:30:31.502 (loader): remote cmd from 1304: "comment: Teensyduino 1.42-beta3-pre2 - WINDOWS (teensy_post_compile)"
15:30:31.502 (loader): remote cmd from 1304: "status"
15:30:31.502 (loader): remote cmd from 1304: "dir:C:\Users\kurte\AppData\Local\Temp\arduino_build_606612\"
15:30:31.502 (loader): remote cmd from 1304: "file:WellMonitor.ino.hex"
15:30:31.504 (post_compile): Begin, version=1.42-beta3-pre2, high-res time
15:30:31.506 (post_compile): Sending command: comment: Teensyduino 1.42-beta3-pre2 - WINDOWS (teensy_post_compile)
15:30:31.507 (post_compile): Status: 1, 1, 0, 0, 0, 0, C:\Users\kurte\AppData\Local\Temp\arduino_build_606612\, WellMonitor.ino.hex
15:30:31.507 (post_compile): Sending command: dir:C:\Users\kurte\AppData\Local\Temp\arduino_build_606612\
15:30:31.507 (post_compile): Sending command: file:WellMonitor.ino.hex
15:30:31.517 (loader): File "WellMonitor.ino.hex". 74696 bytes, 7% used
15:30:31.517 (loader): remote cmd from 1304: "status"
15:30:31.522 (post_compile): Status: 1, 1, 0, 0, 0, 0, C:\Users\kurte\AppData\Local\Temp\arduino_build_606612\, WellMonitor.ino.hex
15:30:31.522 (post_compile): Disconnect
15:30:31.533 (loader): remote connection 1304 closed
15:30:31.533 (loader): remote connection 1304 opened
15:30:31.533 (loader): remote connection 1328 opened
15:30:31.533 (loader): remote cmd from 1328: "show:arduino_attempt_reboot"
15:30:31.533 (loader): got request to show arduino rebooting message
15:30:31.533 (post_compile): Running teensy_reboot: "D:\arduino-1.8.5\hardware\teensy\..\tools\teensy_reboot.exe" teensy_reboot.exe "-board=TEENSY36" "-port=usb:0/140000/0/2/1" "-portlabel=hid#vid_16c0&pid_0478... (Teensy 3.6) Bootloader" "-portprotocol=Teensy"
15:30:31.544 (reboot): Begin, version=1.42-beta3-pre2, high-res time
15:30:31.544 (reboot): location = usb:0/140000/0/2/1
15:30:31.544 (reboot): portlabel = hid#vid_16c0&pid_0478... (Teensy 3.6) Bootloader
15:30:31.544 (reboot): portprotocol = Teensy
15:30:31.544 (reboot): Only location usb:0/140000/0/2/1 will be tried
15:30:31.544 (reboot): LoadLibrary cfgmgr32 ok
15:30:31.544 (reboot): LoadLibrary ntdll ok
15:30:31.545 (reboot): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#2320690#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
15:30:31.545 (reboot): found_usb_device, loc=usb:0/140000/0/2/1    Port_#0001.Hub_#0003
15:30:31.545 (reboot): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0200
15:30:31.545 (reboot): found_usb_device, devinst=00000003
15:30:31.545 (reboot): add: loc=usb:0/140000/0/2/1, class=Ports, vid=16C0, pid=0483, ver=0200, serial=232, dev=\\?\usb#vid_16c0&pid_0483#2320690#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
15:30:31.545 (reboot):   comport_from_devinst_list attempt
15:30:31.545 (reboot):   found Ports in classguid_list at index=0
15:30:31.545 (reboot):   port COM25 found from devnode
15:30:31.545 (reboot): found_usb_device complete
15:30:31.548 (reboot): found Teensy Loader, version 1.42
15:30:31.548 (reboot): Sending command: show:arduino_attempt_reboot
15:30:31.549 (loader): remote cmd from 1328: "comment: Teensyduino 1.42-beta3-pre2 - WINDOWS (teensy_reboot)"
15:30:31.549 (loader): remote cmd from 1328: "status"
15:30:31.549 (loader): remote cmd from 1328: "status"
15:30:31.551 (reboot): Sending command: comment: Teensyduino 1.42-beta3-pre2 - WINDOWS (teensy_reboot)
15:30:31.552 (reboot): Status: 1, 1, 0, 0, 0, 0, C:\Users\kurte\AppData\Local\Temp\arduino_build_606612\, WellMonitor.ino.hex
15:30:31.552 (reboot): do_reset (serial) COM25
15:30:31.560 (reboot): Status: 1, 1, 0, 0, 0, 0, C:\Users\kurte\AppData\Local\Temp\arduino_build_606612\, WellMonitor.ino.hex
15:30:31.560 (reboot): status read, retry 0
15:30:31.654 (ports): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
15:30:31.656 (ports): remove: loc=usb:0/140000/0/2/1
15:30:31.656 (ports): usb_remove: usb:0/140000/0/2/1
15:30:31.656 (ports): nothing new, skipping HID & Ports enum
15:30:31.664 (ports): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
15:30:31.664 (ports): nothing new, skipping HID & Ports enum
15:30:31.665 (ports): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
15:30:31.666 (ports): nothing new, skipping HID & Ports enum
15:30:31.674 (loader): remote cmd from 1328: "status"
15:30:31.675 (reboot): Status: 1, 1, 0, 0, 0, 0, C:\Users\kurte\AppData\Local\Temp\arduino_build_606612\, WellMonitor.ino.hex
15:30:31.675 (reboot): status read, retry 1
15:30:31.782 (loader): remote cmd from 1328: "status"
15:30:31.785 (reboot): Status: 1, 1, 0, 0, 0, 0, C:\Users\kurte\AppData\Local\Temp\arduino_build_606612\, WellMonitor.ino.hex
15:30:31.785 (reboot): status read, retry 2
15:30:31.891 (loader): remote cmd from 1328: "status"
15:30:31.895 (reboot): Status: 1, 1, 0, 0, 0, 0, C:\Users\kurte\AppData\Local\Temp\arduino_build_606612\, WellMonitor.ino.hex
15:30:31.895 (reboot): status read, retry 3
15:30:32.000 (loader): remote cmd from 1328: "status"
15:30:32.002 (reboot): Status: 1, 1, 0, 0, 0, 0, C:\Users\kurte\AppData\Local\Temp\arduino_build_606612\, WellMonitor.ino.hex
15:30:32.002 (reboot): status read, retry 4
15:30:32.107 (loader): remote cmd from 1328: "status"
15:30:32.108 (reboot): Status: 1, 1, 0, 0, 0, 0, C:\Users\kurte\AppData\Local\Temp\arduino_build_606612\, WellMonitor.ino.hex
15:30:32.108 (reboot): status read, retry 5
15:30:32.214 (loader): remote cmd from 1328: "status"
15:30:32.216 (reboot): Status: 1, 1, 0, 0, 0, 0, C:\Users\kurte\AppData\Local\Temp\arduino_build_606612\, WellMonitor.ino.hex
15:30:32.216 (reboot): status read, retry 6
15:30:32.322 (loader): remote cmd from 1328: "status"
15:30:32.323 (reboot): Status: 1, 1, 0, 0, 0, 0, C:\Users\kurte\AppData\Local\Temp\arduino_build_606612\, WellMonitor.ino.hex
15:30:32.323 (reboot): status read, retry 7
15:30:32.429 (loader): remote cmd from 1328: "status"
15:30:32.430 (reboot): Status: 1, 1, 0, 0, 0, 0, C:\Users\kurte\AppData\Local\Temp\arduino_build_606612\, WellMonitor.ino.hex
15:30:32.430 (reboot): status read, retry 8
15:30:32.538 (loader): remote cmd from 1328: "status"
15:30:32.540 (reboot): Status: 1, 1, 0, 0, 0, 0, C:\Users\kurte\AppData\Local\Temp\arduino_build_606612\, WellMonitor.ino.hex
15:30:32.540 (reboot): status read, retry 9
15:30:32.600 (ports): WM_DEVICECHANGE DBT_DEVICEARRIVAL
15:30:32.601 (ports): found_usb_device, id=\\?\usb#vid_16c0&pid_0478#00038a85#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
15:30:32.601 (ports): found_usb_device, loc=usb:0/140000/0/2/1    Port_#0001.Hub_#0003
15:30:32.601 (ports): found_usb_device, hwid=USB\VID_16C0&PID_0478&REV_0103
15:30:32.601 (ports): found_usb_device, devinst=00000015
15:30:32.601 (ports): add: loc=usb:0/140000/0/2/1, class=HID, vid=16C0, pid=0478, ver=0103, serial=000, dev=\\?\usb#vid_16c0&pid_0478#00038a85#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
15:30:32.601 (ports): hiddev_from_devinst_list: iface=0
15:30:32.602 (ports): found_usb_device complete
15:30:32.602 (ports): usb_add: usb:0/140000/0/2/1  [no_device] (Teensy 3.6) Bootloader
15:30:32.604 (ports): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
15:30:32.605 (ports): hid, found devinst=00000016
15:30:32.605 (ports): hid, path=\\?\hid#vid_16c0&pid_0478#7&11b7d899&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
15:30:32.605 (ports): hid,  opened handle
15:30:32.605 (ports):  devinst=00000016, location=usb:0/140000/0/2/1
15:30:32.605 (ports):  vid=16C0, pid=0478, ver=0103, usepage=FF9C, use=0022
15:30:32.605 (ports):  devpath=\\?\hid#vid_16c0&pid_0478#7&11b7d899&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
15:30:32.605 (ports): usb_add: usb:0/140000/0/2/1  \\?\hid#vid_16c0&pid_0478#7&11b7d899&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} (Teensy 3.6) Bootloader
15:30:32.653 (loader): remote cmd from 1328: "status"
15:30:32.654 (loader): Device came online, code_size = 1048576
15:30:32.654 (loader): Board is: Teensy 3.6 (MK66FX1M0), version 1.03
15:30:32.667 (loader): File "WellMonitor.ino.hex". 74696 bytes, 7% used
15:30:32.667 (loader): set background IMG_ONLINE
15:30:32.681 (loader): File "WellMonitor.ino.hex". 74696 bytes, 7% used
15:30:32.682 (loader): elf size appears to be 1048576
15:30:32.682 (loader): elf binary data matches hex file
15:30:32.682 (loader): Code size from .elf file = 1048576
15:30:32.682 (loader): begin operation
15:30:32.690 (reboot): Status: 1, 1, 1, 1, 0, 1, C:\Users\kurte\AppData\Local\Temp\arduino_build_606612\, WellMonitor.ino.hex
15:30:32.696 (loader): flash, block=0, bs=1024, auto=1
15:30:32.702 (loader): flash, block=1, bs=1024, auto=1
15:30:32.704 (loader): flash, block=2, bs=1024, auto=1
15:30:32.706 (loader): flash, block=3, bs=1024, auto=1
15:30:32.981 (loader): remote cmd from 1328: "status"
15:30:32.981 (reboot): Status: 1, 1, 1, 1, 0, 1, C:\Users\kurte\AppData\Local\Temp\arduino_build_606612\, WellMonitor.ino.hex
15:30:32.981 (loader): flash, block=4, bs=1024, auto=1
15:30:33.012 (loader): flash, block=5, bs=1024, auto=1
15:30:33.013 (loader): flash, block=6, bs=1024, auto=1
15:30:33.015 (loader): flash, block=7, bs=1024, auto=1
15:30:33.016 (loader): flash, block=8, bs=1024, auto=1
15:30:33.043 (loader): flash, block=9, bs=1024, auto=1
15:30:33.045 (loader): flash, block=10, bs=1024, auto=1
15:30:33.046 (loader): flash, block=11, bs=1024, auto=1
15:30:33.074 (loader): remote cmd from 1328: "status"
15:30:33.074 (loader): flash, block=12, bs=1024, auto=1
15:30:33.074 (reboot): Status: 1, 1, 1, 1, 0, 1, C:\Users\kurte\AppData\Local\Temp\arduino_build_606612\, WellMonitor.ino.hex
15:30:33.076 (loader): flash, block=13, bs=1024, auto=1
15:30:33.077 (loader): flash, block=14, bs=1024, auto=1
15:30:33.079 (loader): flash, block=15, bs=1024, auto=1
15:30:33.106 (loader): flash, block=16, bs=1024, auto=1
15:30:33.108 (loader): flash, block=17, bs=1024, auto=1
15:30:33.109 (loader): flash, block=18, bs=1024, auto=1
15:30:33.136 (loader): remote cmd from 1328: "status"
15:30:33.136 (reboot): Status: 1, 1, 1, 1, 0, 1, C:\Users\kurte\AppData\Local\Temp\arduino_build_606612\, WellMonitor.ino.hex
15:30:33.136 (loader): flash, block=19, bs=1024, auto=1
15:30:33.138 (loader): flash, block=20, bs=1024, auto=1
15:30:33.139 (loader): flash, block=21, bs=1024, auto=1
15:30:33.141 (loader): flash, block=22, bs=1024, auto=1
15:30:33.168 (loader): flash, block=23, bs=1024, auto=1
15:30:33.170 (loader): flash, block=24, bs=1024, auto=1
15:30:33.171 (loader): flash, block=25, bs=1024, auto=1
15:30:33.198 (loader): remote cmd from 1328: "status"
15:30:33.198 (reboot): Status: 1, 1, 1, 1, 0, 1, C:\Users\kurte\AppData\Local\Temp\arduino_build_606612\, WellMonitor.ino.hex
15:30:33.198 (loader): flash, block=26, bs=1024, auto=1
15:30:33.200 (loader): flash, block=27, bs=1024, auto=1
15:30:33.201 (loader): flash, block=28, bs=1024, auto=1
15:30:33.203 (loader): flash, block=29, bs=1024, auto=1
15:30:33.230 (loader): flash, block=30, bs=1024, auto=1
15:30:33.231 (loader): flash, block=31, bs=1024, auto=1
15:30:33.233 (loader): flash, block=32, bs=1024, auto=1
15:30:33.260 (loader): flash, block=33, bs=1024, auto=1
15:30:33.262 (loader): remote cmd from 1328: "status"
15:30:33.262 (loader): flash, block=34, bs=1024, auto=1
15:30:33.262 (reboot): Status: 1, 1, 1, 1, 0, 1, C:\Users\kurte\AppData\Local\Temp\arduino_build_606612\, WellMonitor.ino.hex
15:30:33.263 (loader): flash, block=35, bs=1024, auto=1
15:30:33.265 (loader): flash, block=36, bs=1024, auto=1
15:30:33.291 (loader): flash, block=37, bs=1024, auto=1
15:30:33.292 (loader): flash, block=38, bs=1024, auto=1
15:30:33.294 (loader): flash, block=39, bs=1024, auto=1
15:30:33.321 (reboot): status read, retry 10
15:30:33.321 (reboot): Disconnect
15:30:33.321 (reboot): Success
15:30:33.322 (loader): flash, block=40, bs=1024, auto=1
15:30:33.323 (loader): flash, block=41, bs=1024, auto=1
15:30:33.325 (loader): flash, block=42, bs=1024, auto=1
15:30:33.326 (loader): flash, block=43, bs=1024, auto=1
15:30:33.342 (ports): got command: "list"
15:30:33.343 (ports): nothing new, skipping HID & Ports enum
15:30:33.343 (ports): got command: "list"
15:30:33.343 (ports): nothing new, skipping HID & Ports enum
15:30:33.353 (loader): remote connection 1328 closed
15:30:33.353 (loader): remote connection 1304 closed
15:30:33.354 (loader): flash, block=44, bs=1024, auto=1
15:30:33.355 (loader): flash, block=45, bs=1024, auto=1
15:30:33.357 (loader): flash, block=46, bs=1024, auto=1
15:30:33.384 (loader): flash, block=47, bs=1024, auto=1
15:30:33.386 (loader): flash, block=48, bs=1024, auto=1
15:30:33.387 (loader): flash, block=49, bs=1024, auto=1
15:30:33.389 (loader): flash, block=50, bs=1024, auto=1
15:30:33.415 (loader): flash, block=51, bs=1024, auto=1
15:30:33.417 (loader): flash, block=52, bs=1024, auto=1
15:30:33.418 (loader): flash, block=53, bs=1024, auto=1
15:30:33.447 (loader): flash, block=54, bs=1024, auto=1
15:30:33.448 (loader): flash, block=55, bs=1024, auto=1
15:30:33.450 (loader): flash, block=56, bs=1024, auto=1
15:30:33.451 (loader): flash, block=57, bs=1024, auto=1
15:30:33.478 (loader): flash, block=58, bs=1024, auto=1
15:30:33.479 (loader): flash, block=59, bs=1024, auto=1
15:30:33.481 (loader): flash, block=60, bs=1024, auto=1
15:30:33.509 (loader): flash, block=61, bs=1024, auto=1
15:30:33.511 (loader): flash, block=62, bs=1024, auto=1
15:30:33.512 (loader): flash, block=63, bs=1024, auto=1
15:30:33.513 (loader): flash, block=64, bs=1024, auto=1
15:30:33.540 (loader): flash, block=65, bs=1024, auto=1
15:30:33.541 (loader): flash, block=66, bs=1024, auto=1
15:30:33.543 (loader): flash, block=67, bs=1024, auto=1
15:30:33.571 (loader): flash, block=68, bs=1024, auto=1
15:30:33.572 (loader): flash, block=69, bs=1024, auto=1
15:30:33.574 (loader): flash, block=70, bs=1024, auto=1
15:30:33.575 (loader): flash, block=71, bs=1024, auto=1
15:30:33.602 (loader): flash, block=72, bs=1024, auto=1
15:30:33.607 (loader): sending reboot
15:30:33.609 (loader): begin wait_until_offline
15:30:33.686 (ports): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
15:30:33.686 (ports): remove: loc=usb:0/140000/0/2/1
15:30:33.686 (ports): usb_remove: usb:0/140000/0/2/1
15:30:33.686 (ports): nothing new, skipping HID & Ports enum
15:30:33.713 (loader): offline, waited 2
15:30:33.713 (loader): end operation, total time = 1.031 seconds
15:30:33.713 (loader): set background IMG_REBOOT_OK
15:30:33.713 (loader): redraw timer set, image 14 to show for 1200 ms
15:30:33.822 (loader): HID/win32:  vid:045E pid:07A5 ver:0797
15:30:33.822 (loader): HID/win32:  vid:045E pid:07A5 ver:0797
15:30:33.823 (loader): HID/win32:  vid:045E pid:07A5 ver:0797
15:30:33.823 (loader): HID/win32:  vid:045E pid:07A5 ver:0797
15:30:33.961 (ports): WM_DEVICECHANGE DBT_DEVICEARRIVAL
15:30:33.961 (ports): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#2320690#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
15:30:33.961 (ports): found_usb_device, loc=usb:0/140000/0/2/1    Port_#0001.Hub_#0003
15:30:33.961 (ports): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0200
15:30:33.961 (ports): found_usb_device, devinst=00000013
15:30:33.961 (ports): add: loc=usb:0/140000/0/2/1, class=Ports, vid=16C0, pid=0483, ver=0200, serial=232, dev=\\?\usb#vid_16c0&pid_0483#2320690#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
15:30:33.961 (ports):   comport_from_devinst_list attempt
15:30:33.961 (ports):   found Ports in classguid_list at index=0
15:30:33.961 (ports):   port COM25 found from devnode
15:30:33.961 (ports): found_usb_device complete
15:30:33.962 (ports): usb_add: usb:0/140000/0/2/1  COM25 (Teensy 3.6) Serial
15:30:33.967 (ports): WM_DEVICECHANGE DBT_DEVICEARRIVAL
15:30:33.968 (ports): nothing new, skipping HID & Ports enum
15:30:34.172 (ports): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
15:30:34.172 (ports): nothing new, skipping HID & Ports enum
15:30:34.928 (loader): redraw, image 9
15:30:36.300 (ports): got command: "list"
15:30:36.339 (loader): remote connection 1260 opened
15:30:36.346 (serialmon): Begin, version=1.42-beta3-pre2, high-res time
15:30:36.346 (serialmon): teensy_serialmon, cmdline='D:\arduino-1.8.5\hardware\tools\teensy_serialmon -v usb:0/140000/0/2/1'
15:30:36.346 (serialmon): listening for location: usb:0/140000/0/2/1
15:30:36.346 (serialmon): LoadLibrary cfgmgr32 ok
15:30:36.346 (serialmon): LoadLibrary ntdll ok
15:30:36.348 (serialmon): callback 0024
15:30:36.348 (serialmon): callback 0081
15:30:36.349 (serialmon): callback 0083
15:30:36.350 (serialmon): hWnd = 3279444
15:30:36.350 (serialmon): loop stdin, ready=2097151
15:30:36.351 (serialmon): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#2320690#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
15:30:36.351 (serialmon): found_usb_device, loc=usb:0/140000/0/2/1    Port_#0001.Hub_#0003
15:30:36.351 (serialmon): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0200
15:30:36.351 (serialmon): found_usb_device, devinst=00000003
15:30:36.351 (serialmon): add: loc=usb:0/140000/0/2/1, class=Ports, vid=16C0, pid=0483, ver=0200, serial=232, dev=\\?\usb#vid_16c0&pid_0483#2320690#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
15:30:36.351 (serialmon):   comport_from_devinst_list attempt
15:30:36.352 (serialmon):   found Ports in classguid_list at index=0
15:30:36.352 (serialmon):   port COM25 found from devnode
15:30:36.352 (serialmon): found_usb_device complete
15:30:36.353 (serialmon): usb_add: usb:0/140000/0/2/1
15:30:36.353 (serialmon): translate "COM25" -> "\\.\COM25"
15:30:36.353 (serialmon): Opened \\.\COM25 Serial
15:30:48.013 (loader): Verbose Info event
 
Thanks for posting this! It's a huge help.

Then pushed button T_3.6 and it has gone NEUROTIC again: View attachment 13179

I see at least a couple small things going wrong, so going to focus on those first. Also going to add a little more logging into teensy_serialmon. Hopefully you'll be able to get this neurotic thing to happen again?

One of my many goals in this new scheme is making everything respond as quickly as possible. Previously I've "solved" problems by just adding delays. Trying really hard to avoid delays this time, and instead drive everything as much as possible from WM_DEVICECHANGE. But Windows is incredibly difficult. If you're willing to keep running these tests, maybe I'll try creating a version that registers for WM_DEVICECHANGE on more device class GUIDs? I can find lots of details on MSDN and in the header files, but Microsoft seems to have a terrible lack of guidance on how to actually use this stuff to rapidly respond to composite USB device arrival and removal. The really frustrating part how much things seem to vary between a fairly fresh Windows install and one that's been heavily used. At least we're finally getting better logging with high-res timestamps. Your testing is really helping now!
 
No, it can't.

...

Good answer. Nice step forward. So much for taking the weekend off :)

NOTE: I have STREAMING USB output - I stop AutoScroll and attempt to select to copy an output section - BAM - before I can select and copy 4 out of 5 tries the windows text jumps and the selection is voided. I have to page to the target area and try again. I suppose that behavior is beyond your control - but just in case . . .

{ kudos to koromix for his focus on this with tycommander! }
 
Thanks for posting this! It's a huge help.

I see at least a couple small things going wrong, so going to focus on those first. Also going to add a little more logging into teensy_serialmon. Hopefully you'll be able to get this neurotic thing to happen again?

... If you're willing to keep running these tests, ... Your testing is really helping now!

Glad to help, yes I can run more tests.

I have seen the neurosis twice now - IIRC it was caused both times with a Button press after successfully programming had the Teensy running - both times IIRC it was the T_3.6's Button.

It seems neurosis also showed up when I unplugged both my running Teensys - the messages started spewing? Just did that again now and it did not go there with multiple plugs and a T_3.6 Button.

HOWEVER - then doing a T_3.5 button and it is in SPAZ mode: ButtonSpazT_35.PNG
 
The interesting thing is the window says offline... But I am getting output showing up in the window, although it is grayed/dimmed in the off line state...

Yeah, that's a bug on the Java side looking for the "Opened" string. It's assuming data will arrive 1 line at a time, which isn't true on Windows. I'll put in better parsing for the next beta.
 
@defragster - Can you try to get the neurotic problem to happen with these files?

https://www.pjrc.com/teensy/beta/windows_util_142b2_fixes3.zip

This update adds numbering to the remote logging instances, which will make sorting out the similar-looking multiple instances much easier. I also fixed a minor bug in detecting HID devices, but that's unlikely to be the problem.

Edit: this update also has several minor improvements on the Windows side, like showing anything teensy_reboot prints to the Arduino console without waiting for the process to end (not nearly as easy in Windows as on Mac & Linux).
 
Paul - switched to IDE w/td 1.42 beta w/fixes#3

Here is a long TLoader_Verbose:

This has twin T_3.5 + T_3.6 and various uploads that seemed to work - though the sketch pair isn't working just now. NOTE: TyCommander has HUNG some times after T_3.5 uploads on my system.

I just saw this "Board at usb:0/140000/0/1 is not available" after I closed t_sermon after upload - then hit the T_ports and moved to Com10 - until then there was no connected t_sermon output?::
WM_DEVICECHANGE DBT_DEVICEARRIVAL
nothing new, skipping HID & Ports enum
WM_DEVICECHANGE DBT_DEVNODES_CHANGED
nothing new, skipping HID & Ports enum
Board at usb:0/140000/0/1 is not available
teensy_serialmon, cmdline='T:\arduino_1.8.5_142\hardware\tools\teensy_serialmon -v usb:0/140000/0/2'
listening for location: usb:0/140000/0/2
LoadLibrary cfgmgr32 ok
LoadLibrary ntdll ok
callback 0024
callback 0081
callback 0083
hWnd = 1117928
loop stdin, ready=2097151
found_usb_device, id=\\?\usb#vid_16c0&pid_0483#2114150#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
found_usb_device, loc=usb:0/140000/0/3/1 Port_#0001.Hub_#0003
found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0200
found_usb_device, devinst=00000002
add: loc=usb:0/140000/0/3/1, class=Ports, vid=16C0, pid=0483, ver=0200, serial=211, dev=\\?\usb#vid_16c0&pid_0483#2114150#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
00000002, class=Ports, portname=COM12, id=USB\VID_16C0&PID_0483\2114150
comport_from_devinst_list attempt
found Ports in classguid_list at index=0
port COM12 found from devnode
found_usb_device complete
found_usb_device, id=\\?\usb#vid_16c0&pid_0483#2273070#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
found_usb_device, loc=usb:0/140000/0/2 Port_#0002.Hub_#0001
found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0200
found_usb_device, devinst=00000007
add: loc=usb:0/140000/0/2, class=Ports, vid=16C0, pid=0483, ver=0200, serial=227, dev=\\?\usb#vid_16c0&pid_0483#2273070#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
00000007, class=Ports, portname=COM10, id=USB\VID_16C0&PID_0483\2273070
comport_from_devinst_list attempt
found Ports in classguid_list at index=0
port COM10 found from devnode
found_usb_device complete
usb_add: usb:0/140000/0/2
translate "COM10" -> "\\.\COM10"
Opened COM10 Serial
usb_add: usb:0/140000/0/3/1

You can set up a repro of what I'm doing with two SPI teensys wired like this: Project-SPI_MSTransfer :: Connects

And it should run from Master/Slave in this library examples: Project-SPI_MSTransfer :: Library > SPI_MSTransfer.zip <link edited to V_0.0.16>
 
Last edited:
Paul - All is working well on Win 10 with teensy_sermon and two instances of the IDE [ one T_3.5 Slave code and the other T_3.6 Master code ].

Both T_sermon title bars ODDLY indicate as before "[offline] (Teensy)" - when both are streaming data at 1,000 msgs/sec.

For your reading enjoyment here is the current TLoader since my last post (opps 400K too big - have to zip):


Thiery: that sounds to be an old and obscure build - but maybe it will work for free with the changes?
 
My goal as been to support Mac 10.7 (Lion) to the latest High Sierra. That's currently the range Arduino supports, but it's looking like they may drop Lion and maybe Mountain Lion support with a JRE update on 1.9.0.

When the next version comes out with the 32 bit warnings, might be time to update my build system and drop Lion? Or maybe I can coax it to build 64 bit versions with my current system? (seem to recall an issue deep within wxWidgets using 64 bits & supporting very old MacOS)
 
These 32bit warnings are already in the current High Sierra 10.13.4 beta and I can tell you that these are annoying... Fortunately, I could already update or replace all my other apps to have a clean 64bit system - out of Teensyduino.
 
Both T_sermon title bars ODDLY indicate as before "[offline] (Teensy)" - when both are streaming data at 1,000 msgs/sec.

Yeah, that's a known bug. I'll work on it soon. I believe the Java code isn't properly parse the message teensy_serialmon sends to tell it the device is back online. Or it could be the Windows version of teensy_serialmon isn't sending it properly, or maybe some other issue? Been prioritizing the other problems higher than this, but it does need to get fixed before a 1.42 release.
 
These 32bit warnings are already in the current High Sierra 10.13.4 beta and I can tell you that these are annoying...

I've got this on my list of upcoming issues. I'm not planning to install 10.13.4 beta. Going to deal with it when 10.13.4 releases.

So far, I'm still on 10.13.3.

Screen Shot 2018-03-07 at 4.55.08 PM.png
 
Yeah, that's a known bug. I'll work on it soon. I believe the Java code isn't properly parse the message teensy_serialmon sends to tell it the device is back online. Or it could be the Windows version of teensy_serialmon isn't sending it properly, or maybe some other issue? Been prioritizing the other problems higher than this, but it does need to get fixed before a 1.42 release.

Okay - noted as known - ugly but not critical.
>> Is there any chance it relates to the one time the T_sermon didn't come back online - maybe it is sending an unexpected string/ID - COM10 was back online but: Board at usb:0/140000/0/1 is not available

I've done muiltiple Uploads to both paired T_3.5 and T_3.6 with NO ISSUES.

In the last 2.7+ hours at 1,000 / sec both T_sermons are running strong and fine message counter is at 10,063,420 and counting. { and the output on Slave comes from a 49 uS SPI message of 96 bytes from the Master }
 
>> Is there any chance it relates to the one time the T_sermon didn't come back online - maybe it is sending an unexpected string/ID - COM10 was back online but: Board at usb:0/140000/0/1 is not available

Nope, that's a "real" bug. If it happens again, please save the log file!
 
Another question, how is the interactive speed looking on your system? One of the long-standing problems this was meant to solve is the need for extra delays (especially on Windows) before opening the COM port after uploading.
 
Another question, how is the interactive speed looking on your system? One of the long-standing problems this was meant to solve is the need for extra delays (especially on Windows) before opening the COM port after uploading.

So far it seems Good and fast since first noted - reports Serial connect at 400 ms no issues.
 
So far it seems Good and fast since first noted - reports Serial connect at 400 ms no issues.

Paul - is seems T_sermon is not asserting Serial ? Early note was clouded by having micros()<5000 not millis() - DOH!

Sketch below shows lots of printing coming to T_sermon ( and IDE SerMon ) while ( !Serial )? It also shows IDE SerMon able to print but not 'telling' Teensy as fast as TyCommander, this agrees with prior discoveries of slow starting SerMon.

It prints this in T_sermon either after Upload or on plugging in USB:
Not Serial ??? @ millis=400
Not Serial ??? @ millis=901
Not Serial ??? @ millis=1401
Not Serial ??? @ millis=1901
Not Serial ??? @ millis=2401
Not Serial ??? @ millis=2901
Not Serial ??? @ millis=3401
Not Serial ??? @ millis=3901
Not Serial ??? @ millis=4401
Not Serial ??? @ millis=4901
Teensy !Serial ??? @ millis=5401

T:\tCode\_TEENSY_INFO\StartPrint\StartPrint.ino Mar 8 2018 22:09:35
Not Serial ???

This Sketch running on T_3.5:
Code:
void setup() {
	Serial.begin(115200);
	uint32_t foo = millis();
	while (!Serial && millis() < 5000 )
	{	Serial.print( "Not Serial ??? @ millis=" );
		Serial.println( millis() );
		while ( !Serial && ( millis() <= (foo + 500) ) );
		foo += 500;
	}
	if ( !Serial )
		Serial.print( "Teensy !Serial ??? @ millis=" );
	else
		Serial.print( "Teensy Serial Online !!! @ millis=" );
	Serial.println( millis() );
	Serial.println("\n" __FILE__ " " __DATE__ " " __TIME__);
	if ( !Serial )
		Serial.println( "Not Serial ???" );
	else
		Serial.println( "YES Serial !!!" );
}

void loop() {
}}

Programming with IDE SerMon shows:
Not Serial ??? @ millis=400
Not Serial ??? @ millis=901
Not Serial ??? @ millis=1401
Not Serial ??? @ millis=1901
Teensy Serial Online !!! @ millis=1926

T:\tCode\_TEENSY_INFO\StartPrint\StartPrint.ino Mar 8 2018 22:08:26
YES Serial !!!

TyCommander shows this on plugging it in:
Teensy Serial Online !!! @ millis=466

T:\tCode\_TEENSY_INFO\StartPrint\StartPrint.ino Mar 8 2018 22:09:35
YES Serial !!!
 
Status
Not open for further replies.
Back
Top