Connecting T4.x thru USB-C hub causes extra serial reset, missing initial serial data

kd5rxt-mark

Well-known member
"Programming T4.x thru USB-C hub causes extra serial reset, missing initial serial data" would be a better title !!

I recently bought a new ASUS laptop that has only 2 x USB-A ports on it, but it also has 2 x USB-C ports. I have added <this> Anker brand USB-C hub to expand the number of USB ports in an attempt to avoid prematurely wearing out the 2 x USB-A ports on the laptop.

I am using Arduino 1.8.19 with TD 1.58b2.

Note that my sketch includes the following in setup (as normally recommended):

Code:
   Serial.begin(115200);
   while (!Serial && (millis() <= 2000));

Simple sketch to demonstrate the undesired behavior:

Code:
//
//  Simple sketch to reproduce the missing of initial output on serial monitor
//     when programming a T4.x thru an additional USB-C hub
//
//  Arduino IDE Configuration (last built with Arduino 1.8.19 + Teensyduino 1.58b2):
//     Tools/Board:           "Teensy 4.0"
//     Tools/USB Type:        "Serial"
//     Tools/CPU Speed:       "600MHz"
//     Tools/Optimize:        "Smallest Code"
//     Tools/Keyboard Layout: "US English"
//     Tools/Port:            "COMx Serial (Teensy 4.0)"
//

const String TITLE     = "Teensy CAN bus monitor utility";
const String VERSION   = "version 1.0 dated 09/17/2022 @2355";
const String AUTHOR    = "designed & written by Mark J Culross (KD5RXT)";

// onboard LED on pin 13
#define LED_PIN 13

#define LED_INTENSITY_OFF 0
#define LED_INTENSITY_ON_NORMAL 31
#define LED_INTENSITY_ON_BRIGHT 255

int led_intensity_on = LED_INTENSITY_ON_NORMAL;

// function headers
void loop();
void setup(void);



// repeated loop forever
void loop()
{
}  // loop()


// one-time setup
void setup(void)
{
   Serial.begin(115200);
   while (!Serial && (millis() <= 2000));

   Serial.println("=============================================");
   Serial.print("       ");
   Serial.println(TITLE);
   Serial.print("     ");
   Serial.println(VERSION);
   Serial.println(AUTHOR);
   Serial.println("=============================================");
   Serial.println("");
   Serial.println("");

   if (CrashReport) {
      Serial.print(CrashReport);
   }

   pinMode(LED_PIN, OUTPUT);
   analogWrite(LED_PIN, LED_INTENSITY_OFF);
   delay(100);
   analogWrite(LED_PIN, led_intensity_on);
   delay(100);
   analogWrite(LED_PIN, LED_INTENSITY_OFF);
   delay(100);
   analogWrite(LED_PIN, led_intensity_on);
   delay(100);
   analogWrite(LED_PIN, LED_INTENSITY_OFF);
   delay(100);
   analogWrite(LED_PIN, led_intensity_on);
   delay(100);
   analogWrite(LED_PIN, LED_INTENSITY_OFF);
   delay(100);
   analogWrite(LED_PIN, led_intensity_on);
   delay(100);
   analogWrite(LED_PIN, LED_INTENSITY_OFF);
   delay(100);
   analogWrite(LED_PIN, led_intensity_on);
   delay(100);
   analogWrite(LED_PIN, LED_INTENSITY_OFF);
} // setup()


// EOF PLACEHOLDER

When I program the T4.x without the hub inline (with the T4.x directly connected to one of the USB-A ports on the laptop), the T4.x programs & resets as expected, & I get the initial output in the serial monitor as expected. The verbose log looks like this:

Code:
09:05:27.038 (loader): remote connection 1968 closed
09:05:29.658 (post_compile 66): Begin, version=1.58-beta2, high-res time
09:05:29.658 (loader): remote connection 1976 opened
09:05:29.659 (loader): remote cmd from 1976: "comment: Teensyduino 1.58-beta2 - WINDOWS (teensy_post_compile)"
09:05:29.660 (post_compile 66): Sending command: comment: Teensyduino 1.58-beta2 - WINDOWS (teensy_post_compile)
09:05:29.660 (loader): remote cmd from 1976: "status"
09:05:29.661 (loader): file changed
09:05:29.668 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.hex", 60416 bytes
09:05:29.676 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.ehex", 60416 bytes, and 5536 loader utility
09:05:29.677 (loader): ehex is valid, key hash: C98CD607 4C9B5153 DFC66457 FAA47DC9 1C64826D AE55EE72 206786C5 8C3B1D26
09:05:29.678 (loader): File "TeensyCANmonitor.ino.hex". 60416 bytes
09:05:29.681 (post_compile 66): Status: 1, 1, 0, 9, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:05:29.681 (post_compile 66): Sending command: dir:C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\
09:05:29.684 (loader): remote cmd from 1976: "dir:C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\"
09:05:29.685 (loader): remote cmd from 1976: "file:TeensyCANmonitor.ino.hex"
09:05:29.686 (post_compile 66): Sending command: file:TeensyCANmonitor.ino.hex
09:05:29.693 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.hex", 60416 bytes
09:05:29.699 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.ehex", 60416 bytes, and 5536 loader utility
09:05:29.699 (loader): ehex is valid, key hash: C98CD607 4C9B5153 DFC66457 FAA47DC9 1C64826D AE55EE72 206786C5 8C3B1D26
09:05:29.700 (loader): File "TeensyCANmonitor.ino.hex". 60416 bytes
09:05:29.703 (loader): remote cmd from 1976: "status"
09:05:29.706 (post_compile 66): Status: 1, 1, 0, 9, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:05:29.706 (post_compile 66): Disconnect
09:05:29.717 (loader): remote connection 1976 closed
09:05:29.851 (loader): remote connection 1976 opened
09:05:29.851 (loader): remote cmd from 1976: "comment: Teensyduino 1.58-beta2 - WINDOWS (teensy_post_compile)"
09:05:29.851 (loader): remote cmd from 1976: "status"
09:05:29.851 (loader): remote cmd from 1976: "dir:C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\"
09:05:29.856 (post_compile 67): Begin, version=1.58-beta2, high-res time
09:05:29.860 (post_compile 67): Sending command: comment: Teensyduino 1.58-beta2 - WINDOWS (teensy_post_compile)
09:05:29.865 (post_compile 67): Status: 1, 1, 0, 9, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:05:29.865 (post_compile 67): Sending command: dir:C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\
09:05:29.867 (loader): remote cmd from 1976: "file:TeensyCANmonitor.ino.hex"
09:05:29.867 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.hex", 60416 bytes
09:05:29.867 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.ehex", 60416 bytes, and 5536 loader utility
09:05:29.867 (post_compile 67): Sending command: file:TeensyCANmonitor.ino.hex
09:05:29.882 (loader): ehex is valid, key hash: C98CD607 4C9B5153 DFC66457 FAA47DC9 1C64826D AE55EE72 206786C5 8C3B1D26
09:05:29.882 (loader): File "TeensyCANmonitor.ino.hex". 60416 bytes
09:05:29.882 (loader): remote cmd from 1976: "status"
09:05:29.895 (post_compile 67): Status: 1, 1, 0, 9, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:05:29.895 (post_compile 67): Disconnect
09:05:29.913 (loader): remote connection 1976 closed
09:05:29.913 (loader): remote connection 1976 opened
09:05:29.914 (post_compile 68): Running teensy_reboot: "C:\Program Files (x86)\Arduino\hardware\teensy\..\tools\teensy_reboot.exe" teensy_reboot.exe "-board=TEENSY40" "-port=usb:0/140000/0/1" "-portlabel=[no_device] Bootloader" "-portprotocol=Teensy"
09:05:29.929 (loader): remote connection 1996 opened
09:05:29.929 (loader): remote cmd from 1996: "show:arduino_attempt_reboot"
09:05:29.929 (loader): got request to show arduino rebooting message
09:05:29.929 (loader): remote cmd from 1996: "comment: Teensyduino 1.58-beta2 - WINDOWS (teensy_reboot)"
09:05:29.929 (loader): remote cmd from 1996: "status"
09:05:29.933 (reboot 69): Begin, version=1.58-beta2, high-res time
09:05:29.933 (reboot 69): location = usb:0/140000/0/1
09:05:29.933 (reboot 69): portlabel = [no_device] Bootloader
09:05:29.933 (reboot 69): portprotocol = Teensy
09:05:29.933 (reboot 69): Only location usb:0/140000/0/1 will be tried
09:05:29.933 (reboot 69): LoadLibrary cfgmgr32 ok
09:05:29.933 (reboot 69): LoadLibrary ntdll ok
09:05:29.933 (reboot 69): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#10973410#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
09:05:29.933 (reboot 69): found_usb_device, loc=usb:0/140000/0/1    Port_#0001.Hub_#0002
09:05:29.933 (reboot 69): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0279
09:05:29.933 (reboot 69): found_usb_device, devinst=00000006
09:05:29.933 (reboot 69): add: loc=usb:0/140000/0/1, class=USB, vid=16C0, pid=0483, ver=0279, serial=10973410, dev=\\?\usb#vid_16c0&pid_0483#10973410#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
09:05:29.933 (reboot 69):   comport_from_devinst_list attempt
09:05:29.933 (reboot 69):   found Ports in classguid_list at index=1
09:05:29.933 (reboot 69):   port COM7 found from devnode
09:05:29.933 (reboot 69): found_usb_device complete
09:05:29.934 (reboot 69): usb scan found 1 devices
09:05:29.937 (reboot 69): found Teensy Loader, version 1.58
09:05:29.937 (reboot 69): Sending command: show:arduino_attempt_reboot
09:05:29.942 (reboot 69): Sending command: comment: Teensyduino 1.58-beta2 - WINDOWS (teensy_reboot)
09:05:29.945 (loader): remote cmd from 1996: "status"
09:05:29.947 (reboot 69): Status: 1, 1, 0, 9, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:05:29.947 (reboot 69): do_reset (serial) COM7
09:05:29.952 (reboot 69): Status: 1, 1, 0, 9, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:05:29.952 (reboot 69): status read, retry 0
09:05:29.972 (ports 1): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
09:05:29.974 (ports 1): remove: loc=usb:0/140000/0/1
09:05:29.974 (ports 1): usb_remove: usb:0/140000/0/1
09:05:29.974 (ports 1): nothing new, skipping HID & Ports enum
09:05:30.007 (ports 1): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
09:05:30.008 (ports 1): nothing new, skipping HID & Ports enum
09:05:30.013 (ports 1): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
09:05:30.014 (ports 1): nothing new, skipping HID & Ports enum
09:05:30.054 (loader): remote cmd from 1996: "status"
09:05:30.065 (reboot 69): Status: 1, 1, 0, 9, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:05:30.065 (reboot 69): status read, retry 1
09:05:30.172 (loader): remote cmd from 1996: "status"
09:05:30.176 (reboot 69): Status: 1, 1, 0, 9, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:05:30.176 (reboot 69): status read, retry 2
09:05:30.227 (ports 1): WM_DEVICECHANGE DBT_DEVICEARRIVAL
09:05:30.229 (ports 1): found_usb_device, id=\\?\usb#vid_16c0&pid_0478#0010be7d#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
09:05:30.229 (ports 1): found_usb_device, loc=usb:0/140000/0/1    Port_#0001.Hub_#0002
09:05:30.229 (ports 1): found_usb_device, hwid=USB\VID_16C0&PID_0478&REV_0107
09:05:30.229 (ports 1): found_usb_device, devinst=00000019
09:05:30.229 (ports 1): add: loc=usb:0/140000/0/1, class=HID, vid=16C0, pid=0478, ver=0107, serial=0010be7d, dev=\\?\usb#vid_16c0&pid_0478#0010be7d#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
09:05:30.229 (ports 1): hiddev_from_devinst_list: iface=0
09:05:30.230 (ports 1): found_usb_device complete
09:05:30.230 (ports 1): hid, found devinst=0000001A
09:05:30.230 (ports 1): hid, path=\\?\hid#vid_16c0&pid_0478#7&f819c5f&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
09:05:30.230 (ports 1): hid,  opened handle
09:05:30.230 (ports 1):  devinst=0000001A, location=usb:0/140000/0/1
09:05:30.230 (ports 1):  vid=16C0, pid=0478, ver=0107, usepage=FF9C, use=0024
09:05:30.230 (ports 1):  devpath=\\?\hid#vid_16c0&pid_0478#7&f819c5f&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
09:05:30.230 (ports 1): usb_add: usb:0/140000/0/1  hid#vid_16c0&pid_0478 (Teensy 4.0) Bootloader
09:05:30.281 (loader): remote cmd from 1996: "status"
09:05:30.281 (loader): secure mode can be locked: this is Lockable Teensy
09:05:30.281 (loader): encryption is possible on this Teensy, but not yet configured
09:05:30.281 (loader): Device came online, code_size = 2031616
09:05:30.281 (loader): Board is: Teensy 4.0 (IMXRT1062), version 1.07
09:05:30.298 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.hex", 60416 bytes
09:05:30.301 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.ehex", 60416 bytes, and 5536 loader utility
09:05:30.306 (loader): ehex is valid, key hash: C98CD607 4C9B5153 DFC66457 FAA47DC9 1C64826D AE55EE72 206786C5 8C3B1D26
09:05:30.306 (loader): File "TeensyCANmonitor.ino.hex". 60416 bytes, 3% used
09:05:30.321 (loader): set background IMG_ONLINE
09:05:30.336 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.hex", 60416 bytes
09:05:30.341 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.ehex", 60416 bytes, and 5536 loader utility
09:05:30.346 (loader): ehex is valid, key hash: C98CD607 4C9B5153 DFC66457 FAA47DC9 1C64826D AE55EE72 206786C5 8C3B1D26
09:05:30.346 (loader): File "TeensyCANmonitor.ino.hex". 60416 bytes, 3% used
09:05:30.366 (loader): elf appears to be for Teensy 4.0 (IMXRT1062) (2031616 bytes)
09:05:30.371 (loader): elf binary data matches hex file
09:05:30.371 (loader): elf file is for Teensy 4.0 (IMXRT1062)
09:05:30.371 (loader): using hex file - Teensy not configured for encryption
09:05:30.393 (loader): begin operation
09:05:30.415 (reboot 69): Status: 1, 1, 1, 10, 0, 1, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:05:30.421 (loader): flash, block=0, bs=1024, auto=1
09:05:30.421 (loader): flash, block=1, bs=1024, auto=1
09:05:30.431 (loader): flash, block=2, bs=1024, auto=1
09:05:30.611 (loader): remote cmd from 1996: "status"
09:05:30.611 (loader): flash, block=3, bs=1024, auto=1
09:05:30.611 (loader): flash, block=4, bs=1024, auto=1
09:05:30.611 (loader): flash, block=5, bs=1024, auto=1
09:05:30.611 (loader): flash, block=6, bs=1024, auto=1
09:05:30.614 (reboot 69): Status: 1, 1, 1, 10, 0, 1, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:05:30.621 (loader): flash, block=7, bs=1024, auto=1
09:05:30.621 (loader): flash, block=8, bs=1024, auto=1
09:05:30.621 (loader): flash, block=9, bs=1024, auto=1
09:05:30.621 (loader): flash, block=10, bs=1024, auto=1
09:05:30.621 (loader): flash, block=11, bs=1024, auto=1
09:05:30.631 (loader): flash, block=12, bs=1024, auto=1
09:05:30.631 (loader): flash, block=13, bs=1024, auto=1
09:05:30.631 (loader): flash, block=14, bs=1024, auto=1
09:05:30.631 (loader): flash, block=15, bs=1024, auto=1
09:05:30.631 (loader): flash, block=16, bs=1024, auto=1
09:05:30.641 (loader): flash, block=17, bs=1024, auto=1
09:05:30.641 (loader): flash, block=18, bs=1024, auto=1
09:05:30.641 (loader): flash, block=19, bs=1024, auto=1
09:05:30.641 (loader): flash, block=20, bs=1024, auto=1
09:05:30.641 (loader): flash, block=21, bs=1024, auto=1
09:05:30.651 (loader): flash, block=22, bs=1024, auto=1
09:05:30.651 (loader): flash, block=23, bs=1024, auto=1
09:05:30.651 (loader): flash, block=24, bs=1024, auto=1
09:05:30.651 (loader): flash, block=25, bs=1024, auto=1
09:05:30.651 (loader): flash, block=26, bs=1024, auto=1
09:05:30.661 (loader): flash, block=27, bs=1024, auto=1
09:05:30.661 (loader): flash, block=28, bs=1024, auto=1
09:05:30.661 (loader): flash, block=29, bs=1024, auto=1
09:05:30.661 (loader): flash, block=30, bs=1024, auto=1
09:05:30.661 (loader): flash, block=31, bs=1024, auto=1
09:05:30.671 (loader): remote cmd from 1996: "status"
09:05:30.671 (loader): flash, block=32, bs=1024, auto=1
09:05:30.671 (loader): flash, block=33, bs=1024, auto=1
09:05:30.671 (loader): flash, block=34, bs=1024, auto=1
09:05:30.675 (reboot 69): Status: 1, 1, 1, 10, 0, 1, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:05:30.681 (loader): flash, block=35, bs=1024, auto=1
09:05:30.681 (loader): flash, block=36, bs=1024, auto=1
09:05:30.681 (loader): flash, block=37, bs=1024, auto=1
09:05:30.681 (loader): flash, block=38, bs=1024, auto=1
09:05:30.681 (loader): flash, block=39, bs=1024, auto=1
09:05:30.691 (loader): flash, block=40, bs=1024, auto=1
09:05:30.691 (loader): flash, block=41, bs=1024, auto=1
09:05:30.691 (loader): flash, block=42, bs=1024, auto=1
09:05:30.696 (loader): flash, block=43, bs=1024, auto=1
09:05:30.698 (loader): flash, block=44, bs=1024, auto=1
09:05:30.701 (loader): flash, block=45, bs=1024, auto=1
09:05:30.701 (loader): flash, block=46, bs=1024, auto=1
09:05:30.701 (loader): flash, block=47, bs=1024, auto=1
09:05:30.706 (loader): flash, block=48, bs=1024, auto=1
09:05:30.706 (loader): flash, block=49, bs=1024, auto=1
09:05:30.711 (loader): flash, block=50, bs=1024, auto=1
09:05:30.711 (loader): flash, block=51, bs=1024, auto=1
09:05:30.711 (loader): flash, block=52, bs=1024, auto=1
09:05:30.716 (loader): flash, block=53, bs=1024, auto=1
09:05:30.716 (loader): flash, block=54, bs=1024, auto=1
09:05:30.716 (loader): flash, block=55, bs=1024, auto=1
09:05:30.721 (loader): flash, block=56, bs=1024, auto=1
09:05:30.721 (loader): flash, block=57, bs=1024, auto=1
09:05:30.721 (loader): flash, block=58, bs=1024, auto=1
09:05:30.741 (loader): sending reboot
09:05:30.741 (loader): begin wait_until_offline
09:05:30.763 (ports 1): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
09:05:30.767 (ports 1): remove: loc=usb:0/140000/0/1
09:05:30.767 (ports 1): usb_remove: usb:0/140000/0/1
09:05:30.767 (ports 1): nothing new, skipping HID & Ports enum
09:05:30.809 (loader): offline, waited 1
09:05:30.809 (loader): end operation, total time = 0.415 seconds
09:05:30.814 (loader): set background IMG_REBOOT_OK
09:05:30.814 (loader): redraw timer set, image 14 to show for 1200 ms
09:05:30.819 (loader): remote cmd from 1996: "status"
09:05:30.819 (loader): HID/win32:  vid:8087 pid:0A1E ver:0200
09:05:30.819 (loader): HID/win32:  vid:048D pid:8051 ver:0000
09:05:30.825 (loader): HID/win32:  vid:0B05 pid:6203 ver:0107  usb:0/140000/0/9/C
09:05:30.828 (loader): HID/win32:  vid:045E pid:0000 ver:0000
09:05:30.828 (loader): HID/win32:  vid:045E pid:0000 ver:0000
09:05:30.828 (loader): HID/win32:  vid:2808 pid:0104 ver:0301
09:05:30.828 (loader): HID/win32:  vid:2808 pid:0104 ver:0301
09:05:30.828 (loader): HID/win32:  vid:2808 pid:0104 ver:0301
09:05:30.839 (reboot 69): Status: 1, 1, 0, 10, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:05:30.839 (reboot 69): status read, retry 3
09:05:30.839 (reboot 69): Success
09:05:30.839 (reboot 69): Disconnect
09:05:30.858 (loader): remote connection 1996 closed
09:05:30.858 (loader): remote connection 1976 closed
09:05:30.892 (serialmon 70): Begin, version=1.58-beta2, high-res time
09:05:30.892 (serialmon 70): listening for location: usb:0/140000/0/1
09:05:30.892 (serialmon 70): LoadLibrary cfgmgr32 ok
09:05:30.892 (serialmon 70): LoadLibrary ntdll ok
09:05:30.894 (serialmon 70): callback 0024
09:05:30.894 (serialmon 70): callback 0081
09:05:30.896 (serialmon 70): callback 0083
09:05:30.896 (serialmon 70): hWnd = 656222
09:05:30.897 (serialmon 70): loop stdin, ready=262143
09:05:30.898 (serialmon 70): nothing new, skipping HID & Ports enum
09:05:30.900 (loader): remote connection 1968 opened
09:05:31.125 (ports 1): WM_DEVICECHANGE DBT_DEVICEARRIVAL
09:05:31.127 (ports 1): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#10973410#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
09:05:31.127 (ports 1): found_usb_device, loc=usb:0/140000/0/1    Port_#0001.Hub_#0002
09:05:31.127 (ports 1): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0279
09:05:31.127 (ports 1): found_usb_device, devinst=00000006
09:05:31.127 (ports 1): add: loc=usb:0/140000/0/1, class=USB, vid=16C0, pid=0483, ver=0279, serial=10973410, dev=\\?\usb#vid_16c0&pid_0483#10973410#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
09:05:31.127 (ports 1):   comport_from_devinst_list attempt
09:05:31.127 (ports 1):   found Ports in classguid_list at index=1
09:05:31.127 (ports 1):   port COM7 found from devnode
09:05:31.127 (ports 1): found_usb_device complete
09:05:31.128 (ports 1): usb_add: usb:0/140000/0/1  COM7 (Teensy 4.0) Serial
09:05:31.132 (serialmon 70): WM_DEVICECHANGE DBT_DEVICEARRIVAL
09:05:31.133 (serialmon 70): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#10973410#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
09:05:31.133 (serialmon 70): found_usb_device, loc=usb:0/140000/0/1    Port_#0001.Hub_#0002
09:05:31.133 (serialmon 70): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0279
09:05:31.133 (serialmon 70): found_usb_device, devinst=00000007
09:05:31.133 (serialmon 70): add: loc=usb:0/140000/0/1, class=USB, vid=16C0, pid=0483, ver=0279, serial=10973410, dev=\\?\usb#vid_16c0&pid_0483#10973410#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
09:05:31.133 (serialmon 70):   comport_from_devinst_list attempt
09:05:31.133 (serialmon 70):   found Ports in classguid_list at index=1
09:05:31.133 (serialmon 70):   port COM7 found from devnode
09:05:31.133 (serialmon 70): found_usb_device complete
09:05:31.134 (serialmon 70): usb_add: usb:0/140000/0/1
09:05:31.134 (serialmon 70): translate "COM7" -> "\\.\COM7"
09:05:31.165 (serialmon 70): GetDefaultCommConfig success
09:05:31.188 (serialmon 70): SetDefaultCommConfig success
09:05:31.188 (serialmon 70): Opened \\.\COM7 Serial
09:05:31.192 (ports 1): callback 001A
09:05:31.193 (serialmon 70): callback 001A
09:05:32.016 (loader): redraw, image 9
09:05:40.387 (serialmon 70): WM_DEVICECHANGE DBT_DEVICEARRIVAL
09:05:40.388 (serialmon 70): nothing new, skipping HID & Ports enum
09:05:40.388 (serialmon 70): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
09:05:40.389 (serialmon 70): nothing new, skipping HID & Ports enum
09:05:40.410 (ports 1): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
09:05:40.410 (ports 1): nothing new, skipping HID & Ports enum
09:05:40.416 (ports 1): WM_DEVICECHANGE DBT_DEVICEARRIVAL
09:05:40.417 (ports 1): nothing new, skipping HID & Ports enum

When I program the T4.x with the hub inline (with the T4.x connected to one of the USB-A ports on the hub), the T4.x programs & resets as expected, but roughly 9 times out of 10, I miss the initial output in the serial monitor due to an additional reset of the Teensy serial connection. The verbose log looks like this (make sure to scroll down & pay particular attention to the line highlighted in RED):

Code:
09:01:22.607 (loader): remote connection 2008 closed
09:01:25.239 (post_compile 34): Begin, version=1.58-beta2, high-res time
09:01:25.240 (loader): remote connection 1596 opened
09:01:25.240 (loader): remote cmd from 1596: "comment: Teensyduino 1.58-beta2 - WINDOWS (teensy_post_compile)"
09:01:25.241 (post_compile 34): Sending command: comment: Teensyduino 1.58-beta2 - WINDOWS (teensy_post_compile)
09:01:25.241 (loader): remote cmd from 1596: "status"
09:01:25.242 (loader): file changed
09:01:25.249 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.hex", 60416 bytes
09:01:25.259 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.ehex", 60416 bytes, and 5536 loader utility
09:01:25.260 (loader): ehex is valid, key hash: C98CD607 4C9B5153 DFC66457 FAA47DC9 1C64826D AE55EE72 206786C5 8C3B1D26
09:01:25.260 (loader): File "TeensyCANmonitor.ino.hex". 60416 bytes
09:01:25.263 (post_compile 34): Status: 1, 1, 0, 4, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:01:25.263 (post_compile 34): Sending command: dir:C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\
09:01:25.268 (loader): remote cmd from 1596: "dir:C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\"
09:01:25.269 (loader): remote cmd from 1596: "file:TeensyCANmonitor.ino.hex"
09:01:25.269 (post_compile 34): Sending command: file:TeensyCANmonitor.ino.hex
09:01:25.276 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.hex", 60416 bytes
09:01:25.282 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.ehex", 60416 bytes, and 5536 loader utility
09:01:25.283 (loader): ehex is valid, key hash: C98CD607 4C9B5153 DFC66457 FAA47DC9 1C64826D AE55EE72 206786C5 8C3B1D26
09:01:25.284 (loader): File "TeensyCANmonitor.ino.hex". 60416 bytes
09:01:25.290 (loader): remote cmd from 1596: "status"
09:01:25.294 (post_compile 34): Status: 1, 1, 0, 4, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:01:25.294 (post_compile 34): Disconnect
09:01:25.313 (loader): remote connection 1596 closed
09:01:25.456 (post_compile 35): Begin, version=1.58-beta2, high-res time
09:01:25.456 (loader): remote connection 1596 opened
09:01:25.456 (loader): remote cmd from 1596: "comment: Teensyduino 1.58-beta2 - WINDOWS (teensy_post_compile)"
09:01:25.456 (loader): remote cmd from 1596: "status"
09:01:25.456 (loader): remote cmd from 1596: "dir:C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\"
09:01:25.456 (loader): remote cmd from 1596: "file:TeensyCANmonitor.ino.hex"
09:01:25.460 (post_compile 35): Sending command: comment: Teensyduino 1.58-beta2 - WINDOWS (teensy_post_compile)
09:01:25.465 (post_compile 35): Status: 1, 1, 0, 4, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:01:25.465 (post_compile 35): Sending command: dir:C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\
09:01:25.467 (post_compile 35): Sending command: file:TeensyCANmonitor.ino.hex
09:01:25.472 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.hex", 60416 bytes
09:01:25.472 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.ehex", 60416 bytes, and 5536 loader utility
09:01:25.472 (loader): ehex is valid, key hash: C98CD607 4C9B5153 DFC66457 FAA47DC9 1C64826D AE55EE72 206786C5 8C3B1D26
09:01:25.488 (loader): File "TeensyCANmonitor.ino.hex". 60416 bytes
09:01:25.488 (loader): remote cmd from 1596: "status"
09:01:25.501 (post_compile 35): Status: 1, 1, 0, 4, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:01:25.501 (post_compile 35): Disconnect
09:01:25.519 (loader): remote connection 1596 closed
09:01:25.519 (loader): remote connection 1596 opened
09:01:25.519 (post_compile 36): Running teensy_reboot: "C:\Program Files (x86)\Arduino\hardware\teensy\..\tools\teensy_reboot.exe" teensy_reboot.exe "-board=TEENSY40" "-port=usb:0/140000/0/5/3/2" "-portlabel=[no_device] Bootloader" "-portprotocol=Teensy"
09:01:25.535 (loader): remote connection 1936 opened
09:01:25.535 (loader): remote cmd from 1936: "show:arduino_attempt_reboot"
09:01:25.535 (loader): got request to show arduino rebooting message
09:01:25.535 (loader): remote cmd from 1936: "comment: Teensyduino 1.58-beta2 - WINDOWS (teensy_reboot)"
09:01:25.535 (loader): remote cmd from 1936: "status"
09:01:25.538 (reboot 37): Begin, version=1.58-beta2, high-res time
09:01:25.538 (reboot 37): location = usb:0/140000/0/5/3/2
09:01:25.538 (reboot 37): Only location usb:0/140000/0/5/3/2 will be tried
09:01:25.538 (reboot 37): portlabel = [no_device] Bootloader
09:01:25.538 (reboot 37): portprotocol = Teensy
09:01:25.538 (reboot 37): LoadLibrary cfgmgr32 ok
09:01:25.538 (reboot 37): LoadLibrary ntdll ok
09:01:25.539 (reboot 37): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#10973410#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
09:01:25.539 (reboot 37): found_usb_device, loc=usb:0/140000/0/5/3/2    Port_#0002.Hub_#0005
09:01:25.539 (reboot 37): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0279
09:01:25.539 (reboot 37): found_usb_device, devinst=00000006
09:01:25.539 (reboot 37): add: loc=usb:0/140000/0/5/3/2, class=USB, vid=16C0, pid=0483, ver=0279, serial=10973410, dev=\\?\usb#vid_16c0&pid_0483#10973410#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
09:01:25.539 (reboot 37):   comport_from_devinst_list attempt
09:01:25.539 (reboot 37):   found Ports in classguid_list at index=1
09:01:25.539 (reboot 37):   port COM7 found from devnode
09:01:25.539 (reboot 37): found_usb_device complete
09:01:25.540 (reboot 37): usb scan found 1 devices
09:01:25.543 (reboot 37): found Teensy Loader, version 1.58
09:01:25.543 (reboot 37): Sending command: show:arduino_attempt_reboot
09:01:25.548 (reboot 37): Sending command: comment: Teensyduino 1.58-beta2 - WINDOWS (teensy_reboot)
09:01:25.550 (loader): remote cmd from 1936: "status"
09:01:25.553 (reboot 37): Status: 1, 1, 0, 4, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:01:25.553 (reboot 37): do_reset (serial) COM7
09:01:25.558 (reboot 37): Status: 1, 1, 0, 4, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:01:25.558 (reboot 37): status read, retry 0
09:01:25.588 (ports 1): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
09:01:25.590 (ports 1): remove: loc=usb:0/140000/0/5/3/2
09:01:25.590 (ports 1): usb_remove: usb:0/140000/0/5/3/2
09:01:25.590 (ports 1): nothing new, skipping HID & Ports enum
09:01:25.623 (ports 1): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
09:01:25.623 (ports 1): nothing new, skipping HID & Ports enum
09:01:25.629 (ports 1): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
09:01:25.629 (ports 1): nothing new, skipping HID & Ports enum
09:01:25.677 (loader): remote cmd from 1936: "status"
09:01:25.680 (reboot 37): Status: 1, 1, 0, 4, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:01:25.680 (reboot 37): status read, retry 1
09:01:25.797 (loader): remote cmd from 1936: "status"
09:01:25.799 (ports 1): WM_DEVICECHANGE DBT_DEVICEARRIVAL
09:01:25.802 (ports 1): found_usb_device, id=\\?\usb#vid_16c0&pid_0478#0010be7d#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
09:01:25.802 (ports 1): found_usb_device, loc=usb:0/140000/0/5/3/2    Port_#0002.Hub_#0005
09:01:25.802 (ports 1): found_usb_device, devinst=00000019
09:01:25.802 (ports 1): found_usb_device, hwid=USB\VID_16C0&PID_0478&REV_0107
09:01:25.803 (ports 1): add: loc=usb:0/140000/0/5/3/2, class=HID, vid=16C0, pid=0478, ver=0107, serial=0010be7d, dev=\\?\usb#vid_16c0&pid_0478#0010be7d#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
09:01:25.803 (ports 1): hiddev_from_devinst_list: iface=0
09:01:25.803 (ports 1): found_usb_device complete
09:01:25.803 (ports 1): hid, found devinst=0000001A
09:01:25.803 (ports 1): hid, path=\\?\hid#vid_16c0&pid_0478#7&f819c5f&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
09:01:25.803 (ports 1): hid,  opened handle
09:01:25.803 (ports 1):  devinst=0000001A, location=usb:0/140000/0/5/3/2
09:01:25.803 (ports 1):  vid=16C0, pid=0478, ver=0107, usepage=FF9C, use=0024
09:01:25.803 (ports 1):  devpath=\\?\hid#vid_16c0&pid_0478#7&f819c5f&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
09:01:25.803 (ports 1): usb_add: usb:0/140000/0/5/3/2  hid#vid_16c0&pid_0478 (Teensy 4.0) Bootloader
09:01:25.807 (loader): secure mode can be locked: this is Lockable Teensy
09:01:25.807 (loader): encryption is possible on this Teensy, but not yet configured
09:01:25.807 (loader): Device came online, code_size = 2031616
09:01:25.817 (loader): Board is: Teensy 4.0 (IMXRT1062), version 1.07
09:01:25.827 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.hex", 60416 bytes
09:01:25.827 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.ehex", 60416 bytes, and 5536 loader utility
09:01:25.827 (loader): ehex is valid, key hash: C98CD607 4C9B5153 DFC66457 FAA47DC9 1C64826D AE55EE72 206786C5 8C3B1D26
09:01:25.827 (loader): File "TeensyCANmonitor.ino.hex". 60416 bytes, 3% used
09:01:25.852 (loader): set background IMG_ONLINE
09:01:25.862 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.hex", 60416 bytes
09:01:25.868 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.ehex", 60416 bytes, and 5536 loader utility
09:01:25.868 (loader): ehex is valid, key hash: C98CD607 4C9B5153 DFC66457 FAA47DC9 1C64826D AE55EE72 206786C5 8C3B1D26
09:01:25.868 (loader): File "TeensyCANmonitor.ino.hex". 60416 bytes, 3% used
09:01:25.892 (loader): elf appears to be for Teensy 4.0 (IMXRT1062) (2031616 bytes)
09:01:25.897 (loader): elf binary data matches hex file
09:01:25.897 (loader): elf file is for Teensy 4.0 (IMXRT1062)
09:01:25.902 (loader): using hex file - Teensy not configured for encryption
09:01:25.919 (loader): begin operation
09:01:25.938 (reboot 37): Status: 1, 1, 1, 5, 0, 1, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:01:25.957 (loader): flash, block=0, bs=1024, auto=1
09:01:25.957 (loader): flash, block=1, bs=1024, auto=1
09:01:25.957 (loader): flash, block=2, bs=1024, auto=1
09:01:26.157 (loader): remote cmd from 1936: "status"
09:01:26.157 (loader): flash, block=3, bs=1024, auto=1
09:01:26.157 (loader): flash, block=4, bs=1024, auto=1
09:01:26.157 (loader): flash, block=5, bs=1024, auto=1
09:01:26.159 (reboot 37): Status: 1, 1, 1, 5, 0, 1, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:01:26.167 (loader): flash, block=6, bs=1024, auto=1
09:01:26.167 (loader): flash, block=7, bs=1024, auto=1
09:01:26.167 (loader): flash, block=8, bs=1024, auto=1
09:01:26.177 (loader): flash, block=9, bs=1024, auto=1
09:01:26.177 (loader): flash, block=10, bs=1024, auto=1
09:01:26.177 (loader): flash, block=11, bs=1024, auto=1
09:01:26.177 (loader): flash, block=12, bs=1024, auto=1
09:01:26.187 (loader): flash, block=13, bs=1024, auto=1
09:01:26.187 (loader): flash, block=14, bs=1024, auto=1
09:01:26.187 (loader): flash, block=15, bs=1024, auto=1
09:01:26.187 (loader): flash, block=16, bs=1024, auto=1
09:01:26.197 (loader): flash, block=17, bs=1024, auto=1
09:01:26.197 (loader): flash, block=18, bs=1024, auto=1
09:01:26.197 (loader): flash, block=19, bs=1024, auto=1
09:01:26.197 (loader): flash, block=20, bs=1024, auto=1
09:01:26.197 (loader): flash, block=21, bs=1024, auto=1
09:01:26.207 (loader): flash, block=22, bs=1024, auto=1
09:01:26.207 (loader): flash, block=23, bs=1024, auto=1
09:01:26.207 (loader): flash, block=24, bs=1024, auto=1
09:01:26.207 (loader): flash, block=25, bs=1024, auto=1
09:01:26.207 (loader): flash, block=26, bs=1024, auto=1
09:01:26.217 (loader): remote cmd from 1936: "status"
09:01:26.217 (loader): flash, block=27, bs=1024, auto=1
09:01:26.217 (loader): flash, block=28, bs=1024, auto=1
09:01:26.217 (loader): flash, block=29, bs=1024, auto=1
09:01:26.219 (reboot 37): Status: 1, 1, 1, 5, 0, 1, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:01:26.224 (loader): flash, block=30, bs=1024, auto=1
09:01:26.227 (loader): flash, block=31, bs=1024, auto=1
09:01:26.227 (loader): flash, block=32, bs=1024, auto=1
09:01:26.227 (loader): flash, block=33, bs=1024, auto=1
09:01:26.227 (loader): flash, block=34, bs=1024, auto=1
09:01:26.227 (loader): flash, block=35, bs=1024, auto=1
09:01:26.237 (loader): flash, block=36, bs=1024, auto=1
09:01:26.237 (loader): flash, block=37, bs=1024, auto=1
09:01:26.237 (loader): flash, block=38, bs=1024, auto=1
09:01:26.237 (loader): flash, block=39, bs=1024, auto=1
09:01:26.237 (loader): flash, block=40, bs=1024, auto=1
09:01:26.247 (loader): flash, block=41, bs=1024, auto=1
09:01:26.247 (loader): flash, block=42, bs=1024, auto=1
09:01:26.247 (loader): flash, block=43, bs=1024, auto=1
09:01:26.247 (loader): flash, block=44, bs=1024, auto=1
09:01:26.247 (loader): flash, block=45, bs=1024, auto=1
09:01:26.257 (loader): flash, block=46, bs=1024, auto=1
09:01:26.257 (loader): flash, block=47, bs=1024, auto=1
09:01:26.257 (loader): flash, block=48, bs=1024, auto=1
09:01:26.257 (loader): flash, block=49, bs=1024, auto=1
09:01:26.267 (loader): flash, block=50, bs=1024, auto=1
09:01:26.267 (loader): flash, block=51, bs=1024, auto=1
09:01:26.267 (loader): flash, block=52, bs=1024, auto=1
09:01:26.267 (loader): flash, block=53, bs=1024, auto=1
09:01:26.277 (loader): flash, block=54, bs=1024, auto=1
09:01:26.277 (loader): remote cmd from 1936: "status"
09:01:26.277 (loader): flash, block=55, bs=1024, auto=1
09:01:26.277 (loader): flash, block=56, bs=1024, auto=1
09:01:26.277 (loader): flash, block=57, bs=1024, auto=1
09:01:26.281 (reboot 37): Status: 1, 1, 1, 5, 0, 1, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:01:26.287 (loader): flash, block=58, bs=1024, auto=1
09:01:26.297 (loader): sending reboot
09:01:26.307 (loader): begin wait_until_offline
09:01:26.307 (loader): offline, waited 0
09:01:26.318 (ports 1): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
09:01:26.321 (ports 1): remove: loc=usb:0/140000/0/5/3/2
09:01:26.321 (ports 1): usb_remove: usb:0/140000/0/5/3/2
09:01:26.321 (ports 1): nothing new, skipping HID & Ports enum
09:01:26.327 (loader): end operation, total time = 0.408 seconds
09:01:26.327 (loader): set background IMG_REBOOT_OK
09:01:26.337 (loader): redraw timer set, image 14 to show for 1200 ms
09:01:26.342 (loader): remote cmd from 1936: "status"
09:01:26.342 (loader): HID/win32:  vid:8087 pid:0A1E ver:0200
09:01:26.342 (loader): HID/win32:  vid:048D pid:8051 ver:0000
09:01:26.342 (loader): HID/win32:  vid:0B05 pid:6203 ver:0107  usb:0/140000/0/9/C
09:01:26.342 (loader): HID/win32:  vid:045E pid:0000 ver:0000
09:01:26.342 (loader): HID/win32:  vid:045E pid:0000 ver:0000
09:01:26.342 (loader): HID/win32:  vid:2808 pid:0104 ver:0301
09:01:26.342 (loader): HID/win32:  vid:2808 pid:0104 ver:0301
09:01:26.342 (loader): HID/win32:  vid:2808 pid:0104 ver:0301
09:01:26.345 (reboot 37): Status: 1, 1, 0, 5, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:01:26.345 (reboot 37): status read, retry 2
09:01:26.345 (reboot 37): Success
09:01:26.345 (reboot 37): Disconnect
09:01:26.368 (loader): remote connection 1936 closed
09:01:26.373 (loader): remote connection 1596 closed
09:01:26.413 (serialmon 38): Begin, version=1.58-beta2, high-res time
09:01:26.413 (serialmon 38): listening for location: usb:0/140000/0/5/3/2
09:01:26.413 (serialmon 38): LoadLibrary cfgmgr32 ok
09:01:26.413 (serialmon 38): LoadLibrary ntdll ok
09:01:26.415 (serialmon 38): callback 0024
09:01:26.415 (serialmon 38): callback 0081
09:01:26.418 (serialmon 38): callback 0083
09:01:26.418 (serialmon 38): hWnd = 394474
09:01:26.418 (serialmon 38): loop stdin, ready=262143
09:01:26.421 (serialmon 38): nothing new, skipping HID & Ports enum
09:01:26.422 (loader): remote connection 1732 opened
09:01:27.533 (loader): redraw, image 9
[COLOR="#FF0000"]09:01:27.961 (ports 1): purge, name=hid#vid_16c0&pid_0478 (Teensy 4.0) Bootloader, loc=usb:0/140000/0/5/3/2, age=1.640 sec
[/COLOR]09:01:28.485 (ports 1): WM_DEVICECHANGE DBT_DEVICEARRIVAL
09:01:28.486 (ports 1): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#10973410#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
09:01:28.486 (ports 1): found_usb_device, loc=usb:0/140000/0/5/3/2    Port_#0002.Hub_#0005
09:01:28.486 (ports 1): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0279
09:01:28.486 (ports 1): found_usb_device, devinst=00000006
09:01:28.486 (ports 1): add: loc=usb:0/140000/0/5/3/2, class=USB, vid=16C0, pid=0483, ver=0279, serial=10973410, dev=\\?\usb#vid_16c0&pid_0483#10973410#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
09:01:28.486 (ports 1):   comport_from_devinst_list attempt
09:01:28.486 (ports 1):   found Ports in classguid_list at index=1
09:01:28.486 (ports 1):   port COM7 found from devnode
09:01:28.486 (ports 1): found_usb_device complete
09:01:28.488 (ports 1): usb_add: usb:0/140000/0/5/3/2  COM7 (Teensy 4.0) Serial
09:01:28.495 (serialmon 38): WM_DEVICECHANGE DBT_DEVICEARRIVAL
09:01:28.498 (serialmon 38): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#10973410#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
09:01:28.498 (serialmon 38): found_usb_device, loc=usb:0/140000/0/5/3/2    Port_#0002.Hub_#0005
09:01:28.498 (serialmon 38): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0279
09:01:28.498 (serialmon 38): found_usb_device, devinst=00000007
09:01:28.498 (serialmon 38): add: loc=usb:0/140000/0/5/3/2, class=USB, vid=16C0, pid=0483, ver=0279, serial=10973410, dev=\\?\usb#vid_16c0&pid_0483#10973410#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
09:01:28.499 (serialmon 38):   comport_from_devinst_list attempt
09:01:28.499 (serialmon 38):   found Ports in classguid_list at index=1
09:01:28.499 (serialmon 38):   port COM7 found from devnode
09:01:28.499 (serialmon 38): found_usb_device complete
09:01:28.499 (serialmon 38): usb_add: usb:0/140000/0/5/3/2
09:01:28.499 (serialmon 38): translate "COM7" -> "\\.\COM7"
09:01:28.527 (serialmon 38): GetDefaultCommConfig success
09:01:28.549 (serialmon 38): SetDefaultCommConfig success
09:01:28.549 (serialmon 38): Opened \\.\COM7 Serial
09:01:28.552 (ports 1): callback 001A
09:01:28.553 (serialmon 38): callback 001A
09:01:35.986 (serialmon 38): WM_DEVICECHANGE DBT_DEVICEARRIVAL
09:01:35.986 (serialmon 38): nothing new, skipping HID & Ports enum
09:01:35.986 (serialmon 38): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
09:01:35.987 (serialmon 38): nothing new, skipping HID & Ports enum
09:01:35.996 (ports 1): WM_DEVICECHANGE DBT_DEVICEARRIVAL
09:01:35.996 (ports 1): nothing new, skipping HID & Ports enum
09:01:36.000 (ports 1): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
09:01:36.001 (ports 1): nothing new, skipping HID & Ports enum

When I program the T4.x with the hub inline (with the T4.x connected to one of the USB-A ports on the hub), the T4.x programs & resets as expected, & roughly 1 time out of 10, I get the initial output in the serial monitor as expected. The verbose log looks like this:

Code:
09:39:01.103 (loader): remote connection 1836 closed
09:39:03.699 (post_compile 143): Begin, version=1.58-beta2, high-res time
09:39:03.700 (loader): remote connection 1932 opened
09:39:03.700 (loader): remote cmd from 1932: "comment: Teensyduino 1.58-beta2 - WINDOWS (teensy_post_compile)"
09:39:03.701 (post_compile 143): Sending command: comment: Teensyduino 1.58-beta2 - WINDOWS (teensy_post_compile)
09:39:03.702 (loader): remote cmd from 1932: "status"
09:39:03.703 (loader): file changed
09:39:03.710 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.hex", 60416 bytes
09:39:03.719 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.ehex", 60416 bytes, and 5536 loader utility
09:39:03.719 (loader): ehex is valid, key hash: C98CD607 4C9B5153 DFC66457 FAA47DC9 1C64826D AE55EE72 206786C5 8C3B1D26
09:39:03.720 (loader): File "TeensyCANmonitor.ino.hex". 60416 bytes
09:39:03.723 (post_compile 143): Status: 1, 1, 0, 23, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:39:03.723 (post_compile 143): Sending command: dir:C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\
09:39:03.727 (loader): remote cmd from 1932: "dir:C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\"
09:39:03.729 (post_compile 143): Sending command: file:TeensyCANmonitor.ino.hex
09:39:03.730 (loader): remote cmd from 1932: "file:TeensyCANmonitor.ino.hex"
09:39:03.737 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.hex", 60416 bytes
09:39:03.744 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.ehex", 60416 bytes, and 5536 loader utility
09:39:03.744 (loader): ehex is valid, key hash: C98CD607 4C9B5153 DFC66457 FAA47DC9 1C64826D AE55EE72 206786C5 8C3B1D26
09:39:03.745 (loader): File "TeensyCANmonitor.ino.hex". 60416 bytes
09:39:03.752 (loader): remote cmd from 1932: "status"
09:39:03.756 (post_compile 143): Status: 1, 1, 0, 23, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:39:03.756 (post_compile 143): Disconnect
09:39:03.778 (loader): remote connection 1932 closed
09:39:03.909 (loader): remote connection 1480 opened
09:39:03.923 (post_compile 144): Begin, version=1.58-beta2, high-res time
09:39:03.925 (loader): remote cmd from 1480: "comment: Teensyduino 1.58-beta2 - WINDOWS (teensy_post_compile)"
09:39:03.925 (loader): remote cmd from 1480: "status"
09:39:03.925 (loader): remote cmd from 1480: "dir:C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\"
09:39:03.925 (loader): remote cmd from 1480: "file:TeensyCANmonitor.ino.hex"
09:39:03.927 (post_compile 144): Sending command: comment: Teensyduino 1.58-beta2 - WINDOWS (teensy_post_compile)
09:39:03.932 (post_compile 144): Status: 1, 1, 0, 23, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:39:03.932 (post_compile 144): Sending command: dir:C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\
09:39:03.934 (post_compile 144): Sending command: file:TeensyCANmonitor.ino.hex
09:39:03.940 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.hex", 60416 bytes
09:39:03.940 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.ehex", 60416 bytes, and 5536 loader utility
09:39:03.952 (loader): ehex is valid, key hash: C98CD607 4C9B5153 DFC66457 FAA47DC9 1C64826D AE55EE72 206786C5 8C3B1D26
09:39:03.952 (loader): File "TeensyCANmonitor.ino.hex". 60416 bytes
09:39:03.957 (loader): remote cmd from 1480: "status"
09:39:03.967 (post_compile 144): Status: 1, 1, 0, 23, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:39:03.967 (post_compile 144): Disconnect
09:39:03.988 (loader): remote connection 1480 closed
09:39:03.988 (loader): remote connection 1480 opened
09:39:03.988 (post_compile 145): Running teensy_reboot: "C:\Program Files (x86)\Arduino\hardware\teensy\..\tools\teensy_reboot.exe" teensy_reboot.exe "-board=TEENSY40" "-port=usb:0/140000/0/5/3/1" "-portlabel=hid#vid_16c0&pid_0478 Bootloader" "-portprotocol=Teensy"
09:39:04.003 (loader): remote connection 1644 opened
09:39:04.003 (loader): remote cmd from 1644: "show:arduino_attempt_reboot"
09:39:04.003 (loader): got request to show arduino rebooting message
09:39:04.003 (loader): remote cmd from 1644: "comment: Teensyduino 1.58-beta2 - WINDOWS (teensy_reboot)"
09:39:04.003 (loader): remote cmd from 1644: "status"
09:39:04.004 (reboot 146): Begin, version=1.58-beta2, high-res time
09:39:04.004 (reboot 146): location = usb:0/140000/0/5/3/1
09:39:04.004 (reboot 146): portlabel = hid#vid_16c0&pid_0478 Bootloader
09:39:04.004 (reboot 146): portprotocol = Teensy
09:39:04.004 (reboot 146): Only location usb:0/140000/0/5/3/1 will be tried
09:39:04.004 (reboot 146): LoadLibrary cfgmgr32 ok
09:39:04.004 (reboot 146): LoadLibrary ntdll ok
09:39:04.005 (reboot 146): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#10973410#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
09:39:04.005 (reboot 146): found_usb_device, loc=usb:0/140000/0/5/3/1    Port_#0001.Hub_#0005
09:39:04.005 (reboot 146): found_usb_device, devinst=00000006
09:39:04.005 (reboot 146): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0279
09:39:04.005 (reboot 146): add: loc=usb:0/140000/0/5/3/1, class=USB, vid=16C0, pid=0483, ver=0279, serial=10973410, dev=\\?\usb#vid_16c0&pid_0483#10973410#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
09:39:04.005 (reboot 146):   comport_from_devinst_list attempt
09:39:04.005 (reboot 146):   found Ports in classguid_list at index=1
09:39:04.005 (reboot 146):   port COM7 found from devnode
09:39:04.005 (reboot 146): found_usb_device complete
09:39:04.006 (reboot 146): usb scan found 1 devices
09:39:04.011 (reboot 146): found Teensy Loader, version 1.58
09:39:04.011 (reboot 146): Sending command: show:arduino_attempt_reboot
09:39:04.015 (reboot 146): Sending command: comment: Teensyduino 1.58-beta2 - WINDOWS (teensy_reboot)
09:39:04.019 (loader): remote cmd from 1644: "status"
09:39:04.020 (reboot 146): Status: 1, 1, 0, 23, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:39:04.020 (reboot 146): do_reset (serial) COM7
09:39:04.026 (reboot 146): Status: 1, 1, 0, 23, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:39:04.026 (reboot 146): status read, retry 0
09:39:04.057 (ports 1): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
09:39:04.058 (ports 1): remove: loc=usb:0/140000/0/5/3/1
09:39:04.058 (ports 1): usb_remove: usb:0/140000/0/5/3/1
09:39:04.058 (ports 1): nothing new, skipping HID & Ports enum
09:39:04.093 (ports 1): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
09:39:04.094 (ports 1): nothing new, skipping HID & Ports enum
09:39:04.100 (ports 1): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
09:39:04.101 (ports 1): nothing new, skipping HID & Ports enum
09:39:04.136 (loader): remote cmd from 1644: "status"
09:39:04.142 (reboot 146): Status: 1, 1, 0, 23, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:39:04.142 (reboot 146): status read, retry 1
09:39:04.257 (loader): remote cmd from 1644: "status"
09:39:04.259 (reboot 146): Status: 1, 1, 0, 23, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:39:04.259 (reboot 146): status read, retry 2
09:39:04.267 (ports 1): WM_DEVICECHANGE DBT_DEVICEARRIVAL
09:39:04.272 (ports 1): found_usb_device, id=\\?\usb#vid_16c0&pid_0478#0010be7d#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
09:39:04.272 (ports 1): found_usb_device, hwid=USB\VID_16C0&PID_0478&REV_0107
09:39:04.272 (ports 1): found_usb_device, loc=usb:0/140000/0/5/3/1    Port_#0001.Hub_#0005
09:39:04.272 (ports 1): found_usb_device, devinst=00000019
09:39:04.272 (ports 1): add: loc=usb:0/140000/0/5/3/1, class=HID, vid=16C0, pid=0478, ver=0107, serial=0010be7d, dev=\\?\usb#vid_16c0&pid_0478#0010be7d#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
09:39:04.272 (ports 1): hiddev_from_devinst_list: iface=0
09:39:04.273 (ports 1): found_usb_device complete
09:39:04.273 (ports 1): hid, found devinst=0000001A
09:39:04.273 (ports 1): hid, path=\\?\hid#vid_16c0&pid_0478#7&f819c5f&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
09:39:04.273 (ports 1): hid,  opened handle
09:39:04.273 (ports 1):  devinst=0000001A, location=usb:0/140000/0/5/3/1
09:39:04.273 (ports 1):  vid=16C0, pid=0478, ver=0107, usepage=FF9C, use=0024
09:39:04.273 (ports 1):  devpath=\\?\hid#vid_16c0&pid_0478#7&f819c5f&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
09:39:04.273 (ports 1): usb_add: usb:0/140000/0/5/3/1  hid#vid_16c0&pid_0478 (Teensy 4.0) Bootloader
09:39:04.367 (loader): remote cmd from 1644: "status"
09:39:04.367 (loader): secure mode can be locked: this is Lockable Teensy
09:39:04.367 (loader): encryption is possible on this Teensy, but not yet configured
09:39:04.367 (loader): Device came online, code_size = 2031616
09:39:04.367 (loader): Board is: Teensy 4.0 (IMXRT1062), version 1.07
09:39:04.383 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.hex", 60416 bytes
09:39:04.387 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.ehex", 60416 bytes, and 5536 loader utility
09:39:04.387 (loader): ehex is valid, key hash: C98CD607 4C9B5153 DFC66457 FAA47DC9 1C64826D AE55EE72 206786C5 8C3B1D26
09:39:04.387 (loader): File "TeensyCANmonitor.ino.hex". 60416 bytes, 3% used
09:39:04.407 (loader): set background IMG_ONLINE
09:39:04.421 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.hex", 60416 bytes
09:39:04.427 (loader): File "C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\TeensyCANmonitor.ino.ehex", 60416 bytes, and 5536 loader utility
09:39:04.432 (loader): ehex is valid, key hash: C98CD607 4C9B5153 DFC66457 FAA47DC9 1C64826D AE55EE72 206786C5 8C3B1D26
09:39:04.432 (loader): File "TeensyCANmonitor.ino.hex". 60416 bytes, 3% used
09:39:04.456 (loader): elf appears to be for Teensy 4.0 (IMXRT1062) (2031616 bytes)
09:39:04.456 (loader): elf binary data matches hex file
09:39:04.456 (loader): elf file is for Teensy 4.0 (IMXRT1062)
09:39:04.461 (loader): using hex file - Teensy not configured for encryption
09:39:04.479 (loader): begin operation
09:39:04.495 (reboot 146): Status: 1, 1, 1, 24, 0, 1, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:39:04.507 (loader): flash, block=0, bs=1024, auto=1
09:39:04.507 (loader): flash, block=1, bs=1024, auto=1
09:39:04.516 (loader): flash, block=2, bs=1024, auto=1
09:39:04.522 (ports 1): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
09:39:04.524 (ports 1): nothing new, skipping HID & Ports enum
09:39:04.717 (loader): remote cmd from 1644: "status"
09:39:04.727 (loader): flash, block=3, bs=1024, auto=1
09:39:04.727 (loader): flash, block=4, bs=1024, auto=1
09:39:04.727 (loader): flash, block=5, bs=1024, auto=1
09:39:04.727 (loader): flash, block=6, bs=1024, auto=1
09:39:04.727 (reboot 146): Status: 1, 1, 1, 24, 0, 1, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:39:04.737 (loader): flash, block=7, bs=1024, auto=1
09:39:04.737 (loader): flash, block=8, bs=1024, auto=1
09:39:04.737 (loader): flash, block=9, bs=1024, auto=1
09:39:04.737 (loader): flash, block=10, bs=1024, auto=1
09:39:04.747 (loader): flash, block=11, bs=1024, auto=1
09:39:04.747 (loader): flash, block=12, bs=1024, auto=1
09:39:04.747 (loader): flash, block=13, bs=1024, auto=1
09:39:04.747 (loader): flash, block=14, bs=1024, auto=1
09:39:04.747 (loader): flash, block=15, bs=1024, auto=1
09:39:04.756 (loader): flash, block=16, bs=1024, auto=1
09:39:04.756 (loader): flash, block=17, bs=1024, auto=1
09:39:04.756 (loader): flash, block=18, bs=1024, auto=1
09:39:04.766 (loader): flash, block=19, bs=1024, auto=1
09:39:04.766 (loader): flash, block=20, bs=1024, auto=1
09:39:04.766 (loader): flash, block=21, bs=1024, auto=1
09:39:04.766 (loader): flash, block=22, bs=1024, auto=1
09:39:04.766 (loader): flash, block=23, bs=1024, auto=1
09:39:04.776 (loader): flash, block=24, bs=1024, auto=1
09:39:04.776 (loader): flash, block=25, bs=1024, auto=1
09:39:04.776 (loader): flash, block=26, bs=1024, auto=1
09:39:04.784 (loader): flash, block=27, bs=1024, auto=1
09:39:04.786 (loader): flash, block=28, bs=1024, auto=1
09:39:04.786 (loader): flash, block=29, bs=1024, auto=1
09:39:04.786 (loader): flash, block=30, bs=1024, auto=1
09:39:04.786 (loader): flash, block=31, bs=1024, auto=1
09:39:04.786 (loader): flash, block=32, bs=1024, auto=1
09:39:04.796 (loader): remote cmd from 1644: "status"
09:39:04.796 (loader): flash, block=33, bs=1024, auto=1
09:39:04.796 (loader): flash, block=34, bs=1024, auto=1
09:39:04.796 (loader): flash, block=35, bs=1024, auto=1
09:39:04.800 (reboot 146): Status: 1, 1, 1, 24, 0, 1, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:39:04.806 (loader): flash, block=36, bs=1024, auto=1
09:39:04.806 (loader): flash, block=37, bs=1024, auto=1
09:39:04.806 (loader): flash, block=38, bs=1024, auto=1
09:39:04.817 (loader): flash, block=39, bs=1024, auto=1
09:39:04.817 (loader): flash, block=40, bs=1024, auto=1
09:39:04.826 (loader): flash, block=41, bs=1024, auto=1
09:39:04.826 (loader): flash, block=42, bs=1024, auto=1
09:39:04.836 (loader): flash, block=43, bs=1024, auto=1
09:39:04.836 (loader): flash, block=44, bs=1024, auto=1
09:39:04.836 (loader): flash, block=45, bs=1024, auto=1
09:39:04.846 (loader): flash, block=46, bs=1024, auto=1
09:39:04.846 (loader): flash, block=47, bs=1024, auto=1
09:39:04.856 (loader): remote cmd from 1644: "status"
09:39:04.861 (loader): flash, block=48, bs=1024, auto=1
09:39:04.861 (loader): flash, block=49, bs=1024, auto=1
09:39:04.862 (reboot 146): Status: 1, 1, 1, 24, 0, 1, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:39:04.871 (loader): flash, block=50, bs=1024, auto=1
09:39:04.876 (loader): flash, block=51, bs=1024, auto=1
09:39:04.876 (loader): flash, block=52, bs=1024, auto=1
09:39:04.881 (loader): flash, block=53, bs=1024, auto=1
09:39:04.884 (loader): flash, block=54, bs=1024, auto=1
09:39:04.887 (loader): flash, block=55, bs=1024, auto=1
09:39:04.891 (loader): flash, block=56, bs=1024, auto=1
09:39:04.896 (loader): flash, block=57, bs=1024, auto=1
09:39:04.901 (loader): flash, block=58, bs=1024, auto=1
09:39:04.906 (loader): sending reboot
09:39:04.911 (loader): begin wait_until_offline
09:39:04.927 (ports 1): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
09:39:04.930 (ports 1): remove: loc=usb:0/140000/0/5/3/1
09:39:04.930 (ports 1): usb_remove: usb:0/140000/0/5/3/1
09:39:04.930 (ports 1): nothing new, skipping HID & Ports enum
09:39:04.966 (loader): offline, waited 1
09:39:04.969 (loader): end operation, total time = 0.490 seconds
09:39:04.969 (loader): set background IMG_REBOOT_OK
09:39:04.969 (loader): redraw timer set, image 14 to show for 1200 ms
09:39:04.977 (loader): remote cmd from 1644: "status"
09:39:04.977 (loader): HID/win32:  vid:8087 pid:0A1E ver:0200
09:39:04.977 (loader): HID/win32:  vid:048D pid:8051 ver:0000
09:39:04.982 (loader): HID/win32:  vid:0B05 pid:6203 ver:0107  usb:0/140000/0/9/C
09:39:04.982 (loader): HID/win32:  vid:045E pid:0000 ver:0000
09:39:04.982 (loader): HID/win32:  vid:045E pid:0000 ver:0000
09:39:04.982 (loader): HID/win32:  vid:2808 pid:0104 ver:0301
09:39:04.982 (loader): HID/win32:  vid:2808 pid:0104 ver:0301
09:39:04.982 (loader): HID/win32:  vid:2808 pid:0104 ver:0301
09:39:04.992 (reboot 146): Status: 1, 1, 0, 24, 0, 0, C:\Users\mjcul\AppData\Local\Temp\arduino_build_458889\, TeensyCANmonitor.ino.hex
09:39:04.992 (reboot 146): status read, retry 3
09:39:04.992 (reboot 146): Success
09:39:04.992 (reboot 146): Disconnect
09:39:05.013 (ports 1): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
09:39:05.014 (ports 1): nothing new, skipping HID & Ports enum
09:39:05.014 (loader): remote connection 1644 closed
09:39:05.031 (loader): remote connection 1480 closed
09:39:05.059 (serialmon 147): Begin, version=1.58-beta2, high-res time
09:39:05.059 (serialmon 147): listening for location: usb:0/140000/0/5/3/1
09:39:05.059 (serialmon 147): LoadLibrary cfgmgr32 ok
09:39:05.059 (serialmon 147): LoadLibrary ntdll ok
09:39:05.062 (serialmon 147): callback 0024
09:39:05.062 (serialmon 147): callback 0081
09:39:05.063 (serialmon 147): callback 0083
09:39:05.063 (serialmon 147): hWnd = 5179078
09:39:05.064 (serialmon 147): loop stdin, ready=262143
09:39:05.065 (serialmon 147): nothing new, skipping HID & Ports enum
09:39:05.067 (loader): remote connection 1480 opened
09:39:05.217 (ports 1): WM_DEVICECHANGE DBT_DEVICEARRIVAL
09:39:05.220 (ports 1): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#10973410#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
09:39:05.220 (ports 1): found_usb_device, loc=usb:0/140000/0/5/3/1    Port_#0001.Hub_#0005
09:39:05.220 (ports 1): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0279
09:39:05.220 (ports 1): found_usb_device, devinst=00000006
09:39:05.220 (ports 1): add: loc=usb:0/140000/0/5/3/1, class=USB, vid=16C0, pid=0483, ver=0279, serial=10973410, dev=\\?\usb#vid_16c0&pid_0483#10973410#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
09:39:05.220 (ports 1):   comport_from_devinst_list attempt
09:39:05.220 (ports 1):   found Ports in classguid_list at index=1
09:39:05.220 (ports 1):   port COM7 found from devnode
09:39:05.220 (ports 1): found_usb_device complete
09:39:05.221 (ports 1): usb_add: usb:0/140000/0/5/3/1  COM7 (Teensy 4.0) Serial
09:39:05.222 (serialmon 147): WM_DEVICECHANGE DBT_DEVICEARRIVAL
09:39:05.224 (serialmon 147): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#10973410#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
09:39:05.224 (serialmon 147): found_usb_device, loc=usb:0/140000/0/5/3/1    Port_#0001.Hub_#0005
09:39:05.224 (serialmon 147): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0279
09:39:05.224 (serialmon 147): found_usb_device, devinst=00000007
09:39:05.224 (serialmon 147): add: loc=usb:0/140000/0/5/3/1, class=USB, vid=16C0, pid=0483, ver=0279, serial=10973410, dev=\\?\usb#vid_16c0&pid_0483#10973410#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
09:39:05.224 (serialmon 147):   comport_from_devinst_list attempt
09:39:05.224 (serialmon 147):   found Ports in classguid_list at index=1
09:39:05.224 (serialmon 147):   port COM7 found from devnode
09:39:05.224 (serialmon 147): found_usb_device complete
09:39:05.224 (serialmon 147): usb_add: usb:0/140000/0/5/3/1
09:39:05.224 (serialmon 147): translate "COM7" -> "\\.\COM7"
09:39:05.258 (serialmon 147): GetDefaultCommConfig success
09:39:05.282 (serialmon 147): SetDefaultCommConfig success
09:39:05.282 (serialmon 147): Opened \\.\COM7 Serial
09:39:05.285 (ports 1): callback 001A
09:39:05.286 (serialmon 147): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
09:39:05.286 (serialmon 147): WM_DEVICECHANGE DBT_DEVICEARRIVAL
09:39:05.288 (serialmon 147): callback 001A
09:39:05.290 (serialmon 147): nothing new, skipping HID & Ports enum
09:39:05.357 (ports 1): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
09:39:05.358 (ports 1): nothing new, skipping HID & Ports enum
09:39:05.365 (ports 1): WM_DEVICECHANGE DBT_DEVICEARRIVAL
09:39:05.366 (ports 1): nothing new, skipping HID & Ports enum
09:39:05.711 (serialmon 147): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
09:39:05.712 (serialmon 147): nothing new, skipping HID & Ports enum
09:39:05.725 (ports 1): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
09:39:05.725 (ports 1): nothing new, skipping HID & Ports enum
09:39:06.173 (loader): redraw, image 9


The three sequences aren't exactly the same, but the line highlighted in RED in the with hub / non-working sequence above seems to be an important difference when using the hub.

Significantly interesting, if I change the serial wait time from 2000 msec to 3000 msec, I get the initial output in the serial monitor, regardless of whether the extra serial reset occurs or not.

Any insights into the cause of the extra serial reset ?? Am I on the right track for the potential cause ?? And finally, is waiting the extra 1000 msec the actual proper work-around, or is there something else that I can look at ??

Thanks,

Mark J Culross
KD5RXT

P.S. Dang, can't edit the title !! Would be better as "Programming T4.x thru USB-C hub causes extra serial reset, missing initial serial data" MJC
 
Last edited:
Back
Top