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

Thread: Invalid library found???

  1. #1
    Member
    Join Date
    Dec 2021
    Location
    Las Vegas, NV
    Posts
    30

    Invalid library found???

    In attempting to upload a sketch to Teensy 4.1, I received the following 'error' message during the upload:

    Invalid library found in C:\Program Files (x86)\Arduino\libraries\TeensyControls: no headers files (.h) found in C:\Program Files (x86)\Arduino\libraries\TeensyControls

    I'm using WIRE.H and CENTIPEDE.H in my sketch.

    Judging by this error, I'm guessing that there is some type of '.h' file missing in the Teensy Controls library...yet I've downloaded the 'TeensyControls X-Plane Plugin 1.0' from the PJRC website.

    What am I missing here?

    Thanks so very much for your help.

    Jay

  2. #2
    Senior Member BriComp's Avatar
    Join Date
    Apr 2014
    Location
    Cheltenham, UK
    Posts
    715
    Show your software as per the forum rules.

  3. #3
    Member
    Join Date
    Dec 2021
    Location
    Las Vegas, NV
    Posts
    30
    Show my software?
    Huh?

  4. #4
    Senior Member BriComp's Avatar
    Join Date
    Apr 2014
    Location
    Cheltenham, UK
    Posts
    715
    Please Post Code and Details In Your Question!
    Please follow the forum rules if you want help!

  5. #5
    Member
    Join Date
    Dec 2021
    Location
    Las Vegas, NV
    Posts
    30
    With all due respect, I'm seeing other posts in this forum where members have not posted their codes/sketches and honestly, I do not understand what seeing an entire sketch here will do.

    But, since you insist....
    Code:
    //#include <i2c_t3.h>
    #include <Wire.h>
    #include <Centipede.h>
    
    Centipede CS;
    //Transponder Inputs
    const int digit1A = 55;
    const int digit1B = 54;
    const int digit1C = 53;
    const int digit2A = 52;
    const int digit2B = 51;
    const int digit2C = 50;
    const int digit3A = 49;
    const int digit3B = 48;
    const int digit3C = 56;
    const int digit4A = 57;
    const int digit4B = 58;
    const int digit4C = 59;
    const int ident = 60;
    const int xpdrON = 61;
    
    //NAV1 inputs all CS inputs
    const int tensA = 2;
    const int unitsA = 12;
    const int unitsB = 3;
    const int unitsC = 11;
    const int unitsD = 4;
    const int unitsE = 10;
    const int pointTensA = 5;
    const int pointTensB = 9;
    const int pointTensC = 6;
    const int pointTensD = 8;
    const int pointTensE = 7;
    const int pointHundredsA = 24; //Teensy Input
    
    //NAV2 inputs all Teensy inputs
    const int tens2A = 7;
    const int units2A = 8;
    const int units2B = 9;
    const int units2C = 10;
    const int units2D = 11;
    const int units2E = 12;
    const int pointTens2A = 1;
    const int pointTens2B = 2;
    const int pointTens2C = 3;
    const int pointTens2D = 4;
    const int pointTens2E = 5;
    const int pointHundreds2A = 6;
    //COM 1 inputs CS inputs
    const int CtensA = 47;
    const int CtensB = 32;
    const int CtensC = 46;
    const int CunitsA = 45;
    const int CunitsB = 34;
    const int CunitsC = 44;
    const int CunitsD = 35;
    const int CunitsE = 43;
    const int CpointTensA = 36;
    const int CpointTensB = 42;
    const int CpointTensC = 37;
    const int CpointTensD = 41;
    const int CpointTensE = 38;
    const int CpointHundredsA = 40;
    const int CpointHundredsB = 39;
    const int CpointHundredsC = 31;
    const int CpointHundredsD = 16;
    const int CpointHundredsE = 30;
    //COM 2 inputs CS inputs
    const int C2tensA = 17;
    const int C2tensB = 29;
    const int C2tensC = 18;
    const int C2unitsA = 28;
    const int C2unitsB = 19;
    const int C2unitsC = 27;
    const int C2unitsD = 20;
    const int C2unitsE = 26;
    const int C2pointTensA = 21;
    const int C2pointTensB = 25;
    const int C2pointTensC = 22;
    const int C2pointTensD = 24;
    const int C2pointTensE = 23;
    const int C2pointHundredsA = 15;
    const int C2pointHundredsB = 0;
    const int C2pointHundredsC = 14;
    const int C2pointHundredsD = 1;
    const int C2pointHundredsE = 13;
    
    FlightSimInteger NavFrequencyHz;
    FlightSimInteger Nav2FrequencyHz;
    FlightSimInteger ComFrequencyHz;
    FlightSimInteger Com2FrequencyHz;
    FlightSimInteger xpdrCode;
    FlightSimInteger xpdrMode;
    FlightSimInteger xpdrIdent;
    
    //Build NAV2 Frequency
    int get2Frequency()
    {
      int freq = 10000;
    
      //Deal with tens
      if (!digitalRead(tens2A))
        freq += 1000;
    
      //Deal with units.
      //First, get our switch states and store them.
      bool ua = !digitalRead(units2A);
      bool ub = !digitalRead(units2B);
      bool uc = !digitalRead(units2C);
      bool ud = !digitalRead(units2D);
      bool ue = !digitalRead(units2E);
    
      //Lets check that exactly two switches are on.
      //if ((ua + ub + uc + ud + ue) != 2)
      //return -1;
    
      if (ua)
      {
        if (ub)
          freq += 100;
        if (uc)
          freq += 200;
        if (ud)
          freq += 800;
        if (ue)
          freq += 900;
      }
    
      if (ub)
      {
        if (uc)
          freq += 300;
        if (ud)
          freq += 400;
        if (ue)
          freq += 000;      //This doesn't do anything, but is here for completeness.
      }
    
      if (uc)
      {
        if (ud)
          freq += 500;
        if (ue)
          freq += 600;
      }
    
      if (ud)
      {
        if (ue)
          freq += 700;
      }
    
      //Deal with point units in exactly the same way.
      bool pua = !digitalRead(pointTens2A);
      bool pub = !digitalRead(pointTens2B);
      bool puc = !digitalRead(pointTens2C);
      bool pud = !digitalRead(pointTens2D);
      bool pue = !digitalRead(pointTens2E);
    
    
      if (pua)
      {
        if (pub)
          freq += 10;
        if (puc)
          freq += 20;
        if (pud)
          freq += 80;
        if (pue)
          freq += 90;
      }
    
      if (pub)
      {
        if (puc)
          freq += 30;
        if (pud)
          freq += 40;
        if (pue)
          freq += 00;      //This doesn't do anything, but is here for completeness.
      }
    
      if (puc)
      {
        if (pud)
          freq += 50;
        if (pue)
          freq += 60;
      }
    
      if (pud)
      {
        if (pue)
          freq += 70;
      }
      //Last of all, your point hundreds.
      if (!digitalRead(pointHundreds2A))
        freq += 5;
    
    
      return freq;
    }
    // Get NAV1 Frequency
    int getFrequency()
    {
      int freq = 10000;
    
      //Deal with tens
      if (!CS.digitalRead(tensA))
        freq += 1000;
    
      //Deal with units.
      //First, get our switch states and store them.
      bool ua = !CS.digitalRead(unitsA);
      bool ub = !CS.digitalRead(unitsB);
      bool uc = !CS.digitalRead(unitsC);
      bool ud = !CS.digitalRead(unitsD);
      bool ue = !CS.digitalRead(unitsE);
    
      if (ua)
      {
        if (ub)
          freq += 100;
        if (uc)
          freq += 200;
        if (ud)
          freq += 800;
        if (ue)
          freq += 900;
      }
    
      if (ub)
      {
        if (uc)
          freq += 300;
        if (ud)
          freq += 400;
        if (ue)
          freq += 000;      //This doesn't do anything, but is here for completeness.
      }
    
      if (uc)
      {
        if (ud)
          freq += 500;
        if (ue)
          freq += 600;
      }
    
      if (ud)
      {
        if (ue)
          freq += 700;
      }
    
      //Deal with point units in exactly the same way.
      bool pua = !CS.digitalRead(pointTensA);
      bool pub = !CS.digitalRead(pointTensB);
      bool puc = !CS.digitalRead(pointTensC);
      bool pud = !CS.digitalRead(pointTensD);
      bool pue = !CS.digitalRead(pointTensE);
    
      if (pua)
      {
        if (pub)
          freq += 10;
        if (puc)
          freq += 20;
        if (pud)
          freq += 80;
        if (pue)
          freq += 90;
      }
    
      if (pub)
      {
        if (puc)
          freq += 30;
        if (pud)
          freq += 40;
        if (pue)
          freq += 00;      //This doesn't do anything, but is here for completeness.
      }
    
      if (puc)
      {
        if (pud)
          freq += 50;
        if (pue)
          freq += 60;
      }
    
      if (pud)
      {
        if (pue)
          freq += 70;
      }
    
    
      //Last of all, your point hundreds.
      if (!digitalRead(pointHundredsA))
        freq += 5;
    
    
      return freq;
    }
    
    // Build Com 1 Frequency
    int getCFrequency()
    {
      int cfreq = 10000;
    
      // Get switch states and store for ctens
      bool cta = !CS.digitalRead(CtensA);
      bool ctb = !CS.digitalRead(CtensB);
      bool ctc = !CS.digitalRead(CtensC);
    
      //Deal with ctens
      if (cta)
      {
        if (ctb)
          cfreq += 1000;
        if (ctc)
          cfreq += 2000;
      }
      if (ctb)
      {
        if (ctc)
          cfreq += 3000;
      }
    
      //Deal with units.
      //First, get our switch states and store them.
      bool cua = !CS.digitalRead(CunitsA);
      bool cub = !CS.digitalRead(CunitsB);
      bool cuc = !CS.digitalRead(CunitsC);
      bool cud = !CS.digitalRead(CunitsD);
      bool cue = !CS.digitalRead(CunitsE);
    
      //Lets check that exactly two switches are on.
    
      if (cua)
      {
        if (cub)
          cfreq += 100;
        if (cuc)
          cfreq += 200;
        if (cud)
          cfreq += 800;
        if (cue)
          cfreq += 900;
      }
    
      if (cub)
      {
        if (cuc)
          cfreq += 300;
        if (cud)
          cfreq += 400;
        if (cue)
          cfreq += 000;      //This doesn't do anything, but is here for completeness.
      }
    
      if (cuc)
      {
        if (cud)
          cfreq += 500;
        if (cue)
          cfreq += 600;
      }
    
      if (cud)
      {
        if (cue)
          cfreq += 700;
      }
    
      //Deal with point units in exactly the same way.
      bool cpua = !CS.digitalRead(CpointTensA);
      bool cpub = !CS.digitalRead(CpointTensB);
      bool cpuc = !CS.digitalRead(CpointTensC);
      bool cpud = !CS.digitalRead(CpointTensD);
      bool cpue = !CS.digitalRead(CpointTensE);
    
      //Lets check that exactly two switches are on.
    
      if (cpua)
      {
        if (cpub)
          cfreq += 10;
        if (cpuc)
          cfreq += 20;
        if (cpud)
          cfreq += 80;
        if (cpue)
          cfreq += 90;
      }
    
      if (cpub)
      {
        if (cpuc)
          cfreq += 30;
        if (cpud)
          cfreq += 40;
        if (cpue)
          cfreq += 00;      //This doesn't do anything, but is here for completeness.
      }
    
      if (cpuc)
      {
        if (cpud)
          cfreq += 50;
        if (cpue)
          cfreq += 60;
      }
    
      if (cpud)
      {
        if (cpue)
          cfreq += 70;
      }
    
    
      //Last of all, your point hundreds.
      bool cpha = !CS.digitalRead(CpointHundredsA);
      bool cphb = !CS.digitalRead(CpointHundredsB);
      bool cphc = !CS.digitalRead(CpointHundredsC);
      bool cphd = !CS.digitalRead(CpointHundredsD);
      bool cphe = !CS.digitalRead(CpointHundredsE);
    
      //Lets check that exactly two switches are on.
    
      if (cphc)
      {
        if (cpha)
          cfreq += 2;
        if (cphd)
          cfreq += 5;
      }
      if (cphe)
      {
        if (cphb)
          cfreq += 0;
        if (cphd)
          cfreq += 7;
      }
    
    
      return cfreq;
    }
    //Build COM2 Frequency
    int getC2Frequency()
    {
      int cfreq = 10000;
    
      // Get switch states and store for ctens
      bool cta = !CS.digitalRead(C2tensA);
      bool ctb = !CS.digitalRead(C2tensB);
      bool ctc = !CS.digitalRead(C2tensC);
    
      //Deal with ctens
      if (cta)
      {
        if (ctb)
          cfreq += 1000;
        if (ctc)
          cfreq += 2000;
      }
      if (ctb)
      {
        if (ctc)
          cfreq += 3000;
      }
    
      //Deal with units.
      //First, get our switch states and store them.
      bool cua = !CS.digitalRead(C2unitsA);
      bool cub = !CS.digitalRead(C2unitsB);
      bool cuc = !CS.digitalRead(C2unitsC);
      bool cud = !CS.digitalRead(C2unitsD);
      bool cue = !CS.digitalRead(C2unitsE);
    
      //Lets check that exactly two switches are on.
    
      if (cua)
      {
        if (cub)
          cfreq += 100;
        if (cuc)
          cfreq += 200;
        if (cud)
          cfreq += 800;
        if (cue)
          cfreq += 900;
      }
    
      if (cub)
      {
        if (cuc)
          cfreq += 300;
        if (cud)
          cfreq += 400;
        if (cue)
          cfreq += 000;      //This doesn't do anything, but is here for completeness.
      }
    
      if (cuc)
      {
        if (cud)
          cfreq += 500;
        if (cue)
          cfreq += 600;
      }
    
      if (cud)
      {
        if (cue)
          cfreq += 700;
      }
    
      //Deal with point units in exactly the same way.
      bool cpua = !CS.digitalRead(C2pointTensA);
      bool cpub = !CS.digitalRead(C2pointTensB);
      bool cpuc = !CS.digitalRead(C2pointTensC);
      bool cpud = !CS.digitalRead(C2pointTensD);
      bool cpue = !CS.digitalRead(C2pointTensE);
    
      //Lets check that exactly two switches are on.
    
      if (cpua)
      {
        if (cpub)
          cfreq += 10;
        if (cpuc)
          cfreq += 20;
        if (cpud)
          cfreq += 80;
        if (cpue)
          cfreq += 90;
      }
    
      if (cpub)
      {
        if (cpuc)
          cfreq += 30;
        if (cpud)
          cfreq += 40;
        if (cpue)
          cfreq += 00;      //This doesn't do anything, but is here for completeness.
      }
    
      if (cpuc)
      {
        if (cpud)
          cfreq += 50;
        if (cpue)
          cfreq += 60;
      }
    
      if (cpud)
      {
        if (cpue)
          cfreq += 70;
      }
    
    
      //Last of all, your point hundreds.
      bool cpha = !CS.digitalRead(C2pointHundredsA);
      bool cphb = !CS.digitalRead(C2pointHundredsB);
      bool cphc = !CS.digitalRead(C2pointHundredsC);
      bool cphd = !CS.digitalRead(C2pointHundredsD);
      bool cphe = !CS.digitalRead(C2pointHundredsE);
    
      //Lets check that exactly two switches are on.
    
      if (cphc)
      {
        if (cpha)
          cfreq += 2;
        if (cphd)
          cfreq += 5;
      }
      if (cphe)
      {
        if (cphb)
          cfreq += 0;
        if (cphd)
          cfreq += 7;
      }
    
      return cfreq;
    }
    
    //Function to build the ATC code
    int getAtcFreq()
    {
      int freq = 0;
      int digit1 = 0;
      int digit2 = 0;
      int digit3 = 0;
      int digit4 = 0;
    
      bool a1  = !CS.digitalRead(digit1A);
      bool b1  = !CS.digitalRead(digit1B);
      bool c1  = !CS.digitalRead(digit1C);
      digit1 = ((a1 + b1 * 2 + c1 * 4) * 1000);
    
      bool a2  = !CS.digitalRead(digit2A);
      bool b2  = !CS.digitalRead(digit2B);
      bool c2  = !CS.digitalRead(digit2C);
      digit2 = ((a2 + b2 * 2 + c2 * 4) * 100);
    
      bool a3  = !CS.digitalRead(digit3A);
      bool b3  = !CS.digitalRead(digit3B);
      bool c3  = !CS.digitalRead(digit3C);
      digit3 = ((a3 + b3 * 2 + c3 * 4) * 10);
    
      bool a4  = !CS.digitalRead(digit4A);
      bool b4  = !CS.digitalRead(digit4B);
      bool c4  = !CS.digitalRead(digit4C);
      digit4 = (a4 + b4 * 2 + c4 * 4);
    
      freq = (digit1 + digit2 + digit3 + digit4);
      return freq;
    }
    
    long previousMillis = 0;
    long interval = 1000;
    
    void setup()
    {
      Wire.begin();
      CS.initialize();
      //Serial.begin(38400);
    
      CS.portMode(0, 0b1111111111111111); // 0 = output, 1 = input
      CS.portPullup(0, 0b1111111111111111); // 0 = no pullup, 1 = pullup
      CS.portMode(1, 0b1111111111111111); // 0 = output, 1 = input
      CS.portPullup(1, 0b1111111111111111); // 0 = no pullup, 1 = pullup
      CS.portMode(2, 0b1111111111111111); // 0 = output, 1 = input
      CS.portPullup(2, 0b1111111111111111); // 0 = no pullup, 1 = pullup
      CS.portMode(3, 0b1111111111111111); // 0 = output, 1 = input
      CS.portPullup(3, 0b1111111111111111); // 0 = no pullup, 1 = pullup
    
      pinMode(tens2A, INPUT_PULLUP);
      pinMode(units2A, INPUT_PULLUP);
      pinMode(units2B, INPUT_PULLUP);
      pinMode(units2C, INPUT_PULLUP);
      pinMode(units2D, INPUT_PULLUP);
      pinMode(units2E, INPUT_PULLUP);
      pinMode(pointTens2A, INPUT_PULLUP);
      pinMode(pointTens2B, INPUT_PULLUP);
      pinMode(pointTens2C, INPUT_PULLUP);
      pinMode(pointTens2D, INPUT_PULLUP);
      pinMode(pointTens2E, INPUT_PULLUP);
      pinMode(pointHundredsA, INPUT_PULLUP);
      pinMode(pointHundreds2A, INPUT_PULLUP);
    
      NavFrequencyHz  = XPlaneRef("sim/cockpit2/radios/actuators/nav1_frequency_hz");
      ComFrequencyHz  = XPlaneRef("sim/cockpit2/radios/actuators/com1_frequency_hz");
      Nav2FrequencyHz = XPlaneRef("sim/cockpit2/radios/actuators/nav2_frequency_hz");
      Com2FrequencyHz = XPlaneRef("sim/cockpit2/radios/actuators/com2_frequency_hz");
      xpdrCode        = XPlaneRef("sim/cockpit2/radios/actuators/transponder_code");
      xpdrMode        = XPlaneRef("sim/cockpit2/radios/actuators/transponder_mode"); //(off=0,stdby=1,on=2,test=3)"
      xpdrIdent       = XPlaneRef("sim/cockpit/radios/transponder_id");
    }
    void loop()
    {
      FlightSim.update();
      bool needsUpdate = false;
      // wait a bit before next read - only to slow down serial output
      //  get rid of the next two statements after debugging
      delay(500);
      //  Serial.print("reading...");
      //
      int newNavFrequencyHz = getFrequency();
      int newComFrequencyHz = getCFrequency();
      int newNav2FrequencyHz = get2Frequency();
      int newCom2FrequencyHz = getC2Frequency();
      int newAtcFreq = getAtcFreq();
      
      // get rid of the next statement after debugging
      //  Serial.println("done");
    
      if (newNavFrequencyHz != NavFrequencyHz) {
        //    Serial.print("New NAV1 freq: ");
        //   Serial.println(newNavFrequencyHz);
        NavFrequencyHz = newNavFrequencyHz;
        needsUpdate = true;
      }
    
      if (newComFrequencyHz != ComFrequencyHz) {
        //    Serial.print("New COM1 freq: ");
        //    Serial.println(newComFrequencyHz);
        ComFrequencyHz = newComFrequencyHz;
        needsUpdate = true;
      }
      if (newNav2FrequencyHz != Nav2FrequencyHz) {
        //    Serial.print("New NAV2 freq: ");
        //    Serial.println(newNav2FrequencyHz);
        Nav2FrequencyHz = newNav2FrequencyHz;
        needsUpdate = true;
      }
    
    
      if (newCom2FrequencyHz != Com2FrequencyHz) {
        //    Serial.print("New COM2 freq: ");
        //    Serial.println(newCom2FrequencyHz);
        Com2FrequencyHz = newCom2FrequencyHz;
        needsUpdate = true;
      }
    
    
      if (newAtcFreq != xpdrCode) {
        //    Serial.print("New XPDR code: ");
        //    Serial.println(newAtcFreq);
        xpdrCode = newAtcFreq;
        needsUpdate = true;
      }
    
    
      if (needsUpdate) {
        FlightSim.update();
      }
    
      if (CS.digitalRead(61) == HIGH) {
        xpdrMode = 1;
      } else {
        xpdrMode = 2;
      }
    }
    
    //void loop()
    //{
    //  FlightSim.update();
    //
    //  unsigned long currentMillis = millis();
    //
    //  if (currentMillis - previousMillis > interval) {
    //
    //    previousMillis = currentMillis;
    //    NavFrequencyHz = getFrequency();
    //    ComFrequencyHz = getCFrequency();
    //    Nav2FrequencyHz = get2Frequency();
    //    Com2FrequencyHz = getC2Frequency();
    //    xpdrCode = getAtcFreq();
    //  }
    //Serial.println(NavFrequencyHz);
    //Serial.println(ComFrequencyHz);
    //Serial.println(Nav2FrequencyHz);
    //Serial.println(Com2FrequencyHz);
    //Serial.println( xpdrCode);
    
    
    
    //  if (CS.digitalRead(61) == HIGH) {
    //    xpdrMode = 1;
    //  } else {
    //    xpdrMode = 2;
    //  }
    
    //}
    Last edited by defragster; 01-15-2022 at 07:47 PM. Reason: use # CODE marking

  6. #6
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    15,882
    Respect is always appreciated. When not enough info is given to see a path to the answer seeing the code can be essential.

    Never used but this shows up: github.com/PaulStoffregen/X-Plane_Plugin

    Presenting a path to an external library in question eliminates questions as well.

    On GITHUB that does contain a header file. Was that whole library/repository included in the indicated folder "Arduino\libraries\TeensyControls"?
    Code:
    C:\Program Files (x86)\Arduino\libraries\TeensyControls: no headers files (.h) found in C:\Program Files (x86)\Arduino\libraries\TeensyControls
    Looking at the code there is no: #include <TeensyControls.h>

    And somehow that is what the IDE is missing.

    If the IDE was not closed after copying it into place it may not find it until the IDE is closed and reopened.

  7. #7
    Member
    Join Date
    Dec 2021
    Location
    Las Vegas, NV
    Posts
    30
    I had found that github.com file a short while ago and loaded the .h and .c into the TeensyControl folder in my Arduino Library.

    No drama needed.

    Thank you very kindly for your reply.

  8. #8
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    26,228
    TeensyControls is an X-Plane plugin. It runs on your Mac or PC, not on Teensy.

    Then for the Teensy side, you click Tools > USB Type and select Flight Sim Controls. There is no additional library to download. It's built into Teensyduino's core library. You just turn it on using that menu.

    This feature allows you to create special variables in your program which get linked to "dataref" variables inside X-Plane. As the variable changes due to the flight simulator, your code on Teensy can see the changes. Likewise, if Teensy writes to its copy of the variable, the dataref variable inside X-Plane gets changed. Detailed documentation can be found here:

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

    Maybe you downloaded the code which was meant to be installed on X-Plane to run on your computer, but you extracted the ZIP file into C:\Program Files (x86)\Arduino\libraries based on a mistaken assumption it was code Arduino would need to run on Teensy? If so, I wonder how any of this could possibly work on X-Plane? You need to install that stuff properly on your PC, so the "Plugins" menu in X-Plane has "TeensyControls". If you don't see TeensyControls inside the Plugins menu, then none of this can work and the special variables on Teensy won't sync with the datarefs inside X-Plane.

    Newer versions of Arduino will complain if you create library folders and put stuff into them with isn't Arduino libraries. I'm pretty sure that's what went wrong here, at least on the technical side....


    Generally speaking, on this forum when you ask for help with some sort of error, we expect you to show us enough info. That's why we have the "Forum Rule" in red at the top of every page. Many people disregard this rule, and the net result is we can't help nearly as well, and often a lot of time is wasted with messages that could have just offered a good solution quickly, but instead end up involving a lot of guesswork or asking for more detail. Ideally we would all have infinite patience for people who ask for help without giving clear info about what they're doing and what code they're running. In practice, things don't always go that smoothly. @EAL727Capt - I hope you can understand the rationale for expecting details shown when asking for help solving a problem.

  9. #9
    Member
    Join Date
    Dec 2021
    Location
    Las Vegas, NV
    Posts
    30
    Mr. Stoffregen;

    Thank you for taking time out of your busy day to reply. It is greatly appreciated.

    I had everything properly and correctly downloaded and installed in both X-Plane and Teensyduino.

    As a relative newbie to the world of electronics, interfacing, boards, etc., I have many, many questions and utilize forums such as this for guidance when reference material from a variety of sources does not answer my questions and I'm seeking clarification and further information to advance my education in this newly-found hobby. As such, I find many challenges in fully comprehending many references as they don't often seem to answer the concerns and questions I have. I find most forums to be MORE confusing as I do not speak in such technical terms and couldn't tell you the difference between Vin and Vcc and Vss and the importance of each. In time, I will know and understand and right now, this is not the case. But, this is my issue and no one else's; everyone learns at a different pace. I am a very well-educated man but not on the topic of anything electronics-related.

    For what its worth, I'm discovering that many product support pages require much more additional research and reading, Teensy included, which then leads to more questions. In short, the material I'm finding isn't very clear to a newbie like myself. The bottom line here and I say without angst nor prejudice, I do not speak 'geek.' LOL

    In this case, no, I do not understand the rationale for the need of posting an entire sketch, particularly one that isn't mine and without the original author's permission to post. Here, an answer was provided that did not require burning-up bandwidth and transitioning through more than one (1) bitter feeling by posting and later having corrected by someone other than myself edit my posting. If further details are required to provide an answer or a solution then certainly, additional information and clarification could be required. Here, it was something as simple as missing an .h and/or .c file in a folder. Nothing more, nothing less.

    I find it highly offensive l that I've seen posts throughout this forum where the original poster has asked a question without posting any sketches/codes and has had answers provided and I'm advised I need to post a sketch/code in order to obtain help. Why have rules if they are not always followed by everyone.

    Again, with all possible respect, its your forum and as need be, I will abide by and play by your rules.

    Most respectfully,

    Jay

Posting Permissions

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