Not able to read MLX90640 Thermal IR camera on I2C bus on ESP32

Viewed 21

I have been working with two Adafruit MLX90640 Thermal IR cameras and hooked them up in parallel to the built-in I2C channels of my ESP32 MCU. I am not able to get it to read the frames from both cameras through I2C.

I am using the simple test example from the Adafruit library, but modified it to instantiate two MLX90640's instead of one.

I made a few adjustments to the Adafruit header for the MLX90640 library to include the second device after I changed its address to 0x32.

#define MLX90640_I2CADDR_DEFAULT 0x33 ///< I2C address by default
#define MLX90640_I2CADDR_DEFAULT_2 0x32 ///< I2C address by default

Here is my code:

#include <Adafruit_MLX90640.h>

Adafruit_MLX90640 mlx1;
Adafruit_MLX90640 mlx2;
float frame1[32 * 24]; // buffer for full frame of temperatures
float frame2[32 * 24]; // buffer for full frame of temperatures
// uncomment *one* of the below
#define PRINT_TEMPERATURES
//#define PRINT_ASCIIART

void setup() {
  pinMode(23, OUTPUT); // set the pin as output
  digitalWrite(23, HIGH);
  Serial.begin(115200);
  while (!Serial) delay(10);
  delay(800);

  Serial.println("Adafruit MLX90640 Simple Test");
  if (! mlx1.begin(MLX90640_I2CADDR_DEFAULT, &Wire)) {
    Serial.println("MLX90640_1 not found!");
    while (1) delay(10);
  }
  if (! mlx2.begin(MLX90640_I2CADDR_DEFAULT_2, &Wire)) {
    Serial.println("MLX90640_2 not found!");
    while (1) delay(10);
  }
  Serial.println("Found Adafruit MLX90640");

  Serial.print("Serial number: ");
  Serial.print(mlx1.serialNumber[0], HEX);
  Serial.print(mlx1.serialNumber[1], HEX);
  Serial.println(mlx1.serialNumber[2], HEX);

  Serial.print("Serial number: ");
  Serial.print(mlx2.serialNumber[0], HEX);
  Serial.print(mlx2.serialNumber[1], HEX);
  Serial.println(mlx2.serialNumber[2], HEX);


  //mlx.setMode(MLX90640_INTERLEAVED);
  mlx1.setMode(MLX90640_CHESS);
  mlx2.setMode(MLX90640_CHESS);
  Serial.print("Current mode: ");
  if (mlx1.getMode() == MLX90640_CHESS) {
    Serial.println("Wide Angle is Chess");
  } else {
    Serial.println("Wide Angle is Interleave");
  }
  if (mlx2.getMode() == MLX90640_CHESS) {
    Serial.println("Narrow Angle is Chess");
  } else {
    Serial.println("Narrow Angle is Interleave");
  }
  mlx1.setResolution(MLX90640_ADC_18BIT);
  mlx2.setResolution(MLX90640_ADC_19BIT);
  Serial.print("Current resolution: ");
  mlx90640_resolution_t res1 = mlx1.getResolution();
  mlx90640_resolution_t res2 = mlx2.getResolution();
  switch (res1) {
    case MLX90640_ADC_16BIT: Serial.println("Wide is 16 bit"); break;
    case MLX90640_ADC_17BIT: Serial.println("Wide is 17 bit"); break;
    case MLX90640_ADC_18BIT: Serial.println("Wide is 18 bit"); break;
    case MLX90640_ADC_19BIT: Serial.println("Wide is 19 bit"); break;
  }
  switch (res2) {
    case MLX90640_ADC_16BIT: Serial.println("Narrow is 16 bit"); break;
    case MLX90640_ADC_17BIT: Serial.println("Narrow is 17 bit"); break;
    case MLX90640_ADC_18BIT: Serial.println("Narrow is 18 bit"); break;
    case MLX90640_ADC_19BIT: Serial.println("Narrow is 19 bit"); break;
  }

  mlx1.setRefreshRate(MLX90640_2_HZ);
  mlx2.setRefreshRate(MLX90640_2_HZ);
  Serial.print("Current frame rate: ");
  mlx90640_refreshrate_t rate1 = mlx1.getRefreshRate();
  switch (rate1) {
    case MLX90640_0_5_HZ: Serial.println("0.5 Hz"); break;
    case MLX90640_1_HZ: Serial.println("1 Hz"); break;
    case MLX90640_2_HZ: Serial.println("2 Hz"); break;
    case MLX90640_4_HZ: Serial.println("4 Hz"); break;
    case MLX90640_8_HZ: Serial.println("8 Hz"); break;
    case MLX90640_16_HZ: Serial.println("16 Hz"); break;
    case MLX90640_32_HZ: Serial.println("32 Hz"); break;
    case MLX90640_64_HZ: Serial.println("64 Hz"); break;
  }
  mlx90640_refreshrate_t rate2 = mlx2.getRefreshRate();
  switch (rate2) {
    case MLX90640_0_5_HZ: Serial.println("0.5 Hz"); break;
    case MLX90640_1_HZ: Serial.println("1 Hz"); break;
    case MLX90640_2_HZ: Serial.println("2 Hz"); break;
    case MLX90640_4_HZ: Serial.println("4 Hz"); break;
    case MLX90640_8_HZ: Serial.println("8 Hz"); break;
    case MLX90640_16_HZ: Serial.println("16 Hz"); break;
    case MLX90640_32_HZ: Serial.println("32 Hz"); break;
    case MLX90640_64_HZ: Serial.println("64 Hz"); break;
  }

  Serial.println();
        Serial.print("Frame2");
  
  int status;
  status = mlx2.getFrame(frame2);
  if  (status != 0) {
    Serial.println("Narrow Failed");
    Serial.println(status);
    return;
  }
  for (uint8_t h2 = 0; h2 < 24; h2++) {
    for (uint8_t w2 = 0; w2 < 32; w2++) {
      float t2 = frame1[h2 * 32 + w2];
#ifdef PRINT_TEMPERATURES
      Serial.print(t2, 1);
      Serial.print(", ");
#endif
}
  }
}  
void loop() {
  delay(500);
  
  if (mlx1.getFrame(frame1) != 0) {
    Serial.println("Wide Failed");
    return;
  }

  Serial.println();
  Serial.println();
  for (uint8_t h1 = 0; h1 < 24; h1++) {
    for (uint8_t w1 = 0; w1 < 32; w1++) {
      float t1 = frame1[h1 * 32 + w1];

#ifdef PRINT_TEMPERATURES
      Serial.print(t1, 1);
      Serial.print(", ");
#endif
#ifdef PRINT_ASCIIART
      char c = '&';
      if (t1 < 20) c = ' ';
      else if (t1 < 23) c = '.';
      else if (t1 < 25) c = '-';
      else if (t1 < 27) c = '*';
      else if (t1 < 29) c = '+';
      else if (t1 < 31) c = 'x';
      else if (t1 < 33) c = '%';
      else if (t1 < 35) c = '#';
      else if (t1 < 37) c = 'X';
      Serial.print(c);

#endif
    }
    Serial.println();
  }
  Serial.print("Frame2");
  
  int status;
  status = mlx2.getFrame(frame2);
  if  (status != 0) {
    Serial.println("Narrow Failed");
    Serial.println(status);
    return;
  }
  for (uint8_t h2 = 0; h2 < 24; h2++) {
    for (uint8_t w2 = 0; w2 < 32; w2++) {
      float t2 = frame1[h2 * 32 + w2];
#ifdef PRINT_TEMPERATURES
      Serial.print(t2, 1);
      Serial.print(", ");
#endif
#ifdef PRINT_ASCIIART
      char c = '&';
      if (t2 < 20) c = ' ';
      else if (t2 < 23) c = '.';
      else if (t2 < 25) c = '-';
      else if (t2 < 27) c = '*';
      else if (t2 < 29) c = '+';
      else if (t2 < 31) c = 'x';
      else if (t2 < 33) c = '%';
      else if (t2 < 35) c = '#';
      else if (t2 < 37) c = 'X';
      Serial.print(c);
#endif
    }
    Serial.println();
  }
}

'''

I am able to R/W to both cameras to get the initial settings and ID numbers, but when it comes time to read the frames, I can only read one. Here is some output from this code:

'''Found Adafruit MLX90640
Serial number: F09FC57189
Serial number: 2B152FCB89
Current mode: Wide Angle is Chess
Narrow Angle is Chess
Current resolution: Wide is 18 bit
Narrow is 19 bit
Current frame rate: 2 Hz

Frame2Page0 = [0x2958, 0x3ffc, 0x1c6, 0x9f, 0x6900, 0x61, 0x2005, 0x20, 0x3e0, 0x32b, 0x152f, 0xcb89, 0x199, 0x0, 0x1001, 0x1900, 0x0, 0xbe33, 0xbe20, 0x43c7, 0x2b02, 0x101, 0x101, 0x1f1, 0xe0f0, 0xe0e0, 0xc012, 0x112, 0x102, 0xf102, 0xe1f2, 0xe1f2, 0xe1e2, 0xd0d1, 0xb095, 0x88e5, 0x3aa9, 0xdcff, 0x1122, 0x3333, 0x3322, 0x11ff, 0xcdcb, 0xddff, 0x11, 0x2233, 0x3233, 0x2322, 0x1111, 0xefde, 0x1882, 0x18a2, 0x2f54, 0x2988, 0xa633, 0xf9ce, 0xf935, 0x3631, 0x3052, 0x2300, 0x0, 0x0, 0x0, 0xf6cc, 0x97b1, 0x9769, 0x2620, 0xf80e, 0xf8de, 0x133c, 0xffde, 0xfbfe, 0xfb90, 0x170c, 0xe85e, 0xfc1e, 0xf88e, 0xfde, 0xf7ce, 0xf3ae, 0xf3de, 0x4be, 0xe36e, 0xf830, 0x3ae, 0x33e, 0xe4b0, 0xec9e, 0xe460, 0xf40e, 0xd8b0, 0xeb50, 0xe7c0, 0xff20, 0xdcb0, 0xe380, 0xe0b2, 0xf450, 0xd022, 0x10ec, 0xbdc, 0x183e, 0x18c0, 0x13ee, 0x77c, 0x7ee, 0x1750, 0x10ee, 0x75c, 0x1fa0, 0x1f80, 0x177e, 0x7bc, 0xfc90, 0x1330, 0x140e, 0x88c, 0xff20, 0xcb2, 0xc8e, 0xf45e, 0xff0, 0xfa2, 0xf5e, 0x3be, 0x1020, 0x1090, 0x75e, 0xae, 0xf840, 0x810, 0x10be, 0x2b6e, 0x82e, 0x1bde, 0xc0e, 0xc0e, 0x283c, 0x6e, 0x14a0, 0x1000, 0x243e, 0x49e, 0x13ae, 0xbce, 0x1c9e, 0xff5e, 0x10a0, 0x1b90, 0x1bde, ... and so on (gets repeated at the end)

Page0 = [0xffdc, 0xffd5, 0xffda, 0xffd3, 0xffd8, 0xffce, 0xffd6, 0xffcc, 0xffdb, 0xffe0, 0x1, 0xfff5, 0xfff7, 0xffec, 0xffe0, 0xffcb, 0xffce, 0xffc2, 0xffcd, 0xffc0, 0xffd4, 0xffca, 0xffd9, 0xffd0, 0xffdf, 0xffd4, 0xffe4, 0xffd6, 0xffe4, 0xffd9, 0xffe6, 0xffd1, 0xffd9, 0xffcd, 0xffd4, 0xffce, 0xffd5, 0xffc9, 0xffcc, 0xffc7, 0xffcf, 0xffc9, 0xfff1, 0xffee, 0xffea, 0xffd7, 0xffcd, 0xffc1, 0xffc9, 0xffb9, 0xffc2, 0xffb9, 0xffd1, 0xffc1, 0xffd0, 0xffcc, 0xffde, 0xffcd, 0xffdb, 0xffd3, 0xffe3, 0xffd5, 0xffdd, 0xffce, 0xffdb, 0xffd1, 0xffd7, 0xffd0, 0xffd7, 0xffcc, 0xffd4, 0xffcb, 0xffd1, 0xffc6, 0xffd7, 0xffd5, 0xffd1, 0xffc2, 0xffc7, 0xffbe, 0xffc8, 0xffbe, 0xffc9, 0xffbb, 0xffd1, 0xffc6, 0xffd9, 0xffcd, 0xffe0, 0xffd0, 0xffe5, 0xffd6, 0xffe7, 0xffda, 0xffe8, 0xffd3, 0xffd9, 0xffce, 0xffd2, 0xffca, 0xffd5, 0xffc7, 0xffcc, 0xffc7, 0xffce, 0xffbd, 0xffc6, 0xffbf, 0xffc5, 0xffb8, 0xffbe, 0xffb8, 0xffc5, 0xffb7, 0xffbe, 0xffb4, 0xffcb, 0xffbf, 0xffce, 0xffc9, 0xffdd, 0xffcc, 0xffdc, 0xffcf, 0xffe5, 0xffd6, 0xffdf, 0xffd0, 0xffdb, 0xffd0, 0xffd8, 0xffd1, 0xffd8, 0xffcf, 0xffd1, 0xffc8, 0xffce, 0xffc5, 0xffcb, 0xffbe, 0xffc7, 0xffbc, 0xffc5, 0xffb7, 0xffc6, 0xffb8, 0xffc5, 0xffba, 0xffca, 0xffc1, 0xffd6, 0xffcd, 0xffe1, 0xffd0, 0xffe2, 0xffd8, 0xffe6, 0xffdc, 0xffe8, 0xffd4, 0xffdb, 0xffc9, 0xffd0, 0xffcf, 0xffd4, 0xffca, 0xffc8, 0xffc2, 0xffcc, 0xffbd, 0xffc5, 0xffba, 0xffc6, 0xffb5, 0xffbb, 0xffb4, 0xffc2, 0xffb1, 0xffb9, 0xffb5, 0xffc6, 0xffba, 0xffcf, 0xffc8, 0xffda, 0xffcb, 0xffdb, 0xffd0, 0xffe0, 0xffd4, 0xffe3, 0xffd2, 0xffdb, 0xffd5, 0xffd9, 0xffcf, 0xffd6, 0xffcb, 0xffd0, 0xffc6, 0xffce, 0xffc3, 0xffca, 0xffbe, 0xffc6, 0xffbb, 0xffc4, 0xffb6, 0xffc4, 0xffb5, 0xffc1, 0xffb7, 0xffc4, 0xffbe, 0xffd4, 0xffca, 0xffdf, 0xffd3, 0xffe2, 0xffd8, 0xffe5, 0xffdb, 0xffe8, 0xffd8, 0xffdb, 0xffcd, 0xffd1, 0xffc9, 0xffcf, 0xffc4, 0xffca, 0xffc0, 0xffc9, 0xffbb, 0xffc1, 0xffb7, 0xffc3, 0xffb4, 0xffb8, 0xffb3, 0xffbf, 0xffb0, 0xffb8, 0xffb0, 0xffc1, 0xffb6, 0xffcb, 0xffc4, 0xffd9, 0xffcb, 0xffda, 0xffd1, 0xffe1, 0xffd3, 0xffe1, 0xffd1, 0xffe0, 0xffd4, 0xffd8, 0xffce, 0xffd5, 0xffcb, 0xffd1, 0xffc6, 0xffce, 0xffc2, 0xffca, 0xffbf, 0xffc7, 0xffba, 0xffc2, 0xffb7, 0xffc1, 0xffb6, 0xffbf, 0xffb4, 0xffc1, 0xffba, 0xffd4, 0xffc9, 0xffdd, 0xffd2, 0xffe2, 0xffd7, 0xffe5, 0xffd9, 0xffe8, 0xffd7, 0xffdc, 0xffcd, 0xffcf, 0xffc8, 0xffcf, 0xffc3, 0xffc6, 0xffc0, 0xffc8, 0xffbb, 0xffbf, 0xffba, 0xffc4, 0xffb2, 0xffb7, 0xffb0, 0xffbd, 0xffad, 0xffb5, 0xffae, 0xffbc, 0xffb6, 0xffc9, 0xffc5, 0xffda, 0xffcb, 0xffd8, 0xffd1, 0xffe1, 0xffd2, 0xffde, 0xffd1, 0xffe6, 0xffd7, 0xffd9, 0xffce, 0xffd6, 0xffca, 0xffd2, 0xffc6, 0xffce, 0xffc0, 0xffc6, 0xffbb, 0xffc4, 0xffba, 0xffc2, 0xffb4, 0xffc2, 0xffb4, 0xffbe, 0xffb2, 0xffc5, 0xffc0, 0xffd4, 0xffcb, 0xffde, 0xffd2, 0xffe0, 0xffd8, 0xffe3, 0xffd9, 0xffe5, 0xffd5, 0xffe0, 0xffcf, 0xffce, 0xffc6, 0xffd1, 0xffc2, 0xffc6, 0xffbe, 0xffc9, 0xffba, 0xffbb, 0xffb3, 0xffbd, 0xffb2, 0xffb5, 0xffaf, 0xffbd, 0xffac, 0xffb6, 0xffae, 0xffc1, 0xffb7, 0xffca, 0xffc4, 0xffd8, 0xffc9, 0xffd6, 0xffcf, 0xffdf, 0xffd0, 0xffde, 0xffd0, 0xffe5, 0xffdc, 0xffd7, 0xffcd, 0xffd2, 0xffc8, 0xffd0, 0xffc5, 0xffca, 0xffc0, 0xffc4, 0xffb8, 0xffbf, 0xffb8, 0xffc0, 0xffb3, 0xffc1, 0xffb5, 0xffbd, 0xffb4, 0xffbe, 0xffb7, 0xffd0, 0xffca, 0xffdc, 0xffd2, 0xffdf, 0xffd6, 0xffe2, 0xffdb, 0xffe5, 0xffd6, 0xffe3, 0xffd3, 0xffce, 0xffc6, 0xffcc, 0xffbe, 0xffc4, 0xffbf, 0xffc4, 0xffb6, 0xffb8, 0xffb2, 0xffbc, 0xffaf, 0xffb4, 0xffad, 0xffba, 0xffa8, 0xffaf, 0xffab, 0xffb9, 0xffac, 0xffc6, 0xffc4, 0xffd7, 0xffca, 0xffd8, 0xffd0, 0xffde, 0xffd1, 0xffdd, 0xffcf, 0xfff6, 0xfff1, 0xffed, 0xffdf, 0xffd4, 0xffc8, 0xffc9, 0xffc0, 0xffc9, 0xffbe, 0xffc2, 0xffbb, 0xffc2, 0xffb7, 0xffc1, 0xffb4, 0xffbe, 0xffb0, 0xffb9, 0xffb4, 0xffbe, 0xffb6, 0xffd0, 0xffca, 0xffde, 0xffd3, 0xffe1, 0xffd8, 0xffe4, 0xffd9, 0xffe6, 0xffd6, 0xfff5, 0xffe9, 0xffec, 0xffe1, 0xffd2, 0xffbf, 0xffc0, 0xffb9, 0xffc3, 0xffb5, 0xffb8, 0xffb0, 0xffba, 0xffad, 0xffb4, 0xffa9, 0xffb6, 0xffa8, 0xffb1, 0xffad, 0xffb8, 0xffad, 0xffc5, 0xffc3, 0xffd7, 0xffcb, 0xffd6, 0xffd0, 0xffdf, 0xffce, 0xffdc, 0xffcd, 0xfffa, 0xfff0, 0xfff8, 0xfff0, 0xffdf, 0xffca, 0xffc9, 0xffc1, 0xffc9, 0xffbb, 0xffc1, 0xffb9, 0xffc2, 0xffb8, 0xffbe, 0xffb3, 0xffbd, 0xffb1, 0xffbd, 0xffb3, 0xffc2, 0xffba, 0xffd1, 0xffcc, 0xffdf, 0xffd7, 0xffdf, 0xffd9, 0xffe2, 0xffd9, 0xffe1, 0xffd4, 0xfff4, 0xffe7, 0xffee, 0xffe6, 0xffd7, 0xffc2, 0xffbc, 0xffb6, 0xffc2, 0xffb1, 0xffb7, 0xffb0, 0xffbb, 0xffac, 0xffb2, 0xffac, 0xffb6, 0xffa9, 0xffae, 0xffac, 0xffbb, 0xffb2, 0xffc8, 0xffc5, 0xffda, 0xffcc, 0xffd7, 0xffd0, 0xffdc, 0xffd0, 0xffda, 0xffca, 0xfff8, 0xfff1, 0xfff6, 0xffec, 0xffdb, 0xffcb, 0xffcc, 0xffc3, 0xffc7, 0xffba, 0xffc5, 0xffb6, 0xffc1, 0xffb7, 0xffbd, 0xffb1, 0xffbf, 0xffb3, 0xffbe, 0xffb4, 0xffc2, 0xffb9, 0xffd6, 0xffd1, 0xffe3, 0xffd7, 0xffe3, 0xffd9, 0xffe1, 0xffda, 0xffe3, 0xffd5, 0xfff0, 0xffe4, 0xffe8, 0xffde, 0xffcd, 0xffc0, 0xffbc, 0xffb9, 0xffbd, 0xffaf, 0xffb4, 0xffaf, 0xffba, 0xffac, 0xffb1, 0xffa8, 0xffb9, 0xffa9, 0xffb0, 0xffab, 0xffb9, 0xffaf, 0xffca, 0xffc8, 0xffdb, 0xffcf, 0xffd8, 0xffcf, 0xffde, 0xffcf, 0xffd8, 0xffc9, 0xfff4, 0xffec, 0xffe9, 0xffda, 0xffd1, 0xffc8, 0xffc9, 0xffbf, 0xffc7, 0xffba, 0xffc3, 0xffb8, 0xffc1, 0xffb7, 0xffc2, 0xffb7, 0xffc2, 0xffb6, 0xffc0, 0xffb5, 0xffc4, 0xffbe, 0xffdf, 0xffd6, 0xffe5, 0xffdd, 0xffe5, 0xffde, 0xffe3, 0xffda, 0xffe2, 0xffd2, 0xffea, 0xffdc, 0xffd7, 0xffc9, 0xffc6, 0xffb9, 0xffbe, 0xffb4, 0xffbc, 0xffae, 0xffb7, 0xffb1, 0xffba, 0xffab, 0xffb5, 0xffad, 0xffba, 0xffab, 0xffb2, 0xffa9, 0xffbb, 0xffae, 0xffd2, 0xffce, 0xffdd, 0xffd1, 0xffdc, 0xffd3, 0xffdc, 0xffd0, 0xffd4, 0xffc5, 0xfff1, 0xffe5, 0xffdc, 0xffcd, 0xffd2, 0xffc9, 0xffca, 0xffc3, 0xffc9, 0xffbd, 0xffc5, 0xffb9, 0xffc5, 0xffbd, 0xffc4, 0xffb8, 0xffc4, 0xffbb, 0xffc5, 0xffbc, 0xffc6, 0xffbd, 0xffdb, 0xffdc, 0xffe7, 0xffde, 0xffe5, 0xffdd, 0xffe3, 0xffdd, 0xffde, 0xffd1, 0xffe4, 0xffd4, 0xffd2, 0xffc3, 0xffc1, 0xffb5, 0xffbb, 0xffb2, 0xffbb, 0xffac, 0xffb4, 0xffa9, 0xffbb, 0xffa7, 0xffb6, 0xffaa, 0xffb5, 0xffa7, 0xffb8, 0xffaa, 0xffb7, 0xffa9, 0xffc2, 0xffc6, 0xffdc, 0xffca, 0xffd2, 0xffc8, 0xffd5, 0xffc9, 0xffcc, 0xffbc, 0x5280, 0x1afd, 0x7fff, 0x1afd, 0x7fff, 0x1afc, 0x7fff, 0x1afc, 0xffcb, 0xd818, 0x16dd, 0xdb78, 0xfffa, 0x6, 0xfffd, 0xffff, 0x16bd, 0x37a, 0x22b, 0x7fff, 0x16bc, 0x37a, 0x22b, 0x7fff, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x6bf, 0x7fff, 0x1afd, 0x7fff, 0x1afd, 0x7fff, 0x1afc, 0x7fff, 0xffd0, 0xf464, 0xd898, 0xd720, 0xa, 0xfffc, 0xffff, 0xffff, 0xd5, 0x33, 0x253e, 0x6f, 0xd4, 0x33, 0x253e, 0x6f, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1901, 0x1, ]
Tr = 20.79784966
Page1 = [0xffde, 0xffd5, 0xffdc, 0xffd3, 0xffde, 0xffce, 0xffd6, 0xffcc, 0xffe1, 0xffe0, 0x5, 0xfff5, 0xfff9, 0xffec, 0xffe3, 0xffcb, 0xffd2, 0xffc2, 0xffd2, 0xffc0, 0xffd8, 0xffca, 0xffdd, 0xffd0, 0xffe5, 0xffd4, 0xffe6, 0xffd6, 0xffe9, 0xffd9, 0xffea, 0xffd1, 0xffd9, 0xffd2, 0xffd4, 0xffce, 0xffd5, 0xffca, 0xffcc, 0xffc9, 0xffcf, 0xffcc, 0xfff1, 0xfff3, 0xffea, 0xffdd, 0xffcd, 0xffc3, 0xffc9, 0xffbe, 0xffc2, 0xffbe, 0xffd1, 0xffc6, 0xffd0, 0xffd0, 0xffde, 0xffd1, 0xffdb, 0xffd6, 0xffe3, 0xffd9, 0xffdd, 0xffd2, 0xffe0, 0xffd1, 0xffdc, 0xffd0, 0xffdc, 0xffcc, 0xffd8, 0xffcb, 0xffd3, 0xffc6, 0xffda, 0xffd5, 0xffd4, 0xffc2, 0xffcb, 0xffbe, 0xffcc, 0xffbe, 0xffcb, 0xffbb, 0xffd5, 0xffc6, 0xffdb, 0xffcd, 0xffe5, 0xffd0, 0xffe8, 0xffd6, 0xffeb, 0xffda, 0xffea, 0xffd3, 0xffd9, 0xffd1, 0xffd2, 0xffcf, 0xffd5, 0xffcc, 0xffcc, 0xffc8, 0xffce, 0xffc0, 0xffc6, 0xffc2, 0xffc5, 0xffbb, 0xffbe, 0xffbd, 0xffc5, 0xffb7, 0xffbe, 0xffb5, 0xffcb, 0xffc1, 0xffce, 0xffce, 0xffdd, 0xffd0, 0xffdc, 0xffd4, 0xffe5, 0xffda, 0xffdf, 0xffd4, 0xffdf, 0xffd0, 0xffdd, 0xffd1, 0xffdc, 0xffcf, 0xffd7, 0xffc8, 0xffd3, 0xffc5, 0xffd0, 0xffbe, 0xffcc, 0xffbc, 0xffca, 0xffb7, 0xffc8, 0xffb8, 0xffc8, 0xffba, 0xffce, 0xffc1, 0xffd9, 0xffcd, 0xffe4, 0xffd0, 0xffe5, 0xffd8, 0xffeb, 0xffdc, 0xffed, 0xffd4, 0xffdb, 0xffcd, 0xffd0, 0xffd1, 0xffd4, 0xffcc, 0xffc8, 0xffc7, 0xffcc, 0xffc0, 0xffc5, 0xffbb, 0xffc6, 0xffb9, 0xffbb, 0xffb8, 0xffc2, 0xffb5, 0xffb9, 0xffb7, 0xffc6, 0xffbd, 0xffcf, 0xffcc, 0xffda, 0xffd0, 0xffdb, 0xffd2, 0xffe0, 0xffd8, 0xffe3, 0xffd5, 0xffdf, 0xffd5, 0xffdb, 0xffcf, 0xffda, 0xffcb, 0xffd4, 0xffc6, 0xffd1, 0xffc3, 0xffcd, 0xffbe, 0xffca, 0xffbb, 0xffc7, 0xffb6, 0xffc4, 0xffb5, 0xffc4, 0xffb7, 0xffc8, 0xffbe, 0xffd7, 0xffca, 0xffe1, 0xffd3, 0xffe5, 0xffd8, 0xffe9, 0xffdb, 0xffeb, 0xffd8, 0xffdb, 0xffd2, 0xffd1, 0xffcc, 0xffcf, 0xffc9, 0xffca, 0xffc2, 0xffc9, 0xffc0, 0xffc1, 0xffbb, 0xffc3, 0xffb9, 0xffb8, 0xffb6, 0xffbf, 0xffb2, 0xffb8, 0xffb2, 0xffc1, 0xffb8, 0xffcb, 0xffc6, 0xffd9, 0xffce, 0xffda, 0xffd5, 0xffe1, 0xffd7, 0xffe1, 0xffd4, 0xffe3, 0xffd4, 0xffdb, 0xffce, 0xffd8, 0xffcb, 0xffd3, 0xffc6, 0xffd1, 0xffc2, 0xffcd, 0xffbf, 0xffc9, 0xffba, 0xffc6, 0xffb7, 0xffc6, 0xffb6, 0xffc4, 0xffb4, 0xffc7, 0xffba, 0xffd9, 0xffc9, 0xffe2, 0xffd2, 0xffe5, 0xffd7, 0xffe9, 0xffd9, 0xffea, 0xffd7, 0xffdc, 0xffd2, 0xffcf, 0xffca, 0xffcf, 0xffc7, 0xffc6, 0xffc6, 0xffc8, 0xffbe, 0xffbf, 0xffbb, 0xffc4, 0xffb6, 0xffb7, 0xffb2, 0xffbd, 0xffb2, 0xffb5, 0xffb1, 0xffbc, 0xffb9, 0xffc9, 0xffca, 0xffda, 0xffd1, 0xffd8, 0xffd4, 0xffe1, 0xffd6, 0xffde, 0xffd4, 0xffe7, 0xffd7, 0xffdc, 0xffce, 0xffda, 0xffca, 0xffd6, 0xffc6, 0xffd2, 0xffc0, 0xffc9, 0xffbb, 0xffc7, 0xffba, 0xffc5, 0xffb4, 0xffc7, 0xffb4, 0xffc3, 0xffb2, 0xffca, 0xffc0, 0xffd7, 0xffcb, 0xffe1, 0xffd2, 0xffe2, 0xffd8, 0xffe6, 0xffd9, 0xffe9, 0xffd5, 0xffe0, 0xffd5, 0xffce, 0xffc9, 0xffd1, 0xffc5, 0xffc6, 0xffc1, 0xffc9, 0xffbb, 0xffbb, 0xffb7, 0xffbd, 0xffb6, 0xffb5, 0xffb0, 0xffbd, 0xffaf, 0xffb6, 0xffb1, 0xffc1, 0xffbb, 0xffca, 0xffca, 0xffd8, 0xffcf, 0xffd6, 0xffd3, 0xffdf, 0xffd4, 0xffde, 0xffd2, 0xffe8, 0xffdc, 0xffdc, 0xffcd, 0xffd6, 0xffc8, 0xffd4, 0xffc5, 0xffcc, 0xffc0, 0xffc7, 0xffb8, 0xffc3, 0xffb8, 0xffc2, 0xffb3, 0xffc4, 0xffb5, 0xffbf, 0xffb4, 0xffc0, 0xffb7, 0xffd1, 0xffca, 0xffe1, 0xffd2, 0xffe2, 0xffd6, 0xffe2, 0xffdb, 0xffe6, 0xffd6, 0xffe3, 0xffd8, 0xffce, 0xffc9, 0xffcc, 0xffc1, 0xffc4, 0xffc2, 0xffc4, 0xffb8, 0xffb8, 0xffb5, 0xffbc, 0xffb1, 0xffb4, 0xffae, 0xffba, 0xffae, 0xffaf, 0xffae, 0xffb9, 0xffaf, 0xffc6, 0xffc6, 0xffd7, 0xffce, 0xffd8, 0xffd3, 0xffde, 0xffd5, 0xffdd, 0xffd1, 0xfffa, 0xfff1, 0xfff3, 0xffdf, 0xffd9, 0xffc8, 0xffcd, 0xffc0, 0xffcd, 0xffbe, 0xffc7, 0xffbb, 0xffc6, 0xffb7, 0xffc1, 0xffb4, 0xffc2, 0xffb0, 0xffbe, 0xffb4, 0xffc5, 0xffb6, 0xffd4, 0xffca, 0xffe2, 0xffd3, 0xffe4, 0xffd8, 0xffe7, 0xffd9, 0xffe8, 0xffd6, 0xfff5, 0xffed, 0xffec, 0xffe5, 0xffd2, 0xffc3, 0xffc0, 0xffbc, 0xffc3, 0xffb7, 0xffb8, 0xffb5, 0xffba, 0xffb1, 0xffb4, 0xffad, 0xffb6, 0xffa9, 0xffb1, 0xffad, 0xffb8, 0xffaf, 0xffc5, 0xffc5, 0xffd7, 0xffce, 0xffd6, 0xffd3, 0xffdf, 0xffd2, 0xffdc, 0xffd0, 0xffff, 0xfff0, 0xfffe, 0xfff0, 0xffe3, 0xffca, 0xffcd, 0xffc1, 0xffca, 0xffbb, 0xffc6, 0xffb9, 0xffc5, 0xffb8, 0xffc0, 0xffb3, 0xffc2, 0xffb1, 0xffc1, 0xffb3, 0xffc5, 0xffba, 0xffd3, 0xffcc, 0xffe1, 0xffd7, 0xffe1, 0xffd9, 0xffe4, 0xffd9, 0xffe2, 0xffd4, 0xfff4, 0xffec, 0xffee, 0xffea, 0xffd7, 0xffc5, 0xffbc, 0xffbc, 0xffc2, 0xffb4, 0xffb7, 0xffb4, 0xffbb, 0xffad, 0xffb2, 0xffaf, 0xffb6, 0xffad, 0xffae, 0xffac, 0xffbb, 0xffb2, 0xffc8, 0xffc9, 0xffda, 0xffcd, 0xffd7, 0xffd2, 0xffdc, 0xffd3, 0xffda, 0xffcd, 0xfffc, 0xfff1, 0xfff9, 0xffec, 0xffdd, 0xffcb, 0xffcf, 0xffc3, 0xffcb, 0xffba, 0xffc4, 0xffb6, 0xffc1, 0xffb7, 0xffc1, 0xffb1, 0xffc2, 0xffb3, 0xffc1, 0xffb4, 0xffc7, 0xffb9, 0xffdb, 0xffd1, 0xffe6, 0xffd7, 0xffe5, 0xffd9, 0xffe2, 0xffda, 0xffe7, 0xffd5, 0xfff0, 0xffe7, 0xffe8, 0xffe1, 0xffcd, 0xffc1, 0xffbc, 0xffb9, 0xffbd, 0xffb3, 0xffb4, 0xffb1, 0xffba, 0xffaf, 0xffb1, 0xffac, 0xffb9, 0xffad, 0xffb0, 0xffad, 0xffb9, 0xffb2, 0xffca, 0xffcc, 0xffdb, 0xffd3, 0xffd8, 0xffd4, 0xffde, 0xffd4, 0xffd8, 0xffcc, 0xfff8, 0xffec, 0xffe7, 0xffda, 0xffd4, 0xffc8, 0xffcb, 0xffbf, 0xffca, 0xffba, 0xffc6, 0xffb8, 0xffc2, 0xffb7, 0xffc2, 0xffb7, 0xffc3, 0xffb6, 0xffc2, 0xffb5, 0xffc6, 0xffbe, 0xffe1, 0xffd6, 0xffe9, 0xffdd, 0xffe8, 0xffde, 0xffe5, 0xffda, 0xffe5, 0xffd2, 0xffea, 0xffde, 0xffd7, 0xffca, 0xffc6, 0xffbc, 0xffbe, 0xffb8, 0xffbc, 0xffb1, 0xffb7, 0xffaf, 0xffba, 0xffb0, 0xffb5, 0xffb0, 0xffba, 0xffae, 0xffb2, 0xffae, 0xffbb, 0xffb4, 0xffd2, 0xffd1, 0xffdd, 0xffd2, 0xffdc, 0xffd7, 0xffdc, 0xffd4, 0xffd4, 0xffcb, 0xfff3, 0xffe5, 0xffd2, 0xffcd, 0xffd2, 0xffc9, 0xffcc, 0xffc3, 0xffca, 0xffbd, 0xffc6, 0xffb9, 0xffc5, 0xffbd, 0xffc0, 0xffb8, 0xffc9, 0xffbb, 0xffc0, 0xffbc, 0xffc8, 0xffbd, 0xffdd, 0xffdc, 0xffea, 0xffde, 0xffe7, 0xffdd, 0xffe7, 0xffdd, 0xffe0, 0xffd1, 0xffe4, 0xffd5, 0xffd2, 0xffbf, 0xffc1, 0xffb5, 0xffbb, 0xffb2, 0xffbb, 0xffaf, 0xffb4, 0xffaa, 0xffbb, 0xffa9, 0xffb6, 0xffaa, 0xffb5, 0xffaa, 0xffb8, 0xffac, 0xffb7, 0xffad, 0xffc2, 0xffc7, 0xffdc, 0xffcc, 0xffd2, 0xffcb, 0xffd5, 0xffc7, 0xffcc, 0xffbf, 0x5286, 0x1afd, 0x7fff, 0x1afd, 0x7fff, 0x1afc, 0x7fff, 0x1afc, 0xffd1, 0xd818, 0x16df, 0xdb78, 0xfffe, 0x6, 0x0, 0xffff, 0x16ae, 0x37a, 0x229, 0x7fff, 0x16ae, 0x37a, 0x229, 0x7fff, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x6bf, 0x7fff, 0x1afd, 0x7fff, 0x1afd, 0x7fff, 0x1afc, 0x7fff, 0xffd0, 0xf464, 0xd898, 0xd721, 0xa, 0xffff, 0xffff, 0x0, 0xd5, 0x37, 0x253e, 0x6e, 0xd4, 0x37, 0x253e, 0x6e, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1901, 0x0, ]
Tr = 20.75009155

27.8, 27.5, 27.7, 27.4, 27.7, 28.0, 30.9, 31.1, 31.3, 31.5, 32.6, 32.5, 32.0, 32.3, 32.0, 32.3, 
33.1, 31.6, 28.1, 28.9, 28.0, 28.0, 27.6, 28.1, 27.3, 27.2, 27.3, 27.4, 27.2, 27.6, 26.8, 27.7, 27.5, 27.4, 26.6, 28.0, 27.2, 27.6, 29.8, 31.9, 31.4, 31.8, 31.6, 32.7, 32.0, 32.4, 31.5, 33.1, 
34.9, 32.9, 32.8, 29.3, 29.1, 28.3, 29.4, 27.9, 28.4, 28.0, 28.6, 27.5, 28.6, 27.6, 28.9, 27.7, 27.8, 27.8, 29.1, 27.8, 27.8, 27.9, 30.2, 31.0, 32.4, 31.9, 32.5, 32.2, 32.5, 31.9, 33.1, 32.0, 
Frame2Page0 = [0xffde, 0xffd5, 0xffdc, 0xffd3, 0xffde, 0xffce, 0xffd6, 0xffcc, 0xffe1, 0xffe0, 0x5, 0xfff5, 0xfff9, 0xffec, 0xffe3, 0xffcb, 0xffd2, 0xffc2, 0xffd2, 0xffc0, 0xffd8, 0xffca, 0xffdd, 0xffd0, 0xffe5, 0xffd4, 0xffe6, 0xffd6, 0xffe9, 0xffd9, 0xffea, 0xffd1, 0xffd9, 0xffd2, 0xffd4, 0xffce, 0xffd5, 0xffca, 0xffcc, 0xffc9, 0xffcf, 0xffcc, 0xfff1, 0xfff3, 0xffea, 0xffdd, 0xffcd, 0xffc3, 0xffc9, 0xffbe, 0xffc2, 0xffbe, 0xffd1, 0xffc6, 0xffd0, 0xffd0, 0xffde, 0xffd1, 0xffdb, 0xffd6, 0xffe3, 0xffd9, 0xffdd, 0xffd2, 0xffe0, 0xffd1, 0xffdc, 0xffd0, 0xffdc, 0xffcc, 0xffd8, 0xffcb, 0xffd3, 0xffc6, 0xffda, 0xffd5, 0xffd4, 0xffc2, 0xffcb, 0xffbe, 0xffcc, 0xffbe, 0xffcb, 0xffbb, 0xffd5, 0xffc6, 0xffdb, 0xffcd, 0xffe5, 0xffd0, 0xffe8, 0xffd6, 0xffeb, 0xffda, 0xffea, 0xffd3, 0xffd9, 0xffd1, 0xffd2, 0xffcf, 0xffd5, 0xffcc, 0xffcc, 0xffc8, 0xffce, 0xffc0, 0xffc6, 0xffc2, 0xffc5, 0xffbb, 0xffbe, 0xffbd, 0xffc5, 0xffb7, 0xffbe, 0xffb5, 0xffcb, 0xffc1, 0xffce, 0xffce, 0xffdd, 0xffd0, 0xffdc, 0xffd4, 0xffe5, 0xffda, 0xffdf, 0xffd4, 0xffdf, 0xffd0, 0xffdd, 0xffd1, 0xffdc, 0xffcf, 0xffd7, 0xffc8, 0xffd3, 0xffc5, 0xffd0, 0xffbe, 0xffcc, 0xffbc, 0xffca, 0xffb7, 0xffc8, 0xffb8, 0xffc8, 0xffba, 0xffce, 0xffc1, 0xffd9, 0xffcd, 0xffe4, 0xffd0, 0xffe5, 0xffd8, 0xffeb, 0xffdc, 0xffed, 0xffd4, 0xffdb, 0xffcd, 0xffd0, 0xffd1, 0xffd4, 0xffcc, 0xffc8, 0xffc7, 0xffcc, 0xffc0, 0xffc5, 0xffbb, 0xffc6, 0xffb9, 0xffbb, 0xffb8, 0xffc2, 0xffb5, 0xffb9, 0xffb7, 0xffc6, 0xffbd, 0xffcf, 0xffcc, 0xffda, 0xffd0, 0xffdb, 0xffd2, 0xffe0, 0xffd8, 0xffe3, 0xffd5, 0xffdf, 0xffd5, 0xffdb, 0xffcf, 0xffda, 0xffcb, 0xffd4, 0xffc6, 0xffd1, 0xffc3, 0xffcd, 0xffbe, 0xffca, 0xffbb, 0xffc7, 0xffb6, 0xffc4, 0xffb5, 0xffc4, 0xffb7, 0xffc8, 0xffbe, 0xffd7, 0xffca, 0xffe1, 0xffd3, 0xffe5, 0xffd8, 0xffe9, 0xffdb, 0xffeb, 0xffd8, 0xffdb, 0xffd2, 0xffd1, 0xffcc, 0xffcf, 0xffc9, 0xffca, 0xffc2, 0xffc9, 0xffc0, 0xffc1, 0xffbb, 0xffc3, 0xffb9, 0xffb8, 0xffb6, 0xffbf, 0xffb2, 0xffb8, 0xffb2, 0xffc1, 0xffb8, 0xffcb, 0xffc6, 0xffd9, 0xffce, 0xffda, 0xffd5, 0xffe1, 0xffd7, 0xffe1, 0xffd4, 0xffe3, 0xffd4, 0xffdb, 0xffce, 0xffd8, 0xffcb, 0xffd3, 0xffc6, 0xffd1, 0xffc2, 0xffcd, 0xffbf, 0xffc9, 0xffba, 0xffc6, 0xffb7, 0xffc6, 0xffb6, 0xffc4, 0xffb4, 0xffc7, 0xffba, 0xffd9, 0xffc9, 0xffe2, 0xffd2, 0xffe5, 0xffd7, 0xffe9, 0xffd9, 0xffea, 0xffd7, 0xffdc, 0xffd2, 0xffcf, 0xffca, 0xffcf, 0xffc7, 0xffc6, 0xffc6, 0xffc8, 0xffbe, 0xffbf, 0xffbb, 0xffc4, 0xffb6, 0xffb7, 0xffb2, 0xffbd, 0xffb2, 0xffb5, 0xffb1, 0xffbc, 0xffb9, 0xffc9, 0xffca, 0xffda, 0xffd1, 0xffd8, 0xffd4, 0xffe1, 0xffd6, 0xffde, 0xffd4, 0xffe7, 0xffd7, 0xffdc, 0xffce, 0xffda, 0xffca, 0xffd6, 0xffc6, 0xffd2, 0xffc0, 0xffc9, 0xffbb, 0xffc7, 0xffba, 0xffc5, 0xffb4, 0xffc7, 0xffb4, 0xffc3, 0xffb2, 0xffca, 0xffc0, 0xffd7, 0xffcb, 0xffe1, 0xffd2, 0xffe2, 0xffd8, 0xffe6, 0xffd9, 0xffe9, 0xffd5, 0xffe0, 0xffd5, 0xffce, 0xffc9, 0xffd1, 0xffc5, 0xffc6, 0xffc1, 0xffc9, 0xffbb, 0xffbb, 0xffb7, 0xffbd, 0xffb6, 0xffb5, 0xffb0, 0xffbd, 0xffaf, 0xffb6, 0xffb1, 0xffc1, 0xffbb, 0xffca, 0xffca, 0xffd8, 0xffcf, 0xffd6, 0xffd3, 0xffdf, 0xffd4, 0xffde, 0xffd2, 0xffe8, 0xffdc, 0xffdc, 0xffcd, 0xffd6, 0xffc8, 0xffd4, 0xffc5, 0xffcc, 0xffc0, 0xffc7, 0xffb8, 0xffc3, 0xffb8, 0xffc2, 0xffb3, 0xffc4, 0xffb5, 0xffbf, 0xffb4, 0xffc0, 0xffb7, 0xffd1, 0xffca, 0xffe1, 0xffd2, 0xffe2, 0xffd6, 0xffe2, 0xffdb, 0xffe6, 0xffd6, 0xffe3, 0xffd8, 0xffce, 0xffc9, 0xffcc, 0xffc1, 0xffc4, 0xffc2, 0xffc4, 0xffb8, 0xffb8, 0xffb5, 0xffbc, 0xffb1, 0xffb4, 0xffae, 0xffba, 0xffae, 0xffaf, 0xffae, 0xffb9, 0xffaf, 0xffc6, 0xffc6, 0xffd7, 0xffce, 0xffd8, 0xffd3, 0xffde, 0xffd5, 0xffdd, 0xffd1, 0xffff, 0xb33f, 0xfff3, 0xffdf, 0xffd9, 0xffc8, 0xffcd, 0xffc0, 0xffff, 0xb33f, 0xffc7, 0xffbb, 0xffc6, 0xffb7, 0xffc1, 0xffb4, 0xffff, 0xb33f, 0xffbe, 0xffb4, 0xffc5, 0xffb6, 0xffd4, 0xffca, 0x887c, 0x3ffb, 0xffe4, 0xffd8, 0xffe7, 0xffd9, 0xffe8, 0xffd6, 0xd808, 0x3ffb, 0xffec, 0xffe5, 0xffd2, 0xffc3, 0xffc0, 0xffbc, 0x887c, 0x3ffb, 0x46bc, 0x4008, 0xbff0, 0x4000, 0xe30, 0x6, 0xaca0, 0x8008, 0x25e0, 0x3ffb, 0x0, 0x0, 0xe23, 0x6, 0xe20, 0x6, 0xe23, 0x6, 0xe23, 0x6, 0x1, 0x0, 0xffff, 0xb33f, 0x4, 0x0, 0xe23, 0x6, 0x275a, 0x3ffb, 0x0, 0x0, 0x0, 0x0, 0xef18, 0x7b, 0xffff, 0x3f, 0x14, 0x0, 0x9054, 0x3ffb, 0x9068, 0x3ffb, 0x65b9, 0x4008, 0xd808, 0x3ffb, 0xffff, 0xffff, 0x48ba, 0x4008, 0x0, 0x0, 0x8162, 0x4008, 0x58ac, 0x3ffa, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x46bc, 0x4008, 0x36fc, 0x4008, 0xc30, 0x6, 0xffff, 0xb33f, 0x2660, 0x3ffb, 0x1, 0x0, 0xffff, 0xffff, 0x9090, 0x3ffb, 0x9054, 0x3ffb, 0x9068, 0x3ffb, 0x0, 0x0, 0xffff, 0xb33f, 0x2640, 0x3ffb, 0xe0, 0x3ff0, 0x1, 0x0, 0xdd08, 0x3ffb, 0xc23, 0x6, 0xc23, 0x6, 0x0, 0x0, 0xffff, 0xb33f, 0x547c, 0x3ffc, 0xc23, 0x6, 0x65b9, 0x4008, 0xc000, 0x6468, 0xffff, 0xffff, 0x48ba, 0x4008, 0xc23, 0x6, 0xffff, 0xb33f, 0x58ac, 0x3ffa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffff, 0xb33f, 0x0, 0x0, 0x0, 0x0, 0xffff, 0xb33f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffff, 0xb33f, 0x46bc, 0x4008, 0x89e0, 0x4008, 0xc30, 0x6, 0xffff, 0xb33f, 0x2700, 0x3ffb, 0x89dc, 0x3ffb, 0x0, 0x0, 0xffff, 0xb33f, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffff, 0xb33f, 0x26e0, 0x3ffb, 0x5478, 0x3ffc, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffff, 0xb33f, 0x41b4, 0x800d, 0x26d0, 0x3ffb, 0x0, 0x0, 0xc000, 0x616c, 0xffff, 0xffff, 0x48ba, 0x4008, 0x1, 0x0, 0x8162, 0x4008, 0x58ac, 0x3ffa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4582, 0x800d, 0x26f0, 0x3ffb, 0x4fd0, 0x3ffc, 0xffff, 0xb33f, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffff, 0xb33f, 0x46ae, 0x800d, 0x2710, 0x3ffb, 0x4fd0, 0x3ffc, 0xffff, 0xb33f, 0x1, 0x0, 0xff00, 0x0, 0x0, 0xff, 0x0, 0xff00, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffff, 0xb33f, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0xff00, 0x4868, 0x800d, 0x2780, 0x3ffb, 0x4fd0, 0x3ffc, 0x0, 0x0, 0x4582, 0x800d, 0x2760, 0x3ffb, 0x0, 0x0, 0x0, 0x0, 0x489e, 0x800d, 0x27a0, 0x3ffb, 0x4fd0, 0x3ffc, 0x0, 0x0, 0x482e, 0x800d, 0x2780, 0x3ffb, 0x4fd0, 0x30, 0x1f0, 0x29a, 0x4582, 0x800d, 0x2790, 0x3ffb, 0x4fd0, 0x3ffc, 0x2cc, 0x3f40, 0x489e, 0x800d, 0x27a0, 0x3ffb, 0x4fd0, 0x3ffc, 0x3, 0x0, 0x4630, 0x800d, 0x27b0, 0x3ffb, 0x4fd0, 0x3ffc, 0x2cc, 0x3f40, 0x6, 0x0, 0xff00, 0x0, 0x0, 0xff, 0x0, 0xff00, 0x17c5, 0x800d, 0x27d0, 0x3ffb, 0x4fd0, 0x3ffc, 0x2cc, 0x3f40, 0xff00, 0xffff, 0x44df, 0x3fed, 0xff, 0x0, 0x0, 0x0, 0x4bc0, 0x800d, 0x27f0, 0x3ffb, 0x4fd0, 0x3ffc, 0x1d58, 0x3ffc, ]
Narrow Failed
-1'''

I have whittled it down to an I2C issue I think. When I take the first camera off my board, the second one works. It seems like it is completely reading the full frame of my second camera in the ouput, but I am not sure. The "-1" at the end of the output is supposed to mean a NACK (negative acknowledgement I think) but I am not sure why it's NACK'ing.

Here is the link to the datasheet: https://github.com/adafruit/Adafruit_MLX90640/blob/master/MLX90640%20driver.pdf

0 Answers
Related