I recently purchased a Teensy 4.1 and began using it on Linux at first with Arduino and then PlatformIO. I was using the Teensy to read data from a USB device using the USBHost_t36 library then sending data out the other USB port (the builtin MicroUSB) in a different format. This worked fine when testing on my Linux machine however when I connected my Teensy the target device it stopped working. Upon reconnecting the Teensy to my Linux laptop it was no longer being recognized as a valid USB device.
The following is from: /var/log/syslog
The Teensy was being powered by the MicroUSB port so I probed with a voltmeter and was able to see both 5V and 3.3V indicating that the fuse F1 was intact and that this was likely not an power supply issue. Just to be absolutely sure, I disconnected my Teensy 4.1 and connected a Teensy 3.5 instead using the same cable and the Teensy 3.5 functioned fine.
At this point I preformed the 15 second hard-reset by holding down the programming button and upon completion the Teensy started running the default blinking light program. However, the Teensy still refused to be recognized as a valid USB device and /var/log/syslog continued to display the above message even when I tried to manually enter programming mode. At this point I started to suspect that something might be wrong with the bootloader so I preformed a wireshark capture of the Teensy.
View attachment teensy4.1_problems.zip
The attached wireshark capture was preformed using the following conditions:
1. Ensure nothing is connected to the USB Bus 1.
2. Start a wireshark capture of USB Bus 1 and observe that no traffic is present on the bus.
3. Connect the Teensy 4.1 to USB Bus 1 while holding down the programming button.
4. Release the programming button only after the Teensy 4.1 has power on.
5. Stop the capture once all traffic on USB Bus 1 has stopped.
The following is from: /var/log/syslog
Code:
[13043.483891] usb usb1-port3: Cannot enable. Maybe the USB cable is bad?
[13044.391867] usb usb1-port3: Cannot enable. Maybe the USB cable is bad?
[13044.391967] usb usb1-port3: attempt power cycle
[13045.615817] usb usb1-port3: Cannot enable. Maybe the USB cable is bad?
[13046.515789] usb usb1-port3: Cannot enable. Maybe the USB cable is bad?
[13046.515886] usb usb1-port3: unable to enumerate USB device
The Teensy was being powered by the MicroUSB port so I probed with a voltmeter and was able to see both 5V and 3.3V indicating that the fuse F1 was intact and that this was likely not an power supply issue. Just to be absolutely sure, I disconnected my Teensy 4.1 and connected a Teensy 3.5 instead using the same cable and the Teensy 3.5 functioned fine.
At this point I preformed the 15 second hard-reset by holding down the programming button and upon completion the Teensy started running the default blinking light program. However, the Teensy still refused to be recognized as a valid USB device and /var/log/syslog continued to display the above message even when I tried to manually enter programming mode. At this point I started to suspect that something might be wrong with the bootloader so I preformed a wireshark capture of the Teensy.
View attachment teensy4.1_problems.zip
The attached wireshark capture was preformed using the following conditions:
1. Ensure nothing is connected to the USB Bus 1.
2. Start a wireshark capture of USB Bus 1 and observe that no traffic is present on the bus.
3. Connect the Teensy 4.1 to USB Bus 1 while holding down the programming button.
4. Release the programming button only after the Teensy 4.1 has power on.
5. Stop the capture once all traffic on USB Bus 1 has stopped.