jrowberg / i2cdevlib

I2C device library collection for AVR/Arduino or other C++-based MCUs
http://www.i2cdevlib.com
3.91k stars 7.53k forks source link

how to use MPU6050 dmp6 without IRQ pin ( ARM Cortex SAM, SAMD, ESP) ? #441

Open dsyleixa opened 5 years ago

dsyleixa commented 5 years ago

hello, how to use MPU6050 dmp6 without an IRQ pin? I don't have free GPIOs on my M4 board any more (Adafruit Feather). Instead of IRQ, I want to repetitively read i2c data in the loop() either if new data are already available or not.

ZHomeSlice commented 5 years ago

The DMP calculates values every 10 milliseconds just set a timer and check for data. if there is no data wait a millisecond. and check again this works well and is a great alternative to using the IRQ. I Like using a blink without delay timer like this one:

static unsigned long _ExactTimer; 
// This timer is accurate and is what I would use
// warning this one can wind up and repeat itself over and over until it catches up
  if ( millis() - _ExactTimer>= (10)) {
    _ExactTimer+= (10);
    // Get DMP
  }

  static unsigned long _AfterTimer;
// This one should work but you will not be as accurate as another code execution time is added to the timer 10ms + code execution time
// warning this one is not accurate and will start the timer after everything else 
  if ((millis() - _AfterTimer) >= (10)) {
    _AfterTimer= millis();

  }
dsyleixa commented 5 years ago

I have my own repetitive loops to call different devices (by i2c, 1-wire, ADC, UART, and SPI), and the MPU is one of them. Each one of those repetitive loops lasts about overall about 15ms (some more, some less). As stated, I have no GPIO pin for IRQ left, and just I know that there must be ways to drive the MPU WITHOUT using IRQ pins (admittedly working e.g. using raw readings and a Kalman lib, not with a dmp lib though).

So how to read that MPU without IRQ pin, using this dmp6 lib?

paynterf commented 4 years ago

I have a non-interrupt example at https://www.fpaynter.com/2019/10/polling-vs-interrupt-with-mpu6050-gy-521-and-arduino/

dsyleixa commented 4 years ago

thank you, I just saw that you are also using the dmp functions! I'll have to re-assemble and re-wire everything anew and then try it out ASAP! where can your libs and files be downloaded, preferably on github?

paynterf commented 4 years ago

dyslexia,

Glad you found it useful. No libraries, nothing on Github, but the complete Arduino program is there in the post ;-).

Frank

On Wed, Oct 9, 2019 at 4:29 AM dsyleixa notifications@github.com wrote:

thank you, I just saw that you are also using the dmp functions! I'll have to re-assemble and re-wire everything anew and then try it out ASAP! where can your libs and files be downloaded, preferably on github?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/jrowberg/i2cdevlib/issues/441?email_source=notifications&email_token=AA6T32ZP7VLC4I2KZ4W5E3TQNWI55A5CNFSM4HL4M752YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAXCVRQ#issuecomment-539896518, or mute the thread https://github.com/notifications/unsubscribe-auth/AA6T323VD7CJO4BPJFRGVM3QNWI55ANCNFSM4HL4M75Q .

-- G.Frank Paynter, PhD OSU ESL Research Scientist (ret) EM Workbench LLC 614 638-6749 (cell)

ZHomeSlice commented 4 years ago

Excellent Example @paynterf , I noticed that you are continually polling The mpu6050 over the i2c bus for the dmpPacketAvailable if you would like you could just wait till about 9 ms passes and then start polling. The DMP triggers every 10 ms like clockwork

example:

    static unsigned long BlinkTimer;
    if ((millis() - BlinkTimer) >= (9)) { // After FIFO read no new data will be there for at least 9 ms
    if (mpu.dmpPacketAvailable())
    {
        global_yawval = GetIMUHeadingDeg(); //retreive the most current yaw value from IMU

        // blink LED to indicate activity
        blinkState = !blinkState;
        digitalWrite(LED_PIN, blinkState);
                BlinkTimer= millis();  // Reset the timer for another 9ms delay
    }
    }

P.S. @dsyleixa This example uses the libraries found here at Jeff Rowberg page so nothing new is needed Link to files

paynterf commented 4 years ago

Thanks for the compliment - but it's a pretty small contribution compared to what you have done! ;-)

I set the loop up this way because all the 'work' occurs in the 'other program stuff' block, which executes every IMU_CHECK_INTERVAL_MSEC milliseconds. The next check for dmp availability may not occur until after several 10's of milliseconds have passed so I didn't think there was any good reason to not check as soon as possible and as often as possible. After all, when the program is 'idling' in the program loop between 'other program stuff' passes, there is nothing else going on anyway.

Regards,

Frank

On Wed, Oct 9, 2019 at 11:04 AM Homer Creutz notifications@github.com wrote:

Excellent Example @paynterf https://github.com/paynterf , I noticed that you are continually polling The mpu6050 over the i2c bus for the dmpPacketAvailable if you would like you could just wait till about 9 ms passes and then start polling. The DMP triggers every 10 ms like clockwork

example:

static unsigned long BlinkTimer;
if ((millis() - BlinkTimer) >= (9)) { // After FIFO read no new data will be there for at least 9 ms

if (mpu.dmpPacketAvailable()) { global_yawval = GetIMUHeadingDeg(); //retreive the most current yaw value from IMU

  // blink LED to indicate activity
  blinkState = !blinkState;
  digitalWrite(LED_PIN, blinkState);
            BlinkTimer= millis();  // Reset the timer for another 9ms delay

} }

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/jrowberg/i2cdevlib/issues/441?email_source=notifications&email_token=AA6T326Y6RPE22MKOLDJ2O3QNXXJRA5CNFSM4HL4M752YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAYGPKI#issuecomment-540043177, or mute the thread https://github.com/notifications/unsubscribe-auth/AA6T32YTIFGGGL6Z6EF4KU3QNXXJRANCNFSM4HL4M75Q .

-- G.Frank Paynter, PhD OSU ESL Research Scientist (ret) EM Workbench LLC 614 638-6749 (cell)

dsyleixa commented 4 years ago

sorry, perhaps I'm too stupid... IIUC, in the code in https://www.fpaynter.com/2019/10/polling-vs-interrupt-with-mpu6050-gy-521-and-arduino/ you are using the lib

#include "elapsedMillis.h"

where can it be found?

exit status 1 elapsedMillis.h: No such file or directory

paynterf commented 4 years ago

dsyleixa,

Those files are right out of Jeff Rowberg's I2Cdevlib library. Download the files from github as a ZIP file, and then use the Arduino IDE to 'install a library from a ZIP file' to install the library on your computer. Then you should be good to go.

Hope this helps,

Frank

On Thu, Oct 10, 2019 at 4:18 AM dsyleixa notifications@github.com wrote:

sorry, perhaps Im too stupid... IIUC, in https://www.fpaynter.com/2019/10/polling-vs-interrupt-with-mpu6050-gy-521-and-arduino/ you are using some libs

include "I2Cdev.h"

include "MPU6050_6Axis_MotionApps_V6_12.h" //changed to this version 10/04/19

include "elapsedMillis.h"

where can they be found?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/jrowberg/i2cdevlib/issues/441?email_source=notifications&email_token=AA6T325RH6UTFBBUGVNDQZTQN3QNRA5CNFSM4HL4M752YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEA3LF7Q#issuecomment-540455678, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA6T3272Z25PYWVBRTNVPL3QN3QNRANCNFSM4HL4M75Q .

-- G.Frank Paynter, PhD OSU ESL Research Scientist (ret) EM Workbench LLC 614 638-6749 (cell)

dsyleixa commented 4 years ago

sorry, can't find it! :( do you have a link?

paynterf commented 4 years ago

https://github.com/jrowberg/i2cdevlib

On Thu, Oct 10, 2019 at 9:44 AM dsyleixa notifications@github.com wrote:

sorry, can't find it! :( do you have a link?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/jrowberg/i2cdevlib/issues/441?email_source=notifications&email_token=AA6T32Z4GBGCM2BDK672JE3QN4WSBA5CNFSM4HL4M752YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEA4L47I#issuecomment-540589693, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA6T32YHSZBZNKAMEI7GBKTQN4WSBANCNFSM4HL4M75Q .

-- G.Frank Paynter, PhD OSU ESL Research Scientist (ret) EM Workbench LLC 614 638-6749 (cell)

dsyleixa commented 4 years ago

of course I now that repo, but where is the file elapsedMillis.h ??

paynterf commented 4 years ago

That library is part of the basic Arduino package

On Thu, Oct 10, 2019 at 11:37 AM dsyleixa notifications@github.com wrote:

of course I now that repo, but where is the file elapsedMillis.h ??

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/jrowberg/i2cdevlib/issues/441?email_source=notifications&email_token=AA6T32ZXYK7ERCV3F7ZJ6NDQN5D2FA5CNFSM4HL4M752YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEA4ZNQQ#issuecomment-540645058, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA6T326OC6X3V46EAMVWSATQN5D2FANCNFSM4HL4M75Q .

-- G.Frank Paynter, PhD OSU ESL Research Scientist (ret) EM Workbench LLC 614 638-6749 (cell)

dsyleixa commented 4 years ago

I know of course, my q uestion was: where is the file elapsedMillis.h ?

MPU6050 and i2cdev libs are already installed.The Arduino IDE can't find elapsedMillis.h

please link to that specific file!

paynterf commented 4 years ago

dyslexia,

a Google search of 'Arduino ElapsedMillis' resulted in 18,400 hits in 0.52 seconds. It would have been much faster for both of us if you had simply done that. I'm not sure how you expect to be a successful Arduino programmer if you expect others to do all your work for you.

Frank

On Fri, Oct 11, 2019 at 3:15 AM dsyleixa notifications@github.com wrote:

I know of course, my q uestion was: whre is the file elapsedMillis.h ?

MPU6050 and i2cdev libs are already installed.The Arduino IDE can't find elapsedMillis.h

please link to that specific file!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/jrowberg/i2cdevlib/issues/441?email_source=notifications&email_token=AA6T325RU6QRUQ6RP2NWFMDQOARY3A5CNFSM4HL4M752YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEA7CREY#issuecomment-540944531, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA6T323PLQDOVGQNTQIVACLQOARY3ANCNFSM4HL4M75Q .

-- G.Frank Paynter, PhD OSU ESL Research Scientist (ret) EM Workbench LLC 614 638-6749 (cell)

dsyleixa commented 4 years ago

sorry, but you falsely wrote that it should be another lib by JRowberg, not a 3rd party lib, so of course I only searched in THIS repo. https://github.com/jrowberg/i2cdevlib/issues/441#issuecomment-540617884 (actually it's also neither in JRowberg's Arduino folder nor common by Arduino.cc but private from Paul Stoffregen)

dsyleixa commented 4 years ago

Update:

I added

#define _BV(bit) (1 << (bit))  //  in example source code
#include <avr/dtostrf.h>   // in example source code and in MPU6050.cpp 

now the code can be compiled but immediately after Serial.print:

Initializing MPU6050...

it hangs up completely and freezes...

Using MPU6050_dmp6 (original example using an IRQ) is functioning fine though.

dsyleixa commented 4 years ago

Update: MPU6050 is detected correctly at 0x68 (i2c scanner program). current test code (still hangs up and freezes):

/*
 * Name:       Arduino MPU6050 Polling Test.ino
    Created:  10/5/2019 1:31:08 PM
    Author:     FRANKWIN10\Frank

  This is a complete, working MPU6050 (GY-521) example using polling vs interrupts.
  It is based on Jeff Rowberg's MPU6050_DMP6_using_DMP_V6.12 example.  After confirming
  that the example worked properly using interrupts, I modified it to remove the need
  for the interrupt line.  
*/

#include "I2Cdev.h"
#include "MPU6050_6Axis_MotionApps_V6_12.h"  //changed to this version 10/04/19
#include "elapsedMillis.h"
#include <avr/dtostrf.h>

// class default I2C address is 0x68
// specific I2C addresses may be passed as a parameter here
// AD0 low = 0x68 (default for SparkFun breakout and InvenSense evaluation board)
// AD0 high = 0x69
MPU6050 mpu;
//MPU6050 mpu(0x69); // <-- use for AD0 high

#define _BV(bit) (1 << (bit))  
#define LED_PIN  LED_BUILTIN // (Arduino is 13, Teensy is 11, Teensy++ is 6)

bool blinkState = false;

// MPU control/status vars
bool dmpReady = false;  // set true if DMP init was successful
uint8_t mpuIntStatus;   // holds actual interrupt status byte from MPU
uint8_t devStatus;      // return status after each device operation (0 = success, !0 = error)
uint16_t packetSize;    // expected DMP packet size (default is 42 bytes)
uint16_t fifoCount;     // count of all bytes currently in FIFO
uint8_t fifoBuffer[64]; // FIFO storage buffer

// orientation/motion vars
Quaternion q;           // [w, x, y, z]         quaternion container
VectorInt16 aa;         // [x, y, z]            accel sensor measurements
VectorInt16 aaReal;     // [x, y, z]            gravity-free accel sensor measurements
VectorInt16 aaWorld;    // [x, y, z]            world-frame accel sensor measurements
VectorFloat gravity;    // [x, y, z]            gravity vector
float euler[3];         // [psi, theta, phi]    Euler angle container
float ypr[3];           // [yaw, pitch, roll]   yaw/pitch/roll container and gravity vector

//extra stuff
int IMU_CHECK_INTERVAL_MSEC = 100;
elapsedMillis sinceLastIMUCheck;
float global_yawval = 0.0; //contains most recent yaw value from IMU
int global_fifo_count = 0; //made global so can monitor from outside GetIMUHeadingDeg() fcn

// ================================================================
// ===                      INITIAL SETUP                       ===
// ================================================================

void setup()
{
  // I2C bus init done in SBWIRE.h

  Serial.begin(115200);
  while (!Serial); // wait for Leonardo enumeration, others continue immediately

  // initialize device
  Serial.println(F("Initializing MPU6050..."));
  mpu.initialize();

  // verify connection
  Serial.println(F("Testing device connections..."));
  Serial.println(mpu.testConnection() ? F("MPU6050 connection successful") : F("MPU6050 connection failed"));

  // load and configure the DMP
  Serial.println(F("Initializing DMP..."));
  devStatus = mpu.dmpInitialize();

  // supply your own gyro offsets here, scaled for min sensitivity
  mpu.setXGyroOffset(220);
  mpu.setYGyroOffset(76);
  mpu.setZGyroOffset(-85);
  mpu.setZAccelOffset(1788); // 1688 factory default for my test chip

  // make sure it worked (returns 0 if so)
  if (devStatus == 0)
  {
    // Calibration Time: generate offsets and calibrate our MPU6050
    mpu.CalibrateAccel(6);
    mpu.CalibrateGyro(6);
    mpu.PrintActiveOffsets();

    // turn on the DMP, now that it's ready
    Serial.println(F("Enabling DMP..."));
    mpu.setDMPEnabled(true);

    // set our DMP Ready flag so the main loop() function knows it's okay to use it
    Serial.println(F("DMP ready! Waiting for first interrupt..."));
    dmpReady = true;

    // get expected DMP packet size for later comparison
    packetSize = mpu.dmpGetFIFOPacketSize();
  }
  else
  {
    // ERROR!
    // 1 = initial memory load failed
    // 2 = DMP configuration updates failed
    // (if it's going to break, usually the code will be 1)
    Serial.print(F("DMP Initialization failed (code "));
    Serial.print(devStatus);
    Serial.println(F(")"));
  }

  // configure LED for output
  pinMode(LED_PIN, OUTPUT);
  sinceLastIMUCheck = 0; //this manages 'other program stuff' cycle

  //print out column headers
  Serial.println("MSec\tYawDeg");
}

// ================================================================
// ===                    MAIN PROGRAM LOOP                     ===
// ================================================================
void loop()
{
  // if programming failed, don't try to do anything
  if (!dmpReady) return;

  if (mpu.dmpPacketAvailable())
  {
    global_yawval = GetIMUHeadingDeg(); //retreive the most current yaw value from IMU

    // blink LED to indicate activity
    blinkState = !blinkState;
    digitalWrite(LED_PIN, blinkState);
  }

  //other program stuff block - executes every IMU_CHECK_INTERVAL_MSEC Msec
  //for this test program, there's nothing here except diagnostics printouts
  if (sinceLastIMUCheck >= IMU_CHECK_INTERVAL_MSEC)
  {
    sinceLastIMUCheck -= IMU_CHECK_INTERVAL_MSEC;
    Serial.print(millis());
    Serial.print("\t");
    Serial.println(global_yawval);

    if (global_fifo_count != 0)
    {
      Serial.print("FIFO Reset!");
      mpu.resetFIFO();
    }
  }
}

float GetIMUHeadingDeg()
{
  // At least one data packet is available

  mpuIntStatus = mpu.getIntStatus();
  fifoCount = mpu.getFIFOCount();// get current FIFO count

  // check for overflow (this should never happen unless our code is too inefficient)
  if ((mpuIntStatus & _BV(MPU6050_INTERRUPT_FIFO_OFLOW_BIT)) || fifoCount >= 1024)
  {
    // reset so we can continue cleanly
    mpu.resetFIFO();
    Serial.println(F("FIFO overflow!"));

    // otherwise, check for DMP data ready interrupt (this should happen frequently)
  }
  else if (mpuIntStatus & _BV(MPU6050_INTERRUPT_DMP_INT_BIT))
  {
    // read all available packets from FIFO
    while (fifoCount >= packetSize) // Lets catch up to NOW, in case someone is using the dreaded delay()!
    {
      mpu.getFIFOBytes(fifoBuffer, packetSize);
      // track FIFO count here in case there is > 1 packet available
      // (this lets us immediately read more without waiting for an interrupt)
      fifoCount -= packetSize;
    }
    global_fifo_count = mpu.getFIFOCount(); //should be zero here

    // display Euler angles in degrees
    mpu.dmpGetQuaternion(&q, fifoBuffer);
    mpu.dmpGetGravity(&gravity, &q);
    mpu.dmpGetYawPitchRoll(ypr, &q, &gravity);
  }

  float yawval = ypr[0] * 180 / M_PI;
  return  yawval;
}
dsyleixa commented 4 years ago

any ideas why the proposed code hangs up?

ZHomeSlice commented 4 years ago

any ideas why the proposed code hangs up?

What can you tell me about your setup? I have tested this on MPU6050 and an MPU9250 AKA MPU6500 with a magnetometer.

Z

ZHomeSlice commented 4 years ago

You might be interested in this new code overflow immune. It is faster than the just proposed code. I am working on fully testing it. No errors no issues so far! Pole the MPU6050 as fast or as slow as you want. Use delay()s anywhere!! and enjoy.

/** Get latest byte from FIFO buffer no matter how much time has passed.
 * ===                  GetCurrentFIFOPacket                    ===
 * ================================================================
 * Returns 1) when data was received
 *         0) when no valid data is available
 * ================================================================ */

uint8_t MPU6050::GetCurrentFIFOPacket(uint8_t *data, uint8_t length) { // overflow proof
  uint16_t fifoC;
  uint8_t Error;
  uint8_t Flag = 0;
  uint8_t overflowed = 0;
  uint8_t mpuIntStatus;   // holds actual interrupt status byte from MPU

  if ((fifoC = getFIFOCount()) > length) { 
    while (fifoC > length) { // Shrink down to 1 packet
      getFIFOBytes(data, length);
      fifoC--;
    }
    if ((fifoC = getFIFOCount()) > length) {
      while (fifoC > length) { // We got more data while we were shrinking
        getFIFOBytes(data, length);
        fifoC--;
      }
      if ((fifoC = getFIFOCount()) > length) {
        while (fifoC > length) {// we need to be sure, but this shouldn't happen... Shrink some more
          getFIFOBytes(data, length);
          fifoC--;
        }
      }
    }
  }
  while (fifoC && (fifoC < length)) fifoC = getFIFOCount(); //Finish loading the packet!
//we have only 1 packet!
  if (fifoC == length) {
    getFIFOBytes(data, length);
    return 1;
  }
  return 0;
}

Alternate Standalone version for your code

/** Get latest byte from FIFO buffer no matter how much time has passed.
 * ===                  GetCurrentFIFOPacket                    ===
 * ================================================================
 * Returns 1) when data was received
 *         0) when no valid data is available
 * ================================================================ */

uint8_t GetCurrentFIFOPacket(uint8_t *data, uint8_t length) { // overflow proof
  uint16_t fifoC;
  uint8_t Error;
  uint8_t Flag = 0;
  uint8_t overflowed = 0;
  uint8_t mpuIntStatus;   // holds actual interrupt status byte from MPU

  if ((fifoC = mpu.getFIFOCount()) > length) { 
    while (fifoC > length) { // Shrink down to 1 packet
      mpu.getFIFOBytes(data, length);
      fifoC--;
    }
    if ((fifoC = mpu.getFIFOCount()) > length) {
      while (fifoC > length) { // We got more data while we were shrinking
        mpu.getFIFOBytes(data, length);
        fifoC--;
      }
      if ((fifoC = mpu.getFIFOCount()) > length) {
        while (fifoC > length) {// we need to be sure, but this shouldn't happen... Shrink some more
          mpu.getFIFOBytes(data, length);
          fifoC--;
        }
      }
    }
  }
  while (fifoC && (fifoC < length)) fifoC = mpu.getFIFOCount(); //Finish loading the packet!
//we have only 1 packet!
  if (fifoC == length) {
    mpu.getFIFOBytes(data, length);
    return 1;
  }
  return 0;
}

Simple usage

void loop(){

if(!mpu.GetCurrentFIFOPacket(fifoBuffer, packetSize)) reuturn;
// moves on if we have data from the MPU6050

}
// or  stand alone version
void loop(){

if(!GetCurrentFIFOPacket(fifoBuffer, packetSize)) reuturn;
// moves on if we have data from the MPU6050

}

Z

dsyleixa commented 4 years ago

I have a mpu6050 breakout board from China and a Adafruit Feather M4 (!) which is the correct setup() code? and which #includes and #defines? (aka complete compileable code)

ZHomeSlice commented 4 years ago

top examples need to be inserted into the mpu6050 library the bottom two examples are for your sketch and are not part of the library note how the "mpu." object pointer is missing in the other example in the function it isn't needed in the first because it is part of the class. In the second function, it is needed because it is part of your sketch. same with the bottom 2 loop functions. the default setup that comes with the code works I am assuming you haven't changed that.

Z

dsyleixa commented 4 years ago

thanks, I just need the complete setup() function and the #includes and #defines then! I have no working Code yet, so what do I have to use?

dsyleixa commented 4 years ago

PS, Please note that finally already paynterf's MPU-init function fails and the program hangs up, and then how to poll yaw, pitch + roll then in your loop() function?

So I would really appreciate if you can provide a full complete Sketch code, ready to compile.

ZHomeSlice commented 4 years ago

I'll try to send this later today I'm away from my computer now

ZHomeSlice commented 4 years ago

Use this library with this modified example code:

// I2C device class (I2Cdev) demonstration Arduino sketch for MPU6050 class using DMP (MotionApps v6.12)
// 6/21/2012 by Jeff Rowberg <jeff@rowberg.net>
// Updates should (hopefully) always be available at https://github.com/jrowberg/i2cdevlib
//
// Changelog:
//      2019-07-10 - Uses the new version of the DMP Firmware V6.12
//                 - Note: I believe the Teapot demo is broken with this versin as
//                 - the fifo buffer structure has changed
//      2016-04-18 - Eliminated a potential infinite loop
//      2013-05-08 - added seamless Fastwire support
//                 - added note about gyro calibration
//      2012-06-21 - added note about Arduino 1.0.1 + Leonardo compatibility error
//      2012-06-20 - improved FIFO overflow handling and simplified read process
//      2012-06-19 - completely rearranged DMP initialization code and simplification
//      2012-06-13 - pull gyro and accel data from FIFO packet instead of reading directly
//      2012-06-09 - fix broken FIFO read sequence and change interrupt detection to RISING
//      2012-06-05 - add gravity-compensated initial reference frame acceleration output
//                 - add 3D math helper file to DMP6 example sketch
//                 - add Euler output and Yaw/Pitch/Roll output formats
//      2012-06-04 - remove accel offset clearing for better results (thanks Sungon Lee)
//      2012-06-01 - fixed gyro sensitivity to be 2000 deg/sec instead of 250
//      2012-05-30 - basic DMP initialization working

/* ============================================
  I2Cdev device library code is placed under the MIT license
  Copyright (c) 2012 Jeff Rowberg

  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files (the "Software"), to deal
  in the Software without restriction, including without limitation the rights
  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  copies of the Software, and to permit persons to whom the Software is
  furnished to do so, subject to the following conditions:

  The above copyright notice and this permission notice shall be included in
  all copies or substantial portions of the Software.

  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  THE SOFTWARE.
  ===============================================
*/

// I2Cdev and MPU6050 must be installed as libraries, or else the .cpp/.h files
// for both classes must be in the include path of your project
#include "I2Cdev.h"

#include "MPU6050_6Axis_MotionApps_V6_12.h"
//#include "MPU6050.h" // not necessary if using MotionApps include file

// Arduino Wire library is required if I2Cdev I2CDEV_ARDUINO_WIRE implementation
// is used in I2Cdev.h
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE
#include "Wire.h"
#endif

// class default I2C address is 0x68
// specific I2C addresses may be passed as a parameter here
// AD0 low = 0x68 (default for SparkFun breakout and InvenSense evaluation board)
// AD0 high = 0x69
MPU6050 mpu;
//MPU6050 mpu(0x69); // <-- use for AD0 high

/* =========================================================================
   NOTE: In addition to connection 3.3v, GND, SDA, and SCL, this sketch
   depends on the MPU-6050's INT pin being connected to the Arduino's
   external interrupt #0 pin. On the Arduino Uno and Mega 2560, this is
   digital I/O pin 2.
   ========================================================================= */

/* =========================================================================
   NOTE: Arduino v1.0.1 with the Leonardo board generates a compile error
   when using Serial.write(buf, len). The Teapot output uses this method.
   The solution requires a modification to the Arduino USBAPI.h file, which
   is fortunately simple, but annoying. This will be fixed in the next IDE
   release. For more info, see these links:

   http://arduino.cc/forum/index.php/topic,109987.0.html
   http://code.google.com/p/arduino/issues/detail?id=958
   ========================================================================= */

// uncomment "OUTPUT_READABLE_QUATERNION" if you want to see the actual
// quaternion components in a [w, x, y, z] format (not best for parsing
// on a remote host such as Processing or something though)
//#define OUTPUT_READABLE_QUATERNION

// uncomment "OUTPUT_READABLE_EULER" if you want to see Euler angles
// (in degrees) calculated from the quaternions coming from the FIFO.
// Note that Euler angles suffer from gimbal lock (for more info, see
// http://en.wikipedia.org/wiki/Gimbal_lock)
//#define OUTPUT_READABLE_EULER

// uncomment "OUTPUT_READABLE_YAWPITCHROLL" if you want to see the yaw/
// pitch/roll angles (in degrees) calculated from the quaternions coming
// from the FIFO. Note this also requires gravity vector calculations.
// Also note that yaw/pitch/roll angles suffer from gimbal lock (for
// more info, see: http://en.wikipedia.org/wiki/Gimbal_lock)
#define OUTPUT_READABLE_YAWPITCHROLL

// uncomment "OUTPUT_READABLE_REALACCEL" if you want to see acceleration
// components with gravity removed. This acceleration reference frame is
// not compensated for orientation, so +X is always +X according to the
// sensor, just without the effects of gravity. If you want acceleration
// compensated for orientation, us OUTPUT_READABLE_WORLDACCEL instead.
//#define OUTPUT_READABLE_REALACCEL

// uncomment "OUTPUT_READABLE_WORLDACCEL" if you want to see acceleration
// components with gravity removed and adjusted for the world frame of
// reference (yaw is relative to initial orientation, since no magnetometer
// is present in this case). Could be quite handy in some cases.
//#define OUTPUT_READABLE_WORLDACCEL

// uncomment "OUTPUT_TEAPOT" if you want output that matches the
// format used for the InvenSense teapot demo
//#define OUTPUT_TEAPOT

#define INTERRUPT_PIN 2  // use pin 2 on Arduino Uno & most boards
#define LED_PIN 13 // (Arduino is 13, Teensy is 11, Teensy++ is 6)
bool blinkState = false;

// MPU control/status vars
bool dmpReady = false;  // set true if DMP init was successful
uint8_t mpuIntStatus;   // holds actual interrupt status byte from MPU
uint8_t devStatus;      // return status after each device operation (0 = success, !0 = error)
uint16_t packetSize;    // expected DMP packet size (default is 42 bytes)
uint16_t fifoCount;     // count of all bytes currently in FIFO
uint8_t fifoBuffer[64]; // FIFO storage buffer

// orientation/motion vars
Quaternion q;           // [w, x, y, z]         quaternion container
VectorInt16 aa;         // [x, y, z]            accel sensor measurements
VectorInt16 gy;         // [x, y, z]            gyro sensor measurements
VectorInt16 aaReal;     // [x, y, z]            gravity-free accel sensor measurements
VectorInt16 aaWorld;    // [x, y, z]            world-frame accel sensor measurements
VectorFloat gravity;    // [x, y, z]            gravity vector
float euler[3];         // [psi, theta, phi]    Euler angle container
float ypr[3];           // [yaw, pitch, roll]   yaw/pitch/roll container and gravity vector

// packet structure for InvenSense teapot demo
uint8_t teapotPacket[14] = { '$', 0x02, 0, 0, 0, 0, 0, 0, 0, 0, 0x00, 0x00, '\r', '\n' };

// ================================================================
// ===               INTERRUPT DETECTION ROUTINE                ===
// ================================================================

volatile bool mpuInterrupt = false;     // indicates whether MPU interrupt pin has gone high
void dmpDataReady() {
  mpuInterrupt = true;
}

/** Get latest byte from FIFO buffer no matter how much time has passed.
   ===                  GetCurrentFIFOPacket                    ===
   ================================================================
   Returns 1) when data was received
           0) when no valid data is available
   ================================================================ */

uint8_t GetCurrentFIFOPacket(uint8_t *data, uint8_t length) { // overflow proof
  uint16_t fifoC;
  if ((fifoC = mpu.getFIFOCount()) > length) {
    while (fifoC > length) { // Shrink down to 1 packet
      mpu.getFIFOBytes(data, length);
      fifoC--;
    }
    if ((fifoC = mpu.getFIFOCount()) > length) {
      while (fifoC > length) { // We got more data while we were shrinking
        mpu.getFIFOBytes(data, length);
        fifoC--;
      }
      if ((fifoC = mpu.getFIFOCount()) > length) {
        while (fifoC > length) {// we need to be sure, but this shouldn't happen... Shrink some more
          mpu.getFIFOBytes(data, length);
          fifoC--;
        }
      }
    }
  }
  while (fifoC && (fifoC < length)) fifoC = mpu.getFIFOCount(); //Finish loading the packet!
  //we have only 1 packet!
  if (fifoC == length) {
    mpu.getFIFOBytes(data, length);
    return 1;
  }
  return 0;
}

// ================================================================
// ===                      INITIAL SETUP                       ===
// ================================================================

void setup() {
  // join I2C bus (I2Cdev library doesn't do this automatically)
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE
  Wire.begin();
  Wire.setClock(400000); // 400kHz I2C clock. Comment this line if having compilation difficulties
#elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE
  Fastwire::setup(400, true);
#endif
  Serial.begin(115200);
  while (!Serial); // wait for Leonardo enumeration, others continue immediately

  // initialize device
  Serial.println(F("Initializing I2C devices..."));
  mpu.initialize();
  pinMode(INTERRUPT_PIN, INPUT);

  // verify connection
  Serial.println(F("Testing device connections..."));
  Serial.println(mpu.testConnection() ? F("MPU6050 connection successful") : F("MPU6050 connection failed"));

  // wait for ready
  Serial.println(F("\nSend any character to begin DMP programming and demo: "));
  while (Serial.available() && Serial.read()); // empty buffer
  while (!Serial.available());                 // wait for data
  while (Serial.available() && Serial.read()); // empty buffer again

  // load and configure the DMP
  Serial.println(F("Initializing DMP..."));
  devStatus = mpu.dmpInitialize();

  // supply your own gyro offsets here, scaled for min sensitivity
  mpu.setXGyroOffset(51);
  mpu.setYGyroOffset(8);
  mpu.setZGyroOffset(21);
  mpu.setXAccelOffset(1150);
  mpu.setYAccelOffset(-50);
  mpu.setZAccelOffset(1060);
  if (devStatus == 0) {
    mpu.CalibrateAccel(6);
    mpu.CalibrateGyro(6);
    Serial.println();
    mpu.PrintActiveOffsets();
    Serial.println(F("Enabling DMP..."));
    mpu.setDMPEnabled(true);

    dmpReady = true;
    packetSize = mpu.dmpGetFIFOPacketSize();
  } else {
    Serial.print(F("DMP Initialization failed (code "));
    Serial.print(devStatus);
    Serial.println(F(")"));
  }

  // configure LED for output
  pinMode(LED_PIN, OUTPUT);
  uint32_t  startMsec, MsecSinceLastYawCheck;
  startMsec = millis();
  MsecSinceLastYawCheck = 0;

}

// ================================================================
// ===                    MAIN PROGRAM LOOP                     ===
// ================================================================

void loop() {
  if (! GetCurrentFIFOPacket(fifoBuffer, packetSize))return;

#ifdef OUTPUT_READABLE_QUATERNION
  // display quaternion values in easy matrix form: w x y z
  mpu.dmpGetQuaternion(&q, fifoBuffer);
  Serial.print("quat\t");
  Serial.print(q.w);
  Serial.print("\t");
  Serial.print(q.x);
  Serial.print("\t");
  Serial.print(q.y);
  Serial.print("\t");
  Serial.println(q.z);
#endif

#ifdef OUTPUT_READABLE_EULER
  // display Euler angles in degrees
  mpu.dmpGetQuaternion(&q, fifoBuffer);
  mpu.dmpGetEuler(euler, &q);
  Serial.print("euler\t");
  Serial.print(euler[0] * 180 / M_PI);
  Serial.print("\t");
  Serial.print(euler[1] * 180 / M_PI);
  Serial.print("\t");
  Serial.println(euler[2] * 180 / M_PI);
#endif

#ifdef OUTPUT_READABLE_YAWPITCHROLL
  // display Euler angles in degrees
  mpu.dmpGetQuaternion(&q, fifoBuffer);
  mpu.dmpGetGravity(&gravity, &q);
  mpu.dmpGetYawPitchRoll(ypr, &q, &gravity);
  Serial.print("ypr\t");
  Serial.print(ypr[0] * 180 / M_PI);
  Serial.print("\t");
  Serial.print(ypr[1] * 180 / M_PI);
  Serial.print("\t");
  Serial.print(ypr[2] * 180 / M_PI);
  /*
    mpu.dmpGetAccel(&aa, fifoBuffer);
    Serial.print("\tRaw Accl XYZ\t");
    Serial.print(aa.x);
    Serial.print("\t");
    Serial.print(aa.y);
    Serial.print("\t");
    Serial.print(aa.z);
    mpu.dmpGetGyro(&gy, fifoBuffer);
    Serial.print("\tRaw Gyro XYZ\t");
    Serial.print(gy.x);
    Serial.print("\t");
    Serial.print(gy.y);
    Serial.print("\t");
    Serial.print(gy.z);
  */
  Serial.println();

#endif

#ifdef OUTPUT_READABLE_REALACCEL
  // display real acceleration, adjusted to remove gravity
  mpu.dmpGetQuaternion(&q, fifoBuffer);
  mpu.dmpGetAccel(&aa, fifoBuffer);
  mpu.dmpGetGravity(&gravity, &q);
  mpu.dmpGetLinearAccel(&aaReal, &aa, &gravity);
  Serial.print("areal\t");
  Serial.print(aaReal.x);
  Serial.print("\t");
  Serial.print(aaReal.y);
  Serial.print("\t");
  Serial.println(aaReal.z);
#endif

#ifdef OUTPUT_READABLE_WORLDACCEL
  // display initial world-frame acceleration, adjusted to remove gravity
  // and rotated based on known orientation from quaternion
  mpu.dmpGetQuaternion(&q, fifoBuffer);
  mpu.dmpGetAccel(&aa, fifoBuffer);
  mpu.dmpGetGravity(&gravity, &q);
  mpu.dmpGetLinearAccel(&aaReal, &aa, &gravity);
  mpu.dmpGetLinearAccelInWorld(&aaWorld, &aaReal, &q);
  Serial.print("aworld\t");
  Serial.print(aaWorld.x);
  Serial.print("\t");
  Serial.print(aaWorld.y);
  Serial.print("\t");
  Serial.println(aaWorld.z);
#endif

#ifdef OUTPUT_TEAPOT
  // display quaternion values in InvenSense Teapot demo format:
  teapotPacket[2] = fifoBuffer[0];
  teapotPacket[3] = fifoBuffer[1];
  teapotPacket[4] = fifoBuffer[4];
  teapotPacket[5] = fifoBuffer[5];
  teapotPacket[6] = fifoBuffer[8];
  teapotPacket[7] = fifoBuffer[9];
  teapotPacket[8] = fifoBuffer[12];
  teapotPacket[9] = fifoBuffer[13];
  Serial.write(teapotPacket, 14);
  teapotPacket[11]++; // packetCount, loops at 0xFF on purpose
#endif

  // blink LED to indicate activity
  blinkState = !blinkState;
  digitalWrite(LED_PIN, blinkState);

}

Z

dsyleixa commented 4 years ago

update: thank you, I had to add

include <avr/dtostrf.h>

in MPU6050.cpp, and now it produces apparently trustworthy values!

again, thank you very much!

perhaps it might be a good idea to add this functionality to extra and enhanced libs and examples!

dsyleixa commented 4 years ago

4 suggestions: Re:

dtostrf.h Library not found

include <avr/dtostrf.h>

should be added to MPU6050.cpp

Re: #define INTERRUPT_PIN 2 // use pin 2 on Arduino Uno & most boards can that be dropped?

Re: #define LED_PIN 13 // (Arduino is 13, Teensy is 11, Teensy++ is 6) does not work for Feather M4 SAMD51! better: #define LED_PIN LED_BUILTIN // LED_BUILTIN is an Arduino Macro for ALL Arduino Boards!

Re:

// supply your own gyro offsets here, scaled for min sensitivity
  mpu.setXGyroOffset(51);
  mpu.setYGyroOffset(8);
  mpu.setZGyroOffset(21);
  mpu.setXAccelOffset(1150);
  mpu.setYAccelOffset(-50);
  mpu.setZAccelOffset(1060);
  if (devStatus == 0) {
    mpu.CalibrateAccel(6);
    mpu.CalibrateGyro(6);
    Serial.println();
    mpu.PrintActiveOffsets();
    Serial.println(F("Enabling DMP..."));
    mpu.setDMPEnabled(true);

    dmpReady = true;
    packetSize = mpu.dmpGetFIFOPacketSize();
  } else {
    Serial.print(F("DMP Initialization failed (code "));
    Serial.print(devStatus);
    Serial.println(F(")"));
  }

is there really a need to have to write that in either proprietary code? could that be moved to lib files in future?

ZHomeSlice commented 4 years ago

ya remove the useless code.

I would also use my calibration routine it is fast and accurate Change the (6) to a higher number for more detailed calibration say 10 to 20 would be sweet. set it on a flat level surface and run:

    mpu.CalibrateAccel(6);
    mpu.CalibrateGyro(6);
Serial.println();
    mpu.PrintActiveOffsets();

Then remove the calibration code and use what it gives you in the serial monitor for the following settings. to do: The values here are what works on my MPU they must be changed to match you specific MPU:

  mpu.setXGyroOffset(51);
  mpu.setYGyroOffset(8);
  mpu.setZGyroOffset(21);
  mpu.setXAccelOffset(1150);
  mpu.setYAccelOffset(-50);
  mpu.setZAccelOffset(1060);

z

dsyleixa commented 4 years ago

so DIUC that there are auto_calibrate() with auto_offset() functions available?

ZHomeSlice commented 4 years ago

so DIUC that there are auto_calibrate() with auto_offset() functions available?

Yes for gyro and if you have the MPU level yes for the accelerometer.

To use the calibration for accelerometer an absolute constant direction for gravity is needed so you need to have it level. Ss for the Gyro, the DMP V6.12 has a calibration routine built-in. just keep it still for @ 8 seconds and you are calibrated you can see the readings stabilize further. By initially using my Calibration routine with the fixed offsets enhances the calibration of both the gyro and accelerometer as it retrieves the current offsets before performing any further tuning. so setting the fixed offsets to get them close is excellent. I noticed that the environment causes changes in the offsets. just a little but it is enough to cause a slow wandering over time one way or another temperature is the biggest issue I've discovered.

What are the offsets The offsets are an adjustment that literally adds value to the reading taken. that is why most average a bunch of readings to get them. when the ideal condition is present the raw values should all be zero. except for z acceleration which should be 1G I use a PI of the PID to land the offsets as each new reading taken has can be used to test the new offsets as the PID routine adjusts them. mpu.CalibrateAccess(6) would loop about 600 times but its self advancing and the more loops the more detailed tuning parameters are used. I have it so that it will land about anything in 6 sets of 100 running it to 10 or even a little of overkill to 20 just proofs the offsets.

Hope this helps :) Z

dsyleixa commented 4 years ago

thank you, I will have to think about that a little while to understand it and then know what to do and how to use it ! 8)

dsyleixa commented 4 years ago

hi, I now tried this ode with my ESP32 but now again many compile errors: (1st of all I had to add to MPU6050.cpp the line #include )

the libs urgently need to be reworked, to use just datatypes!

Sketch wird kompiliert...
"D:\\arduino\\portable\\packages\\esp32\\tools\\xtensa-esp32-elf-gcc\\1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-g++" -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -DGCC_NOT_5_2_0=0 -DWITH_POSIX "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/config" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/app_trace" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/app_update" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/asio" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/bootloader_support" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/bt" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/coap" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/console" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/driver" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-tls" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp32" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_adc_cal" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_event" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_http_client" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_http_server" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_https_ota" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_ringbuf" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/ethernet" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/expat" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/fatfs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/freemodbus" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/freertos" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/heap" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/idf_test" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/jsmn" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/json" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/libsodium" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/log" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/lwip" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mbedtls" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mdns" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/micro-ecc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mqtt" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/newlib" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/nghttp" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/nvs_flash" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/openssl" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/protobuf-c" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/protocomm" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/pthread" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/sdmmc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/smartconfig_ack" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/soc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/spi_flash" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/spiffs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/tcp_transport" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/tcpip_adapter" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/ulp" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/vfs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wear_levelling" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wifi_provisioning" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wpa_supplicant" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/xtensa-debug-module" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-face" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp32-camera" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-face" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/fb_gfx" -std=gnu++11 -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=maybe-uninitialized -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-unused-but-set-parameter -Wno-missing-field-initializers -Wno-sign-compare -fno-rtti -MMD -c -DF_CPU=240000000L -DARDUINO=10809 -DARDUINO_FEATHER_ESP32 -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"FEATHER_ESP32\"" "-DARDUINO_VARIANT=\"feather_esp32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\cores\\esp32" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\variants\\feather_esp32" "-ID:\\arduino\\portable\\sketchbook\\libraries\\I2Cdev" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\libraries\\Wire\\src" "-ID:\\arduino\\portable\\sketchbook\\libraries\\MPU6050" "-ID:\\arduino\\portable\\sketchbook\\libraries\\elapsedMillis" "C:\\Users\\hw\\AppData\\Local\\Temp\\arduino_build_957913\\sketch\\MPU6050_DMP6_noIRQ.ino.cpp" -o "C:\\Users\\hw\\AppData\\Local\\Temp\\arduino_build_957913\\sketch\\MPU6050_DMP6_noIRQ.ino.cpp.o"
In file included from D:\Akten\Programmierung\ArduinoProgs\DriverLibs\MPU6050-dmp6-lib_JRowberg\MPU6050_DMP6_noIRQ\MPU6050_DMP6_noIRQ.ino:13:0:

D:\arduino\portable\sketchbook\libraries\MPU6050/MPU6050_6Axis_MotionApps_V6_12.h:67:24: error: conflicting declaration 'typedef int8_t prog_int8_t'

         typedef int8_t prog_int8_t;

                        ^

In file included from D:\arduino\portable\packages\esp32\hardware\esp32\1.0.4\cores\esp32/WString.h:29:0,

                 from D:\arduino\portable\packages\esp32\hardware\esp32\1.0.4\cores\esp32/Arduino.h:146,

                 from C:\Users\hw\AppData\Local\Temp\arduino_build_957913\sketch\MPU6050_DMP6_noIRQ.ino.cpp:1:

D:\arduino\portable\packages\esp32\hardware\esp32\1.0.4\cores\esp32/pgmspace.h:25:14: note: previous declaration as 'typedef char prog_int8_t'

 typedef char prog_int8_t;

              ^

In file included from D:\Akten\Programmierung\ArduinoProgs\DriverLibs\MPU6050-dmp6-lib_JRowberg\MPU6050_DMP6_noIRQ\MPU6050_DMP6_noIRQ.ino:13:0:

D:\arduino\portable\sketchbook\libraries\MPU6050/MPU6050_6Axis_MotionApps_V6_12.h:71:25: error: conflicting declaration 'typedef int32_t prog_int32_t'

         typedef int32_t prog_int32_t;

                         ^

In file included from D:\arduino\portable\packages\esp32\hardware\esp32\1.0.4\cores\esp32/WString.h:29:0,

                 from D:\arduino\portable\packages\esp32\hardware\esp32\1.0.4\cores\esp32/Arduino.h:146,

                 from C:\Users\hw\AppData\Local\Temp\arduino_build_957913\sketch\MPU6050_DMP6_noIRQ.ino.cpp:1:

D:\arduino\portable\packages\esp32\hardware\esp32\1.0.4\cores\esp32/pgmspace.h:29:14: note: previous declaration as 'typedef long int prog_int32_t'

 typedef long prog_int32_t;

              ^

In file included from D:\Akten\Programmierung\ArduinoProgs\DriverLibs\MPU6050-dmp6-lib_JRowberg\MPU6050_DMP6_noIRQ\MPU6050_DMP6_noIRQ.ino:13:0:

D:\arduino\portable\sketchbook\libraries\MPU6050/MPU6050_6Axis_MotionApps_V6_12.h:72:26: error: conflicting declaration 'typedef uint32_t prog_uint32_t'

         typedef uint32_t prog_uint32_t;

                          ^

In file included from D:\arduino\portable\packages\esp32\hardware\esp32\1.0.4\cores\esp32/WString.h:29:0,

                 from D:\arduino\portable\packages\esp32\hardware\esp32\1.0.4\cores\esp32/Arduino.h:146,

                 from C:\Users\hw\AppData\Local\Temp\arduino_build_957913\sketch\MPU6050_DMP6_noIRQ.ino.cpp:1:

D:\arduino\portable\packages\esp32\hardware\esp32\1.0.4\cores\esp32/pgmspace.h:30:23: note: previous declaration as 'typedef long unsigned int prog_uint32_t'

 typedef unsigned long prog_uint32_t;

                       ^
dsyleixa commented 4 years ago

any ideas how to fix that issue for ESP32 boards?

ZHomeSlice commented 4 years ago

prog stands for ProgMemory Try removing all prog_ so everything will load into regular memory.

Z

dsyleixa commented 4 years ago

ok, I see, thank you, as I wrote also here: https://github.com/jrowberg/i2cdevlib/issues/500#issuecomment-566435408

I'm actually a simple Arduino user, just capable fo some ISO C code but almost nothing about C++ skills, unfortunately. So tbh I'm afraid I'd need sort of full code(s) ready to work with both my ESP32, my Nano, my SAMD51, my SAMD21, my SAM3X8E, and my ESP8266 (always never using IRQ pins though)

dsyleixa commented 4 years ago

will there be a lib and example update about how to use MPU6050 dmp6 without IRQ pin ( ARM Cortex SAM, SAMD, ESP) ?

ZHomeSlice commented 4 years ago

https://github.com/jrowberg/i2cdevlib/pull/509 The request is in place to update the files for what you are asking. Try it out leave some comments and Jeff may accept it sooner. He usually is faster with my updates. Z

dsyleixa commented 4 years ago

thank you very much for your efforts! As I just observed, Jeff already took notice of your PR!

ZHomeSlice commented 4 years ago

This update works incredibly well with interrupts also. Because it can handle any buffer fill state it can be used in any desired fashion. If you wish to check your position every 5 minutes call this function and it returns a good reading. I've not found s way to get it to return corrupted data yet..... Knock on wood :) Z

dsyleixa commented 4 years ago

which is the new simplified example code, not using a IRQ Pin ever? ( I just need yaw+pitch+roll by dmp6 processor, compatible to ESP and ARM cores)

ZHomeSlice commented 4 years ago

You should now use: mpu.dmpGetCurrentFIFOPacket(data) ; Call this function when you need the latest packet. If no data is available it returns zero So you could:

if(mpu.dmpGetCurrentFIFOPacket(data)) { 
//your code here to use the data
}

New data is available every 10ms from the MPU. This function will retrieve the most current data.

Z

dsyleixa commented 4 years ago

hmmm, the current example source codes are quite complicated and overburdened with preprocessor directives and unneeded optional extra functions and tons of comments, so I can't see through all those functionalities. I just needed a stripped-down simplified pure elementary example to just retrieve yaw+pitch+roll, compatible to ESP and ARM cores. Which would be a link to a source code to start from for this purpose?

ZHomeSlice commented 4 years ago

dsyleixa, So let's see if Jeff will add this to his MPU6050 examples but before I do so. Would you try it out and let me know what you think. Spell checking and such along with any help in un-GEEKing the verbiage would be appreciated. The hope is that this will be the first sketch newcomers use with the idea it will be self-explanatory and not overly complicated.

Z

// I2C device class (I2Cdev) demonstration Arduino sketch for MPU6050 class using DMP (MotionApps v6.12)
// 6/21/2012 by Jeff Rowberg <jeff@rowberg.net>
// Updates should (hopefully) always be available at https://github.com/jrowberg/i2cdevlib
//
// Changelog:
//      2020-02-02 - DMP6 Simplified Based on MPU6050_DMP6_using_DMP_V6.12

/* ============================================
  I2Cdev device library code is placed under the MIT license
  Copyright (c) 2012 Jeff Rowberg

  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files (the "Software"), to deal
  in the Software without restriction, including without limitation the rights
  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  copies of the Software, and to permit persons to whom the Software is
  furnished to do so, subject to the following conditions:

  The above copyright notice and this permission notice shall be included in
  all copies or substantial portions of the Software.

  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  THE SOFTWARE.
  ===============================================
*/

// I2Cdev and MPU6050 must be installed as libraries, or else the .cpp/.h files
// for both classes must be in the include path of your project
#include "I2Cdev.h"

#include "MPU6050_6Axis_MotionApps_V6_12.h"

// Arduino Wire library is required if I2Cdev I2CDEV_ARDUINO_WIRE implementation
// is used in I2Cdev.h
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE
#include "Wire.h"
#endif

// *****************  Setup  *****************

// uncomment the next line if you would like to use interrupts (this is no longer required)
// #define INTERRUPT_PIN 2  // use pin 2 on Arduino Uno & most boards

// comment this line if you would like to remove pausing
#define PauseForInstructions

// comment this line to skip Calibration routines you should have your own offsets set before doing so.
#define CalibrateMPU

// class default I2C address is 0x68
// specific I2C addresses may be passed as a parameter here
// AD0 low = 0x68 (default for SparkFun breakout and InvenSense evaluation board)
// AD0 high = 0x69
MPU6050 mpu;
//MPU6050 mpu(0x69); // <-- use for AD0 high

/* =========================================================================
   NOTE: Arduino v1.0.1 with the Leonardo board generates a compile error
   when using Serial.write(buf, len). The Teapot output uses this method.
   The solution requires a modification to the Arduino USBAPI.h file, which
   is fortunately simple, but annoying. This will be fixed in the next IDE
   release. For more info, see these links:

   http://arduino.cc/forum/index.php/topic,109987.0.html
   http://code.google.com/p/arduino/issues/detail?id=958
   ========================================================================= */

#define LED_PIN 13 // (Arduino is 13, Teensy is 11, Teensy++ is 6)
bool blinkState = false;

// MPU control/status vars
uint8_t fifoBuffer[64]; // FIFO storage buffer

// orientation/motion vars
Quaternion q;           // [w, x, y, z]         quaternion container
VectorInt16 aa;         // [x, y, z]            accel sensor measurements
VectorInt16 gy;         // [x, y, z]            gyro sensor measurements
VectorInt16 aaReal;     // [x, y, z]            gravity-free accel sensor measurements
VectorInt16 aaWorld;    // [x, y, z]            world-frame accel sensor measurements
VectorFloat gravity;    // [x, y, z]            gravity vector
float euler[3];         // [psi, theta, phi]    Euler angle container
float ypr[3];           // [yaw, pitch, roll]   yaw/pitch/roll container and gravity vector

// packet structure for InvenSense teapot demo
uint8_t teapotPacket[14] = { '$', 0x02, 0, 0, 0, 0, 0, 0, 0, 0, 0x00, 0x00, '\r', '\n' };

// ================================================================
// ===               INTERRUPT DETECTION ROUTINE                ===
// ================================================================

volatile bool mpuInterrupt = false;     // indicates whether MPU interrupt pin has gone high
void dmpDataReady() {
  mpuInterrupt = true;
}

// ================================================================
// ===                      INITIAL SETUP                       ===
// ================================================================

void setup() {
  // join I2C bus (I2Cdev library doesn't do this automatically)
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE
  Wire.begin();
  Wire.setClock(400000); // 400kHz I2C clock. Comment this line if having compilation difficulties
#elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE
  Fastwire::setup(400, true);
#endif

  // initialize serial communication
  // (115200 chosen because it is required for Teapot Demo output, but it's
  // really up to you depending on your project)
  Serial.begin(115200);
  while (!Serial); // wait for Leonardo enumeration, others continue immediately

  // NOTE: 8MHz or slower host processors, like the Teensy @ 3.3V or Arduino
  // Pro Mini running at 3.3V, cannot handle this baud rate reliably due to
  // the baud timing being too misaligned with processor ticks. You must use
  // 38400 or slower in these cases, or use some kind of external separate
  // crystal solution for the UART timer.

  // initialize device
  Serial.println(F("Initializing I2C devices..."));
  mpu.initialize();
#ifdef INTERRUPT_PIN
  pinMode(INTERRUPT_PIN, INPUT);
#endif

  // verify connection
  Serial.println(F("Testing device connections..."));
  Serial.println(mpu.testConnection() ? F("MPU6050 connection successful") : F("MPU6050 connection failed"));
  // load and configure the DMP
  Serial.println(F("Initializing DMP..."));
  mpu.dmpInitialize();

  // We can now access raw data from the MPU

#ifdef CalibrateMPU
  Serial.println(F("Setting initial Offsets..."));
  Serial.println(F("Each MPU is unique and must have its own offsets."));
  Serial.println(F("The following Calibration Routine Generates offsets for you to replace the offsets represented here"));
  // supply your own gyro offsets here. NOTE: Your offsets are different than the ones shown below! In face Each MPU is different.

//           X Accel  Y Accel  Z Accel   X Gyro   Y Gyro   Z Gyro
//OFFSETS    -2102,   -3776,     836,    -345,     -31,      31

  mpu.setXAccelOffset(-2102);
  mpu.setYAccelOffset(-3776);
  mpu.setZAccelOffset(836);
  mpu.setXGyroOffset(-345);
  mpu.setYGyroOffset(-31);
  mpu.setZGyroOffset(31);
#endif

#ifdef PauseForInstructions
  // wait for ready
  Serial.println(F("\nProper calibration requires the MPU to be still and flat with the influance of gravity straight down "));
  Serial.println(F("\nSend any character to begin Calibrarion: "));
  while (Serial.available() && Serial.read()); // empty buffer
  while (!Serial.available());                 // wait for data
  while (Serial.available() && Serial.read()); // empty buffer again
#endif

#ifdef CalibrateMPU
  Serial.println(F("Calibrating Offsets..."));
  // Calibration Time: generate offsets and calibrate our MPU6050
  Serial.println(F("Calibrating Accelerometer..."));
  mpu.CalibrateAccel(6);
  Serial.println(F("\n\nCalibrating Gyro..."));
  mpu.CalibrateGyro(6);
  Serial.println();
  Serial.println(F("Replace initial offsets with these offsets..."));

#endif
  mpu.PrintActiveOffsets();

#ifdef PauseForInstructions

  // wait for ready
  Serial.println(F("\nSend any character to continue: "));
  while (Serial.available() && Serial.read()); // empty buffer
  while (!Serial.available());                 // wait for data
  while (Serial.available() && Serial.read()); // empty buffer again
#endif

  // turn on the DMP, now that it's ready
  Serial.println(F("Enabling DMP..."));
  mpu.setDMPEnabled(true);

  // Digital Motion Processing Firmware is now enabled

#ifdef INTERRUPT_PIN
  // enable Arduino interrupt detection
  Serial.print(F("Enabling interrupt detection (Arduino external interrupt "));
  Serial.print(digitalPinToInterrupt(INTERRUPT_PIN));
  Serial.println(F(")..."));
  attachInterrupt(digitalPinToInterrupt(INTERRUPT_PIN), dmpDataReady, RISING);
#endif
  // configure LED for output
  pinMode(LED_PIN, OUTPUT);
}

// ================================================================
// ===                    MAIN PROGRAM LOOP                     ===
// ================================================================

void loop() {
  // read a packet from FIFO
#ifdef INTERRUPT_PIN
  if (mpuInterrupt && mpu.dmpGetCurrentFIFOPacket(fifoBuffer)) { // Get the Latest packet
    mpuInterrupt = 0;
#else
  if (mpu.dmpGetCurrentFIFOPacket(fifoBuffer)) { // Get the Latest packet
#endif
    // display Euler angles in degrees
    mpu.dmpGetQuaternion(&q, fifoBuffer);
    mpu.dmpGetGravity(&gravity, &q);
    mpu.dmpGetYawPitchRoll(ypr, &q, &gravity);
    Serial.print("ypr\t");
    Serial.print(ypr[0] * 180 / M_PI);
    Serial.print("\t");
    Serial.print(ypr[1] * 180 / M_PI);
    Serial.print("\t");
    Serial.print(ypr[2] * 180 / M_PI);
    /*  All Data Available:
      mpu.dmpGetAccel(&aa, fifoBuffer);
      Serial.print("\tRaw Accl XYZ\t");
      Serial.print(aa.x);
      Serial.print("\t");
      Serial.print(aa.y);
      Serial.print("\t");
      Serial.print(aa.z);
      mpu.dmpGetGyro(&gy, fifoBuffer);
      Serial.print("\tRaw Gyro XYZ\t");
      Serial.print(gy.x);
      Serial.print("\t");
      Serial.print(gy.y);
      Serial.print("\t");
      Serial.print(gy.z);
    */
    Serial.println();

    // blink LED to indicate activity
    blinkState = !blinkState;
    digitalWrite(LED_PIN, blinkState);
  }
}
dsyleixa commented 4 years ago

I c+p'ed your source code into my Arduino IDE Editor (1.8.9) Board: ESP32 (Adafruit Feather) ESP32 core ver: 1.0.4 (latest) I just installed the new available MPU6050 lib, no different libs/dependencies.

ctrl+r.....:

compile error:

D:\arduino\arduino-builder -dump-prefs -logger=machine -hardware D:\arduino\hardware -hardware D:\arduino\portable\packages -tools D:\arduino\tools-builder -tools D:\arduino\hardware\tools\avr -tools D:\arduino\portable\packages -built-in-libraries D:\arduino\libraries -libraries D:\arduino\portable\sketchbook\libraries -fqbn=esp32:esp32:featheresp32:FlashFreq=80,UploadSpeed=921600,DebugLevel=none,PartitionScheme=default -ide-version=10809 -build-path C:\Users\hw\AppData\Local\Temp\arduino_build_651848 -warnings=none -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.esptool_py.path=D:\arduino\portable\packages\esp32\tools\esptool_py\2.6.1 -prefs=runtime.tools.esptool_py-2.6.1.path=D:\arduino\portable\packages\esp32\tools\esptool_py\2.6.1 -prefs=runtime.tools.mkspiffs.path=D:\arduino\portable\packages\esp32\tools\mkspiffs\0.2.3 -prefs=runtime.tools.mkspiffs-0.2.3.path=D:\arduino\portable\packages\esp32\tools\mkspiffs\0.2.3 -prefs=runtime.tools.xtensa-esp32-elf-gcc.path=D:\arduino\portable\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-80-g6c4433a-5.2.0 -prefs=runtime.tools.xtensa-esp32-elf-gcc-1.22.0-80-g6c4433a-5.2.0.path=D:\arduino\portable\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-80-g6c4433a-5.2.0 -verbose D:\Akten\Programmierung\ArduinoProgs\ESP32_Test\MPU6050dmp6nIRQ\MPU6050dmp6nIRQ001\MPU6050dmp6nIRQ001.ino
D:\arduino\arduino-builder -compile -logger=machine -hardware D:\arduino\hardware -hardware D:\arduino\portable\packages -tools D:\arduino\tools-builder -tools D:\arduino\hardware\tools\avr -tools D:\arduino\portable\packages -built-in-libraries D:\arduino\libraries -libraries D:\arduino\portable\sketchbook\libraries -fqbn=esp32:esp32:featheresp32:FlashFreq=80,UploadSpeed=921600,DebugLevel=none,PartitionScheme=default -ide-version=10809 -build-path C:\Users\hw\AppData\Local\Temp\arduino_build_651848 -warnings=none -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.esptool_py.path=D:\arduino\portable\packages\esp32\tools\esptool_py\2.6.1 -prefs=runtime.tools.esptool_py-2.6.1.path=D:\arduino\portable\packages\esp32\tools\esptool_py\2.6.1 -prefs=runtime.tools.mkspiffs.path=D:\arduino\portable\packages\esp32\tools\mkspiffs\0.2.3 -prefs=runtime.tools.mkspiffs-0.2.3.path=D:\arduino\portable\packages\esp32\tools\mkspiffs\0.2.3 -prefs=runtime.tools.xtensa-esp32-elf-gcc.path=D:\arduino\portable\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-80-g6c4433a-5.2.0 -prefs=runtime.tools.xtensa-esp32-elf-gcc-1.22.0-80-g6c4433a-5.2.0.path=D:\arduino\portable\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-80-g6c4433a-5.2.0 -verbose D:\Akten\Programmierung\ArduinoProgs\ESP32_Test\MPU6050dmp6nIRQ\MPU6050dmp6nIRQ001\MPU6050dmp6nIRQ001.ino
Using board 'featheresp32' from platform in folder: D:\arduino\portable\packages\esp32\hardware\esp32\1.0.4
Using core 'esp32' from platform in folder: D:\arduino\portable\packages\esp32\hardware\esp32\1.0.4
Detecting libraries used...
"D:\\arduino\\portable\\packages\\esp32\\tools\\xtensa-esp32-elf-gcc\\1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-g++" -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -DGCC_NOT_5_2_0=0 -DWITH_POSIX "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/config" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/app_trace" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/app_update" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/asio" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/bootloader_support" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/bt" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/coap" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/console" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/driver" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-tls" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp32" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_adc_cal" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_event" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_http_client" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_http_server" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_https_ota" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_ringbuf" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/ethernet" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/expat" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/fatfs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/freemodbus" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/freertos" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/heap" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/idf_test" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/jsmn" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/json" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/libsodium" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/log" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/lwip" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mbedtls" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mdns" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/micro-ecc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mqtt" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/newlib" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/nghttp" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/nvs_flash" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/openssl" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/protobuf-c" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/protocomm" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/pthread" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/sdmmc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/smartconfig_ack" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/soc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/spi_flash" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/spiffs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/tcp_transport" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/tcpip_adapter" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/ulp" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/vfs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wear_levelling" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wifi_provisioning" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wpa_supplicant" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/xtensa-debug-module" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-face" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp32-camera" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-face" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/fb_gfx" -std=gnu++11 -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=maybe-uninitialized -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-unused-but-set-parameter -Wno-missing-field-initializers -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10809 -DARDUINO_FEATHER_ESP32 -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"FEATHER_ESP32\"" "-DARDUINO_VARIANT=\"feather_esp32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\cores\\esp32" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\variants\\feather_esp32" "C:\\Users\\hw\\AppData\\Local\\Temp\\arduino_build_651848\\sketch\\MPU6050dmp6nIRQ001.ino.cpp" -o nul
"D:\\arduino\\portable\\packages\\esp32\\tools\\xtensa-esp32-elf-gcc\\1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-g++" -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -DGCC_NOT_5_2_0=0 -DWITH_POSIX "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/config" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/app_trace" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/app_update" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/asio" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/bootloader_support" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/bt" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/coap" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/console" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/driver" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-tls" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp32" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_adc_cal" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_event" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_http_client" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_http_server" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_https_ota" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_ringbuf" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/ethernet" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/expat" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/fatfs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/freemodbus" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/freertos" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/heap" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/idf_test" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/jsmn" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/json" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/libsodium" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/log" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/lwip" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mbedtls" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mdns" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/micro-ecc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mqtt" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/newlib" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/nghttp" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/nvs_flash" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/openssl" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/protobuf-c" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/protocomm" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/pthread" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/sdmmc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/smartconfig_ack" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/soc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/spi_flash" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/spiffs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/tcp_transport" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/tcpip_adapter" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/ulp" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/vfs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wear_levelling" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wifi_provisioning" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wpa_supplicant" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/xtensa-debug-module" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-face" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp32-camera" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-face" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/fb_gfx" -std=gnu++11 -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=maybe-uninitialized -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-unused-but-set-parameter -Wno-missing-field-initializers -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10809 -DARDUINO_FEATHER_ESP32 -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"FEATHER_ESP32\"" "-DARDUINO_VARIANT=\"feather_esp32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\cores\\esp32" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\variants\\feather_esp32" "-ID:\\arduino\\portable\\sketchbook\\libraries\\I2Cdev" "C:\\Users\\hw\\AppData\\Local\\Temp\\arduino_build_651848\\sketch\\MPU6050dmp6nIRQ001.ino.cpp" -o nul
"D:\\arduino\\portable\\packages\\esp32\\tools\\xtensa-esp32-elf-gcc\\1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-g++" -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -DGCC_NOT_5_2_0=0 -DWITH_POSIX "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/config" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/app_trace" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/app_update" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/asio" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/bootloader_support" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/bt" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/coap" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/console" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/driver" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-tls" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp32" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_adc_cal" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_event" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_http_client" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_http_server" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_https_ota" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_ringbuf" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/ethernet" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/expat" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/fatfs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/freemodbus" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/freertos" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/heap" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/idf_test" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/jsmn" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/json" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/libsodium" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/log" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/lwip" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mbedtls" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mdns" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/micro-ecc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mqtt" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/newlib" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/nghttp" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/nvs_flash" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/openssl" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/protobuf-c" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/protocomm" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/pthread" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/sdmmc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/smartconfig_ack" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/soc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/spi_flash" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/spiffs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/tcp_transport" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/tcpip_adapter" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/ulp" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/vfs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wear_levelling" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wifi_provisioning" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wpa_supplicant" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/xtensa-debug-module" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-face" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp32-camera" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-face" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/fb_gfx" -std=gnu++11 -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=maybe-uninitialized -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-unused-but-set-parameter -Wno-missing-field-initializers -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10809 -DARDUINO_FEATHER_ESP32 -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"FEATHER_ESP32\"" "-DARDUINO_VARIANT=\"feather_esp32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\cores\\esp32" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\variants\\feather_esp32" "-ID:\\arduino\\portable\\sketchbook\\libraries\\I2Cdev" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\libraries\\Wire\\src" "C:\\Users\\hw\\AppData\\Local\\Temp\\arduino_build_651848\\sketch\\MPU6050dmp6nIRQ001.ino.cpp" -o nul
"D:\\arduino\\portable\\packages\\esp32\\tools\\xtensa-esp32-elf-gcc\\1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-g++" -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -DGCC_NOT_5_2_0=0 -DWITH_POSIX "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/config" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/app_trace" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/app_update" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/asio" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/bootloader_support" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/bt" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/coap" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/console" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/driver" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-tls" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp32" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_adc_cal" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_event" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_http_client" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_http_server" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_https_ota" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_ringbuf" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/ethernet" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/expat" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/fatfs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/freemodbus" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/freertos" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/heap" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/idf_test" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/jsmn" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/json" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/libsodium" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/log" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/lwip" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mbedtls" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mdns" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/micro-ecc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mqtt" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/newlib" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/nghttp" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/nvs_flash" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/openssl" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/protobuf-c" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/protocomm" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/pthread" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/sdmmc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/smartconfig_ack" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/soc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/spi_flash" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/spiffs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/tcp_transport" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/tcpip_adapter" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/ulp" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/vfs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wear_levelling" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wifi_provisioning" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wpa_supplicant" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/xtensa-debug-module" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-face" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp32-camera" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-face" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/fb_gfx" -std=gnu++11 -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=maybe-uninitialized -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-unused-but-set-parameter -Wno-missing-field-initializers -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10809 -DARDUINO_FEATHER_ESP32 -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"FEATHER_ESP32\"" "-DARDUINO_VARIANT=\"feather_esp32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\cores\\esp32" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\variants\\feather_esp32" "-ID:\\arduino\\portable\\sketchbook\\libraries\\I2Cdev" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\libraries\\Wire\\src" "-ID:\\arduino\\portable\\sketchbook\\libraries\\MPU6050" "C:\\Users\\hw\\AppData\\Local\\Temp\\arduino_build_651848\\sketch\\MPU6050dmp6nIRQ001.ino.cpp" -o nul
"D:\\arduino\\portable\\packages\\esp32\\tools\\xtensa-esp32-elf-gcc\\1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-g++" -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -DGCC_NOT_5_2_0=0 -DWITH_POSIX "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/config" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/app_trace" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/app_update" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/asio" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/bootloader_support" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/bt" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/coap" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/console" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/driver" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-tls" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp32" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_adc_cal" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_event" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_http_client" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_http_server" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_https_ota" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_ringbuf" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/ethernet" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/expat" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/fatfs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/freemodbus" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/freertos" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/heap" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/idf_test" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/jsmn" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/json" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/libsodium" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/log" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/lwip" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mbedtls" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mdns" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/micro-ecc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mqtt" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/newlib" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/nghttp" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/nvs_flash" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/openssl" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/protobuf-c" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/protocomm" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/pthread" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/sdmmc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/smartconfig_ack" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/soc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/spi_flash" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/spiffs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/tcp_transport" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/tcpip_adapter" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/ulp" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/vfs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wear_levelling" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wifi_provisioning" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wpa_supplicant" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/xtensa-debug-module" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-face" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp32-camera" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-face" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/fb_gfx" -std=gnu++11 -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=maybe-uninitialized -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-unused-but-set-parameter -Wno-missing-field-initializers -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10809 -DARDUINO_FEATHER_ESP32 -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"FEATHER_ESP32\"" "-DARDUINO_VARIANT=\"feather_esp32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\cores\\esp32" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\variants\\feather_esp32" "-ID:\\arduino\\portable\\sketchbook\\libraries\\I2Cdev" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\libraries\\Wire\\src" "-ID:\\arduino\\portable\\sketchbook\\libraries\\MPU6050" "D:\\arduino\\portable\\sketchbook\\libraries\\I2Cdev\\I2Cdev.cpp" -o nul
"D:\\arduino\\portable\\packages\\esp32\\tools\\xtensa-esp32-elf-gcc\\1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-g++" -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -DGCC_NOT_5_2_0=0 -DWITH_POSIX "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/config" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/app_trace" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/app_update" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/asio" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/bootloader_support" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/bt" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/coap" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/console" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/driver" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-tls" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp32" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_adc_cal" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_event" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_http_client" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_http_server" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_https_ota" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_ringbuf" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/ethernet" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/expat" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/fatfs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/freemodbus" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/freertos" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/heap" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/idf_test" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/jsmn" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/json" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/libsodium" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/log" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/lwip" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mbedtls" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mdns" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/micro-ecc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mqtt" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/newlib" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/nghttp" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/nvs_flash" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/openssl" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/protobuf-c" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/protocomm" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/pthread" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/sdmmc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/smartconfig_ack" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/soc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/spi_flash" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/spiffs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/tcp_transport" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/tcpip_adapter" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/ulp" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/vfs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wear_levelling" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wifi_provisioning" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wpa_supplicant" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/xtensa-debug-module" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-face" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp32-camera" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-face" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/fb_gfx" -std=gnu++11 -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=maybe-uninitialized -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-unused-but-set-parameter -Wno-missing-field-initializers -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10809 -DARDUINO_FEATHER_ESP32 -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"FEATHER_ESP32\"" "-DARDUINO_VARIANT=\"feather_esp32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\cores\\esp32" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\variants\\feather_esp32" "-ID:\\arduino\\portable\\sketchbook\\libraries\\I2Cdev" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\libraries\\Wire\\src" "-ID:\\arduino\\portable\\sketchbook\\libraries\\MPU6050" "D:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\libraries\\Wire\\src\\Wire.cpp" -o nul
"D:\\arduino\\portable\\packages\\esp32\\tools\\xtensa-esp32-elf-gcc\\1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-g++" -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -DGCC_NOT_5_2_0=0 -DWITH_POSIX "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/config" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/app_trace" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/app_update" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/asio" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/bootloader_support" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/bt" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/coap" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/console" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/driver" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-tls" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp32" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_adc_cal" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_event" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_http_client" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_http_server" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_https_ota" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_ringbuf" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/ethernet" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/expat" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/fatfs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/freemodbus" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/freertos" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/heap" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/idf_test" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/jsmn" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/json" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/libsodium" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/log" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/lwip" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mbedtls" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mdns" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/micro-ecc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mqtt" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/newlib" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/nghttp" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/nvs_flash" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/openssl" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/protobuf-c" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/protocomm" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/pthread" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/sdmmc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/smartconfig_ack" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/soc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/spi_flash" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/spiffs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/tcp_transport" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/tcpip_adapter" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/ulp" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/vfs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wear_levelling" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wifi_provisioning" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wpa_supplicant" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/xtensa-debug-module" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-face" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp32-camera" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-face" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/fb_gfx" -std=gnu++11 -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=maybe-uninitialized -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-unused-but-set-parameter -Wno-missing-field-initializers -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10809 -DARDUINO_FEATHER_ESP32 -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"FEATHER_ESP32\"" "-DARDUINO_VARIANT=\"feather_esp32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\cores\\esp32" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\variants\\feather_esp32" "-ID:\\arduino\\portable\\sketchbook\\libraries\\I2Cdev" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\libraries\\Wire\\src" "-ID:\\arduino\\portable\\sketchbook\\libraries\\MPU6050" "D:\\arduino\\portable\\sketchbook\\libraries\\MPU6050\\MPU6050.cpp" -o nul
Generating function prototypes...
"D:\\arduino\\portable\\packages\\esp32\\tools\\xtensa-esp32-elf-gcc\\1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-g++" -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -DGCC_NOT_5_2_0=0 -DWITH_POSIX "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/config" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/app_trace" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/app_update" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/asio" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/bootloader_support" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/bt" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/coap" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/console" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/driver" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-tls" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp32" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_adc_cal" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_event" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_http_client" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_http_server" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_https_ota" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_ringbuf" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/ethernet" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/expat" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/fatfs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/freemodbus" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/freertos" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/heap" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/idf_test" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/jsmn" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/json" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/libsodium" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/log" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/lwip" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mbedtls" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mdns" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/micro-ecc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mqtt" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/newlib" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/nghttp" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/nvs_flash" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/openssl" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/protobuf-c" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/protocomm" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/pthread" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/sdmmc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/smartconfig_ack" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/soc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/spi_flash" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/spiffs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/tcp_transport" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/tcpip_adapter" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/ulp" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/vfs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wear_levelling" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wifi_provisioning" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wpa_supplicant" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/xtensa-debug-module" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-face" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp32-camera" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-face" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/fb_gfx" -std=gnu++11 -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=maybe-uninitialized -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-unused-but-set-parameter -Wno-missing-field-initializers -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10809 -DARDUINO_FEATHER_ESP32 -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"FEATHER_ESP32\"" "-DARDUINO_VARIANT=\"feather_esp32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\cores\\esp32" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\variants\\feather_esp32" "-ID:\\arduino\\portable\\sketchbook\\libraries\\I2Cdev" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\libraries\\Wire\\src" "-ID:\\arduino\\portable\\sketchbook\\libraries\\MPU6050" "C:\\Users\\hw\\AppData\\Local\\Temp\\arduino_build_651848\\sketch\\MPU6050dmp6nIRQ001.ino.cpp" -o "C:\\Users\\hw\\AppData\\Local\\Temp\\arduino_build_651848\\preproc\\ctags_target_for_gcc_minus_e.cpp"
"D:\\arduino\\tools-builder\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Users\\hw\\AppData\\Local\\Temp\\arduino_build_651848\\preproc\\ctags_target_for_gcc_minus_e.cpp"
Sketch wird kompiliert...
"D:\\arduino\\portable\\packages\\esp32\\tools\\xtensa-esp32-elf-gcc\\1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-g++" -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -DGCC_NOT_5_2_0=0 -DWITH_POSIX "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/config" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/app_trace" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/app_update" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/asio" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/bootloader_support" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/bt" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/coap" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/console" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/driver" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-tls" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp32" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_adc_cal" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_event" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_http_client" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_http_server" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_https_ota" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp_ringbuf" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/ethernet" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/expat" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/fatfs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/freemodbus" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/freertos" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/heap" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/idf_test" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/jsmn" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/json" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/libsodium" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/log" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/lwip" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mbedtls" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mdns" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/micro-ecc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/mqtt" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/newlib" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/nghttp" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/nvs_flash" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/openssl" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/protobuf-c" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/protocomm" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/pthread" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/sdmmc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/smartconfig_ack" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/soc" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/spi_flash" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/spiffs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/tcp_transport" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/tcpip_adapter" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/ulp" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/vfs" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wear_levelling" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wifi_provisioning" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/wpa_supplicant" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/xtensa-debug-module" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-face" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp32-camera" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/esp-face" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/sdk/include/fb_gfx" -std=gnu++11 -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=maybe-uninitialized -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-unused-but-set-parameter -Wno-missing-field-initializers -Wno-sign-compare -fno-rtti -MMD -c -DF_CPU=240000000L -DARDUINO=10809 -DARDUINO_FEATHER_ESP32 -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"FEATHER_ESP32\"" "-DARDUINO_VARIANT=\"feather_esp32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\cores\\esp32" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\variants\\feather_esp32" "-ID:\\arduino\\portable\\sketchbook\\libraries\\I2Cdev" "-ID:\\arduino\\portable\\packages\\esp32\\hardware\\esp32\\1.0.4\\libraries\\Wire\\src" "-ID:\\arduino\\portable\\sketchbook\\libraries\\MPU6050" "C:\\Users\\hw\\AppData\\Local\\Temp\\arduino_build_651848\\sketch\\MPU6050dmp6nIRQ001.ino.cpp" -o "C:\\Users\\hw\\AppData\\Local\\Temp\\arduino_build_651848\\sketch\\MPU6050dmp6nIRQ001.ino.cpp.o"
In file included from D:\Akten\Programmierung\ArduinoProgs\ESP32_Test\MPU6050dmp6nIRQ\MPU6050dmp6nIRQ001\MPU6050dmp6nIRQ001.ino:36:0:

D:\arduino\portable\sketchbook\libraries\MPU6050/MPU6050_6Axis_MotionApps_V6_12.h:67:24: error: conflicting declaration 'typedef int8_t prog_int8_t'

         typedef int8_t prog_int8_t;

                        ^

In file included from D:\arduino\portable\packages\esp32\hardware\esp32\1.0.4\cores\esp32/WString.h:29:0,

                 from D:\arduino\portable\packages\esp32\hardware\esp32\1.0.4\cores\esp32/Arduino.h:146,

                 from C:\Users\hw\AppData\Local\Temp\arduino_build_651848\sketch\MPU6050dmp6nIRQ001.ino.cpp:1:

D:\arduino\portable\packages\esp32\hardware\esp32\1.0.4\cores\esp32/pgmspace.h:25:14: note: previous declaration as 'typedef char prog_int8_t'

 typedef char prog_int8_t;

              ^

In file included from D:\Akten\Programmierung\ArduinoProgs\ESP32_Test\MPU6050dmp6nIRQ\MPU6050dmp6nIRQ001\MPU6050dmp6nIRQ001.ino:36:0:

D:\arduino\portable\sketchbook\libraries\MPU6050/MPU6050_6Axis_MotionApps_V6_12.h:71:25: error: conflicting declaration 'typedef int32_t prog_int32_t'

         typedef int32_t prog_int32_t;

                         ^

In file included from D:\arduino\portable\packages\esp32\hardware\esp32\1.0.4\cores\esp32/WString.h:29:0,

                 from D:\arduino\portable\packages\esp32\hardware\esp32\1.0.4\cores\esp32/Arduino.h:146,

                 from C:\Users\hw\AppData\Local\Temp\arduino_build_651848\sketch\MPU6050dmp6nIRQ001.ino.cpp:1:

D:\arduino\portable\packages\esp32\hardware\esp32\1.0.4\cores\esp32/pgmspace.h:29:14: note: previous declaration as 'typedef long int prog_int32_t'

 typedef long prog_int32_t;

              ^

In file included from D:\Akten\Programmierung\ArduinoProgs\ESP32_Test\MPU6050dmp6nIRQ\MPU6050dmp6nIRQ001\MPU6050dmp6nIRQ001.ino:36:0:

D:\arduino\portable\sketchbook\libraries\MPU6050/MPU6050_6Axis_MotionApps_V6_12.h:72:26: error: conflicting declaration 'typedef uint32_t prog_uint32_t'

         typedef uint32_t prog_uint32_t;

                          ^

In file included from D:\arduino\portable\packages\esp32\hardware\esp32\1.0.4\cores\esp32/WString.h:29:0,

                 from D:\arduino\portable\packages\esp32\hardware\esp32\1.0.4\cores\esp32/Arduino.h:146,

                 from C:\Users\hw\AppData\Local\Temp\arduino_build_651848\sketch\MPU6050dmp6nIRQ001.ino.cpp:1:

D:\arduino\portable\packages\esp32\hardware\esp32\1.0.4\cores\esp32/pgmspace.h:30:23: note: previous declaration as 'typedef long unsigned int prog_uint32_t'

 typedef unsigned long prog_uint32_t;

                       ^

Bibliothek I2Cdev im Ordner: D:\arduino\portable\sketchbook\libraries\I2Cdev (legacy) wird verwendet
Bibliothek Wire in Version 1.0.1 im Ordner: D:\arduino\portable\packages\esp32\hardware\esp32\1.0.4\libraries\Wire  wird verwendet
Bibliothek MPU6050 im Ordner: D:\arduino\portable\sketchbook\libraries\MPU6050 (legacy) wird verwendet
exit status 1
Fehler beim Kompilieren für das Board Adafruit ESP32 Feather.
ZHomeSlice commented 4 years ago

Removing these lines from MPU6050_6Axis_MotionApps_V6_12.h should solve the problem:

    typedef int8_t prog_int8_t;
    typedef uint8_t prog_uint8_t;
    typedef int16_t prog_int16_t;
    typedef uint16_t prog_uint16_t;
    typedef int32_t prog_int32_t;
    typedef uint32_t prog_uint32_t;
dsyleixa commented 4 years ago

tbh, i would never dare to mess around in original library code, i would be too worried about accidentally destroying something irretrievably. So the lib actually would be expected to work for ESP and ARM cores out of the box. OTOH, IMO it's really not a good programming style at all to redefine common C/C++ stdint variable types...

ZHomeSlice commented 4 years ago

Of course poor or incorrect programming practices pop up all over the place. I'm not a programming master but just a hobbiest that loves robotics. Also note it's not my library and I'm not an expert at c++ to be the one to determine this or how to fix it for all processor types. I just Googled your error message and seen the possible solution. I hope it help you get it working on your ESP32. Z

dsyleixa commented 4 years ago

perhaps it might be possible via #ifdef __AVR__ typedef int8_t prog_int8_t; typedef uint8_t prog_uint8_t; typedef int16_t prog_int16_t; typedef uint16_t prog_uint16_t; typedef int32_t prog_int32_t; typedef uint32_t prog_uint32_t; #endif ?? or drop those redefinitions entirely? Finally, who in the world still needs 2kb AVRs? Just an idea, I am a simple Arduino user, not a developer as already stated.