Another Teensy 4 unresponsive after programming thread

Status
Not open for further replies.

tcottle

Well-known member
I'm having a similar problem like others are having with the Teensy 4. Mine is slightly different and maybe this helps in finding the problem

I bought a Teensy 4 just after they were released (probably from the PJRC store) with the intent of using it in DD4WH's Convolution SDR radio project. It came in, I soldered on headers and verified that it was running the factory installed Blink. I then put it aside

Last night I wanted to do a simple hardware experiment that would be well suited for a Teensy 3.2 but found that all of my 3.2s were being used. So I grabbed the Teensy 4. Plugged it in, it was still running Blink. Recompiled Blink and uploaded it since this was my first time using a T4. Upload and reset went fine except that now the LED is not blinking. Hmmmm Tried the usual debug techniques, verified that the +5 USB line was clean and then read some of the T4 forum messages.

Since that 1st upload I have to press the program button to trigger programming but after that Teensy Loader reports normal (reboots)

I've attached pictures of my T4

I tried the factory reset trick (hold down the programming button until the red LED flashes once dimly). When I release the button the red LED comes on bright and solid for ~ 30 seconds. The LED goes out, Windows 10 makes an audio report but no blink

I also tried uploading the blink_fast_Teensy40.hex file from the "Using The Teensy Loader on Windows Vista" page using Teensy loader. I have to press the program button for the Upload and Reboot buttons to become active. It looks like it uploads and reboots fine but Blink isn't running

I also tried pushing the same file up using TyCommander (0.9.0). In its log file it reports "[upload@6117500-Teensy] Failed to reset board '6117500-Teensy"

Here is the log file from Teensy Loader. It contains my upload and the 15s factory reset messages

Code:
12:30:51.930 (ports 5): Begin, version=1.52-beta3, high-res time
12:30:51.930 (ports 5): LoadLibrary cfgmgr32 ok
12:30:51.930 (ports 5): LoadLibrary ntdll ok
12:30:51.946 (ports 5): callback 0024
12:30:51.946 (ports 5): callback 0081
12:30:51.948 (ports 5): callback 0083
12:30:51.951 (ports 5): hWnd = 2167724
12:30:51.958 (ports 5): nothing new, skipping HID & Ports enum
12:30:51.963 (ports 5): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
12:30:51.965 (ports 5): nothing new, skipping HID & Ports enum
12:30:52.151 (ports 5): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
12:30:52.152 (ports 5): nothing new, skipping HID & Ports enum
12:30:53.192 (ports 5): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
12:30:53.194 (ports 5): nothing new, skipping HID & Ports enum
12:35:34.517 (ports 5): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
12:35:34.518 (ports 5): nothing new, skipping HID & Ports enum
12:35:34.816 (ports 5): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
12:35:34.817 (ports 5): nothing new, skipping HID & Ports enum
12:35:42.171 (ports 5): WM_DEVICECHANGE DBT_DEVICEARRIVAL
12:35:42.172 (ports 5): nothing new, skipping HID & Ports enum
12:35:42.429 (ports 5): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
12:35:42.430 (ports 5): nothing new, skipping HID & Ports enum
12:36:52.342 (post_compile 1): Begin, version=1.52-beta3, high-res time
12:36:54.835 (loader): Teensy Loader 1.52-beta3, begin program
12:36:54.957 (loader): Listening for remote control on port 3149
12:36:54.958 (loader): initialized, showing main window
12:36:55.028 (loader): remote connection 1408 opened
12:36:55.029 (loader): remote cmd from 1408: "comment: Teensyduino 1.52-beta3 - WINDOWS (teensy_post_compile)"
12:36:55.029 (post_compile 1): Sending command: comment: Teensyduino 1.52-beta3 - WINDOWS (teensy_post_compile)
12:36:55.030 (loader): remote cmd from 1408: "status"
12:36:55.039 (loader): HID/win32:  vid:046D pid:C52B ver:1210
12:36:55.039 (loader): HID/win32:  vid:046D pid:C52B ver:1210
12:36:55.039 (loader): HID/win32:  vid:8087 pid:0A1E ver:0200
12:36:55.040 (loader): HID/win32:  vid:8087 pid:0A1E ver:0200
12:36:55.040 (loader): HID/win32:  vid:045E pid:0000 ver:0000
12:36:55.040 (loader): HID/win32:  vid:045E pid:0000 ver:0000
12:36:55.041 (loader): HID/win32:  vid:044E pid:120B ver:0123
12:36:55.041 (loader): HID/win32:  vid:044E pid:120B ver:0123
12:36:55.041 (loader): HID/win32:  vid:046D pid:C52B ver:1210
12:36:55.042 (loader): HID/win32:  vid:046D pid:C52B ver:1210
12:36:55.042 (loader): HID/win32:  vid:046D pid:C52B ver:1210
12:36:55.043 (loader): HID/win32:  vid:046D pid:C52B ver:1210
12:36:55.104 (loader): HID/win32:  vid:1FC9 pid:0135 ver:0101
12:36:55.105 (loader): remote cmd from 1408: "dir:C:\Users\TODD_C~1\AppData\Local\Temp\arduino_build_988770\"
12:36:55.106 (post_compile 1): Status: 0, 0, 0, 0, 0, 0, C:\Users\TODD_C~1\AppData\Local\Temp\arduino_build_299813\, Blink.ino.hex
12:36:55.106 (post_compile 1): Sending command: dir:C:\Users\TODD_C~1\AppData\Local\Temp\arduino_build_988770\
12:36:55.106 (loader): remote cmd from 1408: "file:Blink.ino.hex"
12:36:55.107 (post_compile 1): Sending command: file:Blink.ino.hex
12:36:55.124 (loader): File "Blink.ino.hex". 13540 bytes, 1% used
12:36:55.136 (loader): remote cmd from 1408: "status"
12:36:55.139 (loader): remote cmd from 1408: "auto:on"
12:36:55.140 (post_compile 1): Status: 1, 0, 0, 0, 0, 0, C:\Users\TODD_C~1\AppData\Local\Temp\arduino_build_988770\, Blink.ino.hex
12:36:55.140 (post_compile 1): Sending command: auto:on
12:36:55.140 (post_compile 1): Disconnect
12:36:55.151 (loader): remote connection 1408 closed
12:36:55.856 (post_compile 2): Begin, version=1.52-beta3, high-res time
12:36:55.860 (loader): remote connection 1420 opened
12:36:55.861 (post_compile 2): Sending command: comment: Teensyduino 1.52-beta3 - WINDOWS (teensy_post_compile)
12:36:55.861 (loader): remote cmd from 1420: "comment: Teensyduino 1.52-beta3 - WINDOWS (teensy_post_compile)"
12:36:55.861 (loader): remote cmd from 1420: "status"
12:36:55.863 (post_compile 2): Status: 1, 1, 0, 0, 0, 0, C:\Users\TODD_C~1\AppData\Local\Temp\arduino_build_988770\, Blink.ino.hex
12:36:55.863 (post_compile 2): Sending command: dir:C:\Users\TODD_C~1\AppData\Local\Temp\arduino_build_988770\
12:36:55.863 (loader): remote cmd from 1420: "dir:C:\Users\TODD_C~1\AppData\Local\Temp\arduino_build_988770\"
12:36:55.863 (loader): remote cmd from 1420: "file:Blink.ino.hex"
12:36:55.863 (post_compile 2): Sending command: file:Blink.ino.hex
12:36:55.874 (loader): File "Blink.ino.hex". 13540 bytes, 1% used
12:36:55.881 (loader): remote cmd from 1420: "status"
12:36:55.884 (post_compile 2): Status: 1, 1, 0, 0, 0, 0, C:\Users\TODD_C~1\AppData\Local\Temp\arduino_build_988770\, Blink.ino.hex
12:36:55.884 (post_compile 2): Disconnect
12:36:55.894 (loader): remote connection 1420 closed
12:36:55.896 (post_compile 3): Running teensy_reboot: "C:\Program Files (x86)\Arduino\hardware\teensy\..\tools\teensy_reboot.exe" teensy_reboot.exe "-board=TEENSY40" "-port=COM20" "-portlabel=(null)" "-portprotocol=(null)"
12:36:55.896 (loader): remote connection 1424 opened
12:36:56.186 (reboot 4): Begin, version=1.52-beta3, high-res time
12:36:56.186 (reboot 4): location = COM20
12:36:56.186 (reboot 4): portlabel = (null)
12:36:56.186 (reboot 4): portprotocol = (null)
12:36:56.186 (reboot 4): LoadLibrary cfgmgr32 ok
12:36:56.186 (reboot 4): LoadLibrary ntdll ok
12:36:56.189 (reboot 4): nothing new, skipping HID & Ports enum
12:36:56.192 (loader): remote connection 1428 opened
12:36:56.193 (reboot 4): Disconnect
12:36:56.204 (loader): remote connection 1428 closed
12:36:56.210 (loader): remote connection 1424 closed
12:37:00.749 (ports 5): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
12:37:00.753 (loader): remote connection 1432 opened
12:37:00.755 (ports 5): nothing new, skipping HID & Ports enum
12:37:00.863 (ports 5): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
12:37:00.863 (ports 5): nothing new, skipping HID & Ports enum
12:37:01.198 (ports 5): WM_DEVICECHANGE DBT_DEVICEARRIVAL
12:37:01.199 (ports 5): found_usb_device, id=\\?\usb#vid_16c0&pid_0478#000955a6#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
12:37:01.199 (ports 5): found_usb_device, loc=usb:0/140000/0/2    Port_#0002.Hub_#0001
12:37:01.199 (ports 5): found_usb_device, hwid=USB\VID_16C0&PID_0478&REV_0105
12:37:01.199 (ports 5): found_usb_device, devinst=00000006
12:37:01.199 (ports 5): add: loc=usb:0/140000/0/2, class=HID, vid=16C0, pid=0478, ver=0105, serial=000955a6, dev=\\?\usb#vid_16c0&pid_0478#000955a6#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
12:37:01.199 (ports 5): hiddev_from_devinst_list: iface=0
12:37:01.200 (ports 5): found_usb_device complete
12:37:01.201 (ports 5): hid, found devinst=0000000A
12:37:01.201 (ports 5): hid, path=\\?\hid#vid_16c0&pid_0478#6&203dab35&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
12:37:01.201 (ports 5): hid,  opened handle
12:37:01.201 (ports 5):  devinst=0000000A, location=usb:0/140000/0/2
12:37:01.201 (ports 5):  vid=16C0, pid=0478, ver=0105, usepage=FF9C, use=0024
12:37:01.201 (ports 5):  devpath=\\?\hid#vid_16c0&pid_0478#6&203dab35&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
12:37:01.202 (ports 5): usb_add: usb:0/140000/0/2  hid#vid_16c0&pid_0478 (Teensy 4.0) Bootloader
12:37:01.222 (ports 5): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
12:37:01.223 (ports 5): nothing new, skipping HID & Ports enum
12:37:01.401 (ports 5): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
12:37:01.402 (ports 5): nothing new, skipping HID & Ports enum
12:37:01.421 (loader): Device came online, code_size = 2031616
12:37:01.421 (loader): Board is: Teensy 4.0 (IMXRT1062), version 1.05
12:37:01.436 (loader): File "Blink.ino.hex". 13540 bytes, 1% used
12:37:01.441 (loader): set background IMG_ONLINE
12:37:01.460 (loader): File "Blink.ino.hex". 13540 bytes, 1% used
12:37:01.466 (loader): elf appears to be for Teensy 4.0 (IMXRT1062) (2031616 bytes)
12:37:01.466 (loader): elf binary data matches hex file
12:37:01.467 (loader): elf file is for Teensy 4.0 (IMXRT1062)
12:37:01.469 (loader): begin operation
12:37:01.486 (loader): flash, block=0, bs=1024, auto=1
12:37:01.486 (loader):  gauge old value = 0
12:37:01.486 (loader): flash, block=1, bs=1024, auto=1
12:37:01.487 (loader):  gauge old value = 1
12:37:01.487 (loader): flash, block=2, bs=1024, auto=1
12:37:01.487 (loader):  gauge old value = 2
12:37:01.487 (loader): flash, block=3, bs=1024, auto=1
12:37:01.487 (loader):  gauge old value = 3
12:37:01.488 (loader): flash, block=4, bs=1024, auto=1
12:37:01.488 (loader):  gauge old value = 4
12:37:01.493 (loader): flash, block=5, bs=1024, auto=1
12:37:01.494 (loader):  gauge old value = 5
12:37:01.496 (loader): flash, block=6, bs=1024, auto=1
12:37:01.496 (loader):  gauge old value = 6
12:37:01.498 (loader): flash, block=7, bs=1024, auto=1
12:37:01.498 (loader):  gauge old value = 7
12:37:01.500 (loader): flash, block=8, bs=1024, auto=1
12:37:01.501 (loader):  gauge old value = 8
12:37:01.503 (loader): flash, block=9, bs=1024, auto=1
12:37:01.503 (loader):  gauge old value = 9
12:37:01.505 (loader): flash, block=10, bs=1024, auto=1
12:37:01.505 (loader):  gauge old value = 10
12:37:01.507 (loader): flash, block=11, bs=1024, auto=1
12:37:01.507 (loader):  gauge old value = 11
12:37:01.508 (loader): flash, block=12, bs=1024, auto=1
12:37:01.509 (loader):  gauge old value = 12
12:37:01.510 (loader): flash, block=13, bs=1024, auto=1
12:37:01.510 (loader):  gauge old value = 13
12:37:01.519 (loader): sending reboot
12:37:01.519 (loader): begin wait_until_offline
12:37:01.544 (ports 5): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
12:37:01.545 (ports 5): remove: loc=usb:0/140000/0/2
12:37:01.545 (ports 5): usb_remove: usb:0/140000/0/2
12:37:01.545 (ports 5): nothing new, skipping HID & Ports enum
12:37:01.569 (loader): offline, waited 1
12:37:01.569 (loader): end operation, total time = 0.100 seconds
12:37:01.570 (loader): set background IMG_REBOOT_OK
12:37:01.573 (loader): redraw timer set, image 14 to show for 1200 ms
12:37:01.620 (ports 5): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
12:37:01.620 (ports 5): nothing new, skipping HID & Ports enum
12:37:01.673 (loader): HID/win32:  vid:046D pid:C52B ver:1210
12:37:01.673 (loader): HID/win32:  vid:046D pid:C52B ver:1210
12:37:01.673 (loader): HID/win32:  vid:8087 pid:0A1E ver:0200
12:37:01.673 (loader): HID/win32:  vid:8087 pid:0A1E ver:0200
12:37:01.673 (loader): HID/win32:  vid:045E pid:0000 ver:0000
12:37:01.673 (loader): HID/win32:  vid:045E pid:0000 ver:0000
12:37:01.673 (loader): HID/win32:  vid:044E pid:120B ver:0123
12:37:01.673 (loader): HID/win32:  vid:044E pid:120B ver:0123
12:37:01.673 (loader): HID/win32:  vid:046D pid:C52B ver:1210
12:37:01.673 (loader): HID/win32:  vid:046D pid:C52B ver:1210
12:37:01.673 (loader): HID/win32:  vid:046D pid:C52B ver:1210
12:37:01.673 (loader): HID/win32:  vid:046D pid:C52B ver:1210
12:37:01.797 (ports 5): WM_DEVICECHANGE DBT_DEVICEARRIVAL
12:37:01.798 (ports 5): nothing new, skipping HID & Ports enum
12:37:01.831 (ports 5): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
12:37:01.832 (ports 5): nothing new, skipping HID & Ports enum
12:37:02.026 (ports 5): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
12:37:02.027 (ports 5): nothing new, skipping HID & Ports enum
12:37:02.763 (loader): redraw, image 9
12:37:03.156 (ports 5): purge, name=hid#vid_16c0&pid_0478 (Teensy 4.0) Bootloader, loc=usb:0/140000/0/2, age=1.611 sec
12:37:15.695 (ports 5): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
12:37:15.696 (ports 5): nothing new, skipping HID & Ports enum
12:38:08.652 (ports 5): WM_DEVICECHANGE DBT_DEVICEARRIVAL
12:38:08.652 (ports 5): nothing new, skipping HID & Ports enum
12:38:08.885 (ports 5): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
12:38:08.886 (ports 5): nothing new, skipping HID & Ports enum
12:38:21.882 (loader): Verbose Info event
 

Attachments

  • IMG_5441.jpg
    IMG_5441.jpg
    150.4 KB · Views: 68
  • IMG_5443.jpg
    IMG_5443.jpg
    136.6 KB · Views: 111
Every looks like it works - but no blink? It uploads, 15-secs reset seems to work...
(remember after the 15-reset you will not have USB, too! - the T4 is like a new one then - so NO USB)

A dumb question.. is the LED OK? :)

Try to upload the blink from Arduino / Examples. With USB-Type set to "Serial".
 
Thanks Frank - that is a really good point. I checked the output of pin 13 with a scope but didn't check the LED. The LED test fine (and lights) using the continuity function on my DVM.
The Arduino IDE is set for "Teensy 4.0/Serial/600 MHz/Faster"
I just powered the T4 from a 5V bench supply to remove USB power concerns. No change :-(
I also added debug messages in loop() for Serial and Serial1. Nothing ...
 
With Blink running - put the Teensy in the dark - is there even a faint blink on the LED?

Is this right :: Write a sketch with pin #13 as input and then put 3.3V on pin 13 to test the LED?

Try the blink in this post - it will send out Serial Monitor prints as it runs when connected to USB SerMon.

<crossposted> seems most of this was just tried :(
 
Thanks defragster. No LED indication in a very dark room

I'm uncomfortable applying 3V to pin 13 especially since I am pretty sure the sketch isn't running. The I/O should default to tristate after reset but ... I do measure 470 ohms from pin 13 to the LED anode. The DVM in continuity mode lights the LED when the probes go between LED anode and GND so I am pretty sure that section of the PCB is OK

I complied and uploaded your blink variant following your detailed instructions. This time Teensy Loader reported 'erasing' and the red LED comes on for a couple of seconds. No blink and no serial ports show up under Tools>Port:

I ran the same sketch using a T3.6. Complies and uploads fine, blinks and there is entry for a Teensy Port under Ports.
 
Hi Frank - I kinda did that already by sending out a diagnostic message using Serial1 and watching on an oscilloscope doing RS-232 decode. No activity on the TX line. The same sketch worked fine on my T3.6

I'm pretty sure the T4 is stuck in reset or in some other hard fault

Keep the suggestions coming!
 
Sounds like something has gone wrong with the hardware on that board. :( After the restore process completes, the orange LED definitely should blink.
 
@tcottle
What is that shiny oily goop on the Teensy? Remains of flux? Any kind of contact cleaner? WD-40? If so, that could be the cause of the complete board not working any more.
 
It (kinda) lives!!!! Based on Paul's opinion that it was a HW problem I decided to gently attempt to reflow the component side of the PCB using my hot air rework station. That seemed to do the trick. After the PCB cooled down I tried the 15S factory reset. The red LED is dimmer than last night (probably because I violated the max storage temp of the part with my hot air rework ;) ) and Windows 10 reported a bunch of times during the erase. This is new. After the erase, Blink still didn't run. So before I gave up I tried uploading Blink through the Arduino IDE. That worked A serial port also shows up in the IDE and I not longer have to press the program button to upload.

TyCommander ID's the T4 at launch and I could upload blink_fast_Teensy40.hex

So here is the weird part. The 15S factory reset didn't erase the flash and reload Blink. Not sure what it was trying to do but at the end the T4 runs the last sketch that was loaded into it. I tested this twice. Suspecting that my sketch may not be written to flash I power cycled the T4. The last loaded sketch ran. Now here is another weird part. After the power cycle I tried the 15S factory reset again. This time Win 10 did not report except during the initial press of the programming button and at the end of the erase and it now running Blink(!)

So somehow my T4 got into an odd state (and that state may be 'Broken') where the flash erase routine in factory reset doesn't work correctly. I've tried to document its behavior hoping there is enough clues to determine what the root cause is.

Anyway I am back to my original project. I'll never trust this part fully but it does look like it is working well enough for my immediate needs.

I want to thank everyone who replied to this thread!
 
Status
Not open for further replies.
Back
Top