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:
The MLC blocks are shown below:
There is capability of adding inputs from additional sensors, e.g. a magnetometer.
Here is an example of how the decision-tree logic works:
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:
- Stationary
- Walking
- Jogging
- Biking
- Driving
- 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.
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
.
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.
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.




Top Comments