element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Arduino Projects
  • Products
  • Arduino
  • Arduino Projects
  • More
  • Cancel
Arduino Projects
Blog Arduino Nano RP2040 Connect - IMU Smart Motion Detection
  • Blog
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Arduino Projects to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: ralphjy
  • Date Created: 30 May 2021 3:07 PM Date Created
  • Views 6360 views
  • Likes 11 likes
  • Comments 11 comments
  • 6-axis imu
  • arduino nano rp2040 connect
  • arduino mbed
  • qeexo
  • lsm6ds0x
  • decision tree logic
Related
Recommended

Arduino Nano RP2040 Connect - IMU Smart Motion Detection

ralphjy
ralphjy
30 May 2021

It seems that when it comes to machine learning on embedded devices that I discover something new almost every day.  I just got a Nano RP2040 Connect and one of the featured tutorials is "Using the IMU Machine Learning Core Features".  The Nano RP2040 Connect uses an LSM6DSOX IMU module.  I was aware that ST IMUs have the capability to generate interrupts based on events such as free-fall, single-tap, and double-tap, but I hadn't heard of the Machine Learning Core feature that is available in the LSM6DSOX.

 

The Machine Learning Core allows you to use a trained model with the IMU to identify motion activities based on labeled data sets.  That says that the IMU can identify activity without requiring an external processor as the more traditional implementation that I'm familiar with.  That has inherent advantages in lower power and lower latency.  The limitation is that the model is constrained to using decision-tree logic.  Here is a link to the ST application note: https://www.st.com/resource/en/application_note/dm00563460-lsm6dsox-machine-learning-core-stmicroelectronics.pdf .  The Machine Learning Core can be combined to work with a configurable Finite State Machine to increase the accuracy of the motion classification.  As always, programming the MLC requires learning yet another tool, in this case, the Unico GUI which is provided by ST in Windows, Linux, and MacOSX versions.

 

The key to building an accurate decision-tree logic model is the same as other machine learning models - feature extraction from the training data sets.  The maximum number of features that can be configured in the MLC is 31.  A representative set of features that could be used is shown in the table:

image

 

The MLC blocks are shown below:

image

 

There is capability of adding inputs from additional sensors, e.g. a magnetometer.

 

Here is an example of how the decision-tree logic works:

image

 

 

On to try the demo .https://docs.arduino.cc/tutorials/nano-rp2040-connect/rp2040-imu-advanced

 

The demo is built using the Arduino IDE and uses the STM32duino X-NUCLEO-IKS01A3 library ("LSM6DSOXSensor.h") and the library example X_NUCLEO_IKS01A3_LSM6DSOX_MLC.ino.

 

There is a pre-built model file that is included "lsm6dsox_activity_recognition_for_mobile.h".

 

The only required change to the example program is to specify the correct interrupt pin for the Nano RP2040 Connect:

#define INT_1 INT_IMU

 

Nano_RP2040_Connect_LSM6DSOX_MLC.ino

/**
 ******************************************************************************
 * @file    X_NUCLEO_IKS01A3_LSM6DSOX_MLC.ino
 * @author  SRA
 * @version V1.1.0
 * @date    March 2020
 * @brief   Arduino test application for the STMicrolectronics X-NUCLEO-IKS01A3
 *          MEMS Inertial and Environmental sensor expansion board.
 *          This application makes use of C++ classes obtained from the C
 *          components' drivers.
 ******************************************************************************
 * @attention
 *
 * <h2><center>© COPYRIGHT(c) 2020 STMicroelectronics</center></h2>
 *
 * Redistribution and use in source and binary forms, with or without modification,
 * are permitted provided that the following conditions are met:
 *   1. Redistributions of source code must retain the above copyright notice,
 *      this list of conditions and the following disclaimer.
 *   2. Redistributions in binary form must reproduce the above copyright notice,
 *      this list of conditions and the following disclaimer in the documentation
 *      and/or other materials provided with the distribution.
 *   3. Neither the name of STMicroelectronics nor the names of its contributors
 *      may be used to endorse or promote products derived from this software
 *      without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 ******************************************************************************
 */
//NOTE: This example isn't compatible with Arduino Uno.
//NOTE: For this example you need the STEVAL-MKI197V1 board connected to the DIL24 connector of the X-NUCLEO-IKS01A3


// Includes
#include "LSM6DSOXSensor.h"
#include "lsm6dsox_activity_recognition_for_mobile.h"


#ifdef ARDUINO_SAM_DUE
#define DEV_I2C Wire1
#elif defined(ARDUINO_ARCH_STM32)
#define DEV_I2C Wire
#elif defined(ARDUINO_ARCH_AVR)
#define DEV_I2C Wire
#else
#define DEV_I2C Wire
#endif
#define SerialPort Serial


#define INT_1 INT_IMU


//Interrupts.
volatile int mems_event = 0;


// Components
LSM6DSOXSensor AccGyr(&DEV_I2C, LSM6DSOX_I2C_ADD_L);


// MLC
ucf_line_t *ProgramPointer;
int32_t LineCounter;
int32_t TotalNumberOfLine;


void INT1Event_cb();
void printMLCStatus(uint8_t status);


void setup() {
  uint8_t mlc_out[8];
  // Led.
  pinMode(LED_BUILTIN, OUTPUT);


  // Force INT1 of LSM6DSOX low in order to enable I2C
  pinMode(INT_1, OUTPUT);


  digitalWrite(INT_1, LOW);


  delay(200);


  // Initialize serial for output.
  SerialPort.begin(115200);
  
  // Initialize I2C bus.
  DEV_I2C.begin();


  AccGyr.begin();
  AccGyr.Enable_X();
  AccGyr.Enable_G();


  /* Feed the program to Machine Learning Core */
  /* Activity Recognition Default program */  
  ProgramPointer = (ucf_line_t *)lsm6dsox_activity_recognition_for_mobile;
  TotalNumberOfLine = sizeof(lsm6dsox_activity_recognition_for_mobile) / sizeof(ucf_line_t);
  SerialPort.println("Activity Recognition for LSM6DSOX MLC");
  SerialPort.print("UCF Number Line=");
  SerialPort.println(TotalNumberOfLine);


  for (LineCounter=0; LineCounter<TotalNumberOfLine; LineCounter++) {
    if(AccGyr.Write_Reg(ProgramPointer[LineCounter].address, ProgramPointer[LineCounter].data)) {
      SerialPort.print("Error loading the Program to LSM6DSOX at line: ");
      SerialPort.println(LineCounter);
      while(1) {
        // Led blinking.
        digitalWrite(LED_BUILTIN, HIGH);
        delay(250);
        digitalWrite(LED_BUILTIN, LOW);
        delay(250);
      }
    }
  }


  SerialPort.println("Program loaded inside the LSM6DSOX MLC");


  //Interrupts.
  pinMode(INT_1, INPUT);
  attachInterrupt(INT_1, INT1Event_cb, RISING);


  /* We need to wait for a time window before having the first MLC status */
  delay(3000);


  AccGyr.Get_MLC_Output(mlc_out);
  printMLCStatus(mlc_out[0]);
}


void loop() {
  if (mems_event) {
    mems_event=0;
    LSM6DSOX_MLC_Status_t status;
    AccGyr.Get_MLC_Status(&status);
    if (status.is_mlc1) {
      uint8_t mlc_out[8];
      AccGyr.Get_MLC_Output(mlc_out);
      printMLCStatus(mlc_out[0]);
    }
  }
}


void INT1Event_cb() {
  mems_event = 1;
}


void printMLCStatus(uint8_t status) {
  switch(status) {
    case 0:
      SerialPort.println("Activity: Stationary");
      break;
    case 1:
      SerialPort.println("Activity: Walking");
      break;
    case 4:
      SerialPort.println("Activity: Jogging");
      break;
    case 8:
      SerialPort.println("Activity: Biking");
      break;
    case 12:
      SerialPort.println("Activity: Driving");
      break;
    default:
      SerialPort.println("Activity: Unknown");
      break;
  }   
}

 

lsm6dsox_activity_recognition_for_mobile.h

/*
 ******************************************************************************
 * @file    lsm6dsox_activity_recognition_for_mobile.h
 * @author  Sensors Software Solution Team
 * @brief   This file contains the configuration for lsm6dsox_activity_recognition_for_mobile.
 *
 ******************************************************************************
 * @attention
 *
 * <h2><center>© Copyright (c) 2019 STMicroelectronics.
 * All rights reserved.</center></h2>
 *
 * This software component is licensed by ST under BSD 3-Clause license,
 * the "License"; You may not use this file except in compliance with the
 * License. You may obtain a copy of the License at:
 *                        opensource.org/licenses/BSD-3-Clause
 *
 */


/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef LSM6DSOX_ACTIVITY_RECOGNITION_FOR_MOBILE_H
#define LSM6DSOX_ACTIVITY_RECOGNITION_FOR_MOBILE_H


#ifdef __cplusplus
  extern "C" {
#endif


/* Includes ------------------------------------------------------------------*/
#include <stdint.h>
#ifndef MEMS_UCF_SHARED_TYPES
#define MEMS_UCF_SHARED_TYPES


/** Common data block definition **/
typedef struct {
  uint8_t address;
  uint8_t data;
} ucf_line_t;


#endif /* MEMS_UCF_SHARED_TYPES */


/** Configuration array generated from Unico Tool **/
const ucf_line_t lsm6dsox_activity_recognition_for_mobile[] = {
  {.address = 0x10, .data = 0x00,},
  {.address = 0x11, .data = 0x00,},
  {.address = 0x01, .data = 0x80,},
  {.address = 0x05, .data = 0x00,},
  {.address = 0x17, .data = 0x40,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xEA,},
  {.address = 0x09, .data = 0x08,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xEB,},
  {.address = 0x09, .data = 0x04,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xEC,},
  {.address = 0x09, .data = 0x16,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xED,},
  {.address = 0x09, .data = 0x04,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xEE,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xEF,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xF0,},
  {.address = 0x09, .data = 0x0A,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xF2,},
  {.address = 0x09, .data = 0x4B,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xFA,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xFB,},
  {.address = 0x09, .data = 0x03,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xFC,},
  {.address = 0x09, .data = 0x42,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xFD,},
  {.address = 0x09, .data = 0x04,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xFE,},
  {.address = 0x09, .data = 0x4E,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xFF,},
  {.address = 0x09, .data = 0x04,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x3C,},
  {.address = 0x09, .data = 0x07,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x3D,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x3E,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x3F,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x40,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x41,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x42,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x43,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x44,},
  {.address = 0x09, .data = 0x35,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x45,},
  {.address = 0x09, .data = 0x3A,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x46,},
  {.address = 0x09, .data = 0x2E,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x47,},
  {.address = 0x09, .data = 0x2F,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x48,},
  {.address = 0x09, .data = 0x0F,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x49,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x4A,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x4B,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x4C,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x4D,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x4E,},
  {.address = 0x09, .data = 0xD7,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x4F,},
  {.address = 0x09, .data = 0x22,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x50,},
  {.address = 0x09, .data = 0xD7,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x51,},
  {.address = 0x09, .data = 0x26,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x52,},
  {.address = 0x09, .data = 0xD7,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x53,},
  {.address = 0x09, .data = 0x22,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x54,},
  {.address = 0x09, .data = 0x97,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x55,},
  {.address = 0x09, .data = 0xBE,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x56,},
  {.address = 0x09, .data = 0x9B,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x57,},
  {.address = 0x09, .data = 0x39,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x58,},
  {.address = 0x09, .data = 0x3F,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x59,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x5A,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x5B,},
  {.address = 0x09, .data = 0x14,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x5C,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x5D,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x5E,},
  {.address = 0x09, .data = 0x01,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x5F,},
  {.address = 0x09, .data = 0x14,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x60,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x61,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x62,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x63,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x64,},
  {.address = 0x09, .data = 0x01,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x65,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x66,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x67,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x68,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x69,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x6A,},
  {.address = 0x09, .data = 0x01,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x6B,},
  {.address = 0x09, .data = 0x1C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x6C,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x6D,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x6E,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x6F,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x70,},
  {.address = 0x09, .data = 0x02,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x71,},
  {.address = 0x09, .data = 0x14,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x72,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x73,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x74,},
  {.address = 0x09, .data = 0x02,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x75,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x76,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x77,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x78,},
  {.address = 0x09, .data = 0x02,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x79,},
  {.address = 0x09, .data = 0x1C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x7A,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x7B,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x7C,},
  {.address = 0x09, .data = 0x03,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x7D,},
  {.address = 0x09, .data = 0x14,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x7E,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x7F,},
  {.address = 0x09, .data = 0xFC,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x80,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x81,},
  {.address = 0x09, .data = 0x7C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x82,},
  {.address = 0x09, .data = 0x03,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x83,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x84,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x85,},
  {.address = 0x09, .data = 0xFC,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x86,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x87,},
  {.address = 0x09, .data = 0x7C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x88,},
  {.address = 0x09, .data = 0x03,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x89,},
  {.address = 0x09, .data = 0x1C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x8A,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x8B,},
  {.address = 0x09, .data = 0xFC,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x8C,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x8D,},
  {.address = 0x09, .data = 0x7C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x8E,},
  {.address = 0x09, .data = 0x04,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x8F,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x90,},
  {.address = 0x09, .data = 0x66,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x91,},
  {.address = 0x09, .data = 0x36,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x92,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x93,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x94,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x95,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x96,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x97,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x98,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x99,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x9A,},
  {.address = 0x09, .data = 0x04,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x9B,},
  {.address = 0x09, .data = 0x1C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x9C,},
  {.address = 0x09, .data = 0x7B,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x9D,},
  {.address = 0x09, .data = 0x28,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x9E,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x9F,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xA0,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xA1,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xA2,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xA3,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xA4,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xA5,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xA6,},
  {.address = 0x09, .data = 0x0A,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xA7,},
  {.address = 0x09, .data = 0x14,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xA8,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xA9,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xAA,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xAB,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xAC,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xAD,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xAE,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xAF,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xB0,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xB1,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xB2,},
  {.address = 0x09, .data = 0x0A,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xB3,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xB4,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xB5,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xB6,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xB7,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xB8,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xB9,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xBA,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xBB,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xBC,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xBD,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xBE,},
  {.address = 0x09, .data = 0x0A,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xBF,},
  {.address = 0x09, .data = 0x1C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xC0,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xC1,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xC2,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xC3,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xC4,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xC5,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xC6,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xC7,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xC8,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xC9,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xCA,},
  {.address = 0x09, .data = 0x0C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xCB,},
  {.address = 0x09, .data = 0x14,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xCC,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xCD,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xCE,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xCF,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xD0,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xD1,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xD2,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xD3,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xD4,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xD5,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xD6,},
  {.address = 0x09, .data = 0x0C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xD7,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xD8,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xD9,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xDA,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xDB,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xDC,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xDD,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xDE,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xDF,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xE0,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xE1,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xE2,},
  {.address = 0x09, .data = 0x0C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xE3,},
  {.address = 0x09, .data = 0x1C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xE4,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xE5,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xE6,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xE7,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xE8,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xE9,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xEA,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xEB,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xEC,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xED,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xEE,},
  {.address = 0x09, .data = 0x10,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xEF,},
  {.address = 0x09, .data = 0x10,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xF0,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xF1,},
  {.address = 0x09, .data = 0xFC,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xF2,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xF3,},
  {.address = 0x09, .data = 0x7C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xF4,},
  {.address = 0x09, .data = 0x10,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xF5,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xF6,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xF7,},
  {.address = 0x09, .data = 0xFC,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xF8,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xF9,},
  {.address = 0x09, .data = 0x7C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xFA,},
  {.address = 0x09, .data = 0x11,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xFB,},
  {.address = 0x09, .data = 0x10,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xFC,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xFD,},
  {.address = 0x09, .data = 0xFC,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xFE,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xFF,},
  {.address = 0x09, .data = 0x7C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x00,},
  {.address = 0x09, .data = 0x11,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x01,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x02,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x03,},
  {.address = 0x09, .data = 0xFC,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x04,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x05,},
  {.address = 0x09, .data = 0x7C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x06,},
  {.address = 0x09, .data = 0x1F,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x07,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x42,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x43,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x44,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x45,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x46,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x47,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x48,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x49,},
  {.address = 0x09, .data = 0x10,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x4A,},
  {.address = 0x09, .data = 0x35,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x4B,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x4C,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x01, .data = 0x00,},
  {.address = 0x12, .data = 0x00,},
  {.address = 0x01, .data = 0x80,},
  {.address = 0x17, .data = 0x40,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x4E,},
  {.address = 0x09, .data = 0x34,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x4F,},
  {.address = 0x09, .data = 0x2C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x50,},
  {.address = 0x09, .data = 0x57,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x51,},
  {.address = 0x09, .data = 0x82,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x52,},
  {.address = 0x09, .data = 0xCB,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x53,},
  {.address = 0x09, .data = 0x22,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x54,},
  {.address = 0x09, .data = 0x14,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x55,},
  {.address = 0x09, .data = 0x85,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x56,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x57,},
  {.address = 0x09, .data = 0x38,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x58,},
  {.address = 0x09, .data = 0x0E,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x59,},
  {.address = 0x09, .data = 0x8B,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x5A,},
  {.address = 0x09, .data = 0x10,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x5B,},
  {.address = 0x09, .data = 0x27,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x5C,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x5D,},
  {.address = 0x09, .data = 0xC8,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x5E,},
  {.address = 0x09, .data = 0x6E,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x5F,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x60,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x61,},
  {.address = 0x09, .data = 0xB4,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x62,},
  {.address = 0x09, .data = 0x90,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x63,},
  {.address = 0x09, .data = 0x52,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x64,},
  {.address = 0x09, .data = 0x0D,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x65,},
  {.address = 0x09, .data = 0x8C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x66,},
  {.address = 0x09, .data = 0x7C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x67,},
  {.address = 0x09, .data = 0x2F,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x68,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x69,},
  {.address = 0x09, .data = 0xA0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x6A,},
  {.address = 0x09, .data = 0x29,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x6B,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x6C,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x6D,},
  {.address = 0x09, .data = 0xA0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x6E,},
  {.address = 0x09, .data = 0xD5,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x6F,},
  {.address = 0x09, .data = 0x3B,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x70,},
  {.address = 0x09, .data = 0x90,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x71,},
  {.address = 0x09, .data = 0xD2,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x72,},
  {.address = 0x09, .data = 0xC9,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x73,},
  {.address = 0x09, .data = 0x1A,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x74,},
  {.address = 0x09, .data = 0xA0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x75,},
  {.address = 0x09, .data = 0xC5,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x76,},
  {.address = 0x09, .data = 0x3A,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x77,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x78,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x79,},
  {.address = 0x09, .data = 0xB4,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x7A,},
  {.address = 0x09, .data = 0x0C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x7B,},
  {.address = 0x09, .data = 0x1F,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x7C,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x7D,},
  {.address = 0x09, .data = 0xA5,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x7E,},
  {.address = 0x09, .data = 0x0E,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x7F,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x80,},
  {.address = 0x09, .data = 0x0C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x81,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x82,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x83,},
  {.address = 0x09, .data = 0x4A,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x84,},
  {.address = 0x09, .data = 0x0C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x85,},
  {.address = 0x09, .data = 0xEE,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x86,},
  {.address = 0x09, .data = 0xF1,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x87,},
  {.address = 0x09, .data = 0x26,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x88,},
  {.address = 0x09, .data = 0xF0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x89,},
  {.address = 0x09, .data = 0xC8,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x8A,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x8B,},
  {.address = 0x09, .data = 0x3E,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x8C,},
  {.address = 0x09, .data = 0x12,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x8D,},
  {.address = 0x09, .data = 0x8B,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x8E,},
  {.address = 0x09, .data = 0x2C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x8F,},
  {.address = 0x09, .data = 0x2D,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x90,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x91,},
  {.address = 0x09, .data = 0xA9,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x92,},
  {.address = 0x09, .data = 0x37,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x93,},
  {.address = 0x09, .data = 0x19,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x94,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x95,},
  {.address = 0x09, .data = 0xE5,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x96,},
  {.address = 0x09, .data = 0x0D,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x97,},
  {.address = 0x09, .data = 0xA5,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x98,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x99,},
  {.address = 0x09, .data = 0xD3,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x9A,},
  {.address = 0x09, .data = 0xA0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x9B,},
  {.address = 0x09, .data = 0x51,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x9C,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x9D,},
  {.address = 0x09, .data = 0xEC,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x9E,},
  {.address = 0x09, .data = 0xD0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x9F,},
  {.address = 0x09, .data = 0x25,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xA0,},
  {.address = 0x09, .data = 0x36,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xA1,},
  {.address = 0x09, .data = 0x81,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xA2,},
  {.address = 0x09, .data = 0x23,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xA3,},
  {.address = 0x09, .data = 0x3B,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xA4,},
  {.address = 0x09, .data = 0x23,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xA5,},
  {.address = 0x09, .data = 0x92,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xA6,},
  {.address = 0x09, .data = 0x24,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xA7,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xA8,},
  {.address = 0x09, .data = 0x22,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xA9,},
  {.address = 0x09, .data = 0x89,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xAA,},
  {.address = 0x09, .data = 0x88,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xAB,},
  {.address = 0x09, .data = 0x3B,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xAC,},
  {.address = 0x09, .data = 0x1A,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xAD,},
  {.address = 0x09, .data = 0x80,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xAE,},
  {.address = 0x09, .data = 0x53,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xAF,},
  {.address = 0x09, .data = 0x3B,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xB0,},
  {.address = 0x09, .data = 0x98,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xB1,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xB2,},
  {.address = 0x09, .data = 0x30,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xB3,},
  {.address = 0x09, .data = 0x50,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xB4,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xB5,},
  {.address = 0x09, .data = 0xEC,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xB6,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xB7,},
  {.address = 0x09, .data = 0x49,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xB8,},
  {.address = 0x09, .data = 0x20,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xB9,},
  {.address = 0x09, .data = 0x8B,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xBA,},
  {.address = 0x09, .data = 0xA0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xBB,},
  {.address = 0x09, .data = 0x4E,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xBC,},
  {.address = 0x09, .data = 0x1E,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xBD,},
  {.address = 0x09, .data = 0x8C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xBE,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xBF,},
  {.address = 0x09, .data = 0x48,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xC0,},
  {.address = 0x09, .data = 0xD8,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xC1,},
  {.address = 0x09, .data = 0xCE,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xC2,},
  {.address = 0x09, .data = 0x2F,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xC3,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xC4,},
  {.address = 0x09, .data = 0xC8,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xC5,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xC6,},
  {.address = 0x09, .data = 0x20,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xC7,},
  {.address = 0x09, .data = 0x4C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xC8,},
  {.address = 0x09, .data = 0xFC,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xC9,},
  {.address = 0x09, .data = 0xCE,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xCA,},
  {.address = 0x09, .data = 0xD6,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xCB,},
  {.address = 0x09, .data = 0x3A,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xCC,},
  {.address = 0x09, .data = 0xC8,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xCD,},
  {.address = 0x09, .data = 0xF2,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xCE,},
  {.address = 0x09, .data = 0xB4,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xCF,},
  {.address = 0x09, .data = 0x54,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xD0,},
  {.address = 0x09, .data = 0x11,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xD1,},
  {.address = 0x09, .data = 0xC6,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xD2,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xD3,},
  {.address = 0x09, .data = 0x4E,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xD4,},
  {.address = 0x09, .data = 0xC8,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xD5,},
  {.address = 0x09, .data = 0xEC,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xD6,},
  {.address = 0x09, .data = 0x35,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xD7,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xD8,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xD9,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xDA,},
  {.address = 0x09, .data = 0x38,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xDB,},
  {.address = 0x09, .data = 0x2A,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xDC,},
  {.address = 0x09, .data = 0x30,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xDD,},
  {.address = 0x09, .data = 0x89,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xDE,},
  {.address = 0x09, .data = 0x96,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xDF,},
  {.address = 0x09, .data = 0x30,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xE0,},
  {.address = 0x09, .data = 0x2E,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xE1,},
  {.address = 0x09, .data = 0x80,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xE2,},
  {.address = 0x09, .data = 0x70,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xE3,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xE4,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xE5,},
  {.address = 0x09, .data = 0xB4,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xE6,},
  {.address = 0x09, .data = 0x70,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xE7,},
  {.address = 0x09, .data = 0x51,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xE8,},
  {.address = 0x09, .data = 0x2D,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xE9,},
  {.address = 0x09, .data = 0x8C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xEA,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xEB,},
  {.address = 0x09, .data = 0x38,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xEC,},
  {.address = 0x09, .data = 0x2C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xED,},
  {.address = 0x09, .data = 0x8B,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xEE,},
  {.address = 0x09, .data = 0x5D,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xEF,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xF0,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xF1,},
  {.address = 0x09, .data = 0xB4,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xF2,},
  {.address = 0x09, .data = 0x45,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xF3,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xF4,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xF5,},
  {.address = 0x09, .data = 0xB4,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xF6,},
  {.address = 0x09, .data = 0x10,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xF7,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xF8,},
  {.address = 0x09, .data = 0xB0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xF9,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xFA,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xFB,},
  {.address = 0x09, .data = 0x3B,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xFC,},
  {.address = 0x09, .data = 0x0C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xFD,},
  {.address = 0x09, .data = 0xF2,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xFE,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xFF,},
  {.address = 0x09, .data = 0x4B,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x00,},
  {.address = 0x09, .data = 0x0C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x01,},
  {.address = 0x09, .data = 0xEE,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x02,},
  {.address = 0x09, .data = 0xDB,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x03,},
  {.address = 0x09, .data = 0x3B,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x04,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x05,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x06,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x07,},
  {.address = 0x09, .data = 0x4C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x08,},
  {.address = 0x09, .data = 0xFC,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x09,},
  {.address = 0x09, .data = 0xCE,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x0A,},
  {.address = 0x09, .data = 0xA6,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x0B,},
  {.address = 0x09, .data = 0x31,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x0C,},
  {.address = 0x09, .data = 0x8C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x0D,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x0E,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x0F,},
  {.address = 0x09, .data = 0x4E,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x10,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x11,},
  {.address = 0x09, .data = 0xAC,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x12,},
  {.address = 0x09, .data = 0x12,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x13,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x14,},
  {.address = 0x09, .data = 0x33,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x15,},
  {.address = 0x09, .data = 0x80,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x16,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x17,},
  {.address = 0x09, .data = 0x4B,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x18,},
  {.address = 0x09, .data = 0xC8,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x19,},
  {.address = 0x09, .data = 0xED,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x1A,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x1B,},
  {.address = 0x09, .data = 0x31,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x1C,},
  {.address = 0x09, .data = 0x4C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x1D,},
  {.address = 0x09, .data = 0xC9,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x1E,},
  {.address = 0x09, .data = 0x8A,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x1F,},
  {.address = 0x09, .data = 0x31,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x20,},
  {.address = 0x09, .data = 0x5C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x21,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x22,},
  {.address = 0x09, .data = 0x78,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x23,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x24,},
  {.address = 0x09, .data = 0xC8,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x25,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x26,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x27,},
  {.address = 0x09, .data = 0x4B,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x28,},
  {.address = 0x09, .data = 0x4E,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x29,},
  {.address = 0x09, .data = 0x8B,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x2A,},
  {.address = 0x09, .data = 0x2E,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x2B,},
  {.address = 0x09, .data = 0x3A,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x2C,},
  {.address = 0x09, .data = 0x39,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x2D,},
  {.address = 0x09, .data = 0x92,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x2E,},
  {.address = 0x09, .data = 0x86,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x2F,},
  {.address = 0x09, .data = 0x3D,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x30,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x31,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x32,},
  {.address = 0x09, .data = 0x43,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x33,},
  {.address = 0x09, .data = 0x56,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x34,},
  {.address = 0x09, .data = 0x4D,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x35,},
  {.address = 0x09, .data = 0x86,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x36,},
  {.address = 0x09, .data = 0x72,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x37,},
  {.address = 0x09, .data = 0x34,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x38,},
  {.address = 0x09, .data = 0x42,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x39,},
  {.address = 0x09, .data = 0x89,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x3A,},
  {.address = 0x09, .data = 0x4A,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x3B,},
  {.address = 0x09, .data = 0x30,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x3C,},
  {.address = 0x09, .data = 0xC8,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x3D,},
  {.address = 0x09, .data = 0xC9,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x3E,},
  {.address = 0x09, .data = 0x4A,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x3F,},
  {.address = 0x09, .data = 0x30,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x40,},
  {.address = 0x09, .data = 0xDC,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x41,},
  {.address = 0x09, .data = 0xD5,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x42,},
  {.address = 0x09, .data = 0x2E,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x43,},
  {.address = 0x09, .data = 0x55,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x44,},
  {.address = 0x09, .data = 0x3F,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x45,},
  {.address = 0x09, .data = 0x86,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x46,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x47,},
  {.address = 0x09, .data = 0x4F,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x48,},
  {.address = 0x09, .data = 0x81,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x49,},
  {.address = 0x09, .data = 0xEC,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x4A,},
  {.address = 0x09, .data = 0x67,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x4B,},
  {.address = 0x09, .data = 0x38,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x4C,},
  {.address = 0x09, .data = 0x10,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x4D,},
  {.address = 0x09, .data = 0xA0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x4E,},
  {.address = 0x09, .data = 0xAF,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x4F,},
  {.address = 0x09, .data = 0xB0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x50,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x51,},
  {.address = 0x09, .data = 0xB3,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x52,},
  {.address = 0x09, .data = 0x5E,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x53,},
  {.address = 0x09, .data = 0x32,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x54,},
  {.address = 0x09, .data = 0x8C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x55,},
  {.address = 0x09, .data = 0xE9,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x56,},
  {.address = 0x09, .data = 0x60,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x57,},
  {.address = 0x09, .data = 0x4D,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x58,},
  {.address = 0x09, .data = 0x38,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x59,},
  {.address = 0x09, .data = 0xCC,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x5A,},
  {.address = 0x09, .data = 0x5F,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x5B,},
  {.address = 0x09, .data = 0x1C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x5C,},
  {.address = 0x09, .data = 0x48,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x5D,},
  {.address = 0x09, .data = 0xC2,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x5E,},
  {.address = 0x09, .data = 0x10,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x5F,},
  {.address = 0x09, .data = 0x2A,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x60,},
  {.address = 0x09, .data = 0x80,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x61,},
  {.address = 0x09, .data = 0xA1,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x62,},
  {.address = 0x09, .data = 0x60,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x63,},
  {.address = 0x09, .data = 0x26,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x64,},
  {.address = 0x09, .data = 0x6C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x65,},
  {.address = 0x09, .data = 0xC1,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x66,},
  {.address = 0x09, .data = 0xA8,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x67,},
  {.address = 0x09, .data = 0x37,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x68,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x69,},
  {.address = 0x09, .data = 0xA8,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x6A,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x6B,},
  {.address = 0x09, .data = 0x49,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x6C,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x6D,},
  {.address = 0x09, .data = 0xAE,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x6E,},
  {.address = 0x09, .data = 0xD6,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x6F,},
  {.address = 0x09, .data = 0x30,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x70,},
  {.address = 0x09, .data = 0x98,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x71,},
  {.address = 0x09, .data = 0xD5,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x72,},
  {.address = 0x09, .data = 0xFF,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x73,},
  {.address = 0x09, .data = 0xB0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x74,},
  {.address = 0x09, .data = 0x80,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x75,},
  {.address = 0x09, .data = 0xB3,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x76,},
  {.address = 0x09, .data = 0x57,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x77,},
  {.address = 0x09, .data = 0x35,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x78,},
  {.address = 0x09, .data = 0xBC,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x79,},
  {.address = 0x09, .data = 0xC8,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x7A,},
  {.address = 0x09, .data = 0x60,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x7B,},
  {.address = 0x09, .data = 0x27,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x7C,},
  {.address = 0x09, .data = 0xCC,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x7D,},
  {.address = 0x09, .data = 0xC1,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x7E,},
  {.address = 0x09, .data = 0x47,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x7F,},
  {.address = 0x09, .data = 0x3A,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x80,},
  {.address = 0x09, .data = 0x8C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x81,},
  {.address = 0x09, .data = 0xF2,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x82,},
  {.address = 0x09, .data = 0xA0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x83,},
  {.address = 0x09, .data = 0x4E,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x84,},
  {.address = 0x09, .data = 0xC8,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x85,},
  {.address = 0x09, .data = 0xEC,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x86,},
  {.address = 0x09, .data = 0x66,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x87,},
  {.address = 0x09, .data = 0x55,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x88,},
  {.address = 0x09, .data = 0x53,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x89,},
  {.address = 0x09, .data = 0x86,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x8A,},
  {.address = 0x09, .data = 0x02,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x8B,},
  {.address = 0x09, .data = 0x3A,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x8C,},
  {.address = 0x09, .data = 0x01,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x8D,},
  {.address = 0x09, .data = 0xC5,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x8E,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x8F,},
  {.address = 0x09, .data = 0x49,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x90,},
  {.address = 0x09, .data = 0x52,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x91,},
  {.address = 0x09, .data = 0x8E,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x92,},
  {.address = 0x09, .data = 0xAC,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x93,},
  {.address = 0x09, .data = 0x24,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x94,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x95,},
  {.address = 0x09, .data = 0xE2,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x96,},
  {.address = 0x09, .data = 0x4D,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x97,},
  {.address = 0x09, .data = 0x3A,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x98,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x99,},
  {.address = 0x09, .data = 0xF2,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x9A,},
  {.address = 0x09, .data = 0xDE,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x9B,},
  {.address = 0x09, .data = 0x23,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x9C,},
  {.address = 0x09, .data = 0x48,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x9D,},
  {.address = 0x09, .data = 0xC2,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x9E,},
  {.address = 0x09, .data = 0x8E,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x9F,},
  {.address = 0x09, .data = 0x35,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xA0,},
  {.address = 0x09, .data = 0x51,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xA1,},
  {.address = 0x09, .data = 0xD5,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xA2,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xA3,},
  {.address = 0x09, .data = 0x4B,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xA4,},
  {.address = 0x09, .data = 0x61,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xA5,},
  {.address = 0x09, .data = 0xCE,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xA6,},
  {.address = 0x09, .data = 0xA9,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xA7,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xA8,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xA9,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xAA,},
  {.address = 0x09, .data = 0x7B,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xAB,},
  {.address = 0x09, .data = 0x41,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xAC,},
  {.address = 0x09, .data = 0x70,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xAD,},
  {.address = 0x09, .data = 0x81,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xAE,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xAF,},
  {.address = 0x09, .data = 0x4C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xB0,},
  {.address = 0x09, .data = 0x6B,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xB1,},
  {.address = 0x09, .data = 0x8A,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xB2,},
  {.address = 0x09, .data = 0xF0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xB3,},
  {.address = 0x09, .data = 0x3D,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xB4,},
  {.address = 0x09, .data = 0x67,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xB5,},
  {.address = 0x09, .data = 0x95,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xB6,},
  {.address = 0x09, .data = 0x73,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xB7,},
  {.address = 0x09, .data = 0x39,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xB8,},
  {.address = 0x09, .data = 0x5E,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xB9,},
  {.address = 0x09, .data = 0x89,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xBA,},
  {.address = 0x09, .data = 0x8B,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xBB,},
  {.address = 0x09, .data = 0x34,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xBC,},
  {.address = 0x09, .data = 0xC8,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xBD,},
  {.address = 0x09, .data = 0xC9,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xBE,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xBF,},
  {.address = 0x09, .data = 0x4A,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xC0,},
  {.address = 0x09, .data = 0xD1,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xC1,},
  {.address = 0x09, .data = 0xCE,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xC2,},
  {.address = 0x09, .data = 0xA1,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xC3,},
  {.address = 0x09, .data = 0x2E,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xC4,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xC5,},
  {.address = 0x09, .data = 0xE2,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xC6,},
  {.address = 0x09, .data = 0xA3,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xC7,},
  {.address = 0x09, .data = 0x58,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xC8,},
  {.address = 0x09, .data = 0x63,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xC9,},
  {.address = 0x09, .data = 0x86,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xCA,},
  {.address = 0x09, .data = 0xDB,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xCB,},
  {.address = 0x09, .data = 0x30,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xCC,},
  {.address = 0x09, .data = 0x62,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xCD,},
  {.address = 0x09, .data = 0x82,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xCE,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xCF,},
  {.address = 0x09, .data = 0x51,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xD0,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xD1,},
  {.address = 0x09, .data = 0xCC,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xD2,},
  {.address = 0x09, .data = 0x80,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xD3,},
  {.address = 0x09, .data = 0x47,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xD4,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xD5,},
  {.address = 0x09, .data = 0xEA,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xD6,},
  {.address = 0x09, .data = 0x9D,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xD7,},
  {.address = 0x09, .data = 0x3B,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xD8,},
  {.address = 0x09, .data = 0x81,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xD9,},
  {.address = 0x09, .data = 0xE9,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xDA,},
  {.address = 0x09, .data = 0x30,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xDB,},
  {.address = 0x09, .data = 0x5A,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xDC,},
  {.address = 0x09, .data = 0x10,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xDD,},
  {.address = 0x09, .data = 0xA6,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xDE,},
  {.address = 0x09, .data = 0x68,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xDF,},
  {.address = 0x09, .data = 0x41,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xE0,},
  {.address = 0x09, .data = 0x80,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xE1,},
  {.address = 0x09, .data = 0xA8,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xE2,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xE3,},
  {.address = 0x09, .data = 0x4B,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xE4,},
  {.address = 0x09, .data = 0x61,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xE5,},
  {.address = 0x09, .data = 0xCC,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xE6,},
  {.address = 0x09, .data = 0x38,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xE7,},
  {.address = 0x09, .data = 0x30,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xE8,},
  {.address = 0x09, .data = 0x81,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xE9,},
  {.address = 0x09, .data = 0xE3,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xEA,},
  {.address = 0x09, .data = 0x20,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xEB,},
  {.address = 0x09, .data = 0x4F,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xEC,},
  {.address = 0x09, .data = 0x69,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xED,},
  {.address = 0x09, .data = 0x8C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xEE,},
  {.address = 0x09, .data = 0x01,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xEF,},
  {.address = 0x09, .data = 0x3E,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xF0,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xF1,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xF2,},
  {.address = 0x09, .data = 0x79,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xF3,},
  {.address = 0x09, .data = 0x34,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xF4,},
  {.address = 0x09, .data = 0xA4,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xF5,},
  {.address = 0x09, .data = 0xD2,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xF6,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xF7,},
  {.address = 0x09, .data = 0x4B,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xF8,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xF9,},
  {.address = 0x09, .data = 0xEA,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xFA,},
  {.address = 0x09, .data = 0x20,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xFB,},
  {.address = 0x09, .data = 0x4F,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xFC,},
  {.address = 0x09, .data = 0xC1,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xFD,},
  {.address = 0x09, .data = 0xCA,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xFE,},
  {.address = 0x09, .data = 0x44,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xFF,},
  {.address = 0x09, .data = 0x3D,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x00,},
  {.address = 0x09, .data = 0xD1,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x01,},
  {.address = 0x09, .data = 0xD5,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x02,},
  {.address = 0x09, .data = 0xD0,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x03,},
  {.address = 0x09, .data = 0x50,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x04,},
  {.address = 0x09, .data = 0x10,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x05,},
  {.address = 0x09, .data = 0xAC,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x06,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x07,},
  {.address = 0x09, .data = 0x4B,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x08,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x09,},
  {.address = 0x09, .data = 0xAE,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x0A,},
  {.address = 0x09, .data = 0x20,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x0B,},
  {.address = 0x09, .data = 0x32,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x0C,},
  {.address = 0x09, .data = 0x41,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x0D,},
  {.address = 0x09, .data = 0xF2,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x0E,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x0F,},
  {.address = 0x09, .data = 0x4E,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x10,},
  {.address = 0x09, .data = 0x76,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x11,},
  {.address = 0x09, .data = 0x8A,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x12,},
  {.address = 0x09, .data = 0xB3,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x13,},
  {.address = 0x09, .data = 0x5D,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x14,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x15,},
  {.address = 0x09, .data = 0xA5,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x16,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x17,},
  {.address = 0x09, .data = 0x48,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x18,},
  {.address = 0x09, .data = 0x75,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x19,},
  {.address = 0x09, .data = 0x8B,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x1A,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x1B,},
  {.address = 0x09, .data = 0x38,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x1C,},
  {.address = 0x09, .data = 0x41,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x1D,},
  {.address = 0x09, .data = 0xC3,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x1E,},
  {.address = 0x09, .data = 0xB6,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x1F,},
  {.address = 0x09, .data = 0x34,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x20,},
  {.address = 0x09, .data = 0x14,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x21,},
  {.address = 0x09, .data = 0xF2,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x22,},
  {.address = 0x09, .data = 0xBC,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x23,},
  {.address = 0x09, .data = 0x3E,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x24,},
  {.address = 0x09, .data = 0x14,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x25,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x26,},
  {.address = 0x09, .data = 0x30,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x27,},
  {.address = 0x09, .data = 0x51,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x28,},
  {.address = 0x09, .data = 0x7B,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x29,},
  {.address = 0x09, .data = 0x8C,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x2A,},
  {.address = 0x09, .data = 0xBB,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x2B,},
  {.address = 0x09, .data = 0x43,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x2C,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x2D,},
  {.address = 0x09, .data = 0xA1,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x2E,},
  {.address = 0x09, .data = 0x2D,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x2F,},
  {.address = 0x09, .data = 0xBF,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x30,},
  {.address = 0x09, .data = 0x91,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x31,},
  {.address = 0x09, .data = 0xD3,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x32,},
  {.address = 0x09, .data = 0x60,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x33,},
  {.address = 0x09, .data = 0x4F,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x34,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x35,},
  {.address = 0x09, .data = 0xAA,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x36,},
  {.address = 0x09, .data = 0x90,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x37,},
  {.address = 0x09, .data = 0x2C,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x38,},
  {.address = 0x09, .data = 0x41,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x39,},
  {.address = 0x09, .data = 0xE3,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x3A,},
  {.address = 0x09, .data = 0xA0,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x3B,},
  {.address = 0x09, .data = 0x4F,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x3C,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x3D,},
  {.address = 0x09, .data = 0xAA,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x3E,},
  {.address = 0x09, .data = 0x12,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x3F,},
  {.address = 0x09, .data = 0x64,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x40,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x41,},
  {.address = 0x09, .data = 0xA6,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x42,},
  {.address = 0x09, .data = 0xA4,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x43,},
  {.address = 0x09, .data = 0x48,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x44,},
  {.address = 0x09, .data = 0x14,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x45,},
  {.address = 0x09, .data = 0xE1,},
  {.address = 0x01, .data = 0x80,},
  {.address = 0x17, .data = 0x00,},
  {.address = 0x04, .data = 0x00,},
  {.address = 0x05, .data = 0x10,},
  {.address = 0x02, .data = 0x01,},
  {.address = 0x01, .data = 0x00,},
  {.address = 0x12, .data = 0x44,},
  {.address = 0x01, .data = 0x80,},
  {.address = 0x60, .data = 0x15,},
  {.address = 0x01, .data = 0x00,},
  {.address = 0x10, .data = 0x28,},
  {.address = 0x11, .data = 0x00,},
  {.address = 0x5E, .data = 0x02,},
  {.address = 0x01, .data = 0x80,},
  {.address = 0x0D, .data = 0x01,},
  {.address = 0x01, .data = 0x00,}
};


#ifdef __cplusplus
}
#endif


#endif /* LSM6DSOX_ACTIVITY_RECOGNITION_FOR_MOBILE_H */

 

 

The program has 6 output classes:

  1. Stationary
  2. Walking
  3. Jogging
  4. Biking
  5. Driving
  6. Unknown

 

I found that being tethered by the USB cable made it difficult to do a real test.  I could get it to detect Stationary by setting the board on the table, but when I tried to hold it stationary I would sometimes detect Driving.  Must be the old age jitters.  I could get Walking with a slow or moderate up-down motion and Jogging with a faster motion.  I could not figure out what type of motion would get it to detect Biking.  I guess if I added a battery and a display, I could take it out for a real test.  Here's some of the output that I obtained.

image

 

I was trying to do a video demo, but I think I had a resource issue with the video capture program and crashed the computer - even had to do a recovery of my C drive image.

 

Here's what I captured before the crash.  I got to the point of trying to get it to register "Jogging".  I think you can get the sense of the flow, so I'll skip trying to do it again.

 

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

 

I came across an interesting article that Qeexo, a TinyML platform developer, is collaborating with STMicro to create models for the MLC sensors using AutoML  https://www.prweb.com/releases/qeexo_collaborates_with_st_to_automate_machine_learning_on_machine_learning_core_mlc_sens… .

 

The platform seems more focused on commercial applications, but hopefully they'll see value in offering a free "Community" edition.  Having an online platform to develop models will make this feature much more attractive.  I already have a project where this would reduce my hardware complexity and improve efficiency - if I could get sufficient accuracy...  I think this is a case where waiting for the technology to develop makes sense.  Maybe other ML SaaS companies will pick this up.

  • Sign in to reply

Top Comments

  • javagoza
    javagoza over 4 years ago +3
    Nice to know that the Arduino NanoRP2040 has the IMU PIN INT1 connected on the board. The Arduino nano 33 IoT does not have it and you have to go polling the registry.
  • ralphjy
    ralphjy over 4 years ago in reply to javagoza +2
    I was also surprised that an INT pin wasn't made available on the Nano 33 IoT LSM6DS3 IMU. They should have at least brought an INT output to a pad. With the LGA package, it is impossible to access unconnected…
  • javagoza
    javagoza over 4 years ago in reply to vlasov01 +2
    Bad news I checked with an Arduino Nano 33 IoT but it has a LSM6DS3 IMU that gives who_I_am 0x69 (DEC 105) This one: https://content.arduino.cc/assets/st_imu_lsm6ds3_datasheet.pdf#page=53 It is not the…
  • pierreko
    pierreko over 3 years ago

    Hi ! Is it possible to run Unico with this board ? I didn't saw any documentation on the data formatting, just binaries for STM dev board...

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • vlasov01
    vlasov01 over 4 years ago in reply to javagoza

    Yes, you are right. I've got the same information from their webinar Program decision trees in sensors with a Machine Learning Core  . They said that IMU part number mast end with character X to have this capabilities. See the diagram below for more details:

    IMU iNEMO's portfolio

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • javagoza
    javagoza over 4 years ago in reply to vlasov01

    Bad news

     

    I checked with an Arduino Nano 33 IoT but it has a LSM6DS3 IMU that gives who_I_am 0x69 (DEC 105)

    This one: https://content.arduino.cc/assets/st_imu_lsm6ds3_datasheet.pdf#page=53

     

    It is not the LSM6DSOX https://www.st.com/resource/en/datasheet/lsm6dsox.pdf

     

    So, no ML functions for the Arduino Nano 33 IoT IMU

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • vlasov01
    vlasov01 over 4 years ago in reply to javagoza

    Thank you! I'll definitely try it with Arduino Nano 33 IoT and its LSM6DS3 IMU using poll mechanism.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • javagoza
    javagoza over 4 years ago in reply to vlasov01

    You can poll each of the 8 dedicated Machine Learning Core registers: MLC0_SRC (70h) through MLC7_SRC (77h) as needed to continuously check the decision tree outputs.

    For this example

    STMems_Machine_Learning_Core/application_examples/lsm6dsox/Activity recognition for mobile at master · STMicroelectronics/STMems_Machine_Learning_Core · GitHub

     

    Just poll MLC0_SRC (70h) register for changes

     

    MLC0_SRC (70h) register values

    0 = Stationary

    1 = Walking

    4 = Jogging

    8 = Biking

    12 = Driving

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube