Teensy LC bricked.

Status
Not open for further replies.

yikestone

Member
I have been using Teensy LC for two months without any problems. But now it is neither being recognized by PC nor Linux. Nothing appears in dmesg command in Linux when I connect it.
The problem began when I was compiling and uploading code to it using Arduino IDE. I realized that the build parameters were set for arduino uno. Then during compilation, I changed the build parameters in IDE to teensy LC. (I know I shouldn't have done it. Did it impulsively.) And since then Teensy LC isn't being recognized by PC. Neither as an unknown device.
How can I recover it from this state? I am willing to go to any extremes.
Nothing was connected to Teensy LC during code upload only USB cable.
I have used that code many times successfully.
 
Maybe program was uploaded without USB support. Have you tried building a program like blink and build it for TLC with USB set to Serial. Once the build is done, have you tried pressing the program button? I that does not work try plugging in the Teensy while holding in the program button and then release it. Then see if anything shows up.

I assume you have not cut the VIN/VUSB trace on bottom of Teensy? If you have, are you supplying power to the VIN pin.
 
I have tried all these. VIN VUSB trace is there. Tried uploading after supplying 5v through 5v pin also. I can upload code only after PC detects a USB device on connecting TLC.
 
How can I recover it from this state? I am willing to go to any extremes.

First, reboot your PC. Especially if using pre-10 Windows, there's a driver bug which can really make things very frustrating. Other systems can also get confused. Cold reboot your computer.

Then use the recovery process from this page. Scroll down to "Teensy Not Recognized by Teensy Loader".

https://www.pjrc.com/teensy/troubleshoot.html
 
I have tried almost all the things Google has to offer. And I have tried it on different windows 10 machine, Kali Linux, Ubuntu. The kernel in Linux doesn't even detect any device connected.
 
It's quite possible your hardware has been damaged. I know this may seem like an upload issue, but if nothing is working, it's time to look at whether your hardware is still working at all.

First, if anything other than the USB cable is attached, disconnect it. Many "dead Teensy" have turned out to be something else connected was causing trouble, usually power related.

Using a voltmeter, check the 3.3V power.

Then check the Program and Reset signals. Both should be 3.3V normally. Both should go low when you hold the program button down. Program connects to the button. Reset responding means the MKL02 chip is still alive.
 
How do I know which one is the reset pin? It's directly connected to bootloader chip. It's not marked in schematics or documentation. Could you mark it in an image.
 
Oh, this is Teensy LC. The reset signal isn't easily accessible on this board.

This is a really tough conversation to parse. Everything you've said sounds like your Teensy LC is totally dead.

But the things you've said you did (changing a setting in Arduino) should not have any effect. If Arduino was set to program an Arduino Uno, Arduino would have used AVRDUDE. It wouldn't even try to use Teensy Loader at all, so no communication would have happened with your Teensy. And even if wrong code did upload, you can't overwrite the separate bootloader chip.

Usually the thing that kills a Teensy is over-voltage, either power supply or applied to pins. So I'm going to ask very specifically, what has physically been done with this board? Has it been powered from anything other than the USB cable? Has it been connected to anything else? We get this from time to time, where a dead Teensy seems like it was killed by some software mishap, but then photos or a returned board reveals it's obviously been soldered into some circuit, including its power pins. It's a natural human tendency to falsely conclude some known, specific action taken is the cause of a problem, when in fact some other unknown, unseen event really did the harm, but the problem wasn't discovered until when it's actually used.


@DaQue - the 15 second button press for full erase only works on Teensy 3.5 and 3.6. It's a relatively new feature. Someday the older boards will get this in an update, but for now they don't have it.
 
There is no foul play of over voltage because whatever battery and buck converter i used with TLC, I am using the same things with arduino Nano. And it's working correctly. All the pin levels are at 3.3v.

While uploading code to TLC for the last time, it was connected to USB only.

The problem is that when we upload code to a board, it gets compiled first, then it is uploaded to board. So, I compiled it by setting the board in Tools menu to Arduino Uno. I changed it to Teensy LC during the compilation process.
When the IDE passed arguments to programmer, it saw the build options set to Teensy, so it uploaded the Uno hex file to Teensy.

This is what ACTUALLY happened. I was even able to upload code, compiled for Arduino Leonardo to Nano. Obviously it didn't work but I was able to do it. So, same thing happened with Teensy. You too can try it.

The KL02 chip is working OK. Because when I press the program button, it brings the reset pin of KL26 to low.
I found the reset pin of KL26 through it's documentation.
 
Last edited:
The problem is that when we upload code to a board, it gets compiled first, then it is uploaded to board. So, I compiled it by setting the board in Tools menu to Arduino Uno. I changed it to Teensy LC during the compilation process.

Again this also seams strange to me, as Paul has mentioned the normal Arduinos uses avrdude to program the chips, whereas the Teensy uses Teensy loader, which checks the binary and uploads the program. Also no program stored on the chip should be able to completely screw it up? Unless maybe is there some lock bit that can be set as some location????

Not sure what your quote up above means? We all compile the program first and then upload the binary to teensy. Typically this is all done from the IDE, which when we do the upload command, will generate the hex file and then use Teensy.exe or TyCommander or the like to upload to teensy.

Are you doing something different? What version of Arduino? What version of Teensyduino? Which version of windows?
 
I am using Arduino IDE 1.8.0 and latest Teensyduino. Try this once then you will understand the problem.
Step 1.- connect an Arduino nano/uno to your PC. Set board in Tools menu to Arduino Leonardo and select the port numbers also.
Step 2.- Take any code in Arduino IDE bigger the better. Click on upload button.
Step 3.- As soon as our starts compiling, quickly change the board in Tools menu to Nano/Uno whichever you have actually connected.
Step 4.- Wait and watch the hex file generated for Arduino Leonardo as it gets uploaded to your Nano/Uno.
Just try once. I too thought like you previously.
 
Ok, here is what i did with my teensy LC.
1. select LC in IDE, compile/load blink OK
2. change IDE to use UNO, compile blink (teensy loader notes "unreadable", gratuitous info)
3. change IDE to LC and push program button. does quick upload and LC freezes (no blinking LED)
4. with IDE still in LC, compile and load ... load hangs. push program button. loads ok, blinking
5. LC is still working just fine

using 1.8.1/1.35 on ubuntu
 
Pls can you give me the result of these steps. First set Uno. Compile/load blink. While compiling change to TLC.
Post whether code is uploaded or not.
Next upload blink code normally.
I will be very grateful of you.
 
Pls can you give me the result of these steps. First set Uno. Compile/load blink. While compiling change to TLC.
Post whether code is uploaded or not.
Next upload blink code normally.
I will be very grateful of you.

I did as you requested and it did upload and behaved as I described previously. i'm pretty sure in my step 3, that UNO hex was uploaded to LC, and caused it to freeze (and tty port disappears). Subsequent LC compile/upload hangs in upload, but pushing LC program button allows upload to complete, and all is well.

on your ubuntu box, compile/upload blink for the LC, and when upload hangs then push the LC program button. what happens? (on the teensy loader window, click on Help and then on Verbose info, that should provide some clues)
 
Last edited:
Thanks man. Then I must have pulled the USB plug while the wrong code was being uploaded. Or it is something else.
Ubuntu kernel is not detecting any device when I plug the Teensy into USB. Although the KL02 bootloader chip is working. But the main chip KL26 is not. I think some wrong bit has been set in the KL26.
 
when the LC is in its hung state, it's likely ubuntu will not see it, but on your ubuntu box, compile/upload blink for the LC, and when upload hangs then push the LC program button. what happens? (on the teensy loader window, click on Help and then on Verbose info, that should provide some clues)
 
Status
Not open for further replies.
Back
Top