Forum Rule: Always post complete source code & details to reproduce any issue!
Results 1 to 22 of 22

Thread: teensy dead ?!

  1. #1

    teensy dead ?!

    hello , i'm having a lot of troubles lately ...
    this time , my T3.5 is not working . it was working in the past 3 weeks since i started programming with it and yesterday i tried for the first time connecting it with another T3.6 to the computer (windows 10) . my cables are fine cause the T3.6 works well with both cables . but the T3.5 won't respond . i connect it and nothing happens , no sound or sign the something is recognised by the computer. i even tried connecting it to a fresh computer that never had teensy and still no sign/sound when i hook them up . at this point i was sure it is dead - but than i noticed something : when i plug it in there is no response on the screen , but there is voltage , meaning i check with the oscilloscope and it shows 5v on the left bottom pin and 3.3v on the third left pin like it is supposed to.

    what can i do about it ? and whydid it happen ? please

  2. #2
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    21,824
    Nobody can guess why a board died when the only information you tell us is that it no longer works (but still has ok power).

    Have you tried the recovery process where you hold the button while plugging in the cable, with the Teensy Loader program running on your PC? If the problem is simply bad code preventing the USB from working, that will let you recover and use Teensy Loader to program different code. Be sure to turn off Auto mode, so it doesn't immediately reprogram the board with the same bad code.

    It's also quite possible your hardware was damaged. Even with good info, like schematics and photos of actual wiring, guessing what went wrong can be difficult. But without any info, nobody can even begin to guess!

  3. #3
    i'm not sure what further informtaion your talking about -
    i can say its not a programming issue because the teensy ran the program few times before .
    about wiring , there's not much , i just connected the teensy to the usb , nothing more .
    the "hints" are that i just tried for the first time to operate with TyCommander. i connected one teensy and integrated and it was good , than tried connecting the other and it didn't respond . from than on i tried replacing cables - both worked with the working teensy and didn't with the "dead" one (assuming its dead but this i don't know) . tried connecting it on a "new" computer , still no response .

  4. #4
    after i tried to long press it as you said , i received a notification :
    one of the devices has malfunctioned . USB not recognized .

    any clues so far ?

  5. #5
    Senior Member
    Join Date
    Apr 2013
    Posts
    1,926
    Given the information the best guess is that somehow the teensy is not getting good USB communications, which should be pretty hard to achieve in software since the long press process will flush the Teensy and load a fresh copy of the bootloader to it. Additional information that helps people in cases like this:

    The actual code being run, or at least which functions/libraries it uses
    Schematic and/or photo of your setup - even if nothing connected makes it really clear nothing means nothing.
    Any history for the Teensy (had code loaded to it, what was that used for?) - key here is what voltages got near it, including potential ESD https://en.wikipedia.org/wiki/Electrostatic_discharge
    What if anything shows up under device manager or equivilant on your PC - not above suggests probably nothing but information on what your PC thinks is connected.

    Things that can provably kill a teensy are:
    Voltages higher than 5.5V or lower then 0V on the supply
    Excessive current through pins, including inputs accidently configured as outputs or by touching something conductive on the bench
    Voltages higher or lower than tolerated on the pins, including ESD from handling (teensys are tough but still possible to kill by touching if you are charged up)
    Code that sets write protect bits (should not be possible unless you edit a config file)
    Code that self modifies flash memory

  6. #6
    no chance it was caused by the installation and integration with TyCommander?

  7. #7
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    21,824
    On the "dead" board, is there any indication it is still running the last program you upload to it?

    With a brand new board, we know the LED is supposed to blink. In this case, we have no knowledge of what your program actually does.

    When you write words "it didn't respond" and "still no response", we do not know exactly what the "response" you are looking for may be. Maybe you mean the sound Windows makes when a USB device is connected? Maybe you are looking at the Windows Device Manager? Maybe you are clicking the Tools > Ports menu? Maybe you are watching the Teensy Loader window. But the words "no response" are vague. These words communicate very little information. You have asked many questions on this forum, and we keep trying to help you, but you make this very difficult by giving us these vague words that do not say specifically what you are really doing.

    Likewise, if you are connecting Teensy to other electronics, we need to know the details to help you. A photo is best. If you withhold detailed information, you are preventing us from helping you. Can you understand this?

  8. #8
    i understand . i apologize for asking such vague questions . it comes from very poor knowledge in the computer field and also poor english skill .

    the program that i ran last on this teensy was a program i wrote and on the other teensy it works just fine . here it is :
    Code:
    #define SIMPLEFIFO_LARGE
    
    #include <SimpleFIFO.h>
    
    // PTA (12 13) = [3 4] // ready signal and XS2
    // PTB (0 1 2 3) = [16 17 19 18] // For address bits
    // PTC (0 1 2 3 4 5 6 7 8 9 10 11) = [15 22 23 9 10 13 11 12 35 36 37 38] // For digital inputs from NI cards
    // PTD (0 1 2 3 4 5 6 7 15) = [2 14 7 8 6 20 21 5 54] //for digital output to plexon and one strobe signal
    // PTE (25) = [34] // manual reward
    
    byte inputPins[] = {3, 4, 16, 17, 19, 18, 15, 22, 23, 9, 10, 13, 11, 12, 35, 36, 37, 38};
    byte outputPins[] = {2, 14, 7, 8, 6, 20, 21, 5, 54, 34};
    int Dready = 3 ;// data ready pin number
    int isCharOn = 0; //set to 1 when fifo bit was sent , to 0 when port cleared
    int rewardON ;
    int er = 0;
    elapsedMicros charTime;
    elapsedMillis rewardTime;
    unsigned int onDur = 25;
    unsigned long tPeriod = 20000;
    unsigned long timeOut = 100;
    IntervalTimer myTimerOne;
    IntervalTimer myTimerTwo;
    IntervalTimer myTimerThree;
    
    SimpleFIFO <long, 255> sFIFO;
    
    void strobe(void) {
      if (!digitalReadFast(Dready)&& GPIOB_PDIR == 7) {
    
        sFIFO.enqueue(GPIOC_PDIR & 0xFF);
      }
    }
    
    void charOut() {
      if (sFIFO.count() > 0){
        if (GPIOD_PDOR == 0x00) {
          GPIOD_PDOR = sFIFO.dequeue()|0x8000;
          isCharOn=1;
          charTime = 0;
        }
      }
      else {
        sFIFO.flush();
      }
    }
    
    void ManualReward(void) {
      if (Serial.available()) {
        er = Serial.read();
        switch (er) {
            case 49: // reward command received
              rewardON = 25;
              GPIOE_PDOR= 0x2000000;
              rewardTime = 0;//start counting until stop
              break;
            case 50:
              rewardON = 2500;
              GPIOE_PDOR= 0x2000000;
              rewardTime = 0;
              break;
        }
       }
     }
    
     
    void setup() {
      Serial.begin(9600);
      while(!Serial);
      for (int pinnum = 0; pinnum < 18; pinnum++) {
         //pinMode(inputPins[pinnum], INPUT_PULLDOWN);
         pinMode(inputPins[pinnum], INPUT);
      }
      for (int pinnum = 0; pinnum < 10; pinnum++) {
         pinMode(outputPins[pinnum], OUTPUT);
      }
      myTimerOne.priority(0);
      myTimerOne.begin(strobe,1);
      myTimerTwo.priority(1);
      myTimerTwo.begin(charOut,100000);
      myTimerThree.priority(16);
      myTimerThree.begin(ManualReward,10000);
      sFIFO.flush();
      
    }
    
    void loop() {
      if (isCharOn == 1 && charTime > onDur) {
        //Serial.print(char(GPIOD_PDOR & 0xFF));
        GPIOD_PDOR = 0x00;
        isCharOn = 0;
        charOut();
      }
      if ( GPIOE_PDOR>>25 && rewardTime > rewardON) {//if the reward output is being sent for the input time
        //digitalWriteFast(34,LOW);
        GPIOE_PDOR = 0x0;//stop reward
          }
    
    }
    when i say no response - i mean no response . the computer doesn't blink,make a sound of new connection , notification popping - nothing.
    when i long pressed it for 3-5 seconds , i got a notification on the bottom right windows screen saying it is not recognizing the device , and that it has a malfunction .
    i tried it again now , this time not even that notification. after i long press it there is just a low sound 'ta du' . hope its not so vague

    again i understand the frustration and appreciate the effort to help

    link to picture:
    https://photos.app.goo.gl/eQOgbwTSa2dc6Ngf1

  9. #9
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    21,824
    Good. That is much better. The message saying a malfunction is a response!

    First, run Arduino, open the LED blink example and click Verify, so Teensy Loader appears. Make sure it is visible on your screen. Turn off the "Auto" mode.

    Try pressing Teensy's button for 15 seconds, to cause a full chip erase. You will need a timer or clock with seconds. Pressing for only 3 to 5 seconds is not enough. Pressing for TOO LONG is also bad. More than 17 seconds will not work. The time holding the button must be very close to exactly 15 seconds. Use a timer or clock so you can get the time of the button press at exactly 15 seconds.

    When you release the button, after holding it for exactly 15 seconds, hopefully Teensy Loader will respond.

  10. #10
    i click verify and teensy loader doesn't appear , perhaps its because i modified the computer to work with TyCommander ?


    also , i notice on the arduino window , there is no COM (teensy) . still not sure how to reconnect teesny uploader
    Last edited by gony; 10-18-2017 at 01:35 PM.

  11. #11
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    21,824
    Oh, I see. Well, look in Arduino's hardware/tools folder. You should fine teensy.exe in that folder. Just click it to run Teensy Loader manually.

  12. #12
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    21,824
    Or, you can download a stand-alone copy of Teensy Loader here:

    https://www.pjrc.com/teensy/loader_win10.html

  13. #13
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    21,824
    Quote Originally Posted by gony View Post
    there is no COM (teensy) . still not sure how to reconnect teesny uploader
    Follow the instructions I wrote in message #9. You only need the Teensy Loader window on your screen, with Auto mode turned off.

    DO NOT use the Arduino Tools > Ports menu as your troubleshooting tool. Use Teensy Loader, as I tried to explain in these instructions.

    In case it wasn't clear, YOU MUST USE A TIMER OR CLOCK to time the button press, so you hold the button down for **EXACTLY** 15 seconds. Less than 13 second or more than 17 seconds will not cause the full erase. You must press the button for 15 seconds.

    Again, watch the Teensy Loader window to see the result. Do not use TyCommander, Windows Device Manager, Arduino Ports or other ways. Watch for response in the Teensy Loader window.

    Hopefully these instructions are clear? Can you understand and follow them?

  14. #14
    i opened teensy loader maunally and opened the blink_slow_teensy36.hex file . than pressed the button for 15 seconds (timed it) and got no blink on the built in led . there is a small change that the teensy button now responds everytime i press it , meaning even for a short press i receive the 'ta du' sound but nothing more

  15. #15
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    21,824
    Good. Now you can program the LED blink using Teensy Loader and your Teensy will (probably) be restored to normal.

  16. #16
    what do you mean - "now you can program the led blink using teensy loader" ?

    i have teensy loader open ,not on auto mode , uploaded the slow blink hex file

    i have arduino opened and slow blink code verified

    pressed the button for exactly 15 seconds

    than did a short press , tried clicking the upload button on teensy loader

    after all that still no blink

  17. #17
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    6,631
    FYI - You might also at least temporarily not use TyCommander. You can go into TyCommander Tools menu, Integrate with Arduino... Browse to your place you installed Arduino and the Restore button should be available, which will undo the integration... Then you call follow Paul's instructions from before. (If you have Arduino open you should close it and restart it).

    You might also try some other simple program instead of blink on the real off chance the LED is not working? Something like:
    Code:
    void setup() {
        while (!Serial) ;
        Serial.begin(115200);
    }
    void loop() {
        Serial.println("Hello World");
        delay(1000);
    }
    Now assuming that you see the Teensy loader download program, you could then try opening the Serial monitor and see if the Hello World messages show up...

  18. #18
    ok! i did the restore thing and repeated everything and now i have a blink !

    now , does this mean the reason for the whole drama was TyCommander ? should i install it differently or integrate it differently?

  19. #19
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    6,631
    It usually works fine for me. But if I have problems I sometimes do the restore as I mentioned...

    I use TyCommder most of the time as to have the Serial monitor and upload window the same, plus I do use the software Reboot(Reset) button to restart a program...

  20. #20
    i have an idea for what might went wrong . when i click integrate with arduino , i need to locate the folder in which arduino is . so i browse to computer-> c -> program files -> arduino .
    but inside the arduino folder i don't click the arduino app itself (cause its not shown in the broswer window ) . i just click 'select folder' inside the arduino folder . is that what i'm supposed to do or maybe that causes the problem?

  21. #21
    OK !
    i guess it wasn't the problem cause i just did it again and this time it worked . also i tried connecting both teensies and it worked . so i'm happy and pleased and i must catch a bus home.
    thank you all for your help and patience , i know that i'm terrible in this forum and appreciate your cool temper

  22. #22
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    21,824
    It's perfectly fine to be a beginner. But please do try to be specific with details when you describe a problem. We can help you much more if we have clear information about your problem.

Posting Permissions

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