使用TEF-GTK用户界面控制的TEF6686(V102) Arduino Radio最简单的pcb

概述

TEF6686是一款收音机芯片,使用I2C控制,只使用两根杜邦线(除了电源和地),即可完成Arduino Nano控制6686芯片,通过串口通信,用户可通过TEF-GTK用户界面对6686收音机芯片进行控制

TEF6686 V102 相关图示

芯片图示

image

PCB图 (正面)

image

PCB图 (反面)

image

arduino nano与6686引脚连接图

image

相关函数(GitHub开源,随便移植的)

/*
  by Eustake (marsel90)
  With this sketch it is recommended to use together with TEF-GTK v1.1.2
  changes:
  Sketch compatible with NXP-TEF6686 (F8602 or F8605) 
  Add = MPX out mode ( DAC_Left : FM MPX (DARC) signal / DAC_Right : mono audio ) + MPX obtion in TEF-GTK
  Check signal level and 19kHz subcarrier every TIMER_INTERVAL. Now in TEF-GTK appear MO for mono and ST for stereo.
  Without IF+ and RF+ - RF Gain is 0db
  Only RF+ - RF Gain max +6db
  Only IF+ - RF Gain max +9db
  Both IF+ & RF+ - RF Gain max +15db  
  ChannelEqualizer obtion - on/off use TEF-GTK button EQ 
  MphSuppression iMS obtion - on/off use TEF-GTK button iMS 
  +6dB analog radio sound gain - in TEF-GTK enable Show antenna input alignment - NO AM
  #
  by VoXiTPro
  changes: 
  all warnings are removed  (unsigned int to signed int did go wrong)
  Filters are now switchable (AUTO is max 236khz, manual you can set 311Khz)
  Stereo on/off
  Signal measurement improvements
  Keep filter (to do) and frequency settings when switching from AM to FM / FM to AM
  Settings are now from Eustake (marsel90)
  AGC is now switchable (now for FM/AM and reversed the settings) 
  Removed some settings from Eustake, FMSI stereo improvement only for tef6687 and tef6689, Softmute_mod AM only, Wavegen and I2S audio (only using internal audio)
  You can now change settings with the antenne switch ANT A = default settings, ANT B = Improved settings, ANT C = Eustake Settings
  Settings are now A,B,C from eustake. D are improved settings from prog manual.
  AGC, Deemphasis, IF+ RF+ are now in subroutines so you can set them at other moments. If you change settings the old values will be reapplied.
  IF+ RF+ works now also for AM.
  Squelch will change volume scale for AM.  if you have the right value change the define AM_VOL_SCALE too that value (now -1)
*/  
/*  
 If you have changed the above value squelch will be off again.
 Switching from AM to FM or from FM to AM filter settings are kept
  Thanks also to:
  - FMDXklaas for testing
  - ODJeetje 
  - Eustake for default and improved settings 
  and many others ...
  Tested on Arduino Nano V3.0 at 5V
*/

#include <Wire.h>

#define SERIAL_PORT_SPEED 115200
#define SERIAL_BUFFER_SIZE 16
char buff[SERIAL_BUFFER_SIZE];
uint8_t buff_pos = 0;
uint32_t REG_FREQ;
uint32_t MODA_FREQ = 0;
uint32_t MODF_FREQ = 0;
uint32_t timer = 0;          // Signal level reporting timer
uint32_t timer_RDS = 0;      // RDS reporting timer
int8_t current_filter = -1;  // Current FIR filter (-1 is adaptive)
int8_t current_set = -1;     // Current FIR filter (-1 is adaptive)
int8_t forced_mono;
int16_t LevelOffset;
int16_t Level;
int16_t AudioLevel;
int16_t LevelA;
int8_t mode;
int8_t AGC_tress;
int8_t IFplus;
int8_t RFplus;
int8_t Squelch;
int8_t Setsquelch;
int16_t nDeemphasis, volume;
uint32_t freq;
int8_t Filter_AM = 16;
int8_t Filter_FM = 16;
int8_t radio_mode;
int8_t scan_mode;

/* Scan */
uint16_t scan_start = 0;
uint16_t scan_end = 0;
uint16_t scan_step = 0;
uint8_t scan_filter = 0;
uint16_t AM_start_scan = 0;
uint16_t AM_scan_end = 0;
uint16_t AM_scan_step = 0;
uint8_t AM_scan_filter = 0;

#define TIMER_INTERVAL 66
#define RDS_TIMER_INTERVAL 87
#define AM_VOL_SCALE -1
byte DSP_I2C = (0x64U);

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

static const uint8_t INIT_SET1[] PROGMEM =
{
  0x07, 0x20, 0x17, 0x01, 0x00, 0x01, 0x04, 0x4C,                                                              // FM 23 Set_NoiseBlanker           (1, 1, 1100)                                                                    
  0x09, 0x20, 0x18, 0x01, 0x00, 0xD2, 0x00, 0xD2, 0x00, 0xFA,                                                  // FM 24 Set_NoiseBlanker_Options   (1, 210, 210, 250)        
  0x0B, 0x20, 0x28, 0x01, 0x00, 0x78, 0x01, 0xF4, 0x00, 0x0A, 0x00, 0x14,                                      // FM 40 Set_Softmute_Time          (1, 120, 500, 10, 20)  
  0x09, 0x20, 0x2A, 0x01, 0x00, 0x01, 0x00, 0x96, 0x00, 0xDC,                                                  // FM 42 Set_Softmute_Level         (1, 1, 150, 220)          
  0x09, 0x20, 0x2B, 0x01, 0x00, 0x03, 0x00, 0xC8, 0x03, 0xE8,                                                  // FM 43 Set_Softmute_Noise         (1, 3, 200, 1000)       
  0x09, 0x20, 0x2C, 0x01, 0x00, 0x03, 0x00, 0xC8, 0x03, 0xE8,                                                  // FM 44 Set_Softmute_Mph           (1, 3, 200, 1000)       
  0x07, 0x20, 0x2D, 0x01, 0x00, 0x01, 0x00, 0xF0,                                                              // FM 45 Set_Softmute_Max           (1, 1, 240)             
  0x0B, 0x20, 0x32, 0x01, 0x00, 0xC8, 0x01, 0xF4, 0x00, 0x0A, 0x00, 0x50,                                      // FM 50 Set_Highcut_Time           (1, 200, 500, 10, 80) 
  0x0B, 0x20, 0x33, 0x01, 0x00, 0x01, 0x00, 0xFA, 0x00, 0x82, 0x01, 0xF4,                                      // FM 51 Set_Highcut_ Mod           (1, 1, 250, 130, 500)   
  0x09, 0x20, 0x34, 0x01, 0x00, 0x01, 0x01, 0x68, 0x01, 0x2C,                                                  // FM 52 Set_Highcut_Level          (1, 1, 360, 300)        
  0x09, 0x20, 0x35, 0x01, 0x00, 0x01, 0x00, 0xC8, 0x00, 0xC8,                                                  // FM 53 Set_Highcut_Noise          (1, 1, 200, 200)        
  0x09, 0x20, 0x36, 0x01, 0x00, 0x01, 0x00, 0xC8, 0x00, 0xC8,                                                  // FM 54 Set_HighCut_Mph            (1, 1, 200, 200)        
  0x07, 0x20, 0x37, 0x01, 0x00, 0x01, 0x09, 0x60,                                                              // FM 55 Set_HighCut_Max            (1, 1, 2400)       
  0x07, 0x20, 0x38, 0x01, 0x00, 0x01, 0x3A, 0x98,                                                              // FM 56 Set_Highcut_Min            (1, 1, 15000)          
  0x07, 0x20, 0x39, 0x01, 0x00, 0x01, 0x00, 0x78,                                                              // FM 57 Set_Lowcut_Max             (1, 1, 120)             
  0x07, 0x20, 0x3A, 0x01, 0x00, 0x01, 0x00, 0x14,                                                              // FM 58 Set_Lowcut_Min             (1, 1, 20)                               
  0x0B, 0x20, 0x3C, 0x01, 0x00, 0xC8, 0x0F, 0xA0, 0x00, 0x14, 0x00, 0x50,                                      // FM 60 Set_Stereo_Time            (1, 200, 4000, 20, 80)
  0x0B, 0x20, 0x3D, 0x01, 0x00, 0x01, 0x01, 0xA4, 0x00, 0xB4, 0x03, 0xE8,                                      // FM 61 Set_Stereo_Mod             (1, 1, 420, 180, 1000)        
  0x09, 0x20, 0x3E, 0x01, 0x00, 0x03, 0x01, 0xCC, 0x00, 0xF0,                                                  // FM 62 Set_Stereo_Level           (1, 3, 460, 240)          
  0x09, 0x20, 0x3F, 0x01, 0x00, 0x03, 0x01, 0xF4, 0x00, 0xC8,                                                  // FM_Set_Stereo_Noise              (1, 3, 500, 200)
  0x09, 0x20, 0x40, 0x01, 0x00, 0x03, 0x01, 0xF4, 0x00, 0xC8,                                                  // FM_Set_Stereo_Mph                (1, 3, 500, 200)            
  0x05, 0x20, 0x41, 0x01, 0x00, 0x01,                                                                          // FM 65 Set_Stereo_Max             (1, 1)                      
  0x07, 0x20, 0x42, 0x01, 0x00, 0x01, 0x01, 0x90,                                                              // FM 66 Set_Stereo_Min             (1, 1, 400)             
  0x0B, 0x20, 0x46, 0x01, 0x00, 0x78, 0x01, 0xF4, 0x00, 0x50, 0x00, 0xA0,                                      // FM 70 Set_StHiBlend_Time         (1, 120, 500, 80, 160)     
  0x0B, 0x20, 0x47, 0x01, 0x00, 0x01, 0x00, 0xF0, 0x00, 0x78, 0x02, 0x9E,                                      // FM 71 Set_StHiBlend_Mod          (1, 1, 240, 120, 670)       
  0x09, 0x20, 0x48, 0x01, 0x00, 0x01, 0x01, 0xF4, 0x01, 0x2C,                                                  // FM 72 Set_StHiBlend_Level        (1, 1, 500, 300)            
  0x09, 0x20, 0x49, 0x01, 0x00, 0x03, 0x00, 0x50, 0x00, 0xA0,                                                  // FM 73 Set_StHiBlend_Noise        (1, 3, 80, 160)            
  0x09, 0x20, 0x4A, 0x01, 0x00, 0x03, 0x00, 0x50, 0x00, 0xA0,                                                  // FM 74 Set_StHiBlend_Mph          (1, 3, 80, 160)           
  0x07, 0x20, 0x4B, 0x01, 0x00, 0x01, 0x0F, 0xA0,                                                              // FM 75 Set_StHiBlend_Max          (1, 1, 4000)                          
  0x07, 0x20, 0x4C, 0x01, 0x00, 0x01, 0x1B, 0x58,                                                              // FM 76 Set_StHiBlend_Min          (1, 1, 7000)
  0x05, 0x20, 0x56, 0x01, 0x03, 0x84,                                                                          // FM 86 Set_Bandwidth_Options      (1, 900)   
  0x0B, 0x20, 0x5B, 0x01, 0x05, 0xDC, 0x05, 0xDC, 0x05, 0xDC, 0x05, 0xDC,                                      // FM_Set_StBandBlend_Gain          (1, 1500, 1500, 1500, 1500)
  0x0B, 0x20, 0x5C, 0x01, 0x00, 0xFA, 0x00, 0xFA, 0x00, 0xFA, 0x00, 0xFA,                                      // FM 92 Set_StBandBlend_Bias       (1, 250, 250, 250, 250) 
  0x0B, 0x21, 0x0E, 0x01, 0x00, 0x01, 0x00, 0x02, 0x04, 0xB0, 0x00, 0x03,                                      // AM_Set_CoChannelDet              (1, 1, 2, 1200, 3)
  0x07, 0x21, 0x17, 0x01, 0x00, 0x01, 0x04, 0xB0,                                                              // AM_Set_NoiseBlanker              (1, 1, 1200)       
  0x07, 0x21, 0x18, 0x01, 0x00, 0x01, 0x04, 0xB0,                                                              // AM Set_NoiseBlanker_Audio        (1, 1, 1200)
  0x11, 0x21, 0x26, 0x01, 0x00, 0x00, 0xFF, 0xF6, 0xFF, 0xEC, 0xFF, 0xE2, 0xFF, 0xD8, 0xFF, 0xCE, 0xFF, 0xC4,  // AM_Set_LevelStep                 (1, 0, -10, -20, -30, -40, -50, -60)
  0x05, 0x21, 0x27, 0x01, 0xFE, 0xD4,                                                                          // AM_Set_LevelOffset               (1, -300) 
  0x0B, 0x21, 0x28, 0x01, 0x01, 0xF4, 0x0F, 0xA0, 0x00, 0x64, 0x01, 0xF4,                                      // AM_Set_Softmute_Time             (1, 500, 4000, 100, 500)
  0x09, 0x21, 0x2A, 0x01, 0x00, 0x01, 0x01, 0x54, 0x01, 0x2C,                                                  // AM Set_Softmute_Level            (1, 1, 340, 300)
  0x07, 0x21, 0x2D, 0x01, 0x00, 0x01, 0x01, 0x4A,                                                              // AM_Set_Softmute_Max              (1, 1, 330)
  0x0B, 0x21, 0x32, 0x01, 0x01, 0xF4, 0x0F, 0xA0, 0x00, 0x64, 0x01, 0xF4,                                      // AM_Set_Highcut_Time              (1, 500, 4000, 100, 500)
  0x07, 0x21, 0x37, 0x01, 0x00, 0x01, 0x05, 0xDC,                                                              // AM_Set_Highcut_Max               (1, 1, 1500)
  0x07, 0x21, 0x38, 0x01, 0x00, 0x01, 0x0B, 0xB8,                                                              // AM_Set_Highcut_Min               (1, 1, 3000)
  0x07, 0x21, 0x39, 0x01, 0x00, 0x01, 0x01, 0x2C,                                                              // AM_Set_Lowcut_Max                (1, 1, 300)
  0x07, 0x21, 0x3A, 0x01, 0x00, 0x01, 0x00, 0x1E,                                                              // AM_Set_Lowcut_Min                (1, 1, 30) 
  0x07, 0x30, 0x0D, 0x01, 0x00, 0x80, 0x00, 0xE0,                                                              // Audio Output Source DAC L/R  
  0x00
};

static const uint8_t INIT_SET2[] PROGMEM =
{
  0x07, 0x20, 0x17, 0x01, 0x00, 0x01, 0x03, 0xE8,                                                               // FM 23 Set_NoiseBlanker           (1, 1, 1000)  
  0x09, 0x20, 0x18, 0x01, 0x00, 0x64, 0x00, 0x64, 0x00, 0xC8,                                                   // FM 24 Set_NoiseBlanker_Options   (1, 100, 100, 200)
  0x0B, 0x20, 0x28, 0x01, 0x00, 0x78, 0x01, 0xF4, 0x00, 0x0A, 0x00, 0x14,                                       // FM_Set_SoftMute_Time             (1, 120, 500, 10, 20)
  0x09, 0x20, 0x2A, 0x01, 0x00, 0x03, 0x00, 0x96, 0x00, 0xDC,                                                   // FM_Set_SoftMute_Level            (1, 3, 150, 220) 
  0x09, 0x20, 0x2B, 0x01, 0x00, 0x03, 0x00, 0xC8, 0x03, 0xE8,                                                   // FM_Set_SoftMute_Noise            (1, 3, 200, 1000)
  0x09, 0x20, 0x2C, 0x01, 0x00, 0x03, 0x00, 0xC8, 0x03, 0xE8,                                                   // FM_Set_SoftMute_Mph              (1, 3, 200, 1000)
  0x07, 0x20, 0x2D, 0x01, 0x00, 0x01, 0x00, 0xC8,                                                               // FM_Set_SoftMute_Max              (1, 1, 200)
  0x0B, 0x20, 0x32, 0x01, 0x00, 0x64, 0x01, 0x90, 0x00, 0x0A, 0x00, 0x50,                                       // FM_Set_HighCut_Time              (1, 100, 400, 10, 80)
  0x0B, 0x20, 0x33, 0x01, 0x00, 0x01, 0x00, 0xFA, 0x00, 0x82, 0x01, 0xF4,                                       // FM_Set_HighCut_Mod               (1, 1, 250, 130, 500)
  0x09, 0x20, 0x34, 0x01, 0x00, 0x03, 0x00, 0xC8, 0x01, 0x2C,                                                   // FM Set_Highcut_Level             (1, 3, 200, 300)
  0x09, 0x20, 0x35, 0x01, 0x00, 0x03, 0x00, 0xC8, 0x00, 0xC8,                                                   // FM_Set_HighCut_Noise             (1, 3, 200, 200)
  0x09, 0x20, 0x36, 0x01, 0x00, 0x03, 0x00, 0xC8, 0x00, 0xC8,                                                   // FM_Set_HighCut_Mph               (1, 3, 200, 200)
  0x07, 0x20, 0x37, 0x01, 0x00, 0x01, 0x09, 0x60,                                                               // FM_Set_HighCut_Max               (1, 1, 2400)
  0x07, 0x20, 0x38, 0x01, 0x00, 0x01, 0x3A, 0x98,                                                               // FM Set_Highcut_Min               (1, 1, 15000) 
  0x07, 0x20, 0x39, 0x01, 0x00, 0x01, 0x00, 0x64,                                                               // FM_Set_LowCut_Max                (1, 1, 100)
  0x07, 0x20, 0x3A, 0x01, 0x00, 0x00, 0x00, 0x14,                                                               // FM_Set_LowCut_Min                (1, 0, 20)
  0x05, 0x20, 0x3B, 0x01, 0x00, 0x01,                                                                           // FM_Set_HighCut_Options           (1, 1)
  0x0B, 0x20, 0x3C, 0x01, 0x00, 0xC8, 0x0F, 0xA0, 0x00, 0x14, 0x00, 0x50,                                       // FM_Set_Stereo_Time               (1, 200, 4000, 20, 80)
  0x0B, 0x20, 0x3D, 0x01, 0x00, 0x01, 0x00, 0xD2, 0x00, 0x5A, 0x01, 0xF4,                                       // FM_Set_Stereo_Mod                (1, 1, 210, 90, 500)
  0x09, 0x20, 0x3E, 0x01, 0x00, 0x03, 0x01, 0xCC, 0x00, 0xF0,                                                   // FM_Set_Stereo_Level              (1, 3, 460, 240)
  0x09, 0x20, 0x3F, 0x01, 0x00, 0x03, 0x00, 0x78, 0x00, 0xA0,                                                   // FM_Set_Stereo_Noise              (1, 3, 120, 160)
  0x09, 0x20, 0x40, 0x01, 0x00, 0x03, 0x00, 0x64, 0x00, 0x96,                                                   // FM_Set_Stereo_Mph                (1, 3, 100, 150)
  0x05, 0x20, 0x41, 0x01, 0x00, 0x01,                                                                           // FM_Set_Stereo_Max                (1, 1)
  0x07, 0x20, 0x42, 0x01, 0x00, 0x01, 0x01, 0x90,                                                               // FM_Set_Stereo_Min                (1, 1, 400)
  0x0B, 0x20, 0x46, 0x01, 0x01, 0xF4, 0x07, 0xD0, 0x00, 0x14, 0x00, 0x14,                                       // FM_Set_StHiBlend_Time            (1, 500, 2000, 20, 20)
  0x0B, 0x20, 0x47, 0x01, 0x00, 0x01, 0x00, 0xF0, 0x00, 0x78, 0x02, 0x9E,                                       // FM_Set_StHiBlend_Mod             (1, 1, 240, 120, 670) 
  0x09, 0x20, 0x48, 0x01, 0x00, 0x03, 0x02, 0x58, 0x00, 0xF0,                                                   // FM_Set_StHiBlend_Level           (1, 3, 600, 240)
  0x09, 0x20, 0x49, 0x01, 0x00, 0x03, 0x00, 0x50, 0x00, 0x8C,                                                   // FM_Set_StHiBlend_Noise           (1, 3, 80, 140)
  0x09, 0x20, 0x4A, 0x01, 0x00, 0x03, 0x00, 0x50, 0x00, 0x8C,                                                   // FM_Set_StHiBlend_Mph             (1, 3, 80, 140)
  0x07, 0x20, 0x4B, 0x01, 0x00, 0x01, 0x0F, 0xA0,                                                               // FM_Set_StHiBlend_Max             (1, 1, 4000)
  0x07, 0x20, 0x4C, 0x01, 0x00, 0x00, 0x1B, 0x58,                                                               // FM_Set_StHiBlend_Min             (1, 0, 7000)
  0x07, 0x20, 0x52, 0x01, 0x00, 0x00, 0x00, 0x00,                                                               // FM_Set_QualityStatus             (1, 0, 0)
  0x07, 0x20, 0x52, 0x01, 0x00, 0xC8, 0x00, 0x00,                                                               // FM_Set_QualityStatus             (1, 200, 0)
  0x0B, 0x21, 0x0E, 0x01, 0x00, 0x01, 0x00, 0x02, 0x04, 0xB0, 0x00, 0x03,                                       // AM_Set_CoChannelDet              (1, 1, 2, 1200, 3)
  0x07, 0x21, 0x17, 0x01, 0x00, 0x01, 0x04, 0xB0,                                                               // AM_Set_NoiseBlanker              (1, 1, 1200)       
  0x07, 0x21, 0x18, 0x01, 0x00, 0x01, 0x04, 0xB0,                                                               // AM Set_NoiseBlanker_Audio        (1, 1, 1200)
  0x11, 0x21, 0x26, 0x01, 0x00, 0x00, 0xFF, 0xF6, 0xFF, 0xEC, 0xFF, 0xE2, 0xFF, 0xD8, 0xFF, 0xCE, 0xFF, 0xC4,   // AM_Set_LevelStep                 (1, 0, -10, -20, -30, -40, -50, -60)
  0x05, 0x21, 0x27, 0x01, 0xFE, 0xD4,                                                                           // AM_Set_LevelOffset               (1, -300) 
  0x0B, 0x21, 0x28, 0x01, 0x01, 0xF4, 0x0F, 0xA0, 0x00, 0x64, 0x01, 0xF4,                                       // AM_Set_Softmute_Time             (1, 500, 4000, 100, 500)
  0x09, 0x21, 0x2A, 0x01, 0x00, 0x01, 0x01, 0x54, 0x01, 0x2C,                                                   // AM Set_Softmute_Level            (1, 1, 340, 300)
  0x07, 0x21, 0x2D, 0x01, 0x00, 0x01, 0x01, 0x4A,                                                               // AM_Set_Softmute_Max              (1, 1, 330)
  0x0B, 0x21, 0x32, 0x01, 0x01, 0xF4, 0x0F, 0xA0, 0x00, 0x64, 0x01, 0xF4,                                       // AM_Set_Highcut_Time              (1, 500, 4000, 100, 500)
  0x07, 0x21, 0x37, 0x01, 0x00, 0x01, 0x05, 0xDC,                                                               // AM_Set_Highcut_Max               (1, 1, 1500)
  0x07, 0x21, 0x38, 0x01, 0x00, 0x01, 0x0B, 0xB8,                                                               // AM_Set_Highcut_Min               (1, 1, 3000)
  0x07, 0x21, 0x39, 0x01, 0x00, 0x01, 0x01, 0x2C,                                                               // AM_Set_Lowcut_Max                (1, 1, 300)
  0x07, 0x21, 0x3A, 0x01, 0x00, 0x01, 0x00, 0x1E,                                                               // AM_Set_Lowcut_Min                (1, 1, 30) 
  0x07, 0x30, 0x15, 0x01, 0x00, 0x80, 0x00, 0x01,                                                               // AUDIO_Set_Ana_Out                (1, 128, 1)
  0x07, 0x30, 0x0D, 0x01, 0x00, 0x21, 0x00, 0xE0,                                                               // AUDIO_Set_Output_Source          (1, 33, 224)
  0x07, 0x30, 0x0D, 0x01, 0x00, 0x80, 0x00, 0xE0,                                                               // AUDIO_Set_Output_Source          (1, 128, 224)
  0x00
};

static const uint8_t INIT_SET3[] PROGMEM =
{
  0x07, 0x20, 0x17, 0x01, 0x00, 0x01, 0x03, 0xE8,                                                              // FM 23 Set_NoiseBlanker           (1, 1, 1000) 
  0x09, 0x20, 0x18, 0x01, 0x00, 0xD2, 0x00, 0xD2, 0x00, 0xFA,                                                  // FM 24 Set_NoiseBlanker_Options   (1, 210, 210, 250)                                                                          
  0x0B, 0x20, 0x28, 0x01, 0x00, 0x78, 0x01, 0xF4, 0x00, 0x0A, 0x00, 0x14,                                      // FM 40 Set_Softmute_Time          (1, 120, 500, 10, 20)    
  0x09, 0x20, 0x2A, 0x01, 0x00, 0x01, 0x00, 0x96, 0x00, 0xDC,                                                  // FM 42 Set_Softmute_Level         (1, 1, 150, 220)          
  0x09, 0x20, 0x2B, 0x01, 0x00, 0x01, 0x00, 0x64, 0x03, 0xE8,                                                  // FM 43 Set_Softmute_Noise         (1, 1, 100, 1000)       
  0x09, 0x20, 0x2C, 0x01, 0x00, 0x01, 0x00, 0x64, 0x03, 0xE8,                                                  // FM 44 Set_Softmute_Mph           (1, 1, 100, 1000)       
  0x07, 0x20, 0x2D, 0x01, 0x00, 0x01, 0x00, 0x64,                                                              // FM 45 Set_Softmute_Max           (1, 1, 100) 
  0x0B, 0x20, 0x32, 0x01, 0x00, 0x78, 0x00, 0xC8, 0x00, 0x0A, 0x00, 0x50,                                      // FM_Set_HighCut_Time              (1, 120, 200, 10, 80)             
  0x0B, 0x20, 0x33, 0x01, 0x00, 0x01, 0x00, 0xFA, 0x00, 0x82, 0x01, 0xF4,                                      // FM 51 Set_Highcut_ Mod           (1, 1, 250, 130, 500)   
  0x09, 0x20, 0x34, 0x01, 0x00, 0x01, 0x00, 0xC8, 0x01, 0x2C,                                                  // FM 52 Set_Highcut_Level          (1, 1, 200, 300)   
  0x09, 0x20, 0x35, 0x01, 0x00, 0x01, 0x00, 0xFA, 0x00, 0xC8,                                                  // FM 53 Set_Highcut_Noise          (1, 1, 250, 200)        
  0x09, 0x20, 0x36, 0x01, 0x00, 0x01, 0x00, 0xFA, 0x00, 0xC8,                                                  // FM 54 Set_HighCut_Mph            (1, 1, 250, 200)        
  0x07, 0x20, 0x37, 0x01, 0x00, 0x01, 0x09, 0x60,                                                              // FM 55 Set_HighCut_Max            (1, 1, 2400)       
  0x07, 0x20, 0x38, 0x01, 0x00, 0x01, 0x3A, 0x98,                                                              // FM 56 Set_Highcut_Min            (1, 1, 15000)          
  0x07, 0x20, 0x39, 0x01, 0x00, 0x01, 0x00, 0x78,                                                              // FM 57 Set_Lowcut_Max             (1, 1, 120)             
  0x07, 0x20, 0x3A, 0x01, 0x00, 0x01, 0x00, 0x14,                                                              // FM 58 Set_Lowcut_Min             (1, 1, 20)  
  0x0B, 0x20, 0x3C, 0x01, 0x00, 0xC8, 0x07, 0xD0, 0x00, 0x14, 0x00, 0x50,                                      // FM 60 Set_Stereo_Time            (1, 200, 2000, 20, 80) 
  0x0B, 0x20, 0x3D, 0x01, 0x00, 0x01, 0x01, 0xA4, 0x01, 0x40, 0x03, 0xE8,                                      // FM 61 Set_Stereo_Mod             (1, 1, 420, 320, 1000)        
  0x09, 0x20, 0x3E, 0x01, 0x00, 0x01, 0x01, 0xCC, 0x00, 0xF0,                                                  // FM 62 Set_Stereo_Level           (1, 1, 460, 240)          
  0x09, 0x20, 0x3F, 0x01, 0x00, 0x01, 0x02, 0x58, 0x00, 0xB4,                                                  // FM 63 Set_Stereo_Noise           (1, 1, 600, 180)            
  0x09, 0x20, 0x40, 0x01, 0x00, 0x01, 0x02, 0x58, 0x00, 0xDC,                                                  // FM 64 Set_Stereo_Mph             (1, 1, 600, 220)            
  0x05, 0x20, 0x41, 0x01, 0x00, 0x01,                                                                          // FM 65 Set_Stereo_Max             (1, 1)                      
  0x07, 0x20, 0x42, 0x01, 0x00, 0x00, 0x01, 0x90,                                                              // FM 66 Set_Stereo_Min             (1, 0, 400)                              
  0x0B, 0x20, 0x46, 0x01, 0x00, 0x78, 0x01, 0xF4, 0x00, 0x50, 0x00, 0xA0,                                      // FM 70 Set_StHiBlend_Time         (1, 120, 500, 80, 160)     
  0x0B, 0x20, 0x47, 0x01, 0x00, 0x01, 0x00, 0xF0, 0x00, 0x78, 0x02, 0x9E,                                      // FM 71 Set_StHiBlend_Mod          (1, 1, 240, 120, 670)       
  0x09, 0x20, 0x48, 0x01, 0x00, 0x01, 0x01, 0xF4, 0x01, 0x2C,                                                  // FM 72 Set_StHiBlend_Level        (1, 1, 500, 300)            
  0x09, 0x20, 0x49, 0x01, 0x00, 0x01, 0x00, 0x50, 0x00, 0x8C,                                                  // FM 73 Set_StHiBlend_Noise        (1, 1, 80, 140)            
  0x09, 0x20, 0x4A, 0x01, 0x00, 0x01, 0x00, 0x50, 0x00, 0x8C,                                                  // FM 74 Set_StHiBlend_Mph          (1, 1, 80, 140)           
  0x07, 0x20, 0x4B, 0x01, 0x00, 0x00, 0x0F, 0xA0,                                                              // FM 75 Set_StHiBlend_Max          (1, 0, 4000)                          
  0x07, 0x20, 0x4C, 0x01, 0x00, 0x00, 0x1B, 0x58,                                                              // FM 76 Set_StHiBlend_Min          (1, 0, 7000)
  0x05, 0x20, 0x56, 0x01, 0x03, 0x84,                                                                          // FM 86 Set_Bandwidth_Options      (1, 900)   
  0x07, 0x20, 0x5A, 0x01, 0x00, 0x32, 0x00, 0x32,                                                              // FM_Set_StBandBlend_Time          (1, 50, 50)
  0x0B, 0x20, 0x5B, 0x01, 0x05, 0xDC, 0x05, 0xDC, 0x05, 0xDC, 0x05, 0xDC,                                      // FM_Set_StBandBlend_Gain          (1, 1500, 1500, 1500, 1500) 
  0x0B, 0x20, 0x5C, 0x01, 0x00, 0xFA, 0x00, 0xFA, 0x00, 0xFA, 0x00, 0xFA,                                      // FM 92 Set_StBandBlend_Bias       (1, 250, 250, 250, 250)                 
  0x0B, 0x21, 0x0E, 0x01, 0x00, 0x01, 0x00, 0x02, 0x04, 0xB0, 0x00, 0x03,                                      // AM_Set_CoChannelDet              (1, 1, 2, 1200, 3)
  0x07, 0x21, 0x17, 0x01, 0x00, 0x01, 0x04, 0xB0,                                                              // AM_Set_NoiseBlanker              (1, 1, 1200)       
  0x07, 0x21, 0x18, 0x01, 0x00, 0x01, 0x04, 0xB0,                                                              // AM Set_NoiseBlanker_Audio        (1, 1, 1200)
  0x11, 0x21, 0x26, 0x01, 0x00, 0x00, 0xFF, 0xF6, 0xFF, 0xEC, 0xFF, 0xE2, 0xFF, 0xD8, 0xFF, 0xCE, 0xFF, 0xC4,  // AM_Set_LevelStep                 (1, 0, -10, -20, -30, -40, -50, -60)
  0x05, 0x21, 0x27, 0x01, 0xFE, 0xD4,                                                                          // AM_Set_LevelOffset               (1, -300) 
  0x0B, 0x21, 0x28, 0x01, 0x01, 0xF4, 0x0F, 0xA0, 0x00, 0x64, 0x01, 0xF4,                                      // AM_Set_Softmute_Time             (1, 500, 4000, 100, 500)
  0x09, 0x21, 0x2A, 0x01, 0x00, 0x01, 0x01, 0x54, 0x01, 0x2C,                                                  // AM Set_Softmute_Level            (1, 1, 340, 300)
  0x07, 0x21, 0x2D, 0x01, 0x00, 0x01, 0x01, 0x4A,                                                              // AM_Set_Softmute_Max              (1, 1, 330)
  0x0B, 0x21, 0x32, 0x01, 0x01, 0xF4, 0x0F, 0xA0, 0x00, 0x64, 0x01, 0xF4,                                      // AM_Set_Highcut_Time              (1, 500, 4000, 100, 500)
  0x07, 0x21, 0x37, 0x01, 0x00, 0x01, 0x05, 0xDC,                                                              // AM_Set_Highcut_Max               (1, 1, 1500)
  0x07, 0x21, 0x38, 0x01, 0x00, 0x01, 0x0B, 0xB8,                                                              // AM_Set_Highcut_Min               (1, 1, 3000)
  0x07, 0x21, 0x39, 0x01, 0x00, 0x01, 0x01, 0x2C,                                                              // AM_Set_Lowcut_Max                (1, 1, 300)
  0x07, 0x21, 0x3A, 0x01, 0x00, 0x01, 0x00, 0x1E,                                                              // AM_Set_Lowcut_Min                (1, 1, 30) 
  0x07, 0x30, 0x0D, 0x01, 0x00, 0x80, 0x00, 0xE0,                                                              // Audio Output Source DAC L/R  
  0x00
};

 static const uint8_t INIT_SET4[] PROGMEM =
{
  0x07, 0x20, 0x17, 0x01, 0x00, 0x01, 0x03, 0xE8,                                                             // FM 23 Set_NoiseBlanker         (1, 1, 1000)                           
  0x09, 0x20, 0x18, 0x01, 0x00, 0xD2, 0x00, 0xD2, 0x00, 0xFA,                                                 // FM 24 Set_NoiseBlanker_Options (1, 210, 210, 250)                      
  0x05, 0x20, 0x27, 0x01, 0x00, 0x00,                                                                         // FM 39 Set_LevelOffset          (1, 0)                                 
  0x0B, 0x20, 0x28, 0x01, 0x00, 0x78, 0x01, 0xF4, 0x00, 0x0A, 0x00, 0x14,                                     // FM 40 Set_Softmute_Time        (1, 120, 500, 10, 20)                  
  0x09, 0x20, 0x2A, 0x01, 0x00, 0x02, 0x00, 0x96, 0x00, 0xDC,                                                 // FM 42 Set_Softmute_Level       (1, 2, 150, 220)                        
  0x09, 0x20, 0x2B, 0x01, 0x00, 0x00, 0x00, 0xc8, 0x03, 0xE8,                                                 // FM 43 Set_Softmute_Noise       (1, 0, 500, 1000)                          
  0x09, 0x20, 0x2C, 0x01, 0x00, 0x00, 0x00, 0xc8, 0x03, 0xE8,                                                 // FM 44 Set_Softmute_Mph         (1, 0, 500, 1000)                         
  0x07, 0x20, 0x2D, 0x01, 0x00, 0x01, 0x00, 0xF0,                                                             // FM 45 Set_Softmute_Max         (1, 1, 200)                            
  0x0B, 0x20, 0x32, 0x01, 0x00, 0xC8, 0x07, 0xd0, 0x00, 0x0A, 0x00, 0x50,                                     // FM 50 Set_Highcut_Time         (1, 200, 500, 10, 80)                  
  0x0B, 0x20, 0x33, 0x01, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x82, 0x01, 0xF4,                                     // FM 51 Set_Highcut_ Mod         (1, 0, 250, 130, 500)                   
  0x09, 0x20, 0x34, 0x01, 0x00, 0x03, 0x01, 0x68, 0x01, 0x2C,                                                 // FM 52 Set_Highcut_Level        (1, 3, 360, 300)                       
  0x09, 0x20, 0x35, 0x01, 0x00, 0x03, 0x00, 0x96, 0x00, 0xC8,                                                 // FM 53 Set_Highcut_Noise        (1, 3, 150, 200)                       
  0x09, 0x20, 0x36, 0x01, 0x00, 0x03, 0x00, 0x78, 0x00, 0x0A,                                                 // FM 54 Set_HighCut_Mph          (1, 3, 120, 160)                       
  0x07, 0x20, 0x37, 0x01, 0x00, 0x01, 0x09, 0x60,                                                             // FM 55 Set_HighCut_Max          (1, 1, 2400)                           
  0x07, 0x20, 0x38, 0x01, 0x00, 0x00, 0x27, 0x10,                                                             // FM 56 Set_Highcut_Min          (1, 0, 10000)                         
  0x07, 0x20, 0x39, 0x01, 0x00, 0x01, 0x00, 0x64,                                                             // FM 57 Set_Lowcut_Max           (1, 1, 100)                            
  0x07, 0x20, 0x3A, 0x01, 0x00, 0x00, 0x00, 0x14,                                                             // FM 58 Set_Lowcut_Min           (1, 0, 20)                           
  0x05, 0x20, 0x3B, 0x01, 0x00, 0x01,                                                                         // FM 59 Set_Highcut_Options      (1, 1)                                 
  0x0B, 0x20, 0x3C, 0x01, 0x00, 0xC8, 0x0F, 0xA0, 0x00, 0x14, 0x00, 0x50,                                     // FM 60 Set_Stereo_Time          (1, 200, 4000, 20, 80)                
  0x0B, 0x20, 0x3D, 0x01, 0x00, 0x00, 0x00, 0xD2, 0x00, 0x5A, 0x01, 0xF4,                                     // FM 61 Set_Stereo_Mod           (1, 0, 210, 90, 500)                 
  0x09, 0x20, 0x3E, 0x01, 0x00, 0x03, 0x01, 0xCC, 0x00, 0xF0,                                                 // FM 62 Set_Stereo_Level         (1, 3, 460, 240)                       
  0x09, 0x20, 0x3F, 0x01, 0x00, 0x03, 0x00, 0x78, 0x00, 0xA0,                                                 // FM 63 Set_Stereo_Noise         (1, 3, 120, 160)                       
  0x09, 0x20, 0x40, 0x01, 0x00, 0x03, 0x00, 0x64, 0x00, 0x96,                                                 // FM 64 Set_Stereo_Mph           (1, 3, 100, 150)                       
  0x05, 0x20, 0x41, 0x01, 0x00, 0x01,                                                                         // FM 65 Set_Stereo_Max           (1, 1)                                 
  0x07, 0x20, 0x42, 0x01, 0x00, 0x00, 0x01, 0x90,                                                             // FM 66 Set_Stereo_Min           (1, 0, 400)                            
  0x0B, 0x20, 0x46, 0x01, 0x01, 0xF4, 0x07, 0xD0, 0x00, 0x14, 0x00, 0x14,                                     // FM 70 Set_StHiBlend_Time       (1, 500, 2000, 20, 20)                 
  0x0B, 0x20, 0x47, 0x01, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x78, 0x02, 0x9E,                                     // FM 71 Set_StHiBlend_Mod        (1, 0, 240, 120, 670)                  
  0x09, 0x20, 0x48, 0x01, 0x00, 0x03, 0x02, 0x58, 0x00, 0xF0,                                                 // FM 72 Set_StHiBlend_Level      (1, 3, 600, 240)                       
  0x09, 0x20, 0x49, 0x01, 0x00, 0x03, 0x00, 0x50, 0x00, 0x8C,                                                 // FM 73 Set_StHiBlend_Noise      (1, 3, 80, 140)                       
  0x09, 0x20, 0x4A, 0x01, 0x00, 0x03, 0x00, 0x50, 0x00, 0x8C,                                                 // FM 74 Set_StHiBlend_Mph        (1, 3, 80, 140)                        
  0x07, 0x20, 0x4B, 0x01, 0x00, 0x01, 0x0F, 0xA0,                                                             // FM 75 Set_StHiBlend_Max        (1, 1, 4000)                           
  0x07, 0x20, 0x4C, 0x01, 0x00, 0x01, 0x1B, 0x58,                                                             // FM 76 Set_StHiBlend_Min        (1, 1, 7000)                           
  0x05, 0x20, 0x50, 0x01, 0x00, 0x01,                                                                         // FM_Set_Scaler                  (1, 1)
  0x05, 0x20, 0x56, 0x01, 0x03, 0x84,                                                                         // FM 86 Set_Bandwidth_Options    (1, 900)                                                        
  0x0B, 0x21, 0x0E, 0x01, 0x00, 0x01, 0x00, 0x02, 0x04, 0xB0, 0x00, 0x03,                                      // AM_Set_CoChannelDet           (1, 1, 2, 1200, 3)
  0x07, 0x21, 0x17, 0x01, 0x00, 0x01, 0x04, 0xB0,                                                              // AM_Set_NoiseBlanker           (1, 1, 1200)       
  0x07, 0x21, 0x18, 0x01, 0x00, 0x01, 0x04, 0xB0,                                                              // AM Set_NoiseBlanker_Audio     (1, 1, 1200)
  0x11, 0x21, 0x26, 0x01, 0x00, 0x00, 0xFF, 0xF6, 0xFF, 0xEC, 0xFF, 0xE2, 0xFF, 0xD8, 0xFF, 0xCE, 0xFF, 0xC4,  // AM_Set_LevelStep              (1, 0, -10, -20, -30, -40, -50, -60)
  0x05, 0x21, 0x27, 0x01, 0xFE, 0xD4,                                                                          // AM_Set_LevelOffset            (1, -300) 
  0x0B, 0x21, 0x28, 0x01, 0x01, 0xF4, 0x0F, 0xA0, 0x00, 0x64, 0x01, 0xF4,                                      // AM_Set_Softmute_Time          (1, 500, 4000, 100, 500)
  0x09, 0x21, 0x2A, 0x01, 0x00, 0x01, 0x01, 0x54, 0x01, 0x2C,                                                  // AM Set_Softmute_Level         (1, 1, 340, 300)
  0x07, 0x21, 0x2D, 0x01, 0x00, 0x01, 0x01, 0x4A,                                                              // AM_Set_Softmute_Max           (1, 1, 330)
  0x0B, 0x21, 0x32, 0x01, 0x01, 0xF4, 0x0F, 0xA0, 0x00, 0x64, 0x01, 0xF4,                                      // AM_Set_Highcut_Time           (1, 500, 4000, 100, 500)
  0x07, 0x21, 0x37, 0x01, 0x00, 0x01, 0x05, 0xDC,                                                              // AM_Set_Highcut_Max            (1, 1, 1500)
  0x07, 0x21, 0x38, 0x01, 0x00, 0x01, 0x0B, 0xB8,                                                              // AM_Set_Highcut_Min            (1, 1, 3000)
  0x07, 0x21, 0x39, 0x01, 0x00, 0x01, 0x01, 0x2C,                                                              // AM_Set_Lowcut_Max             (1, 1, 300)
  0x07, 0x21, 0x3A, 0x01, 0x00, 0x01, 0x00, 0x1E,                                                              // AM_Set_Lowcut_Min             (1, 1, 30)
  0x07, 0x30, 0x0D, 0x01, 0x00, 0x80, 0x00, 0xE0,                                                              // Audio Output Source DAC L/R  
  0x00
};

const uint8_t AMFilterMap[] PROGMEM = { 30, 40, 60, 80, 30, 40, 60, 80, 30, 40, 60, 80, 30, 40, 60, 80 };
const uint16_t FMFilterMap[] PROGMEM = { 560, 640, 720, 840, 970, 1140, 1330, 1510, 1680, 1840, 2000, 2170, 2360, 2540, 2870, 3110 };

void Write(uint8_t *buf, uint8_t len)
{
  Wire.beginTransmission(DSP_I2C);
  for (int i = 0; i < len; i++)
    Wire.write(*buf++);
  Wire.endTransmission();
}

void Read(uint8_t *buf, uint8_t len)
{
  uint8_t lenrec = Wire.requestFrom(DSP_I2C, len);
  for (int i = 0; i < lenrec; i++)
    *buf++ = Wire.read();
}

void Set_Cmd(uint8_t mdl, uint8_t cmd, int len, ...)
{
  uint8_t buf[31];
  uint16_t temp;
  va_list vArgs;
  va_start(vArgs, len);
  buf[0] = mdl;
  buf[1] = cmd;
  buf[2] = 1;
  for (uint8_t i = 0; i < len; i++)
  {
    temp = va_arg(vArgs, uint16_t);
    buf[3 + i * 2] = (uint8_t)(temp >> 8);
    buf[4 + i * 2] = (uint8_t)temp;
  }
  va_end(vArgs);
  Write(buf, len * 2 + 3);
}

void Get_Cmd(uint8_t mdl, uint8_t cmd, int16_t *receive, int len)
{
  uint8_t buf[3];
  buf[0] = mdl;
  buf[1] = cmd;
  buf[2] = 1;
  Write(buf, 3);
  Read((uint8_t*)receive, 2 * len);
  for (uint8_t i = 0; i < len; i++)
  {
    uint16_t newval = (uint8_t)(receive[i] >> 8) | (((uint8_t)(receive[i])) << 8);
    receive[i] = newval;
  }
}

void dsp_write_data(const uint8_t* data)
{
  uint8_t *pa = (uint8_t *)data;
  uint8_t len, i, first;
  for (;;)
  {
    len = pgm_read_byte_near(pa++);
    first = pgm_read_byte_near(pa);
    if (!len)
      break;
    if (len == 2 && first == 0xff)
    {
      int delaytime = pgm_read_byte_near(++pa);
      delay(delaytime);
      pa++;
    }
    else
    {
      Wire.beginTransmission(DSP_I2C);
      for (int i = 0; i < len; i++)
        Wire.write(pgm_read_byte_near(pa++));
      Wire.endTransmission();
    }
  }
}

void scan(bool continous)
{
  uint32_t freq;
  uint32_t buffer;

  if ( scan_start < 6500 )
  {
    scan_mode = 1;
    scan_start = AM_start_scan;
    scan_end = AM_scan_end;
    scan_step = AM_scan_step;
  }
  else
  {
    scan_mode = 0;
  }

  if (scan_mode == 0)
  {
  Set_Cmd(32, 1, 2, 1, scan_start);
  }
  else
  {
    Set_Cmd(33, 10, 2, scan_filter == -1 ? 1 : 0, pgm_read_byte_near(AMFilterMap + scan_filter));
    Set_Cmd(33, 1, 2, 1, scan_start);
  }
  do
  {
    Serial.print('U');
    for (freq = scan_start; freq <= scan_end; freq += scan_step)
    {
      Set_Cmd( scan_mode == 0 ? 32 : 33, 1, 2, 1, freq);
      Serial.print(scan_mode == 0 ? freq * 10 : freq, DEC);
      Serial.print('=');
      delay(10);

      int16_t uQuality[4] = { 0 };
      Get_Cmd(scan_mode == 0 ? 32 : 33, 128, uQuality, 4);
      Serial.print(uQuality[1] / 10, DEC);
      Serial.print(',');
    }

    Serial.print('\n');
  } while (continous && !Serial.available());
  if (radio_mode == 0)
  {
    Set_Cmd( 32, 1, 2, 1, REG_FREQ / 10 );
  }
  else
  {
    Set_Cmd( 33, 10, 2, 0, pgm_read_byte_near(AMFilterMap + current_filter));
    Set_Cmd( 33, 1, 2, 1, REG_FREQ );
  }
}

void get_RDS()
{
  int16_t uRDS_RDS[8] = {0};
  Get_Cmd(32, 131, uRDS_RDS, 8);
  if ( bitRead(uRDS_RDS[0], 15) == 1 )
  {
    Serial.print('P');
    serial_hex(uRDS_RDS[1] >> 8);
    serial_hex(uRDS_RDS[1]);
    Serial.print('\n');
    Serial.print('R');
    serial_hex(uRDS_RDS[2] >> 8);
    serial_hex(uRDS_RDS[2]);
    serial_hex(uRDS_RDS[3] >> 8);
    serial_hex(uRDS_RDS[3]);
    serial_hex(uRDS_RDS[4] >> 8);
    serial_hex(uRDS_RDS[4]);
    serial_hex(uRDS_RDS[5] >> 8);
    Serial.print('\n');
  }
}

void serial_hex(uint8_t val)
{
  Serial.print((val >> 4) & 0xF, HEX);
  Serial.print(val & 0xF, HEX);
}

void Set_AGC_tresshold(uint8_t val)
{
 if (val == 0) {
  Set_Cmd(32, 11, 2, 920, 0);
  Set_Cmd(33, 11, 1, 1020);  
 } else if (val == 1) {
  Set_Cmd(32, 11, 2, 890, 0);
  Set_Cmd(33, 11, 1, 990);
 } else if (val == 2) {
  Set_Cmd(32, 11, 2, 870, 0);
  Set_Cmd(33, 11, 1, 970);
 } else {
  Set_Cmd(32, 11, 2, 840, 0);
  Set_Cmd(33, 11, 1, 940);
 }
}

void Set_IF_RF(uint8_t val, uint8_t val1)
{
  if (val == 1 && val1 == 0) {
     Set_Cmd(32, 39, 1, 60);
     Set_Cmd(33, 39, 1, 60);
  } else if (val == 0 && val1 == 1) {
     Set_Cmd(32, 39, 1, 90);
     Set_Cmd(33, 39, 1, 60);
  } else if (val == 1 && val1 == 1) {
     Set_Cmd(32, 39, 1, 150);
     Set_Cmd(33, 39, 1, 120);
  } else {
     Set_Cmd(32, 39, 1, 0);
     Set_Cmd(33, 39, 1, 0);
  }
}

void Set_Deempasis(uint8_t val)
{
  if (val == 0) { 
    Set_Cmd(32, 31, 1, 500); //50 us
    Set_Cmd(32, 85, 1, 0);
  } else  if (val == 1) {
    Set_Cmd(32, 31, 1, 750); //75 us
    Set_Cmd(32, 85, 1, 0);
  } else if (val == 2) {
    Set_Cmd(32, 31, 1, 0);  //0 us
    Set_Cmd(32, 85, 1, 0);
  } else if (val == 3) {
    Set_Cmd(32, 85, 1, 1); //MPX out mode ( DAC_Left : FM MPX (DARC) signal / DAC_Right : mono audio );
  }
}

void setup()
{
  Wire.begin();
  Serial.begin(115200);
  delay(40);
  int16_t uState;
  Get_Cmd(64, 128, &uState, 1);
  if (uState < 2)
    dsp_write_data(DSP_INIT);
  else if (uState > 2)
  {
    Set_Cmd(64, 1, 1, 1);
  }
  
  while (true)
  {
    if (Serial.available() > 0)
    {
      if (Serial.read() == 'x')
      {
        while (!Serial.available());
        if (Serial.read() == '\n')
          break;
      }
    }
  }
  delay(20);
  while (Serial.available() > 0)
    Serial.read();  // clear the serial buffer
  Serial.print("\nOK\n");
  if (AM_VOL_SCALE != -1) {
    int SetVolScale = map(AM_VOL_SCALE, 0, 100, -120, 60);
    Set_Cmd(33, 80, 1, SetVolScale);
  }
}

void loop()
{
  // check signal level and 19kHz subcarrier every TIMER_INTERVAL
  if ((millis() - timer) >= TIMER_INTERVAL)
  {
    if (radio_mode == 0) {
      Serial.print('S');
      uint16_t uStatus;
      Get_Cmd(32, 133, &uStatus, 1);
      char stereo ;
        if(!forced_mono)   
          stereo = (uStatus & (1 << 15)) ? 's' : 'm';
        else
          stereo = (uStatus & (1 << 15)) ? 'S' : 'M';
        Serial.print(stereo);
      int16_t uQuality[4] = { 0 };
      if (radio_mode == 0){
      Get_Cmd(32, 128, uQuality, 6);}
      if (uQuality[1] > 1200){uQuality[1] = 1200;}
      Serial.print(uQuality[1] / 10, DEC);
      Serial.print(',');
      if ((uQuality[2] > 1000) && (radio_mode ==0)) {uQuality[2] = 1000;} 
      Serial.print(uQuality[2] / 10, DEC);
      Serial.print(',');
      Serial.print(uQuality[3] / 10, DEC);
      Serial.print('\n');
      timer = millis();
     } 
     else if (radio_mode == 1) {
      Serial.print("Sm");
      int16_t uQuality[4] = { 0 };
      Get_Cmd(33, 128, uQuality, 4);
      Serial.print(uQuality[1] / 10, DEC);
      Serial.print(',');
      if (radio_mode ==1){uQuality[2] = uQuality[2] / 5;}
      Serial.print(uQuality[2] / 10, DEC);
      Serial.print(',');
      Serial.print(uQuality[3] / 10, DEC);
      Serial.print('\n');
      timer = millis();
    }
  }

  if (radio_mode == 0) {
    if ((millis() - timer_RDS) >= RDS_TIMER_INTERVAL)
    {
      get_RDS();
      timer_RDS = millis();
    }
  }

  if (Serial.available() > 0)
  {
    buff[buff_pos] = Serial.read();
    if (buff[buff_pos] != '\n' && buff_pos != SERIAL_BUFFER_SIZE - 1)
      buff_pos++;
    else {
      buff[buff_pos] = 0x00;
      buff_pos = 0;

      switch (buff[0])
      {

        case 'x':
          Serial.println("OK");
          break;

        case 'Y':  // Audio volume scaler
          volume = atoi(buff + 1);
          if (volume == 0) {
            Set_Cmd(48, 11, 1, 1);  //mute
          } else {
            Set_Cmd(48, 11, 1, 0);  //unmute
            int Setvolume = map(volume, 0, 100, -599, 50);
            Set_Cmd(48, 10, 1, Setvolume);
          }
          Serial.print("Y");
          Serial.println(volume);
          break;

        case 'S':
          if (buff[1] == 'a')
          {
            scan_start = (atol(buff + 2) + 5) / 10;
            AM_start_scan = atol(buff + 2);
          }
          else if (buff[1] == 'b')
          {
            scan_end = (atol(buff + 2) + 5) / 10;
            AM_scan_end = atol(buff + 2);
          }
          else if (buff[1] == 'c')
          {
            scan_step = (atol(buff + 2) + 5) / 10;
            AM_scan_step = atol(buff + 2);
          }
          else if (buff[1] == 'f')
          {
            scan_filter = atol(buff + 2);
          }
          else if (scan_start > 0 && scan_end > 0 && scan_step > 0 && scan_filter >= 0)
          {
            if (buff[1] == 'm')
              scan(true);   // Multiple (continous) scan
            else
              scan(false);  // Single scan
          }
          break;
          
        case 'B':
          forced_mono = atol(buff + 1);
          if(forced_mono == 1)
          Set_Cmd(32, 66, 1, 2, forced_mono == 1 ? 2 : 0 , 60);
          else 
          Set_Cmd(32, 66, 1, 0, forced_mono == 1 ? 2 : 0 , 200);   
          Serial.print('B');
          Serial.print(forced_mono ? '1' : '0');
          Serial.print('\n');
          break;
        case 'N':
          break;
        
        case 'M':
          mode = atol(buff + 1);
          if (mode == 0){  
            if (MODF_FREQ == 0){MODF_FREQ = 87500;} 
            Set_Cmd(32, 1, 2, 1, MODF_FREQ / 10);
            Serial.println("M0");
            Serial.print('T');
            Serial.println(MODF_FREQ);
            if (Filter_AM != 16) {Filter_AM = current_filter;} 
			      if (Filter_FM == 16) {Filter_FM = -1;}
			      current_filter = Filter_FM;
            Set_Cmd(32, 10, 4, current_filter == -1 ? 1 : 0, pgm_read_word_near(FMFilterMap + current_filter), 1000, 1000);
            radio_mode = 0;
          } else {
            if (MODA_FREQ == 0){MODA_FREQ = 558;} 
            Set_Cmd(33, 1, 2, 1, MODA_FREQ);
            Serial.println("M1");
            Serial.print('T');
            Serial.println(MODA_FREQ);
			      Filter_FM = current_filter;
	          if (Filter_FM != 16) {Filter_FM = current_filter;} 
   	        if (Filter_AM == 16) {Filter_AM = 1;}
            current_filter = Filter_AM;
            Set_Cmd(33, 10, 2, 0, pgm_read_byte_near(AMFilterMap + current_filter));
            radio_mode = 1;
          }
          Serial.print('F');
          Serial.println(current_filter);
          Serial.print('V');
          Serial.println(LevelOffset);
          break;
                 
         case 'T':  // Tune to a frequency (to do keep filter settings)
          freq = atol(buff + 1);
          REG_FREQ = freq;
          if ((REG_FREQ >= 65000) && (REG_FREQ <= 108000)) {
            Set_Cmd(32, 1, 2, 1, REG_FREQ / 10);
            Serial.println("M0");
            Serial.print('T');
            Serial.println(REG_FREQ);
            if (radio_mode == 1) {                         // from AM to FM then switch to adaptive filter AUTO in TEF-GTK
              if (Filter_AM != 16) {Filter_AM = current_filter;} 
             if (Filter_FM == 16) {Filter_FM = -1;}
              current_filter = Filter_FM;
              Set_Cmd(32, 10, 4, current_filter == -1 ? 1 : 0, pgm_read_word_near(FMFilterMap + current_filter), 1000, 1000);
            }
            radio_mode = 0;
            MODF_FREQ = REG_FREQ;
          } else if ((REG_FREQ >= 144) && (REG_FREQ <= 26999)) {
              Set_Cmd(33, 1, 2, 1, REG_FREQ);
              Serial.println("M1");
              Serial.print('T');
              Serial.println(REG_FREQ);
              if (radio_mode == 0) {                       // from FM to AM then use filter 1 -> 4khz   
                if (Filter_FM != 16) {Filter_FM = current_filter;} 
                if (Filter_AM == 16) {Filter_AM = 1;}
                current_filter = Filter_AM;
                Set_Cmd(33, 10, 2, 0, pgm_read_byte_near(AMFilterMap + current_filter));
              }
              radio_mode = 1;
              MODA_FREQ = REG_FREQ;
          } 
          Serial.print('F');
          Serial.println(current_filter);
          Serial.print('V');
          Serial.println(LevelOffset);
          break;

        case 'F':  // Change FIR filters
          current_filter = atoi(buff + 1);
          if (radio_mode == 0) {
            Set_Cmd(32, 10, 4, current_filter == -1 ? 1 : 0, pgm_read_word_near(FMFilterMap + current_filter), 1000, 1000);
          }
          else {
            Set_Cmd(33, 10, 2, 0, pgm_read_byte_near(AMFilterMap + current_filter));
          }
          Serial.print('F');
          Serial.println(buff + 1);
          break;
        
        case 'V':      
          LevelOffset = atoi(buff + 1);
          Level = map(LevelOffset, 0, 127, 0, 360);
          if (radio_mode == 1) {Set_Cmd(33, 12, 1, Level);} // Set AM LNA (in TEF-GTK enable Show antenna input alignment - NO FM)
          else 
          AudioLevel = atoi(buff + 1);
          LevelA = map(AudioLevel, 0, 127, 0, 60);
          if (radio_mode == 0) {Set_Cmd(32, 80, 1, LevelA);}  // Set +6dB analog radio sound gain (in TEF-GTK enable Show antenna input alignment - NO AM)
          Serial.print('V');
          Serial.println(buff + 1);
          break;

        case 'Q':  // Audio volume scaler
          Squelch = atoi(buff + 1);
          if (Squelch != -1 && AM_VOL_SCALE == -1) {
            int Setsquelch = map(Squelch, 0, 100, -120, 60);
            Set_Cmd(33, 80, 1, Setsquelch);
            Serial.print("Q");
            Serial.println(Squelch);
          } 
          break;

        case 'D':  // Change the de-emphasis
          nDeemphasis = atoi(buff + 1);
          Serial.print("D");
          Set_Deempasis(nDeemphasis);
          Serial.println(nDeemphasis);
          break;

        case 'G':
          Serial.print('G');
          RFplus = buff[1] - 48;
          IFplus = buff[2] - 48;
          Set_IF_RF(RFplus,IFplus);
          Serial.print(RFplus);
          Serial.println(IFplus);
          break;

        case 'A':  // AGC  (check what levelstepping does)
          Serial.print('A');
          AGC_tress = atoi(buff + 1);
          Set_AGC_tresshold(AGC_tress);
          Serial.println(AGC_tress);
          break;

       case 'C':
         Serial.print('C');
         if (buff[1] == '0' ) {   
         Set_Cmd(32, 22, 1, 1);  //ChannelEqualizer (EQ 1)
         Set_Cmd(32, 20, 1, 1);  //MphSuppression (iMS 1)
         Serial.print("0");
         } else if (buff[1] == '1' ) {
          Set_Cmd(32, 22, 1, 0); //ChannelEqualizer (EQ 0)
          Serial.print("1");
         }else if (buff[1] == '2' ) {
          Set_Cmd(32, 20, 1, 0);  //MphSuppression (iMS 0)
         Serial.print("2");
         }
         Serial.print('\n');
         break;
      
        case 'Z':
          Serial.print('Z');
          if (buff[1] == '0') {
              dsp_write_data(INIT_SET1);
            Serial.print("0");
          } else if (buff[1] == '1') {
              dsp_write_data(INIT_SET2);
            Serial.print("1");
          } else if (buff[1] == '2') {
              dsp_write_data(INIT_SET3);
            Serial.print("2");
          } else if (buff[1] == '3') {
              dsp_write_data(INIT_SET4);
            Serial.print("3");
          } else {
            Serial.print("4");
          }
          Serial.print('\n');
          Set_AGC_tresshold(AGC_tress);
          Set_IF_RF(RFplus,IFplus);
          Set_Deempasis(nDeemphasis);
          break;
       
        case 'X':  // shutdown
          Set_Cmd(64, 1, 1, 1);
          TWCR = 0;  // Release SDA and SCL lines used by hardware I2C
          Serial.println("X");
          delay(10);
          asm("jmp 0");
          break;
      }
    }
  }
}

使用TEF-GTK进行用户界面控制

image

posted @ 2024-10-11 16:50  Dazz_24  阅读(403)  评论(0)    收藏  举报