Forum Rule: Always post complete source code & details to reproduce any issue!
Page 138 of 167 FirstFirst ... 38 88 128 136 137 138 139 140 148 ... LastLast
Results 3,426 to 3,450 of 4161

Thread: Teensy 4.0 First Beta Test

  1. #3426
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    9,066
    Quick update on the serialEvent - it ran since last post - I played with yield() in cores and cloned a yield2() there and I selectively call it in this code that is overly dependent on serialEvent - where most code doesn't use it at all and can just make a void yield(){}

    As far as Beta Teensy 4 - it is running well - everything is just faster and even trying 'simple' things like this can have surprising results! But Teensy 4 was stable for 7 hours. The other problem with the new found speed is SerMon { TyComm or IDE SerMon } can get overwhelmed - this 1000 Hz printed line below corrupted the IDE SerMon { probably same fault text posted prior } and running TyComm now Windows TaskMan is warning in RED that TyComm use of 20% CPU is 'Very high' as it fills manages and garbage collects buffers with this line that is too long.

    That is showing 9 million loop Hz, instead of prior 2 million - but balanced where the skipped calls after each loop still complete message transfer in optimal 5 Mbaud time:
    Code:
     loop #5 @22189139  loop #5 @21947228  loop #5 @21947228  loop op #5 @21947229  
    loop #1 @22189139  loop #1 @21947227  loop #1 @21947228  loop  
    loop #2 @22189139  loop #2 @21947227  loop #2 @21947228  loop  
    loop #3 @22189139  loop #3 @21947227  loop #3 @21947228  loop  
    loop #4 @22189139  loop #4 @21947227  loop #4 @21947228  loop  [lpHz=9660000 xFer us=103
    This shows my per port buffer 'string' is not perfectly handled for printing { this is ONE line ...I added line breaks to fit the screen } … somewhere it ran over and the NULL is misplaced … I need to confirm it is my string work and correct.

    It also shows the 9.66 Mloops/sec versus the 2.18 posted above with this code in place {even with USB Serial output 4 times too long}:
    Code:
    void loop() {
      iiCnt++;
      if ( !(iiCnt % 100) )
        yield2();
    And the us measure of the transfer time up from 74us to 103us because the printing millis() value is larger with the ransfer string as 'loop #1 @22189139' instead of 'loop #1 @810'

    I'll see if I can't use this code as the SLAVE to the TWIN T4 test I tried before and see all seven Serial#'s work between two T4's.

  2. #3427
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    5,074
    @defragster - Glad you have that working...

    @all with ST7789 displays - Was playing around yesterday with the display that I never got to work before... I think I know what is going on and an approach to make them work. I was going to say sc... it, who builds an SPI part without CS pin? But looking up on Amazon and Ebay, it appears like most of them up there are all clones of each other and are like this one... I did some searching around and found that for some reason, when these displays don't have a CS pin, you may need to change the display to run in MODE3 instead of MODE0... Tried it with my T4 version of ST7789_t3 code and was not working... But then figured out that my code as not properly preserving the appropriate bits in the TCR register associated with the MODE... Unfortunately, by the time I figured that out, I had experimented on the display board (tried to pop the actual display off of the board, but the double sided tape was stronger than the display.... And is no longer viable Bright side is the second one I accidentally ordered will arrive Monday...

    I will update(Hack) up the code that if the user passes in -1 for CS, it will disable the CS and change modes. So the user does not have to do like the one now shows and edit the Adafruit library. Assuming it works, obviously only one of these can be driven on any individual SPI bus!

  3. #3428
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    9,066
    I put an explicit NULL in the string after the readBytes() - hopefully that corrects the print issue - doesn't explain it, but might fix the symptom.

    I put it back on the DUAL cross wired 7 Serial# T4 breakouts - just put this code on both wondering if it would work - and it does! Two T4's across 14 Serial ports.

    Changed to :: #define ACTIVE_SER 7
    Had to add two more serialEvent() sections for #6 and #7:
    Code:
    void serialEvent6() {
      uint32_t ii = 5;
      serialXfer( psAll[ii], psAll[ii], false, ii );
    }
    void serialEvent7() {
      uint32_t ii = 6;
      serialXfer( psAll[ii], psAll[ii], false, ii );
    }
    The two are not hard synchronized so they run on their own 10 ms update rate so the two (xFer us)'s SUM to 10,000 us. Startup can get them confused - but here is each started 19 seconds part - with their unique millis() in the per port string:
    Code:
     loop #7 @100086  loop #1 @100086  loop #2 @100086  loop #3 @100086  loop #4 @100086  loop #5 @100086  loop #6 @100086  [lpHz=9999000 xFer us=6642
    Code:
     loop #1 @81673  loop #2 @81673  loop #3 @81673  loop #4 @81673  loop #5 @81673  loop #6 @81673  loop #7 @81673  [lpHz=9997900 xFer us=3542
    With ALTERED cores yield() >> yield2() called manually both T4's are still hitting loop() near 10 million Hz!

    A better version should have the SLAVE be agnostic and just move any data coming in using serialEvent and the Master should do the same without serialEvent to test polling operation.

    here is the code in use:
    Code:
    #define SPD 5000000
    #define ACTIVE_SER 7
    #define QB_SIZE 80
    char qsB[ACTIVE_SER][QB_SIZE];
    uint32_t qsI[ACTIVE_SER];
    HardwareSerial *psAll[7] = { &Serial1, &Serial2, &Serial3, &Serial4, &Serial5, &Serial6, &Serial7 };
    
    extern void yield2();
    void yield() {}
    
    void serialXfer(HardwareSerial * psIn, HardwareSerial * psOut, bool bWrite, uint32_t ii)
    {
      uint32_t cb = psIn->available();
      if (cb) {
        if (cb > (QB_SIZE - qsI[ii])) cb = QB_SIZE - qsI[ii];
        if ( 0 == psIn->readBytes(&qsB[ii][qsI[ii]], cb) ) {
          Serial.printf( "Read Error on %u - expected %u Bytes" , ii, cb );
        }
        else
          qsI[ii] += cb;
        qsB[ii][qsI[ii]] = 0;
      }
    }
    
    uint32_t firstXfer = 0, lastXfer = 0;
    void serialEvent1() {
      uint32_t ii = 0;
      serialXfer( psAll[ii], psAll[ii], false, ii );
      lastXfer = micros();
    }
    void serialEvent2() {
      uint32_t ii = 1;
      serialXfer( psAll[ii], psAll[ii], false, ii );
    }
    void serialEvent3() {
      uint32_t ii = 2;
      do {
        serialXfer( psAll[ii], psAll[ii], false, ii );
        delayMicroseconds(6); // Just for fun
      } while ( psAll[ii]->available() > 0 );
    }
    void serialEvent4() {
      uint32_t ii = 3;
      serialXfer( psAll[ii], psAll[ii], false, ii );
    }
    void serialEvent5() {
      uint32_t ii = 4;
      serialXfer( psAll[ii], psAll[ii], false, ii );
    }
    void serialEvent6() {
      uint32_t ii = 5;
      serialXfer( psAll[ii], psAll[ii], false, ii );
    }
    void serialEvent7() {
      uint32_t ii = 6;
      serialXfer( psAll[ii], psAll[ii], false, ii );
    }
    
    elapsedMillis emWait;
    void setup() {
      pinMode(13, OUTPUT);
      for ( int ii = 0; ii < ACTIVE_SER; ii++ ) {
        psAll[ii]->begin(SPD);
        qsB[ii][0] = 0;
        qsI[ii] = 0;
      }
      digitalWrite( LED_BUILTIN, 1 );
      while (!Serial && millis() < 2200) digitalWrite( LED_BUILTIN, !digitalRead( LED_BUILTIN) );
      Serial.println("\n" __FILE__ " " __DATE__ " " __TIME__);
      Serial.print("serialEvent() Test - Serial @ms=");
      digitalWrite( LED_BUILTIN, 0);
      Serial.println(millis());
      Serial.printf("Baud rate: %d\n", SPD);
      digitalWrite( LED_BUILTIN, 1);
      firstXfer = micros();
      for ( int ii = 0; ii < ACTIVE_SER; ii++ ) {
        psAll[ii]->print( " setup #" );
        psAll[ii]->println( (char)('1' + ii) );
      }
      emWait = 0;
    }
    #define WaitRepeat 10
    uint32_t iiCnt = 0, iiCntL = 0;
    void loop() {
      iiCnt++;
      if ( !(iiCnt % 100) )
        yield2();
      if ( emWait >= WaitRepeat ) {
        emWait -= WaitRepeat;
        if ( qsI[0] > 0 ) { //&& qsB[0][qsI[0] - 1] == '\n'
          for ( int ii = 0; ii < ACTIVE_SER; ii++ ) {
            Serial.print( qsB[ii]);
            qsB[ii][0] = 0;
            qsI[ii] = 0;
          }
        }
        for ( int ii = 0; ii < ACTIVE_SER; ii++ ) {
          if ( 0 != psAll[ii]->available( ) ) {
            Serial.print( 1 + ii );
            Serial.print( "# Ser.available( )" );
            Serial.println( psAll[ii]->available( ) );
          }
        }
        Serial.print( " [lpHz=" );
        Serial.print( 1000 / WaitRepeat * (iiCnt - iiCntL) );
        iiCntL = iiCnt;
        Serial.print( " xFer us=" );
        Serial.println( lastXfer - firstXfer );
        firstXfer = micros();
        for ( int ii = 0; ii < ACTIVE_SER; ii++ )
          psAll[ii]->printf( " loop #%c @%u ", (char)('1' + ii), millis() );
      }
    }

  4. #3429
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    9,066
    Quote Originally Posted by KurtE View Post
    @defragster - Glad you have that working...

    @all with ST7789 displays - Was playing around yesterday with the display that I never got to work before... I think I know what is going on and an approach to make them work. I was going to say sc... it, who builds an SPI part without CS pin? But looking up on Amazon and Ebay, it appears like most of them up there are all clones of each other and are like this one... I did some searching around and found that for some reason, when these displays don't have a CS pin, you may need to change the display to run in MODE3 instead of MODE0... Tried it with my T4 version of ST7789_t3 code and was not working... But then figured out that my code as not properly preserving the appropriate bits in the TCR register associated with the MODE... Unfortunately, by the time I figured that out, I had experimented on the display board (tried to pop the actual display off of the board, but the double sided tape was stronger than the display.... And is no longer viable Bright side is the second one I accidentally ordered will arrive Monday...

    I will update(Hack) up the code that if the user passes in -1 for CS, it will disable the CS and change modes. So the user does not have to do like the one now shows and edit the Adafruit library. Assuming it works, obviously only one of these can be driven on any individual SPI bus!
    Good work KurtE - except for breaking the display

    Question: The one rPi 9488 I got does not have a DC pin - Wondering if there is a similar (MODE) trick that makes it work? Somehow that display works - just not with the DC pin? I looked briefly when I wanted to hook it up since I bought it - and all I found was a multi-MegaByte Linux driver download but nothing I saw documenting the function of it.

  5. #3430
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    5,074
    @defragster - with the 9488 - I know it is somewhere in these many pages. But which one did you order that did not have DC?

    I am wondering if it is setup as a 3 pin SPI, where the frame width is 9 bits instead of 8? I have never tried to do that level of hacking in SPI yet... Assuming one could get this to work, it might be interesting with these boards, especially on T4.

    Why? the T4 can do output frame sizes up to 32 bits... So We could in theory do 9 bit and 18 bit transfers.
    Commands I believe have probably have the high bit set to say this is a command. And for example 18 bit colors could be output as 18 bit values... So don't have to output 3 8 bit values... Might be worth a try? Note: Mine was shipped with 3 pin SPI, but I modified it to 4 pin...

    Edit: For the heck of it I ordered a different cheap one up on EBay: https://www.ebay.com/itm/3-5-Inch-TF...cAAOSw-45c3lf-

    Not sure what SPI they support, but ships from Washington State so, should get to me reasonably quick...
    Last edited by KurtE; 06-29-2019 at 08:32 PM.

  6. #3431
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    20,327
    If you're using Windows, please give this a try on your T4 beta. Is Window happy recognizing it as RawHID, and does auto-upload work after this has been programmed on your board?

    Turns out the previous restore image (and everything else so far) fails USB compliance testing. This is the first restore image which passes. Please give this a try if using Windows. Then I'll do a bootloader update with these fixes.

    FWIW, if anyone want to try running the USB compliance tests, you can download USB2CV. But be warned, it seriously messes with Windows drivers! Also only works on certain PCs. For testing 12 MBit, it requires a hub (a minor detail mentioned buried deep in the docs) and will not test them if plugged in directly.
    Attached Files Attached Files

  7. #3432
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    9,066
    Quote Originally Posted by KurtE View Post
    @defragster - with the 9488 - I know it is somewhere in these many pages. But which one did you order that did not have DC?

    I am wondering if it is setup as a 3 pin SPI, where the frame width is 9 bits instead of 8? I have never tried to do that level of hacking in SPI yet... Assuming one could get this to work, it might be interesting with these boards, especially on T4.
    ...
    It was this one from eBay :: New-3-5-inch-TFT-LCD-320-480-Touch-Screen-Display-Module-for-Raspberry-Pi-3-B

    Order Feb 5, 2019 - still listed. The images match what I have in hand including '480x320 16bit/18bit' - with added silkscreen text of : "version 6.3 2018/4/9" under what the pic shows.

    IIRC mjs513 got a similar one. Only one set of SPI pins - on awkward double tall female header blocks:
    Code:
    7.Touch chip : xpt2046
    Interface Define:
    24--GPIO7 --------> TP_CS
    26--GPIO8 --------> LCD_CS
    22--GPIO25 --------> TP_irq
    23--GPIO11 --------> SPI_CLK
    21--GPIO9 ---------> SPI_MISO
    19--GPIO10 ---------> SPI_MOSI
    5V ---------> 5V
    GND ---------> GND
    Let me know what you think of that display - I can send you mine and re-order.

    serialEvent() test code running fine while I was out - dropped to 100 ms update/repeat so TyCom doesn't overload { 3 windows and under 5% } - one T4 running 5 pin serial alone and the other two T4's on breakout boards running ALL SEVEN crossed between them - all three running same sketch and the two unused bottom side ports don't report in so they are ignored. No repeat of the extra string print with the NULL ending the string after Serial.readBytes() in 2+ hours.

    All three running at 10.2 Mhz loop()s with modified yield(). Just went back to PJRC yield() and the lone T4 is only doing 1.64 Mhz loop()s - so calling yield() after EVERY loop() is over polling and not letting the FIFO's do anything so each serialEvent() is likely only processing one byte! If I take out the do{delayMicroseconds(6)}while() //'Just for fun' in the one serialEvent3() it drops to 1.59 MHz. Using the {once per hundred loop()s} yield2() edit and taking out that 'Just for fun' the 10.2 drops to 9.3 MHz loop()'s. Of course this is an aberrant case on this T4 with 5 Serial#'s active - but it shows that speed can kill speed. Also funny - I just put FASTRUN on yield2() code and it dropped 900K loops/sec!

  8. #3433
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    9,066
    Quote Originally Posted by PaulStoffregen View Post
    If you're using Windows, please give this a try on your T4 beta. Is Window happy recognizing it as RawHID, and does auto-upload work after this has been programmed on your board?

    Turns out the previous restore image (and everything else so far) fails USB compliance testing. This is the first restore image which passes. Please give this a try if using Windows. Then I'll do a bootloader update with these fixes.

    FWIW, if anyone want to try running the USB compliance tests, you can download USB2CV. But be warned, it seriously messes with Windows drivers! Also only works on certain PCs. For testing 12 MBit, it requires a hub (a minor detail mentioned buried deep in the docs) and will not test them if plugged in directly.
    Downloaded, extracted HEX, pointed to it with TeensyLoader, Uploaded, 15s Restore :: No complaints from Win 10

    This is on T4B2 { no white Wire } - will procede to the other two.

    Here is relevant Verbose from TLoader:
    Code:
    15:54:59.486 (loader): Open File event
    15:55:05.087 (loader): File "restore.hex". 2652 bytes, 0% used
    15:55:09.375 (ports 151): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
    15:55:09.377 (ports 151): remove: loc=usb:0/140000/0/8/1
    15:55:09.377 (ports 151): usb_remove: usb:0/140000/0/8/1
    15:55:09.377 (ports 151): nothing new, skipping HID & Ports enum
    15:55:09.397 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    15:55:09.397 (ports 151): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
    15:55:09.398 (ports 151): nothing new, skipping HID & Ports enum
    15:55:09.742 (ports 151): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    15:55:09.744 (ports 151): found_usb_device, id=\\?\usb#vid_16c0&pid_0478#0008d79f#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    15:55:09.744 (ports 151): found_usb_device, loc=usb:0/140000/0/8/1    Port_#0001.Hub_#0009
    15:55:09.744 (ports 151): found_usb_device, hwid=USB\VID_16C0&PID_0478&REV_0004
    15:55:09.744 (ports 151): found_usb_device, devinst=0000001f
    15:55:09.744 (ports 151): add: loc=usb:0/140000/0/8/1, class=HID, vid=16C0, pid=0478, ver=0004, serial=0008d79f, dev=\\?\usb#vid_16c0&pid_0478#0008d79f#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    15:55:09.744 (ports 151): hiddev_from_devinst_list: iface=0
    15:55:09.745 (ports 151): found_usb_device complete
    15:55:09.746 (ports 151): hid, found devinst=00000020
    15:55:09.746 (ports 151): hid, path=\\?\hid#vid_16c0&pid_0478#6&286fbe38&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
    15:55:09.746 (ports 151): hid,  opened handle
    15:55:09.746 (ports 151):  devinst=00000020, location=usb:0/140000/0/8/1
    15:55:09.746 (ports 151):  vid=16C0, pid=0478, ver=0004, usepage=FF9C, use=0024
    15:55:09.746 (ports 151):  devpath=\\?\hid#vid_16c0&pid_0478#6&286fbe38&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
    15:55:09.746 (ports 151): usb_add: usb:0/140000/0/8/1  hid#vid_16c0&pid_0478 (Teensy 4-Beta2) Bootloader
    15:55:09.749 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    15:55:09.750 (ports 151): nothing new, skipping HID & Ports enum
    15:55:09.770 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    15:55:09.771 (ports 151): nothing new, skipping HID & Ports enum
    15:55:09.965 (loader): Device came online, code_size = 2031616
    15:55:09.965 (loader): Board is: Teensy 4-Beta2 (IMXRT1062), version 0.04
    15:55:09.965 (loader): File "restore.hex". 2652 bytes, 0% used
    15:55:09.965 (loader): set background IMG_ONLINE
    15:55:09.975 (loader): File "restore.hex". 2652 bytes, 0% used
    15:55:09.975 (loader): can't open file 'C:\tmp\T4Beta\Beta3\restore.elf' (error 2: the system cannot find the file specified.)
    15:55:09.975 (loader): elf file is for Unknown Board
    15:55:09.975 (loader): begin operation
    15:55:09.994 (loader): flash, block=0, bs=1024, auto=1
    15:55:09.994 (loader):  gauge old value = 0
    15:55:09.994 (loader): flash, block=4, bs=1024, auto=1
    15:55:10.185 (loader):  gauge old value = 1
    15:55:10.185 (loader): flash, block=5, bs=1024, auto=1
    15:55:10.225 (loader):  gauge old value = 2
    15:55:10.225 (loader): flash, block=6, bs=1024, auto=1
    15:55:10.225 (loader):  gauge old value = 3
    15:55:10.235 (loader): sending reboot
    15:55:10.235 (loader): begin wait_until_offline
    15:55:10.243 (ports 151): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
    15:55:10.244 (ports 151): remove: loc=usb:0/140000/0/8/1
    15:55:10.244 (ports 151): usb_remove: usb:0/140000/0/8/1
    15:55:10.244 (ports 151): nothing new, skipping HID & Ports enum
    15:55:10.304 (loader): offline, waited 1
    15:55:10.304 (loader): end operation, total time = 0.330 seconds
    15:55:10.304 (loader): set background IMG_REBOOT_OK
    15:55:10.304 (loader): redraw timer set, image 14 to show for 1200 ms
    15:55:10.312 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    15:55:10.319 (ports 151): nothing new, skipping HID & Ports enum
    15:55:10.484 (loader): HID/win32:  vid:046D pid:C534 ver:2901
    15:55:10.484 (loader): HID/win32:  vid:1B80 pid:B406 ver:0100
    15:55:10.484 (loader): HID/win32:  vid:046D pid:C534 ver:2901
    15:55:10.484 (loader): HID/win32:  vid:1B80 pid:B406 ver:0100
    15:55:10.484 (loader): HID/win32:  vid:0764 pid:0501 ver:0001
    15:55:10.484 (loader): HID/win32:  vid:1B80 pid:B406 ver:0100
    15:55:10.484 (loader): HID/win32:  vid:046D pid:C534 ver:2901
    15:55:10.484 (loader): HID/win32:  vid:1B80 pid:B406 ver:0100
    15:55:10.484 (loader): HID/win32:  vid:046D pid:C534 ver:2901
    15:55:10.541 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    15:55:10.548 (ports 151): nothing new, skipping HID & Ports enum
    15:55:10.607 (ports 151): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    15:55:10.617 (ports 151): found_usb_device, id=\\?\usb#vid_16c0&pid_0486#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    15:55:10.617 (ports 151): found_usb_device, loc=usb:0/140000/0/8/1    Port_#0001.Hub_#0009
    15:55:10.617 (ports 151): found_usb_device, hwid=USB\VID_16C0&PID_0486&REV_0279
    15:55:10.617 (ports 151): found_usb_device, devinst=00000025
    15:55:10.617 (ports 151): add: loc=usb:0/140000/0/8/1, class=USB, vid=16C0, pid=0486, ver=0279, serial=5794870, dev=\\?\usb#vid_16c0&pid_0486#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    15:55:10.618 (ports 151): hiddev_from_devinst_list: iface=1
    15:55:10.623 (ports 151): found_usb_device complete
    15:55:10.630 (ports 151): usb_add: usb:0/140000/0/8/1  [no_device] (Teensy 4-Beta2) RawHID
    15:55:10.763 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    15:55:10.764 (ports 151): update_usb_device, devinst list change, old had 1, new has 5
    15:55:10.764 (ports 151): hiddev_from_devinst_list: iface=1
    15:55:10.765 (ports 151):   00000029: path=\\?\hid#vid_16c0&pid_0486&mi_01#7&33b31594&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
    15:55:10.766 (ports 151): hid, found devinst=00000027
    15:55:10.766 (ports 151): hid, found devinst=00000029
    15:55:10.767 (ports 151): usb_add: usb:0/140000/0/8/1  hid#vid_16c0&pid_0486 (Teensy 4-Beta2) RawHID
    15:55:11.504 (loader): redraw, image 9
    15:55:28.882 (ports 151): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
    15:55:28.883 (ports 151): remove: loc=usb:0/140000/0/8/1
    15:55:28.883 (ports 151): usb_remove: usb:0/140000/0/8/1
    15:55:28.883 (ports 151): nothing new, skipping HID & Ports enum
    15:55:28.890 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    15:55:28.891 (ports 151): nothing new, skipping HID & Ports enum
    15:55:30.592 (ports 151): purge, name=hid#vid_16c0&pid_0486 (Teensy 4-Beta2) RawHID, loc=usb:0/140000/0/8/1, age=1.708 sec
    15:55:49.935 (loader): Verbose Info event
    15:55:56.190 (ports 151): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    15:55:56.192 (ports 151): found_usb_device, id=\\?\usb#vid_16c0&pid_0486#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    15:55:56.192 (ports 151): found_usb_device, loc=usb:0/140000/0/8/1    Port_#0001.Hub_#0009
    15:55:56.192 (ports 151): found_usb_device, hwid=USB\VID_16C0&PID_0486&REV_0279
    15:55:56.192 (ports 151): found_usb_device, devinst=00000025
    15:55:56.192 (ports 151): add: loc=usb:0/140000/0/8/1, class=USB, vid=16C0, pid=0486, ver=0279, serial=5794870, dev=\\?\usb#vid_16c0&pid_0486#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    15:55:56.192 (ports 151): hiddev_from_devinst_list: iface=1
    15:55:56.193 (ports 151): found_usb_device complete
    15:55:56.194 (ports 151): usb_add: usb:0/140000/0/8/1  [no_device] (Teensy 4-Beta2) RawHID
    15:55:56.299 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    15:55:56.300 (ports 151): update_usb_device, devinst list change, old had 2, new has 5
    15:55:56.300 (ports 151): hiddev_from_devinst_list: iface=1
    15:55:56.300 (ports 151):   00000029: path=\\?\hid#vid_16c0&pid_0486&mi_01#7&33b31594&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
    15:55:56.301 (ports 151): hid, found devinst=00000027
    15:55:56.301 (ports 151): hid, found devinst=00000029
    15:55:56.301 (ports 151): usb_add: usb:0/140000/0/8/1  hid#vid_16c0&pid_0486 (Teensy 4-Beta2) RawHID
    15:55:56.397 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    15:55:56.399 (ports 151): nothing new, skipping HID & Ports enum

  9. #3434
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    20,327
    Oh, I should have mentioned, do not hold the button for 15 seconds. Just upload the hex file from msg #3431. When Teensy reboots to run that hex file, is Windows happy? Does Teensy appear in the ports menu correctly as RawHID? Is the orange LED blinking? Does Arduino Upload work then automatically?

    If you hold the button for 15 seconds, your T4 will be overwritten with the old non-compliant (but working) RawHID restore image which is permanently stored in the top 4K of your board's QSPI flash chip.

    This new hex file is the restore image we'll be burning into the QSPI flash chips on the production boards.

  10. #3435
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    9,066
    Quote Originally Posted by PaulStoffregen View Post
    Oh, I should have mentioned, do not hold the button for 15 seconds. Just upload the hex file from msg #3431. When Teensy reboots to run that hex file, is Windows happy? Does Teensy appear in the ports menu correctly as RawHID? Does Arduino Upload work then automatically?

    If you hold the button for 15 seconds, your T4 will be overwritten with the old non-compliant (but working) RawHID restore image which is permanently stored in the top 4K of your board's QSPI flash chip.

    This new hex file is the restore image we'll be burning into the QSPI flash chips on the production boards.
    Yes, that should have been said I read it assuming this hex replaced that 'permanent copy' somehow and 15s Restore was then required.

    Repeating - again no complaints after uploading that hex, then using IDE on that T4 to do Ctrl+U upload of current sketch.

    Now you get a longer VERBOSE stream because I had to do it a second time:
    Code:
    16:05:31.021 (ports 151): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
    16:05:31.022 (ports 151): remove: loc=usb:0/140000/0/8/1
    16:05:31.022 (ports 151): usb_remove: usb:0/140000/0/8/1
    16:05:31.022 (ports 151): nothing new, skipping HID & Ports enum
    16:05:31.032 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:05:31.034 (ports 151): nothing new, skipping HID & Ports enum
    16:05:31.627 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:05:31.636 (ports 151): nothing new, skipping HID & Ports enum
    16:05:31.699 (ports 151): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    16:05:31.709 (ports 151): found_usb_device, id=\\?\usb#vid_16c0&pid_0478#0008d79f#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:05:31.709 (ports 151): found_usb_device, loc=usb:0/140000/0/8/1    Port_#0001.Hub_#0009
    16:05:31.709 (ports 151): found_usb_device, hwid=USB\VID_16C0&PID_0478&REV_0004
    16:05:31.709 (ports 151): found_usb_device, devinst=0000001f
    16:05:31.709 (ports 151): add: loc=usb:0/140000/0/8/1, class=HID, vid=16C0, pid=0478, ver=0004, serial=0008d79f, dev=\\?\usb#vid_16c0&pid_0478#0008d79f#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:05:31.710 (ports 151): hiddev_from_devinst_list: iface=0
    16:05:31.718 (ports 151): found_usb_device complete
    16:05:31.726 (ports 151): usb_add: usb:0/140000/0/8/1  [no_device] (Teensy 4-Beta2) Bootloader
    16:05:31.726 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:05:31.738 (ports 151): update_usb_device, devinst list change, old had 1, new has 2
    16:05:31.738 (ports 151): hiddev_from_devinst_list: iface=0
    16:05:31.750 (ports 151): usb_add: usb:0/140000/0/8/1  [no_device] (Teensy 4-Beta2) Bootloader
    16:05:31.790 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:05:31.806 (ports 151): hid, found devinst=00000020
    16:05:31.806 (ports 151): hid, path=\\?\hid#vid_16c0&pid_0478#6&286fbe38&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
    16:05:31.806 (ports 151): hid,  opened handle
    16:05:31.806 (ports 151):  devinst=00000020, location=usb:0/140000/0/8/1
    16:05:31.806 (ports 151):  vid=16C0, pid=0478, ver=0004, usepage=FF9C, use=0024
    16:05:31.806 (ports 151):  devpath=\\?\hid#vid_16c0&pid_0478#6&286fbe38&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
    16:05:31.807 (ports 151): usb_add: usb:0/140000/0/8/1  hid#vid_16c0&pid_0478 (Teensy 4-Beta2) Bootloader
    16:05:31.897 (loader): Device came online, code_size = 2031616
    16:05:31.912 (loader): Board is: Teensy 4-Beta2 (IMXRT1062), version 0.04
    16:05:31.944 (loader): File "restore.hex". 2652 bytes, 0% used
    16:05:31.944 (loader): set background IMG_ONLINE
    16:05:31.959 (loader): File "restore.hex". 2652 bytes, 0% used
    16:05:31.965 (loader): can't open file 'C:\tmp\T4Beta\Beta3\restore.elf' (error 2: the system cannot find the file specified.)
    16:05:31.965 (loader): elf file is for Unknown Board
    16:05:31.965 (loader): begin operation
    16:05:31.993 (loader): flash, block=0, bs=1024, auto=1
    16:05:31.993 (loader):  gauge old value = 0
    16:05:32.009 (loader): flash, block=4, bs=1024, auto=1
    16:05:32.207 (loader):  gauge old value = 1
    16:05:32.213 (loader): flash, block=5, bs=1024, auto=1
    16:05:32.220 (loader):  gauge old value = 2
    16:05:32.227 (loader): flash, block=6, bs=1024, auto=1
    16:05:32.233 (loader):  gauge old value = 3
    16:05:32.243 (loader): sending reboot
    16:05:32.258 (loader): begin wait_until_offline
    16:05:32.268 (ports 151): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
    16:05:32.268 (loader): offline, waited 0
    16:05:32.270 (ports 151): remove: loc=usb:0/140000/0/8/1
    16:05:32.270 (ports 151): usb_remove: usb:0/140000/0/8/1
    16:05:32.270 (ports 151): nothing new, skipping HID & Ports enum
    16:05:32.274 (loader): end operation, total time = 0.300 seconds
    16:05:32.288 (loader): set background IMG_REBOOT_OK
    16:05:32.304 (loader): redraw timer set, image 14 to show for 1200 ms
    16:05:32.330 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:05:32.331 (ports 151): nothing new, skipping HID & Ports enum
    16:05:32.405 (loader): HID/win32:  vid:046D pid:C534 ver:2901
    16:05:32.405 (loader): HID/win32:  vid:1B80 pid:B406 ver:0100
    16:05:32.405 (loader): HID/win32:  vid:046D pid:C534 ver:2901
    16:05:32.418 (loader): HID/win32:  vid:1B80 pid:B406 ver:0100
    16:05:32.418 (loader): HID/win32:  vid:0764 pid:0501 ver:0001
    16:05:32.418 (loader): HID/win32:  vid:1B80 pid:B406 ver:0100
    16:05:32.418 (loader): HID/win32:  vid:046D pid:C534 ver:2901
    16:05:32.418 (loader): HID/win32:  vid:1B80 pid:B406 ver:0100
    16:05:32.437 (loader): HID/win32:  vid:046D pid:C534 ver:2901
    16:05:32.501 (ports 151): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    16:05:32.503 (ports 151): found_usb_device, id=\\?\usb#vid_16c0&pid_0486#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:05:32.503 (ports 151): found_usb_device, loc=usb:0/140000/0/8/1    Port_#0001.Hub_#0009
    16:05:32.503 (ports 151): found_usb_device, hwid=USB\VID_16C0&PID_0486&REV_0279
    16:05:32.503 (ports 151): found_usb_device, devinst=00000025
    16:05:32.503 (ports 151): add: loc=usb:0/140000/0/8/1, class=USB, vid=16C0, pid=0486, ver=0279, serial=5794870, dev=\\?\usb#vid_16c0&pid_0486#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:05:32.503 (ports 151): hiddev_from_devinst_list: iface=1
    16:05:32.504 (ports 151): found_usb_device complete
    16:05:32.505 (ports 151): usb_add: usb:0/140000/0/8/1  [no_device] (Teensy 4-Beta2) RawHID
    16:05:32.615 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:05:32.616 (ports 151): update_usb_device, devinst list change, old had 2, new has 5
    16:05:32.616 (ports 151): hiddev_from_devinst_list: iface=1
    16:05:32.617 (ports 151):   00000029: path=\\?\hid#vid_16c0&pid_0486&mi_01#7&33b31594&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
    16:05:32.618 (ports 151): hid, found devinst=00000027
    16:05:32.618 (ports 151): hid, found devinst=00000029
    16:05:32.618 (ports 151): usb_add: usb:0/140000/0/8/1  hid#vid_16c0&pid_0486 (Teensy 4-Beta2) RawHID
    16:05:32.710 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:05:32.712 (ports 151): nothing new, skipping HID & Ports enum
    16:05:33.509 (loader): redraw, image 9
    16:06:41.108 (loader): remote connection 5336 opened
    16:06:41.108 (loader): remote cmd from 5336: "comment: Teensyduino 1.47-beta4 - WINDOWS (teensy_post_compile)"
    16:06:41.111 (post_compile 310): Begin, version=1.47-beta4, high-res time
    16:06:41.119 (post_compile 310): Sending command: comment: Teensyduino 1.47-beta4 - WINDOWS (teensy_post_compile)
    16:06:41.123 (loader): remote cmd from 5336: "status"
    16:06:41.123 (loader): remote cmd from 5336: "dir:T:\TEMP\arduino_build_887253\"
    16:06:41.123 (loader): remote cmd from 5336: "file:One2_SerTest_MIN.ino.hex"
    16:06:41.132 (post_compile 310): Status: 1, 1, 0, 187, 0, 0, C:\tmp\T4Beta\Beta3\, restore.hex
    16:06:41.132 (post_compile 310): Sending command: dir:T:\TEMP\arduino_build_887253\
    16:06:41.138 (post_compile 310): Sending command: file:One2_SerTest_MIN.ino.hex
    16:06:41.139 (loader): File "One2_SerTest_MIN.ino.hex". 36268 bytes, 2% used
    16:06:41.154 (loader): remote cmd from 5336: "status"
    16:06:41.168 (post_compile 310): Status: 1, 1, 0, 187, 0, 0, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:06:41.168 (post_compile 310): Disconnect
    16:06:41.186 (loader): remote connection 5336 closed
    16:06:49.293 (ports 151): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
    16:06:49.294 (ports 151): remove: loc=usb:0/140000/0/8/1
    16:06:49.294 (ports 151): usb_remove: usb:0/140000/0/8/1
    16:06:49.294 (ports 151): nothing new, skipping HID & Ports enum
    16:06:49.340 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:06:49.341 (ports 151): nothing new, skipping HID & Ports enum
    16:06:49.959 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:06:49.970 (ports 151): nothing new, skipping HID & Ports enum
    16:06:50.029 (ports 151): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    16:06:50.038 (ports 151): found_usb_device, id=\\?\usb#vid_16c0&pid_0478#0008d79f#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:06:50.038 (ports 151): found_usb_device, loc=usb:0/140000/0/8/1    Port_#0001.Hub_#0009
    16:06:50.038 (ports 151): found_usb_device, hwid=USB\VID_16C0&PID_0478&REV_0004
    16:06:50.038 (ports 151): found_usb_device, devinst=0000001f
    16:06:50.038 (ports 151): add: loc=usb:0/140000/0/8/1, class=HID, vid=16C0, pid=0478, ver=0004, serial=0008d79f, dev=\\?\usb#vid_16c0&pid_0478#0008d79f#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:06:50.039 (ports 151): hiddev_from_devinst_list: iface=0
    16:06:50.045 (ports 151): found_usb_device complete
    16:06:50.052 (ports 151): usb_add: usb:0/140000/0/8/1  [no_device] (Teensy 4-Beta2) Bootloader
    16:06:50.052 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:06:50.065 (ports 151): update_usb_device, devinst list change, old had 1, new has 2
    16:06:50.065 (ports 151): hiddev_from_devinst_list: iface=0
    16:06:50.081 (ports 151): usb_add: usb:0/140000/0/8/1  [no_device] (Teensy 4-Beta2) Bootloader
    16:06:50.153 (loader): Device came online, code_size = 2031616
    16:06:50.169 (loader): Board is: Teensy 4-Beta2 (IMXRT1062), version 0.04
    16:06:50.184 (loader): File "One2_SerTest_MIN.ino.hex". 36268 bytes, 2% used
    16:06:50.188 (loader): set background IMG_ONLINE
    16:06:50.204 (loader): File "One2_SerTest_MIN.ino.hex". 36268 bytes, 2% used
    16:06:50.204 (loader): elf appears to be for Teensy 4-Beta2 (IMXRT1062) (2031616 bytes)
    16:06:50.220 (loader): elf binary data matches hex file
    16:06:50.238 (loader): elf file is for Teensy 4-Beta2 (IMXRT1062)
    16:06:50.241 (loader): begin operation
    16:06:50.281 (loader): flash, block=0, bs=1024, auto=1
    16:06:50.301 (loader):  gauge old value = 0
    16:06:50.392 (loader): flash, block=1, bs=1024, auto=1
    16:06:50.395 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:06:50.397 (ports 151): hid, found devinst=00000020
    16:06:50.397 (ports 151): hid, path=\\?\hid#vid_16c0&pid_0478#6&286fbe38&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
    16:06:50.397 (ports 151): hid,  opened handle
    16:06:50.397 (ports 151):  devinst=00000020, location=usb:0/140000/0/8/1
    16:06:50.397 (ports 151):  vid=16C0, pid=0478, ver=0004, usepage=FF9C, use=0024
    16:06:50.397 (ports 151):  devpath=\\?\hid#vid_16c0&pid_0478#6&286fbe38&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
    16:06:50.398 (ports 151): usb_add: usb:0/140000/0/8/1  hid#vid_16c0&pid_0478 (Teensy 4-Beta2) Bootloader
    16:06:50.501 (loader):  gauge old value = 1
    16:06:50.541 (loader): flash, block=2, bs=1024, auto=1
    16:06:50.551 (loader):  gauge old value = 2
    16:06:50.551 (loader): flash, block=3, bs=1024, auto=1
    16:06:50.561 (loader):  gauge old value = 3
    16:06:50.571 (loader): flash, block=4, bs=1024, auto=1
    16:06:50.576 (loader):  gauge old value = 4
    16:06:50.581 (loader): flash, block=5, bs=1024, auto=1
    16:06:50.581 (loader):  gauge old value = 5
    16:06:50.591 (loader): flash, block=6, bs=1024, auto=1
    16:06:50.596 (loader):  gauge old value = 6
    16:06:50.601 (loader): flash, block=7, bs=1024, auto=1
    16:06:50.606 (loader):  gauge old value = 7
    16:06:50.611 (loader): flash, block=8, bs=1024, auto=1
    16:06:50.621 (loader):  gauge old value = 8
    16:06:50.626 (loader): flash, block=9, bs=1024, auto=1
    16:06:50.631 (loader):  gauge old value = 9
    16:06:50.636 (loader): flash, block=10, bs=1024, auto=1
    16:06:50.641 (loader):  gauge old value = 10
    16:06:50.646 (loader): flash, block=11, bs=1024, auto=1
    16:06:50.651 (loader):  gauge old value = 11
    16:06:50.651 (loader): flash, block=12, bs=1024, auto=1
    16:06:50.661 (loader):  gauge old value = 12
    16:06:50.661 (loader): flash, block=13, bs=1024, auto=1
    16:06:50.671 (loader):  gauge old value = 13
    16:06:50.681 (loader): flash, block=14, bs=1024, auto=1
    16:06:50.681 (loader):  gauge old value = 14
    16:06:50.691 (loader): flash, block=15, bs=1024, auto=1
    16:06:50.696 (loader):  gauge old value = 15
    16:06:50.701 (loader): flash, block=16, bs=1024, auto=1
    16:06:50.706 (loader):  gauge old value = 16
    16:06:50.711 (loader): flash, block=17, bs=1024, auto=1
    16:06:50.711 (loader):  gauge old value = 17
    16:06:50.721 (loader): flash, block=18, bs=1024, auto=1
    16:06:50.726 (loader):  gauge old value = 18
    16:06:50.732 (loader): flash, block=19, bs=1024, auto=1
    16:06:50.736 (loader):  gauge old value = 19
    16:06:50.741 (loader): flash, block=20, bs=1024, auto=1
    16:06:50.746 (loader):  gauge old value = 20
    16:06:50.751 (loader): flash, block=21, bs=1024, auto=1
    16:06:50.751 (loader):  gauge old value = 21
    16:06:50.761 (loader): flash, block=22, bs=1024, auto=1
    16:06:50.771 (loader):  gauge old value = 22
    16:06:50.776 (loader): flash, block=23, bs=1024, auto=1
    16:06:50.781 (loader):  gauge old value = 23
    16:06:50.786 (loader): flash, block=24, bs=1024, auto=1
    16:06:50.791 (loader):  gauge old value = 24
    16:06:50.796 (loader): flash, block=25, bs=1024, auto=1
    16:06:50.801 (loader):  gauge old value = 25
    16:06:50.806 (loader): flash, block=26, bs=1024, auto=1
    16:06:50.811 (loader):  gauge old value = 26
    16:06:50.811 (loader): flash, block=27, bs=1024, auto=1
    16:06:50.821 (loader):  gauge old value = 27
    16:06:50.821 (loader): flash, block=28, bs=1024, auto=1
    16:06:50.832 (loader):  gauge old value = 28
    16:06:50.836 (loader): flash, block=29, bs=1024, auto=1
    16:06:50.841 (loader):  gauge old value = 29
    16:06:50.846 (loader): flash, block=30, bs=1024, auto=1
    16:06:50.851 (loader):  gauge old value = 30
    16:06:50.851 (loader): flash, block=31, bs=1024, auto=1
    16:06:50.861 (loader):  gauge old value = 31
    16:06:50.866 (loader): flash, block=32, bs=1024, auto=1
    16:06:50.871 (loader):  gauge old value = 32
    16:06:50.871 (loader): flash, block=33, bs=1024, auto=1
    16:06:50.881 (loader):  gauge old value = 33
    16:06:50.881 (loader): flash, block=34, bs=1024, auto=1
    16:06:50.891 (loader):  gauge old value = 34
    16:06:50.891 (loader): flash, block=35, bs=1024, auto=1
    16:06:50.901 (loader):  gauge old value = 35
    16:06:50.911 (loader): sending reboot
    16:06:50.911 (loader): begin wait_until_offline
    16:06:50.926 (ports 151): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
    16:06:50.928 (ports 151): remove: loc=usb:0/140000/0/8/1
    16:06:50.928 (ports 151): usb_remove: usb:0/140000/0/8/1
    16:06:50.928 (ports 151): nothing new, skipping HID & Ports enum
    16:06:50.988 (loader): offline, waited 1
    16:06:50.988 (loader): end operation, total time = 0.730 seconds
    16:06:50.988 (loader): set background IMG_REBOOT_OK
    16:06:51.004 (loader): redraw timer set, image 14 to show for 1200 ms
    16:06:51.102 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:06:51.103 (ports 151): nothing new, skipping HID & Ports enum
    16:06:51.158 (ports 151): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    16:06:51.159 (ports 151): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:06:51.159 (ports 151): found_usb_device, loc=usb:0/140000/0/8/1    Port_#0001.Hub_#0009
    16:06:51.159 (ports 151): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0279
    16:06:51.159 (ports 151): found_usb_device, devinst=00000021
    16:06:51.159 (ports 151): add: loc=usb:0/140000/0/8/1, class=Ports, vid=16C0, pid=0483, ver=0279, serial=5794870, dev=\\?\usb#vid_16c0&pid_0483#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:06:51.159 (ports 151):   comport_from_devinst_list attempt
    16:06:51.159 (ports 151):   found Ports in classguid_list at index=0
    16:06:51.159 (ports 151):   port COM25 found from devnode
    16:06:51.159 (ports 151): found_usb_device complete
    16:06:51.161 (ports 151): usb_add: usb:0/140000/0/8/1  COM25 (Teensy 4-Beta2) Serial
    16:06:51.224 (loader): HID/win32:  vid:046D pid:C534 ver:2901
    16:06:51.234 (loader): HID/win32:  vid:1B80 pid:B406 ver:0100
    16:06:51.234 (loader): HID/win32:  vid:046D pid:C534 ver:2901
    16:06:51.245 (loader): HID/win32:  vid:1B80 pid:B406 ver:0100
    16:06:51.245 (loader): HID/win32:  vid:0764 pid:0501 ver:0001
    16:06:51.254 (loader): HID/win32:  vid:1B80 pid:B406 ver:0100
    16:06:51.265 (loader): HID/win32:  vid:046D pid:C534 ver:2901
    16:06:51.265 (loader): HID/win32:  vid:1B80 pid:B406 ver:0100
    16:06:51.275 (loader): HID/win32:  vid:046D pid:C534 ver:2901
    16:06:51.345 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:06:51.347 (ports 151): nothing new, skipping HID & Ports enum
    16:06:51.347 (ports 151): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    16:06:51.348 (ports 151): nothing new, skipping HID & Ports enum
    16:06:51.400 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:06:51.401 (ports 151): nothing new, skipping HID & Ports enum
    16:06:52.214 (loader): redraw, image 9
    16:07:59.173 (loader): remote connection 6136 opened
    16:07:59.173 (loader): remote cmd from 6136: "comment: Teensyduino 1.47-beta4 - WINDOWS (teensy_post_compile)"
    16:07:59.173 (post_compile 311): Begin, version=1.47-beta4, high-res time
    16:07:59.180 (post_compile 311): Sending command: comment: Teensyduino 1.47-beta4 - WINDOWS (teensy_post_compile)
    16:07:59.187 (loader): remote cmd from 6136: "status"
    16:07:59.187 (loader): file changed
    16:07:59.203 (loader): File "One2_SerTest_MIN.ino.hex". 36268 bytes, 2% used
    16:07:59.203 (loader): remote cmd from 6136: "dir:T:\TEMP\arduino_build_887253\"
    16:07:59.212 (post_compile 311): Status: 1, 1, 0, 188, 0, 0, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:07:59.212 (post_compile 311): Sending command: dir:T:\TEMP\arduino_build_887253\
    16:07:59.219 (loader): remote cmd from 6136: "file:One2_SerTest_MIN.ino.hex"
    16:07:59.219 (loader): File "One2_SerTest_MIN.ino.hex". 36268 bytes, 2% used
    16:07:59.221 (post_compile 311): Sending command: file:One2_SerTest_MIN.ino.hex
    16:07:59.234 (loader): remote cmd from 6136: "status"
    16:07:59.246 (post_compile 311): Status: 1, 1, 0, 188, 0, 0, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:07:59.246 (post_compile 311): Disconnect
    16:07:59.274 (loader): remote connection 6136 closed
    16:07:59.516 (loader): remote connection 6136 opened
    16:07:59.528 (post_compile 312): Begin, version=1.47-beta4, high-res time
    16:07:59.532 (loader): remote cmd from 6136: "comment: Teensyduino 1.47-beta4 - WINDOWS (teensy_post_compile)"
    16:07:59.532 (loader): remote cmd from 6136: "status"
    16:07:59.532 (loader): remote cmd from 6136: "dir:T:\TEMP\arduino_build_887253\"
    16:07:59.535 (post_compile 312): Sending command: comment: Teensyduino 1.47-beta4 - WINDOWS (teensy_post_compile)
    16:07:59.547 (post_compile 312): Status: 1, 1, 0, 188, 0, 0, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:07:59.547 (post_compile 312): Sending command: dir:T:\TEMP\arduino_build_887253\
    16:07:59.547 (loader): remote cmd from 6136: "file:One2_SerTest_MIN.ino.hex"
    16:07:59.561 (post_compile 312): Sending command: file:One2_SerTest_MIN.ino.hex
    16:07:59.563 (loader): File "One2_SerTest_MIN.ino.hex". 36268 bytes, 2% used
    16:07:59.596 (loader): remote cmd from 6136: "status"
    16:07:59.604 (post_compile 312): Status: 1, 1, 0, 188, 0, 0, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:07:59.604 (post_compile 312): Disconnect
    16:07:59.621 (loader): remote connection 6136 closed
    16:07:59.621 (loader): remote connection 6136 opened
    16:07:59.621 (post_compile 313): Running teensy_reboot: "T:\Ard186t4b2\hardware\teensy\..\tools\teensy_reboot.exe" teensy_reboot.exe "-board=TEENSY40" "-port=usb:0/140000/0/8/1" "-portlabel=hid#vid_16c0&pid_0478 Bootloader" "-portprotocol=Teensy"
    16:07:59.764 (loader): remote connection 5336 opened
    16:07:59.767 (reboot 314): Begin, version=1.47-beta4, high-res time
    16:07:59.767 (reboot 314): location = usb:0/140000/0/8/1
    16:07:59.767 (reboot 314): portprotocol = Teensy
    16:07:59.767 (reboot 314): portlabel = hid#vid_16c0&pid_0478 Bootloader
    16:07:59.767 (reboot 314): Only location usb:0/140000/0/8/1 will be tried
    16:07:59.767 (reboot 314): LoadLibrary cfgmgr32 ok
    16:07:59.767 (reboot 314): LoadLibrary ntdll ok
    16:07:59.771 (reboot 314): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#5889290#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:07:59.771 (reboot 314): found_usb_device, loc=usb:0/140000/0/8/6    Port_#0006.Hub_#0009
    16:07:59.771 (reboot 314): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0279
    16:07:59.771 (reboot 314): found_usb_device, devinst=00000001
    16:07:59.771 (reboot 314): add: loc=usb:0/140000/0/8/6, class=Ports, vid=16C0, pid=0483, ver=0279, serial=5889290, dev=\\?\usb#vid_16c0&pid_0483#5889290#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:07:59.771 (reboot 314):   comport_from_devinst_list attempt
    16:07:59.771 (reboot 314):   found Ports in classguid_list at index=0
    16:07:59.771 (reboot 314):   port COM30 found from devnode
    16:07:59.771 (reboot 314): found_usb_device complete
    16:07:59.771 (reboot 314): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#5847860#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:07:59.771 (reboot 314): found_usb_device, loc=usb:0/140000/0/8/7    Port_#0007.Hub_#0009
    16:07:59.771 (reboot 314): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0279
    16:07:59.771 (reboot 314): found_usb_device, devinst=00000003
    16:07:59.771 (reboot 314): add: loc=usb:0/140000/0/8/7, class=Ports, vid=16C0, pid=0483, ver=0279, serial=5847860, dev=\\?\usb#vid_16c0&pid_0483#5847860#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:07:59.771 (reboot 314):   comport_from_devinst_list attempt
    16:07:59.771 (reboot 314):   found Ports in classguid_list at index=0
    16:07:59.771 (reboot 314):   port COM29 found from devnode
    16:07:59.771 (reboot 314): found_usb_device complete
    16:07:59.771 (reboot 314): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:07:59.771 (reboot 314): found_usb_device, loc=usb:0/140000/0/8/1    Port_#0001.Hub_#0009
    16:07:59.771 (reboot 314): found_usb_device, devinst=00000004
    16:07:59.771 (reboot 314): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0279
    16:07:59.771 (reboot 314): add: loc=usb:0/140000/0/8/1, class=Ports, vid=16C0, pid=0483, ver=0279, serial=5794870, dev=\\?\usb#vid_16c0&pid_0483#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:07:59.771 (reboot 314):   comport_from_devinst_list attempt
    16:07:59.771 (reboot 314):   found Ports in classguid_list at index=0
    16:07:59.771 (reboot 314):   port COM25 found from devnode
    16:07:59.771 (reboot 314): found_usb_device complete
    16:07:59.780 (loader): remote cmd from 5336: "show:arduino_attempt_reboot"
    16:07:59.780 (loader): got request to show arduino rebooting message
    16:07:59.780 (loader): remote cmd from 5336: "comment: Teensyduino 1.47-beta4 - WINDOWS (teensy_reboot)"
    16:07:59.781 (reboot 314): found Teensy Loader, version 1.47
    16:07:59.781 (reboot 314): Sending command: show:arduino_attempt_reboot
    16:07:59.794 (reboot 314): Sending command: comment: Teensyduino 1.47-beta4 - WINDOWS (teensy_reboot)
    16:07:59.795 (loader): remote cmd from 5336: "status"
    16:07:59.795 (loader): remote cmd from 5336: "status"
    16:07:59.807 (reboot 314): Status: 1, 1, 0, 188, 0, 0, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:07:59.807 (reboot 314): do_reset (serial) COM25
    16:07:59.818 (reboot 314): Status: 1, 1, 0, 188, 0, 0, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:07:59.818 (reboot 314): status read, retry 0
    16:07:59.827 (ports 151): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
    16:07:59.828 (ports 151): remove: loc=usb:0/140000/0/8/1
    16:07:59.828 (ports 151): usb_remove: usb:0/140000/0/8/1
    16:07:59.828 (ports 151): nothing new, skipping HID & Ports enum
    16:07:59.876 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:07:59.877 (ports 151): nothing new, skipping HID & Ports enum
    16:07:59.877 (ports 151): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
    16:07:59.878 (ports 151): nothing new, skipping HID & Ports enum
    16:07:59.947 (loader): remote cmd from 5336: "status"
    16:07:59.956 (reboot 314): Status: 1, 1, 0, 188, 0, 0, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:07:59.956 (reboot 314): status read, retry 1
    16:08:00.025 (ports 151): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    16:08:00.027 (ports 151): found_usb_device, id=\\?\usb#vid_16c0&pid_0478#0008d79f#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:00.027 (ports 151): found_usb_device, loc=usb:0/140000/0/8/1    Port_#0001.Hub_#0009
    16:08:00.027 (ports 151): found_usb_device, hwid=USB\VID_16C0&PID_0478&REV_0004
    16:08:00.027 (ports 151): found_usb_device, devinst=0000001f
    16:08:00.027 (ports 151): add: loc=usb:0/140000/0/8/1, class=HID, vid=16C0, pid=0478, ver=0004, serial=0008d79f, dev=\\?\usb#vid_16c0&pid_0478#0008d79f#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:00.027 (ports 151): hiddev_from_devinst_list: iface=0
    16:08:00.028 (ports 151): found_usb_device complete
    16:08:00.029 (ports 151): hid, found devinst=00000020
    16:08:00.029 (ports 151): hid, path=\\?\hid#vid_16c0&pid_0478#6&286fbe38&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
    16:08:00.029 (ports 151): hid,  opened handle
    16:08:00.029 (ports 151):  devinst=00000020, location=usb:0/140000/0/8/1
    16:08:00.029 (ports 151):  vid=16C0, pid=0478, ver=0004, usepage=FF9C, use=0024
    16:08:00.029 (ports 151):  devpath=\\?\hid#vid_16c0&pid_0478#6&286fbe38&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
    16:08:00.029 (ports 151): usb_add: usb:0/140000/0/8/1  hid#vid_16c0&pid_0478 (Teensy 4-Beta2) Bootloader
    16:08:00.179 (loader): remote cmd from 5336: "status"
    16:08:00.194 (loader): Device came online, code_size = 2031616
    16:08:00.203 (loader): Board is: Teensy 4-Beta2 (IMXRT1062), version 0.04
    16:08:00.215 (loader): File "One2_SerTest_MIN.ino.hex". 36268 bytes, 2% used
    16:08:00.219 (loader): set background IMG_ONLINE
    16:08:00.229 (loader): File "One2_SerTest_MIN.ino.hex". 36268 bytes, 2% used
    16:08:00.244 (loader): elf appears to be for Teensy 4-Beta2 (IMXRT1062) (2031616 bytes)
    16:08:00.254 (loader): elf binary data matches hex file
    16:08:00.259 (loader): elf file is for Teensy 4-Beta2 (IMXRT1062)
    16:08:00.264 (loader): begin operation
    16:08:00.282 (reboot 314): Status: 1, 1, 1, 189, 0, 1, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:08:00.290 (loader): flash, block=0, bs=1024, auto=1
    16:08:00.294 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:00.295 (ports 151): nothing new, skipping HID & Ports enum
    16:08:00.299 (loader):  gauge old value = 0
    16:08:00.350 (loader): remote cmd from 5336: "status"
    16:08:00.359 (loader): flash, block=1, bs=1024, auto=1
    16:08:00.367 (reboot 314): Status: 1, 1, 1, 189, 0, 1, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:08:00.510 (loader):  gauge old value = 1
    16:08:00.515 (loader): remote cmd from 5336: "status"
    16:08:00.534 (reboot 314): Status: 1, 1, 1, 189, 0, 1, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:08:00.537 (loader): flash, block=2, bs=1024, auto=1
    16:08:00.560 (loader):  gauge old value = 2
    16:08:00.570 (loader): flash, block=3, bs=1024, auto=1
    16:08:00.575 (loader):  gauge old value = 3
    16:08:00.580 (loader): flash, block=4, bs=1024, auto=1
    16:08:00.586 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:00.590 (loader):  gauge old value = 4
    16:08:00.590 (loader): remote cmd from 5336: "status"
    16:08:00.597 (ports 151): nothing new, skipping HID & Ports enum
    16:08:00.598 (reboot 314): Status: 1, 1, 1, 189, 0, 1, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:08:00.619 (loader): flash, block=5, bs=1024, auto=1
    16:08:00.630 (loader):  gauge old value = 5
    16:08:00.640 (loader): flash, block=6, bs=1024, auto=1
    16:08:00.645 (loader):  gauge old value = 6
    16:08:00.654 (loader): flash, block=7, bs=1024, auto=1
    16:08:00.659 (loader):  gauge old value = 7
    16:08:00.669 (loader): flash, block=8, bs=1024, auto=1
    16:08:00.687 (loader):  gauge old value = 8
    16:08:00.689 (loader): flash, block=9, bs=1024, auto=1
    16:08:00.689 (loader):  gauge old value = 9
    16:08:00.700 (loader): flash, block=10, bs=1024, auto=1
    16:08:00.709 (loader):  gauge old value = 10
    16:08:00.709 (loader): remote cmd from 5336: "status"
    16:08:00.719 (loader): flash, block=11, bs=1024, auto=1
    16:08:00.719 (loader):  gauge old value = 11
    16:08:00.724 (reboot 314): Status: 1, 1, 1, 189, 0, 1, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:08:00.738 (loader): flash, block=12, bs=1024, auto=1
    16:08:00.739 (loader):  gauge old value = 12
    16:08:00.739 (loader): flash, block=13, bs=1024, auto=1
    16:08:00.750 (loader):  gauge old value = 13
    16:08:00.759 (loader): flash, block=14, bs=1024, auto=1
    16:08:00.759 (loader):  gauge old value = 14
    16:08:00.780 (loader): flash, block=15, bs=1024, auto=1
    16:08:00.829 (loader):  gauge old value = 15
    16:08:00.849 (loader): remote cmd from 5336: "status"
    16:08:00.859 (loader): flash, block=16, bs=1024, auto=1
    16:08:00.864 (reboot 314): Status: 1, 1, 1, 189, 0, 1, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:08:00.872 (loader):  gauge old value = 16
    16:08:00.880 (loader): flash, block=17, bs=1024, auto=1
    16:08:00.880 (loader):  gauge old value = 17
    16:08:00.890 (loader): flash, block=18, bs=1024, auto=1
    16:08:00.895 (loader):  gauge old value = 18
    16:08:00.899 (loader): flash, block=19, bs=1024, auto=1
    16:08:00.908 (loader):  gauge old value = 19
    16:08:00.909 (loader): flash, block=20, bs=1024, auto=1
    16:08:00.919 (loader):  gauge old value = 20
    16:08:00.921 (loader): flash, block=21, bs=1024, auto=1
    16:08:00.929 (loader):  gauge old value = 21
    16:08:00.929 (reboot 314): status read, retry 2
    16:08:00.929 (reboot 314): Success
    16:08:00.929 (reboot 314): Disconnect
    16:08:00.934 (loader): flash, block=22, bs=1024, auto=1
    16:08:00.940 (loader):  gauge old value = 22
    16:08:00.950 (loader): remote connection 5336 closed
    16:08:00.950 (loader): remote connection 6136 closed
    16:08:00.989 (loader): flash, block=23, bs=1024, auto=1
    16:08:01.004 (loader):  gauge old value = 23
    16:08:01.019 (loader): flash, block=24, bs=1024, auto=1
    16:08:01.029 (loader):  gauge old value = 24
    16:08:01.054 (loader): flash, block=25, bs=1024, auto=1
    16:08:01.076 (loader):  gauge old value = 25
    16:08:01.089 (loader): flash, block=26, bs=1024, auto=1
    16:08:01.094 (loader):  gauge old value = 26
    16:08:01.099 (loader): flash, block=27, bs=1024, auto=1
    16:08:01.109 (loader):  gauge old value = 27
    16:08:01.114 (loader): flash, block=28, bs=1024, auto=1
    16:08:01.119 (loader):  gauge old value = 28
    16:08:01.142 (loader): flash, block=29, bs=1024, auto=1
    16:08:01.154 (loader):  gauge old value = 29
    16:08:01.184 (loader): flash, block=30, bs=1024, auto=1
    16:08:01.199 (loader):  gauge old value = 30
    16:08:01.209 (loader): flash, block=31, bs=1024, auto=1
    16:08:01.229 (loader):  gauge old value = 31
    16:08:01.239 (loader): flash, block=32, bs=1024, auto=1
    16:08:01.249 (loader):  gauge old value = 32
    16:08:01.259 (loader): flash, block=33, bs=1024, auto=1
    16:08:01.264 (loader):  gauge old value = 33
    16:08:01.269 (loader): flash, block=34, bs=1024, auto=1
    16:08:01.274 (loader):  gauge old value = 34
    16:08:01.292 (loader): flash, block=35, bs=1024, auto=1
    16:08:01.294 (loader):  gauge old value = 35
    16:08:01.307 (loader): sending reboot
    16:08:01.309 (loader): begin wait_until_offline
    16:08:01.319 (ports 151): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
    16:08:01.320 (ports 151): remove: loc=usb:0/140000/0/8/1
    16:08:01.320 (ports 151): usb_remove: usb:0/140000/0/8/1
    16:08:01.320 (ports 151): nothing new, skipping HID & Ports enum
    16:08:01.322 (loader): offline, waited 0
    16:08:01.323 (loader): end operation, total time = 1.053 seconds
    16:08:01.342 (loader): set background IMG_REBOOT_OK
    16:08:01.342 (loader): redraw timer set, image 14 to show for 1200 ms
    16:08:01.390 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:01.391 (ports 151): nothing new, skipping HID & Ports enum
    16:08:01.470 (loader): HID/win32:  vid:046D pid:C534 ver:2901
    16:08:01.478 (loader): HID/win32:  vid:1B80 pid:B406 ver:0100
    16:08:01.478 (loader): HID/win32:  vid:046D pid:C534 ver:2901
    16:08:01.478 (loader): HID/win32:  vid:1B80 pid:B406 ver:0100
    16:08:01.493 (loader): HID/win32:  vid:0764 pid:0501 ver:0001
    16:08:01.493 (loader): HID/win32:  vid:1B80 pid:B406 ver:0100
    16:08:01.506 (loader): HID/win32:  vid:046D pid:C534 ver:2901
    16:08:01.506 (loader): HID/win32:  vid:1B80 pid:B406 ver:0100
    16:08:01.521 (loader): HID/win32:  vid:046D pid:C534 ver:2901
    16:08:01.567 (ports 151): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    16:08:01.568 (ports 151): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:01.568 (ports 151): found_usb_device, loc=usb:0/140000/0/8/1    Port_#0001.Hub_#0009
    16:08:01.568 (ports 151): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0279
    16:08:01.568 (ports 151): found_usb_device, devinst=00000021
    16:08:01.568 (ports 151): add: loc=usb:0/140000/0/8/1, class=Ports, vid=16C0, pid=0483, ver=0279, serial=5794870, dev=\\?\usb#vid_16c0&pid_0483#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:01.568 (ports 151):   comport_from_devinst_list attempt
    16:08:01.568 (ports 151):   found Ports in classguid_list at index=0
    16:08:01.568 (ports 151):   port COM25 found from devnode
    16:08:01.568 (ports 151): found_usb_device complete
    16:08:01.570 (ports 151): usb_add: usb:0/140000/0/8/1  COM25 (Teensy 4-Beta2) Serial
    16:08:01.647 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:01.648 (ports 151): nothing new, skipping HID & Ports enum
    16:08:01.648 (ports 151): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    16:08:01.649 (ports 151): nothing new, skipping HID & Ports enum
    16:08:01.741 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:01.742 (ports 151): nothing new, skipping HID & Ports enum
    16:08:02.538 (loader): redraw, image 9
    16:08:06.975 (loader): Open File event
    16:08:22.927 (loader): File "restore.hex". 2652 bytes, 0% used
    16:08:28.412 (ports 151): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
    16:08:28.413 (ports 151): remove: loc=usb:0/140000/0/8/1
    16:08:28.413 (ports 151): usb_remove: usb:0/140000/0/8/1
    16:08:28.413 (ports 151): nothing new, skipping HID & Ports enum
    16:08:28.459 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:28.460 (ports 151): nothing new, skipping HID & Ports enum
    16:08:28.470 (ports 151): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
    16:08:28.471 (ports 151): nothing new, skipping HID & Ports enum
    16:08:28.694 (ports 151): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    16:08:28.695 (ports 151): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:28.695 (ports 151): found_usb_device, loc=usb:0/140000/0/8/1    Port_#0001.Hub_#0009
    16:08:28.695 (ports 151): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0279
    16:08:28.695 (ports 151): found_usb_device, devinst=00000021
    16:08:28.695 (ports 151): add: loc=usb:0/140000/0/8/1, class=Ports, vid=16C0, pid=0483, ver=0279, serial=5794870, dev=\\?\usb#vid_16c0&pid_0483#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:28.695 (ports 151):   comport_from_devinst_list attempt
    16:08:28.695 (ports 151):   found Ports in classguid_list at index=0
    16:08:28.695 (ports 151):   port COM25 found from devnode
    16:08:28.695 (ports 151): found_usb_device complete
    16:08:28.696 (ports 151): usb_add: usb:0/140000/0/8/1  COM25 (Teensy 4-Beta2) Serial
    16:08:28.858 (ports 151): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    16:08:28.858 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:28.860 (ports 151): nothing new, skipping HID & Ports enum
    16:08:29.056 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:29.057 (ports 151): nothing new, skipping HID & Ports enum
    16:08:30.291 (ports 151): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
    16:08:30.292 (ports 151): remove: loc=usb:0/140000/0/8/1
    16:08:30.292 (ports 151): usb_remove: usb:0/140000/0/8/1
    16:08:30.292 (ports 151): nothing new, skipping HID & Ports enum
    16:08:30.334 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:30.335 (ports 151): nothing new, skipping HID & Ports enum
    16:08:30.335 (ports 151): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
    16:08:30.336 (ports 151): nothing new, skipping HID & Ports enum
    16:08:30.449 (ports 151): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    16:08:30.451 (ports 151): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:30.451 (ports 151): found_usb_device, loc=usb:0/140000/0/8/1    Port_#0001.Hub_#0009
    16:08:30.451 (ports 151): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0279
    16:08:30.451 (ports 151): found_usb_device, devinst=00000021
    16:08:30.451 (ports 151): add: loc=usb:0/140000/0/8/1, class=Ports, vid=16C0, pid=0483, ver=0279, serial=5794870, dev=\\?\usb#vid_16c0&pid_0483#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:30.451 (ports 151):   comport_from_devinst_list attempt
    16:08:30.451 (ports 151):   found Ports in classguid_list at index=0
    16:08:30.451 (ports 151):   port COM25 found from devnode
    16:08:30.451 (ports 151): found_usb_device complete
    16:08:30.452 (ports 151): usb_add: usb:0/140000/0/8/1  COM25 (Teensy 4-Beta2) Serial
    16:08:30.619 (ports 151): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    16:08:30.620 (ports 151): nothing new, skipping HID & Ports enum
    16:08:30.632 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:30.633 (ports 151): nothing new, skipping HID & Ports enum
    16:08:31.940 (ports 151): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
    16:08:31.941 (ports 151): remove: loc=usb:0/140000/0/8/1
    16:08:31.941 (ports 151): usb_remove: usb:0/140000/0/8/1
    16:08:31.941 (ports 151): nothing new, skipping HID & Ports enum
    16:08:31.988 (ports 151): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
    16:08:31.989 (ports 151): nothing new, skipping HID & Ports enum
    16:08:31.990 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:31.990 (ports 151): nothing new, skipping HID & Ports enum
    16:08:32.098 (ports 151): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    16:08:32.100 (ports 151): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:32.100 (ports 151): found_usb_device, loc=usb:0/140000/0/8/1    Port_#0001.Hub_#0009
    16:08:32.100 (ports 151): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0279
    16:08:32.100 (ports 151): found_usb_device, devinst=00000021
    16:08:32.100 (ports 151): add: loc=usb:0/140000/0/8/1, class=Ports, vid=16C0, pid=0483, ver=0279, serial=5794870, dev=\\?\usb#vid_16c0&pid_0483#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:32.100 (ports 151):   comport_from_devinst_list attempt
    16:08:32.100 (ports 151):   found Ports in classguid_list at index=0
    16:08:32.100 (ports 151):   port COM25 found from devnode
    16:08:32.100 (ports 151): found_usb_device complete
    16:08:32.103 (ports 151): usb_add: usb:0/140000/0/8/1  COM25 (Teensy 4-Beta2) Serial
    16:08:32.281 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:32.282 (ports 151): nothing new, skipping HID & Ports enum
    16:08:32.282 (ports 151): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    16:08:32.283 (ports 151): nothing new, skipping HID & Ports enum
    16:08:33.952 (ports 151): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
    16:08:33.954 (ports 151): remove: loc=usb:0/140000/0/8/1
    16:08:33.954 (ports 151): usb_remove: usb:0/140000/0/8/1
    16:08:33.954 (ports 151): nothing new, skipping HID & Ports enum
    16:08:33.997 (ports 151): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
    16:08:33.999 (ports 151): nothing new, skipping HID & Ports enum
    16:08:33.999 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:34.000 (ports 151): nothing new, skipping HID & Ports enum
    16:08:34.326 (ports 151): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    16:08:34.328 (ports 151): found_usb_device, id=\\?\usb#vid_16c0&pid_0478#0008d79f#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:34.328 (ports 151): found_usb_device, loc=usb:0/140000/0/8/1    Port_#0001.Hub_#0009
    16:08:34.328 (ports 151): found_usb_device, hwid=USB\VID_16C0&PID_0478&REV_0004
    16:08:34.328 (ports 151): found_usb_device, devinst=0000001f
    16:08:34.328 (ports 151): add: loc=usb:0/140000/0/8/1, class=HID, vid=16C0, pid=0478, ver=0004, serial=0008d79f, dev=\\?\usb#vid_16c0&pid_0478#0008d79f#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:34.328 (ports 151): hiddev_from_devinst_list: iface=0
    16:08:34.330 (ports 151): found_usb_device complete
    16:08:34.330 (ports 151): hid, found devinst=00000020
    16:08:34.330 (ports 151): hid, path=\\?\hid#vid_16c0&pid_0478#6&286fbe38&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
    16:08:34.330 (ports 151): hid,  opened handle
    16:08:34.330 (ports 151):  devinst=00000020, location=usb:0/140000/0/8/1
    16:08:34.330 (ports 151):  vid=16C0, pid=0478, ver=0004, usepage=FF9C, use=0024
    16:08:34.330 (ports 151):  devpath=\\?\hid#vid_16c0&pid_0478#6&286fbe38&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
    16:08:34.331 (ports 151): usb_add: usb:0/140000/0/8/1  hid#vid_16c0&pid_0478 (Teensy 4-Beta2) Bootloader
    16:08:34.424 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:34.425 (ports 151): nothing new, skipping HID & Ports enum
    16:08:34.498 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:34.499 (ports 151): nothing new, skipping HID & Ports enum
    16:08:34.522 (loader): Device came online, code_size = 2031616
    16:08:34.522 (loader): Board is: Teensy 4-Beta2 (IMXRT1062), version 0.04
    16:08:34.537 (loader): File "restore.hex". 2652 bytes, 0% used
    16:08:34.542 (loader): set background IMG_ONLINE
    16:08:34.552 (loader): File "restore.hex". 2652 bytes, 0% used
    16:08:34.562 (loader): can't open file 'C:\tmp\T4Beta\Beta3\restore.elf' (error 2: the system cannot find the file specified.)
    16:08:34.567 (loader): elf file is for Unknown Board
    16:08:34.572 (loader): begin operation
    16:08:34.597 (loader): flash, block=0, bs=1024, auto=1
    16:08:34.602 (loader):  gauge old value = 0
    16:08:34.612 (loader): flash, block=4, bs=1024, auto=1
    16:08:34.812 (loader):  gauge old value = 1
    16:08:34.812 (loader): flash, block=5, bs=1024, auto=1
    16:08:34.822 (loader):  gauge old value = 2
    16:08:34.822 (loader): flash, block=6, bs=1024, auto=1
    16:08:34.842 (loader):  gauge old value = 3
    16:08:34.867 (loader): sending reboot
    16:08:34.877 (loader): begin wait_until_offline
    16:08:34.883 (loader): offline, waited 0
    16:08:34.892 (loader): end operation, total time = 0.315 seconds
    16:08:34.892 (loader): set background IMG_REBOOT_OK
    16:08:34.902 (loader): redraw timer set, image 14 to show for 1200 ms
    16:08:34.920 (ports 151): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
    16:08:34.931 (ports 151): remove: loc=usb:0/140000/0/8/1
    16:08:34.931 (ports 151): usb_remove: usb:0/140000/0/8/1
    16:08:34.931 (ports 151): nothing new, skipping HID & Ports enum
    16:08:34.972 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:34.981 (ports 151): nothing new, skipping HID & Ports enum
    16:08:35.030 (loader): HID/win32:  vid:046D pid:C534 ver:2901
    16:08:35.045 (loader): HID/win32:  vid:1B80 pid:B406 ver:0100
    16:08:35.045 (loader): HID/win32:  vid:046D pid:C534 ver:2901
    16:08:35.045 (loader): HID/win32:  vid:1B80 pid:B406 ver:0100
    16:08:35.061 (loader): HID/win32:  vid:0764 pid:0501 ver:0001
    16:08:35.068 (loader): HID/win32:  vid:1B80 pid:B406 ver:0100
    16:08:35.068 (loader): HID/win32:  vid:046D pid:C534 ver:2901
    16:08:35.084 (loader): HID/win32:  vid:1B80 pid:B406 ver:0100
    16:08:35.084 (loader): HID/win32:  vid:046D pid:C534 ver:2901
    16:08:35.178 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:35.185 (ports 151): nothing new, skipping HID & Ports enum
    16:08:35.242 (ports 151): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    16:08:35.250 (ports 151): found_usb_device, id=\\?\usb#vid_16c0&pid_0486#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:35.250 (ports 151): found_usb_device, loc=usb:0/140000/0/8/1    Port_#0001.Hub_#0009
    16:08:35.250 (ports 151): found_usb_device, devinst=00000025
    16:08:35.250 (ports 151): found_usb_device, hwid=USB\VID_16C0&PID_0486&REV_0279
    16:08:35.250 (ports 151): add: loc=usb:0/140000/0/8/1, class=USB, vid=16C0, pid=0486, ver=0279, serial=5794870, dev=\\?\usb#vid_16c0&pid_0486#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:35.251 (ports 151): hiddev_from_devinst_list: iface=1
    16:08:35.256 (ports 151): found_usb_device complete
    16:08:35.261 (ports 151): usb_add: usb:0/140000/0/8/1  [no_device] (Teensy 4-Beta2) RawHID
    16:08:35.332 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:35.347 (ports 151): update_usb_device, devinst list change, old had 1, new has 3
    16:08:35.347 (ports 151): hiddev_from_devinst_list: iface=1
    16:08:35.357 (ports 151): usb_add: usb:0/140000/0/8/1  [no_device] (Teensy 4-Beta2) RawHID
    16:08:35.437 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:35.438 (ports 151): update_usb_device, devinst list change, old had 3, new has 5
    16:08:35.438 (ports 151): hiddev_from_devinst_list: iface=1
    16:08:35.439 (ports 151):   00000029: path=\\?\hid#vid_16c0&pid_0486&mi_01#7&33b31594&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
    16:08:35.439 (ports 151): hid, found devinst=00000027
    16:08:35.439 (ports 151): hid, found devinst=00000029
    16:08:35.440 (ports 151): usb_add: usb:0/140000/0/8/1  hid#vid_16c0&pid_0486 (Teensy 4-Beta2) RawHID
    16:08:36.107 (loader): redraw, image 9
    16:08:43.653 (serialmon 315): Begin, version=1.47-beta4, high-res time
    16:08:43.653 (serialmon 315): listening for location: usb:0/140000/0/8/1
    16:08:43.653 (serialmon 315): LoadLibrary cfgmgr32 ok
    16:08:43.653 (serialmon 315): LoadLibrary ntdll ok
    16:08:43.658 (serialmon 315): callback 0024
    16:08:43.658 (serialmon 315): callback 0081
    16:08:43.661 (serialmon 315): callback 0083
    16:08:43.664 (serialmon 315): hWnd = 27793238
    16:08:43.664 (serialmon 315): loop stdin, ready=2097151
    16:08:43.665 (serialmon 315): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#5889290#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:43.665 (serialmon 315): found_usb_device, loc=usb:0/140000/0/8/6    Port_#0006.Hub_#0009
    16:08:43.665 (serialmon 315): found_usb_device, devinst=00000001
    16:08:43.665 (serialmon 315): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0279
    16:08:43.665 (serialmon 315): add: loc=usb:0/140000/0/8/6, class=Ports, vid=16C0, pid=0483, ver=0279, serial=5889290, dev=\\?\usb#vid_16c0&pid_0483#5889290#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:43.665 (serialmon 315):   comport_from_devinst_list attempt
    16:08:43.665 (serialmon 315):   found Ports in classguid_list at index=0
    16:08:43.665 (serialmon 315):   port COM30 found from devnode
    16:08:43.665 (serialmon 315): found_usb_device complete
    16:08:43.665 (serialmon 315): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#5847860#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:43.665 (serialmon 315): found_usb_device, loc=usb:0/140000/0/8/7    Port_#0007.Hub_#0009
    16:08:43.665 (serialmon 315): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0279
    16:08:43.665 (serialmon 315): found_usb_device, devinst=00000003
    16:08:43.665 (serialmon 315): add: loc=usb:0/140000/0/8/7, class=Ports, vid=16C0, pid=0483, ver=0279, serial=5847860, dev=\\?\usb#vid_16c0&pid_0483#5847860#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:43.665 (serialmon 315):   comport_from_devinst_list attempt
    16:08:43.665 (serialmon 315):   found Ports in classguid_list at index=0
    16:08:43.665 (serialmon 315):   port COM29 found from devnode
    16:08:43.665 (serialmon 315): found_usb_device complete
    16:08:43.666 (serialmon 315): found_usb_device, id=\\?\usb#vid_16c0&pid_0486#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:43.666 (serialmon 315): found_usb_device, loc=usb:0/140000/0/8/1    Port_#0001.Hub_#0009
    16:08:43.666 (serialmon 315): found_usb_device, hwid=USB\VID_16C0&PID_0486&REV_0279
    16:08:43.666 (serialmon 315): found_usb_device, devinst=00000008
    16:08:43.666 (serialmon 315): add: loc=usb:0/140000/0/8/1, class=USB, vid=16C0, pid=0486, ver=0279, serial=5794870, dev=\\?\usb#vid_16c0&pid_0486#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:43.666 (serialmon 315): hiddev_from_devinst_list: iface=1
    16:08:43.666 (serialmon 315):   00000010: path=\\?\hid#vid_16c0&pid_0486&mi_01#7&33b31594&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
    16:08:43.667 (serialmon 315): found_usb_device complete
    16:08:43.667 (serialmon 315): hid, found devinst=0000000E
    16:08:43.667 (serialmon 315): hid, found devinst=00000010
    16:08:43.668 (serialmon 315): usb_add: usb:0/140000/0/8/1
    16:08:43.668 (serialmon 315): Opened \\?\hid#vid_16c0&pid_0486&mi_01#7&33b31594&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} RawHID
    16:08:43.669 (loader): remote connection 6632 opened
    16:08:43.679 (serialmon 315): usb_add: usb:0/140000/0/8/7
    16:08:43.679 (serialmon 315): usb_add: usb:0/140000/0/8/6
    16:08:47.260 (loader): remote connection 6632 closed
    16:08:50.032 (post_compile 316): Begin, version=1.47-beta4, high-res time
    16:08:50.033 (loader): remote connection 6632 opened
    16:08:50.033 (loader): remote cmd from 6632: "comment: Teensyduino 1.47-beta4 - WINDOWS (teensy_post_compile)"
    16:08:50.040 (post_compile 316): Sending command: comment: Teensyduino 1.47-beta4 - WINDOWS (teensy_post_compile)
    16:08:50.048 (loader): remote cmd from 6632: "status"
    16:08:50.048 (loader): remote cmd from 6632: "dir:T:\TEMP\arduino_build_887253\"
    16:08:50.059 (post_compile 316): Status: 1, 1, 0, 190, 0, 0, C:\tmp\T4Beta\Beta3\, restore.hex
    16:08:50.059 (post_compile 316): Sending command: dir:T:\TEMP\arduino_build_887253\
    16:08:50.064 (loader): remote cmd from 6632: "file:One2_SerTest_MIN.ino.hex"
    16:08:50.064 (loader): File "One2_SerTest_MIN.ino.hex". 36268 bytes, 2% used
    16:08:50.065 (post_compile 316): Sending command: file:One2_SerTest_MIN.ino.hex
    16:08:50.080 (loader): remote cmd from 6632: "status"
    16:08:50.094 (post_compile 316): Status: 1, 1, 0, 190, 0, 0, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:08:50.094 (post_compile 316): Disconnect
    16:08:50.119 (loader): remote connection 6632 closed
    16:08:50.353 (loader): remote connection 6632 opened
    16:08:50.366 (post_compile 317): Begin, version=1.47-beta4, high-res time
    16:08:50.369 (loader): remote cmd from 6632: "comment: Teensyduino 1.47-beta4 - WINDOWS (teensy_post_compile)"
    16:08:50.369 (loader): remote cmd from 6632: "status"
    16:08:50.375 (post_compile 317): Sending command: comment: Teensyduino 1.47-beta4 - WINDOWS (teensy_post_compile)
    16:08:50.385 (loader): remote cmd from 6632: "dir:T:\TEMP\arduino_build_887253\"
    16:08:50.385 (loader): remote cmd from 6632: "file:One2_SerTest_MIN.ino.hex"
    16:08:50.388 (post_compile 317): Status: 1, 1, 0, 190, 0, 0, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:08:50.388 (post_compile 317): Sending command: dir:T:\TEMP\arduino_build_887253\
    16:08:50.393 (post_compile 317): Sending command: file:One2_SerTest_MIN.ino.hex
    16:08:50.400 (loader): File "One2_SerTest_MIN.ino.hex". 36268 bytes, 2% used
    16:08:50.400 (loader): remote cmd from 6632: "status"
    16:08:50.426 (post_compile 317): Status: 1, 1, 0, 190, 0, 0, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:08:50.426 (post_compile 317): Disconnect
    16:08:50.447 (loader): remote connection 6632 closed
    16:08:50.447 (loader): remote connection 6632 opened
    16:08:50.447 (post_compile 318): Running teensy_reboot: "T:\Ard186t4b2\hardware\teensy\..\tools\teensy_reboot.exe" teensy_reboot.exe "-board=TEENSY40" "-port=usb:0/140000/0/8/1" "-portlabel=hid#vid_16c0&pid_0478 Bootloader" "-portprotocol=Teensy"
    16:08:50.492 (reboot 319): Begin, version=1.47-beta4, high-res time
    16:08:50.492 (reboot 319): location = usb:0/140000/0/8/1
    16:08:50.492 (reboot 319): portlabel = hid#vid_16c0&pid_0478 Bootloader
    16:08:50.492 (reboot 319): portprotocol = Teensy
    16:08:50.492 (reboot 319): Only location usb:0/140000/0/8/1 will be tried
    16:08:50.492 (reboot 319): LoadLibrary cfgmgr32 ok
    16:08:50.492 (reboot 319): LoadLibrary ntdll ok
    16:08:50.494 (loader): remote connection 6916 opened
    16:08:50.494 (loader): remote cmd from 6916: "show:arduino_attempt_reboot"
    16:08:50.496 (reboot 319): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#5889290#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:50.496 (reboot 319): found_usb_device, loc=usb:0/140000/0/8/6    Port_#0006.Hub_#0009
    16:08:50.496 (reboot 319): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0279
    16:08:50.496 (reboot 319): found_usb_device, devinst=00000001
    16:08:50.496 (reboot 319): add: loc=usb:0/140000/0/8/6, class=Ports, vid=16C0, pid=0483, ver=0279, serial=5889290, dev=\\?\usb#vid_16c0&pid_0483#5889290#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:50.496 (reboot 319):   comport_from_devinst_list attempt
    16:08:50.496 (reboot 319):   found Ports in classguid_list at index=0
    16:08:50.496 (reboot 319):   port COM30 found from devnode
    16:08:50.496 (reboot 319): found_usb_device complete
    16:08:50.496 (reboot 319): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#5847860#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:50.496 (reboot 319): found_usb_device, loc=usb:0/140000/0/8/7    Port_#0007.Hub_#0009
    16:08:50.496 (reboot 319): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0279
    16:08:50.496 (reboot 319): found_usb_device, devinst=00000003
    16:08:50.496 (reboot 319): add: loc=usb:0/140000/0/8/7, class=Ports, vid=16C0, pid=0483, ver=0279, serial=5847860, dev=\\?\usb#vid_16c0&pid_0483#5847860#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:50.496 (reboot 319):   comport_from_devinst_list attempt
    16:08:50.496 (reboot 319):   found Ports in classguid_list at index=0
    16:08:50.496 (reboot 319):   port COM29 found from devnode
    16:08:50.496 (reboot 319): found_usb_device complete
    16:08:50.496 (reboot 319): found_usb_device, id=\\?\usb#vid_16c0&pid_0486#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:50.496 (reboot 319): found_usb_device, loc=usb:0/140000/0/8/1    Port_#0001.Hub_#0009
    16:08:50.496 (reboot 319): found_usb_device, devinst=00000008
    16:08:50.496 (reboot 319): found_usb_device, hwid=USB\VID_16C0&PID_0486&REV_0279
    16:08:50.496 (reboot 319): add: loc=usb:0/140000/0/8/1, class=USB, vid=16C0, pid=0486, ver=0279, serial=5794870, dev=\\?\usb#vid_16c0&pid_0486#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:50.496 (reboot 319): hiddev_from_devinst_list: iface=1
    16:08:50.497 (reboot 319):   00000010: path=\\?\hid#vid_16c0&pid_0486&mi_01#7&33b31594&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
    16:08:50.497 (reboot 319): found_usb_device complete
    16:08:50.498 (reboot 319): hid, found devinst=0000000E
    16:08:50.498 (reboot 319): hid, found devinst=00000010
    16:08:50.506 (reboot 319): found Teensy Loader, version 1.47
    16:08:50.506 (reboot 319): Sending command: show:arduino_attempt_reboot
    16:08:50.510 (loader): got request to show arduino rebooting message
    16:08:50.510 (loader): remote cmd from 6916: "comment: Teensyduino 1.47-beta4 - WINDOWS (teensy_reboot)"
    16:08:50.510 (loader): remote cmd from 6916: "status"
    16:08:50.518 (reboot 319): Sending command: comment: Teensyduino 1.47-beta4 - WINDOWS (teensy_reboot)
    16:08:50.525 (loader): remote cmd from 6916: "status"
    16:08:50.532 (reboot 319): Status: 1, 1, 0, 190, 0, 0, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:08:50.532 (reboot 319): hid_send_feature
    16:08:50.541 (ports 151): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
    16:08:50.543 (ports 151): remove: loc=usb:0/140000/0/8/1
    16:08:50.543 (ports 151): usb_remove: usb:0/140000/0/8/1
    16:08:50.543 (ports 151): nothing new, skipping HID & Ports enum
    16:08:50.543 (reboot 319): Status: 1, 1, 0, 190, 0, 0, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:08:50.543 (reboot 319): status read, retry 0
    16:08:50.589 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:50.590 (ports 151): nothing new, skipping HID & Ports enum
    16:08:50.650 (loader): remote cmd from 6916: "status"
    16:08:50.660 (reboot 319): Status: 1, 1, 0, 190, 0, 0, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:08:50.660 (reboot 319): status read, retry 1
    16:08:50.768 (loader): remote cmd from 6916: "status"
    16:08:50.775 (reboot 319): Status: 1, 1, 0, 190, 0, 0, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:08:50.775 (reboot 319): status read, retry 2
    16:08:50.798 (ports 151): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    16:08:50.800 (ports 151): found_usb_device, id=\\?\usb#vid_16c0&pid_0478#0008d79f#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:50.800 (ports 151): found_usb_device, loc=usb:0/140000/0/8/1    Port_#0001.Hub_#0009
    16:08:50.800 (ports 151): found_usb_device, hwid=USB\VID_16C0&PID_0478&REV_0004
    16:08:50.800 (ports 151): found_usb_device, devinst=0000001f
    16:08:50.800 (ports 151): add: loc=usb:0/140000/0/8/1, class=HID, vid=16C0, pid=0478, ver=0004, serial=0008d79f, dev=\\?\usb#vid_16c0&pid_0478#0008d79f#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:50.800 (ports 151): hiddev_from_devinst_list: iface=0
    16:08:50.801 (ports 151): found_usb_device complete
    16:08:50.802 (ports 151): hid, found devinst=00000020
    16:08:50.802 (ports 151): hid, path=\\?\hid#vid_16c0&pid_0478#6&286fbe38&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
    16:08:50.802 (ports 151): hid,  opened handle
    16:08:50.802 (ports 151):  devinst=00000020, location=usb:0/140000/0/8/1
    16:08:50.802 (ports 151):  vid=16C0, pid=0478, ver=0004, usepage=FF9C, use=0024
    16:08:50.802 (ports 151):  devpath=\\?\hid#vid_16c0&pid_0478#6&286fbe38&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
    16:08:50.802 (ports 151): usb_add: usb:0/140000/0/8/1  hid#vid_16c0&pid_0478 (Teensy 4-Beta2) Bootloader
    16:08:50.888 (loader): remote cmd from 6916: "status"
    16:08:50.898 (loader): Device came online, code_size = 2031616
    16:08:50.898 (loader): Board is: Teensy 4-Beta2 (IMXRT1062), version 0.04
    16:08:50.918 (loader): File "One2_SerTest_MIN.ino.hex". 36268 bytes, 2% used
    16:08:50.923 (loader): set background IMG_ONLINE
    16:08:50.938 (loader): File "One2_SerTest_MIN.ino.hex". 36268 bytes, 2% used
    16:08:50.943 (loader): elf appears to be for Teensy 4-Beta2 (IMXRT1062) (2031616 bytes)
    16:08:50.948 (loader): elf binary data matches hex file
    16:08:50.958 (loader): elf file is for Teensy 4-Beta2 (IMXRT1062)
    16:08:50.958 (loader): begin operation
    16:08:50.986 (reboot 319): Status: 1, 1, 1, 191, 0, 1, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:08:50.988 (loader): flash, block=0, bs=1024, auto=1
    16:08:50.997 (loader):  gauge old value = 0
    16:08:51.008 (loader): flash, block=1, bs=1024, auto=1
    16:08:51.014 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:51.015 (ports 151): nothing new, skipping HID & Ports enum
    16:08:51.188 (loader):  gauge old value = 1
    16:08:51.198 (loader): remote cmd from 6916: "status"
    16:08:51.205 (reboot 319): Status: 1, 1, 1, 191, 0, 1, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:08:51.233 (loader): flash, block=2, bs=1024, auto=1
    16:08:51.248 (loader):  gauge old value = 2
    16:08:51.253 (loader): flash, block=3, bs=1024, auto=1
    16:08:51.258 (loader):  gauge old value = 3
    16:08:51.268 (loader): flash, block=4, bs=1024, auto=1
    16:08:51.275 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:51.277 (ports 151): nothing new, skipping HID & Ports enum
    16:08:51.279 (loader):  gauge old value = 4
    16:08:51.288 (loader): remote cmd from 6916: "status"
    16:08:51.297 (reboot 319): Status: 1, 1, 1, 191, 0, 1, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:08:51.348 (loader): flash, block=5, bs=1024, auto=1
    16:08:51.348 (loader):  gauge old value = 5
    16:08:51.363 (loader): flash, block=6, bs=1024, auto=1
    16:08:51.368 (loader):  gauge old value = 6
    16:08:51.373 (loader): flash, block=7, bs=1024, auto=1
    16:08:51.383 (loader):  gauge old value = 7
    16:08:51.388 (loader): flash, block=8, bs=1024, auto=1
    16:08:51.398 (loader):  gauge old value = 8
    16:08:51.398 (loader): flash, block=9, bs=1024, auto=1
    16:08:51.408 (loader):  gauge old value = 9
    16:08:51.418 (loader): flash, block=10, bs=1024, auto=1
    16:08:51.428 (loader):  gauge old value = 10
    16:08:51.438 (loader): flash, block=11, bs=1024, auto=1
    16:08:51.438 (loader):  gauge old value = 11
    16:08:51.448 (loader): flash, block=12, bs=1024, auto=1
    16:08:51.448 (loader):  gauge old value = 12
    16:08:51.463 (loader): flash, block=13, bs=1024, auto=1
    16:08:51.468 (loader):  gauge old value = 13
    16:08:51.468 (loader): flash, block=14, bs=1024, auto=1
    16:08:51.479 (loader):  gauge old value = 14
    16:08:51.488 (loader): flash, block=15, bs=1024, auto=1
    16:08:51.488 (loader):  gauge old value = 15
    16:08:51.498 (loader): flash, block=16, bs=1024, auto=1
    16:08:51.498 (loader):  gauge old value = 16
    16:08:51.508 (loader): flash, block=17, bs=1024, auto=1
    16:08:51.508 (loader):  gauge old value = 17
    16:08:51.518 (loader): remote cmd from 6916: "status"
    16:08:51.528 (loader): flash, block=18, bs=1024, auto=1
    16:08:51.528 (loader):  gauge old value = 18
    16:08:51.528 (reboot 319): Status: 1, 1, 1, 191, 0, 1, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:08:51.538 (loader): flash, block=19, bs=1024, auto=1
    16:08:51.548 (loader):  gauge old value = 19
    16:08:51.579 (loader): flash, block=20, bs=1024, auto=1
    16:08:51.598 (loader):  gauge old value = 20
    16:08:51.613 (loader): flash, block=21, bs=1024, auto=1
    16:08:51.628 (loader):  gauge old value = 21
    16:08:51.628 (loader): flash, block=22, bs=1024, auto=1
    16:08:51.638 (loader):  gauge old value = 22
    16:08:51.648 (loader): flash, block=23, bs=1024, auto=1
    16:08:51.648 (loader):  gauge old value = 23
    16:08:51.658 (loader): flash, block=24, bs=1024, auto=1
    16:08:51.658 (loader):  gauge old value = 24
    16:08:51.668 (loader): flash, block=25, bs=1024, auto=1
    16:08:51.678 (loader):  gauge old value = 25
    16:08:51.679 (loader): flash, block=26, bs=1024, auto=1
    16:08:51.688 (loader):  gauge old value = 26
    16:08:51.693 (loader): flash, block=27, bs=1024, auto=1
    16:08:51.698 (loader):  gauge old value = 27
    16:08:51.698 (loader): flash, block=28, bs=1024, auto=1
    16:08:51.708 (loader):  gauge old value = 28
    16:08:51.708 (loader): flash, block=29, bs=1024, auto=1
    16:08:51.718 (loader):  gauge old value = 29
    16:08:51.718 (loader): flash, block=30, bs=1024, auto=1
    16:08:51.728 (loader):  gauge old value = 30
    16:08:51.738 (loader): flash, block=31, bs=1024, auto=1
    16:08:51.748 (loader):  gauge old value = 31
    16:08:51.758 (loader): flash, block=32, bs=1024, auto=1
    16:08:51.758 (loader):  gauge old value = 32
    16:08:51.773 (loader): flash, block=33, bs=1024, auto=1
    16:08:51.779 (loader):  gauge old value = 33
    16:08:51.788 (loader): remote cmd from 6916: "status"
    16:08:51.798 (loader): flash, block=34, bs=1024, auto=1
    16:08:51.806 (reboot 319): Status: 1, 1, 1, 191, 0, 1, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:08:51.818 (loader):  gauge old value = 34
    16:08:51.828 (loader): flash, block=35, bs=1024, auto=1
    16:08:51.844 (loader):  gauge old value = 35
    16:08:51.848 (loader): sending reboot
    16:08:51.858 (loader): begin wait_until_offline
    16:08:51.858 (loader): offline, waited 0
    16:08:51.867 (ports 151): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
    16:08:51.868 (ports 151): remove: loc=usb:0/140000/0/8/1
    16:08:51.868 (ports 151): usb_remove: usb:0/140000/0/8/1
    16:08:51.868 (ports 151): nothing new, skipping HID & Ports enum
    16:08:51.868 (loader): end operation, total time = 0.900 seconds
    16:08:51.879 (loader): set background IMG_REBOOT_OK
    16:08:51.879 (loader): redraw timer set, image 14 to show for 1200 ms
    16:08:51.895 (loader): remote cmd from 6916: "status"
    16:08:51.895 (loader): HID/win32:  vid:046D pid:C534 ver:2901
    16:08:51.895 (loader): HID/win32:  vid:1B80 pid:B406 ver:0100
    16:08:51.895 (loader): HID/win32:  vid:046D pid:C534 ver:2901
    16:08:51.895 (loader): HID/win32:  vid:1B80 pid:B406 ver:0100
    16:08:51.895 (loader): HID/win32:  vid:0764 pid:0501 ver:0001
    16:08:51.895 (loader): HID/win32:  vid:1B80 pid:B406 ver:0100
    16:08:51.895 (loader): HID/win32:  vid:046D pid:C534 ver:2901
    16:08:51.895 (loader): HID/win32:  vid:1B80 pid:B406 ver:0100
    16:08:51.895 (loader): HID/win32:  vid:046D pid:C534 ver:2901
    16:08:51.899 (reboot 319): Status: 1, 1, 0, 191, 0, 0, T:\TEMP\arduino_build_887253\, One2_SerTest_MIN.ino.hex
    16:08:51.899 (reboot 319): status read, retry 3
    16:08:51.899 (reboot 319): Success
    16:08:51.899 (reboot 319): Disconnect
    16:08:51.973 (loader): remote connection 6916 closed
    16:08:52.004 (loader): remote connection 6632 closed
    16:08:52.033 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:52.034 (ports 151): nothing new, skipping HID & Ports enum
    16:08:52.034 (serialmon 320): Begin, version=1.47-beta4, high-res time
    16:08:52.034 (serialmon 320): listening for location: usb:0/140000/0/8/1
    16:08:52.034 (serialmon 320): LoadLibrary cfgmgr32 ok
    16:08:52.034 (serialmon 320): LoadLibrary ntdll ok
    16:08:52.039 (serialmon 320): callback 0024
    16:08:52.039 (serialmon 320): callback 0081
    16:08:52.043 (serialmon 320): callback 0083
    16:08:52.044 (serialmon 320): hWnd = 986400
    16:08:52.044 (serialmon 320): loop stdin, ready=2097151
    16:08:52.046 (serialmon 320): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#5889290#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:52.046 (serialmon 320): found_usb_device, loc=usb:0/140000/0/8/6    Port_#0006.Hub_#0009
    16:08:52.046 (serialmon 320): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0279
    16:08:52.046 (serialmon 320): found_usb_device, devinst=00000001
    16:08:52.046 (serialmon 320): add: loc=usb:0/140000/0/8/6, class=Ports, vid=16C0, pid=0483, ver=0279, serial=5889290, dev=\\?\usb#vid_16c0&pid_0483#5889290#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:52.046 (serialmon 320):   comport_from_devinst_list attempt
    16:08:52.046 (serialmon 320):   found Ports in classguid_list at index=0
    16:08:52.046 (serialmon 320):   port COM30 found from devnode
    16:08:52.046 (serialmon 320): found_usb_device complete
    16:08:52.046 (serialmon 320): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#5847860#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:52.046 (serialmon 320): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0279
    16:08:52.046 (serialmon 320): found_usb_device, loc=usb:0/140000/0/8/7    Port_#0007.Hub_#0009
    16:08:52.046 (serialmon 320): found_usb_device, devinst=00000003
    16:08:52.046 (serialmon 320): add: loc=usb:0/140000/0/8/7, class=Ports, vid=16C0, pid=0483, ver=0279, serial=5847860, dev=\\?\usb#vid_16c0&pid_0483#5847860#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:52.046 (serialmon 320):   comport_from_devinst_list attempt
    16:08:52.046 (serialmon 320):   found Ports in classguid_list at index=0
    16:08:52.046 (serialmon 320):   port COM29 found from devnode
    16:08:52.046 (serialmon 320): found_usb_device complete
    16:08:52.047 (serialmon 320): usb_add: usb:0/140000/0/8/7
    16:08:52.052 (loader): remote connection 6636 opened
    16:08:52.068 (serialmon 320): usb_add: usb:0/140000/0/8/6
    16:08:52.097 (ports 151): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    16:08:52.098 (serialmon 320): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    16:08:52.099 (ports 151): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:52.099 (ports 151): found_usb_device, loc=usb:0/140000/0/8/1    Port_#0001.Hub_#0009
    16:08:52.099 (ports 151): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0279
    16:08:52.099 (ports 151): found_usb_device, devinst=00000021
    16:08:52.099 (ports 151): add: loc=usb:0/140000/0/8/1, class=Ports, vid=16C0, pid=0483, ver=0279, serial=5794870, dev=\\?\usb#vid_16c0&pid_0483#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:52.099 (ports 151):   comport_from_devinst_list attempt
    16:08:52.099 (ports 151):   found Ports in classguid_list at index=0
    16:08:52.099 (ports 151):   port COM25 found from devnode
    16:08:52.099 (ports 151): found_usb_device complete
    16:08:52.099 (serialmon 320): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:52.099 (serialmon 320): found_usb_device, loc=usb:0/140000/0/8/1    Port_#0001.Hub_#0009
    16:08:52.099 (serialmon 320): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0279
    16:08:52.099 (serialmon 320): found_usb_device, devinst=0000001e
    16:08:52.099 (serialmon 320): add: loc=usb:0/140000/0/8/1, class=Ports, vid=16C0, pid=0483, ver=0279, serial=5794870, dev=\\?\usb#vid_16c0&pid_0483#5794870#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    16:08:52.099 (serialmon 320):   comport_from_devinst_list attempt
    16:08:52.099 (serialmon 320):   found Ports in classguid_list at index=0
    16:08:52.099 (serialmon 320):   port COM25 found from devnode
    16:08:52.099 (serialmon 320): found_usb_device complete
    16:08:52.100 (ports 151): usb_add: usb:0/140000/0/8/1  COM25 (Teensy 4-Beta2) Serial
    16:08:52.101 (serialmon 320): usb_add: usb:0/140000/0/8/1
    16:08:52.101 (serialmon 320): translate "COM25" -> "\\.\COM25"
    16:08:52.197 (serialmon 320): GetDefaultCommConfig success
    16:08:52.280 (serialmon 320): SetDefaultCommConfig success
    16:08:52.280 (serialmon 320): Opened \\.\COM25 Serial
    16:08:52.283 (ports 151): callback 001A
    16:08:52.284 (serialmon 320): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:52.286 (serialmon 320): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    16:08:52.289 (serialmon 320): callback 001A
    16:08:52.294 (serialmon 320): nothing new, skipping HID & Ports enum
    16:08:52.893 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:52.893 (ports 151): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    16:08:52.902 (ports 151): nothing new, skipping HID & Ports enum
    16:08:53.074 (serialmon 320): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:53.082 (serialmon 320): nothing new, skipping HID & Ports enum
    16:08:53.103 (loader): redraw, image 9
    16:08:53.119 (ports 151): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    16:08:53.129 (ports 151): nothing new, skipping HID & Ports enum

  11. #3436
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    9,066
    Paul: the USB Verifier said: " A USB2 controller was not found " - so it won't run here. AND yes those intro WARNINGS were scary …

    Here are my three T4Beta2 units online. After New:Restore_Image upload:
    Attachment 16875

    That was after the default one was IDE Uploaded with TeensyLoader.

    Then I selected the other two and Did IDE Upload and all is well. No complaints from Win 10 - and Auto TeensyLoader uploads worked back to serialEvent code at hand. All 3 are back online with the prior assigned COM#'d ports.
    Here is the Verbose.log from that: NewRestoreImage_LOG.txt

  12. #3437
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    5,074
    Quote Originally Posted by defragster View Post
    It was this one from eBay :: New-3-5-inch-TFT-LCD-320-480-Touch-Screen-Display-Module-for-Raspberry-Pi-3-B

    Order Feb 5, 2019 - still listed. The images match what I have in hand including '480x320 16bit/18bit' - with added silkscreen text of : "version 6.3 2018/4/9" under what the pic shows.

    IIRC mjs513 got a similar one. Only one set of SPI pins - on awkward double tall female header blocks:
    Code:
    7.Touch chip : xpt2046
    Interface Define:
    24--GPIO7 --------> TP_CS
    26--GPIO8 --------> LCD_CS
    22--GPIO25 --------> TP_irq
    23--GPIO11 --------> SPI_CLK
    21--GPIO9 ---------> SPI_MISO
    19--GPIO10 ---------> SPI_MOSI
    5V ---------> 5V
    GND ---------> GND
    I put in order... Should be here in about a week... The thing I was not sure about these displays is, what actual display chip is in them... I don't see anything describing what is actually there.... But will see

  13. #3438
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    5,074
    Hi @Paul - Tried it on the older one...

    When I upload it, I now see:
    Click image for larger version. 

Name:	T4_comply_raw.jpg 
Views:	36 
Size:	35.0 KB 
ID:	16877

    Sounds like you have been busy!

  14. #3439
    Senior Member+
    Join Date
    Jul 2014
    Location
    New York
    Posts
    3,702
    Quote Originally Posted by KurtE View Post
    I put in order... Should be here in about a week... The thing I was not sure about these displays is, what actual display chip is in them... I don't see anything describing what is actually there.... But will see
    @KurtE and @defragster

    Actually its the exact same one . Think when I was researching earlier I saw that it was a ILI9486 but saw one post that said for an earlier model it was a ILI9341. Just came across this if you want to check this implementation out: https://github.com/lzto/RaspberryPi_KeDei_35_lcd_v62.

    You all might find these links interesting:
    https://www.raspberrypi.org/forums/v...?f=44&t=124961
    https://github.com/saper-2/rpi-spi-lcd35-kedei
    https://github.com/notro/fbtft

    EDIT: Found the link I was looking for. You might find this schematic interesting for the display: https://github.com/wdim0/esp8266_wit...ter/schema.jpg

    Basically the DC is on u1 (74HC595) - u1-02. Beginning to get the feeling that this display is rather unique in the way it does things.
    Last edited by mjs513; 06-30-2019 at 12:01 PM.

  15. #3440
    Senior Member
    Join Date
    Jul 2014
    Posts
    2,254

    Simple PIT interupt example

    I'm struggling to setup a simple PIT example that generates, say every 1ms an interrupt (IRQ_PIT)
    I know the example that triggers the ADC, that uses xbar_connect(56, 103); und I understand where the numbers come from.
    But I could not find PIT on XBARoutput (56 in XBARinput number).
    I seems to generate PIT interrupt one does not use XBAR, but the following program does not call the ISR
    Code:
    void pit_init(uint32_t cycles)
    {
      CCM_CCGR1 |= CCM_CCGR1_PIT(CCM_CCGR_ON);
      PIT_MCR = 0;
    
      NVIC_SET_PRIORITY(IRQ_PIT, 7*16); 
      NVIC_ENABLE_IRQ(IRQ_PIT);
    
      IMXRT_PIT_CHANNELS[0].LDVAL = cycles;
      IMXRT_PIT_CHANNELS[0].TCTRL = PIT_TCTRL_TIE | PIT_TCTRL_TEN;
    }
    
    void pit_isr(void)
    { //
      
      PIT_TFLG0=1;
      static int count=0;
      if((count%1000)==0) Serial.print('.'); 
      count++;
    }
    void setup() {
      // put your setup code here, to run once:
      while(!Serial);
      Serial.println("Test_PIT");
      pit_init(24*1000);
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
    Serial.println("loop");
    delay(2000);
    }
    Any insight appreciated

  16. #3441
    Senior Member+ manitou's Avatar
    Join Date
    Jan 2013
    Posts
    2,093
    Quote Originally Posted by WMXZ View Post
    I'm struggling to setup a simple PIT example that generates, say every 1ms an interrupt (IRQ_PIT)

    Any insight appreciated
    visit https://forum.pjrc.com/threads/54711...l=1#post195605

  17. #3442
    Senior Member+ manitou's Avatar
    Join Date
    Jan 2013
    Posts
    2,093
    SPISettings strangeness??

    Here is a little SPI performance sketch that behaves differently if a SPISettings variable is used in SPI.beginTransaction() vs embedded settings.
    Code:
    // t4 spi
    //  bus 528/7  75 mhz  max SPI 75/2 37.5 mhz
    // jumper MISO to MOSI for err check
    
    #include <SPI.h>
    #define PRREG(x) Serial.print(#x" 0x"); Serial.println(x,HEX)
    
    #define CS 10
    #define SPICLOCK 40000000
    SPISettings settingsA(SPICLOCK, MSBFIRST, SPI_MODE0);
    #define SPI_BUFF_SIZE 1024
    uint8_t rx_buffer[SPI_BUFF_SIZE];
    uint8_t tx_buffer[SPI_BUFF_SIZE];
    
    void setup() {
      Serial.begin(9600); while (!Serial);
      pinMode(CS, OUTPUT);
      digitalWrite(CS, HIGH);
      Serial.println(); Serial.print(F_CPU_ACTUAL); Serial.print(" ");
      Serial.print(__TIME__); Serial.print(" "); Serial.println(__DATE__);
      SPI.begin();
    // ??? pick one
      SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE0));
     // SPI.beginTransaction(settingsA);
      //LPSPI4_CCR = 1;   // DIV  + 2
      // LPSPI4_TCR = 31;   // frame
      PRREG(LPSPI4_CCR);
      PRREG(LPSPI4_TCR);
      PRREG(LPSPI4_FCR);
      Serial.printf("SPICLOCK %d MHz   CCR freq %.1f MHz\n", SPICLOCK / 1000000, 528. / 7 / ((0xff & LPSPI4_CCR) + 2));
    }
    
    void loop() {
      uint32_t t1;
      float mbs;
    
      for (int i = 0; i < SPI_BUFF_SIZE; i++) tx_buffer[i] = i;
      digitalWrite(CS, LOW);
      t1 = micros();
      SPI.transfer(tx_buffer, SPI_BUFF_SIZE);
      t1 = micros() - t1;
      digitalWrite(CS, HIGH);
      mbs = 8 * SPI_BUFF_SIZE / (float)t1;
      Serial.printf("Tx %d bytes in %d us  %.2f mbs \n", SPI_BUFF_SIZE, t1, mbs);
    
      // jumper MOSI to MISO
      for (int i = 0; i < SPI_BUFF_SIZE; i++) tx_buffer[i] = i;
      memset(rx_buffer, 0, SPI_BUFF_SIZE);
      digitalWrite(CS, LOW);
      SPI.transfer(tx_buffer, rx_buffer, SPI_BUFF_SIZE);
      digitalWrite(CS, HIGH);
      int errs = 0;
      for (int i = 0; i < SPI_BUFF_SIZE; i++) if (tx_buffer[i] != rx_buffer[i]) errs++;
      Serial.printf("errs %d  [3] %d %d \n", errs, tx_buffer[3], rx_buffer[3]);
      delay(3000);
    }
    At least when selecting a high MHz (e.g., 40mhz) for the SPI clock. Sketch prints out CCR frequency, 25.1 vs 37.7 MHz

  18. #3443
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    5,074
    Quote Originally Posted by manitou View Post
    SPISettings strangeness??

    Here is a little SPI performance sketch that behaves differently if a SPISettings variable is used in SPI.beginTransaction() vs embedded settings.

    At least when selecting a high MHz (e.g., 40mhz) for the SPI clock. Sketch prints out CCR frequency, 25.1 vs 37.7 MHz
    It does not surprise me...

    The issue probably started, when the internal values of the SPISettings object could no longer be calculated at compile time. Why?

    It depends on a run time state of the CCM_CBCMR register... Which at compile time is ??? Also unknown when the C++ static constructors are called.
    In particular:

    Code:
    class SPISettings {
    public:
    	SPISettings(uint32_t clock, uint8_t bitOrder, uint8_t dataMode) {
    		if (__builtin_constant_p(clock)) {
    			init_AlwaysInline(clock, bitOrder, dataMode);
    		} else {
    			init_MightInline(clock, bitOrder, dataMode);
    		}
    	}
    	SPISettings() {
    		init_AlwaysInline(4000000, MSBFIRST, SPI_MODE0);
    	}
    private:
    	void init_MightInline(uint32_t clock, uint8_t bitOrder, uint8_t dataMode) {
    		init_AlwaysInline(clock, bitOrder, dataMode);
    	}
    	void init_AlwaysInline(uint32_t clock, uint8_t bitOrder, uint8_t dataMode)
    	  __attribute__((__always_inline__)) {
    		// TODO: Need to check timings as related to chip selects?
    				
    		const uint32_t clk_sel[4] = {664615384,  // PLL3 PFD1
    					     720000000,  // PLL3 PFD0
    					     528000000,  // PLL2
    					     396000000}; // PLL2 PFD2				
    		uint32_t cbcmr = CCM_CBCMR;
    		uint32_t clkhz = clk_sel[(cbcmr >> 4) & 0x03] / (((cbcmr >> 26 ) & 0x07 ) + 1);  // LPSPI peripheral clock
    		
    		uint32_t d, div;		
    		if (clock == 0) clock =1;
    		d= clkhz/clock;
    		if (d && clkhz/d > clock) d++;
    		if (d > 257) d= 257;  // max div
    		if (d > 2) {
    			div = d-2;
    		} else {
    			div =0;
    		}
    		ccr = LPSPI_CCR_SCKDIV(div) | LPSPI_CCR_DBT(div/2);
    		tcr = LPSPI_TCR_FRAMESZ(7);    // TCR has polarity and bit order too
    
    		// handle LSB setup 
    		if (bitOrder == LSBFIRST) tcr |= LPSPI_TCR_LSBF;
    
    		// Handle Data Mode
    		if (dataMode & 0x08) tcr |= LPSPI_TCR_CPOL;
    
    		// Note: On T3.2 when we set CPHA it also updated the timing.  It moved the 
    		// PCS to SCK Delay Prescaler into the After SCK Delay Prescaler	
    		if (dataMode & 0x04) tcr |= LPSPI_TCR_CPHA; 
    	}
    	uint32_t ccr; // clock config, pg 2660 (RT1050 ref, rev 2)
    	uint32_t tcr; // transmit command, pg 2664 (RT1050 ref, rev 2)
    	friend class SPIClass;
    };
    So with the way it currently is setup. Statically defined objects are problematic, like the one you have:
    SPISettings settingsA(SPICLOCK, MSBFIRST, SPI_MODE0);
    I am not sure which of the clocks it assumed SPI will be running with...

    And in addition: All of that inline code will always execute every time...

    Which is why at one point I am suggested, as it would help my FlexIO version of SPI, that we should change the
    SPISettings code to simply save away the parameters (maybe encode...) and then have the SPI.beginTransaction code
    have inline code that simply tests to see if new settings != current settings and then do the work to convert parameters to TCR and CCR registers.

    Thoughts? I don't mind doing the work... Here is my complete SPISettings like code for FlexIO...
    Code:
    class FlexSPISettings {
    public:
    	FlexSPISettings(uint32_t clock, uint8_t bitOrder, uint8_t dataMode) : _clock(clock), 
    		_bitOrder(bitOrder), _dataMode(dataMode) {};
    
    	uint32_t _clock;
    	uint8_t _bitOrder;
    	uint8_t	_dataMode;
    };
    Currently I just made the internals be public... Could make them protected/friend or could have simple inline methods to grab them...

    But my beginTransaction code start off like: if ((settings._clock != _clock) || (settings._dataMode != _dataMode )) {

  19. #3444
    Senior Member
    Join Date
    Jul 2014
    Posts
    2,254
    Quote Originally Posted by manitou View Post
    thanks @manitu, I completely missed this with forum search.
    I did some adaption and got this code
    Code:
    uint32_t isrCount1=0;
    uint32_t isrCount2=0;
    void pitIsr()
    {
      for (int i = 0; i < 4; i++)
      {
        if (IMXRT_PIT_CHANNELS[i].TFLG == 1) // if channel TFLG is set, delete it and generate pulse on pin i
        {
          IMXRT_PIT_CHANNELS[i].TFLG = 1;
          isrCount1++;
        }
      }
      isrCount2++;
    
    }
    
    void beginPIT(uint32_t cycles)
    {
      CCM_CCGR1 |= CCM_CCGR1_PIT(CCM_CCGR_ON);
      PIT_MCR = 0;
    
      IMXRT_PIT_CHANNELS[0].TCTRL=0;
      IMXRT_PIT_CHANNELS[0].LDVAL = cycles;
      IMXRT_PIT_CHANNELS[0].TFLG = 1;
      IMXRT_PIT_CHANNELS[0].TCTRL = PIT_TCTRL_TEN | PIT_TCTRL_TIE;
    
      attachInterruptVector(IRQ_PIT, pitIsr);
      NVIC_ENABLE_IRQ(IRQ_PIT);
    }
    
    void setup()
    {
      while(!Serial);
      Serial.println("Test_PIT");
    
      pinMode(LED_BUILTIN,OUTPUT);
      beginPIT(1000*1000L);
    }
    
    void loop()
    { static uint32_t loopCount=0;
      digitalWriteFast(LED_BUILTIN, !digitalReadFast(LED_BUILTIN));
      delay(500);
      Serial.printf("%10u %10u %10u %10u\n",loopCount,IMXRT_PIT_CHANNELS[0].CVAL, isrCount1, isrCount2);
      loopCount++;
      isrCount1=isrCount2=0;
    }
    Without the new bold line, the counter was set to 0xffffffff and needed initial countdown of 177s

  20. #3445
    Senior Member+ manitou's Avatar
    Join Date
    Jan 2013
    Posts
    2,093
    Quote Originally Posted by WMXZ View Post
    thanks @manitu, I completely missed this with forum search.

    Without the new bold line, the counter was set to 0xffffffff and needed initial countdown of 177s
    you might read further in that thread about adding asm volatile ("dsb") ; to ISR.

  21. #3446

    WavFilePlayer with MSC

    @all - Not sure if this has been done before. Could not find anything with forum searches.

    Anyway I was able to create a WavFilePlayer that uses uSDFS and MSC. At this time it works with my thumb drives and most Hard Drives. I had one 3.5" Hitachi hard that would not work due to a very low read speed. (Skipping and stuttering). The other seven drives worked. None of the drives would work with a buffer size of 512 bytes. I set it to 1024 bytes and all but one Hard Drive worked properly. The other one needed 8192 bytes. Tried 16384 bytes and the 16GIG thumb drive would not work properly. Again playing with buffer sizes.

    If anybody is interested, here is the library. I did not modify the Audio library.
    Maybe other drives can be tested with this.

    mscWavPlayer.zip

  22. #3447
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    9,066
    Very cool @wwatson - downloaded but not tried yet. Is that with current github uSDFS and MSC?

    The T4 7 Serial# port tests are running now some 12 hours later? One lone T4 and the other two sharing data over each of their 7 ports using the serialEvent#() code with no issue buffering the data and getting it all in a timely fashion. Proper NULL on the buffered data stopped the bad data printing I saw. One thing I didn't test for sure - but I was activating all 7 ports and two were not used or wired - and perhaps that is where I was getting NOISE from when touching the T4/breakout going for the button. When active Serial# ports are wired - it seems to be touch safe and stable.

    As noted the raw added speed of the 600 MHz T4 will take some tweaking to maximize efficient hardware usage - and not spend time overpolling Serial# for instance with yield(). 'Anyone' can use it - just that it may not seem to have the expected speed increase - until it bytes them in the butt for being too fast. The same is probably true to the T_3.6 - but not as obvious.

  23. #3448
    @defragster

    Yes it with uSDFS and MSC. Really curious about performance with newer Hard Drives other than my old ones.

    Got my eye on Frank B.'s MP3 player. From what I can see from the code there is a lot more to it than the WavFilePlayer.

    As Kurte would say it's time to play

  24. #3449
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    9,066
    @wwatson - downloaded the latest to libraries and will give it a go with some of the USBHost tested drives …

    Looks like the drives need to have the SDTEAST#.WAV file pre-populated - from https://www.pjrc.com/teensy/td_libs_AudioDataFiles.html - then all should be good.

    I don't see them as installed but for a 2 MB file to add to the test I see : "...\hardware\teensy\avr\libraries\Talkie\encoder\ freemat\TomsDiner8.wav" - hopefully with the right encoding? And saved "filenames are always uppercase 8.3 format"

  25. #3450
    @defragster

    With FatFs it does not matter if the filenames are 8.3 or upper/lowercase. You can use filenames up to 255 characters long. I am totally saturated with listening to SDTEST#.wav. I just downloaded Audacity on one of my Linux machine to experiment with converting some of my favorite songs to wav files. (Then to MP3 files). The SDTEST#.wav files that I used are from the link you provided above.
    WMXZ just fixed a problem with uSDFS causing a compilation error affecting MSC today. mscWavFilePlayer compiled fine after that.

    I want to convert some of Def Leppard songs to WAV files to test with. Yeah, old school Rock and Roll!

    Waiting for feedback...

    Edit: You need to do a git pull on uSDFS to correct compilation errors. Also I have added a lot of changes to MSC. I will be pushing them to GitHub shortly.
    Added error processing to MSC with sense codes.
    Last edited by wwatson; 07-01-2019 at 12:22 AM. Reason: MSC compilation errors

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •