1141cc406Sopenharmony_cistatic void 2141cc406Sopenharmony_ciputnbyte (unsigned char *pnt, unsigned int value, unsigned int nbytes) 3141cc406Sopenharmony_ci{ 4141cc406Sopenharmony_ci int i; 5141cc406Sopenharmony_ci 6141cc406Sopenharmony_ci for (i = nbytes - 1; i >= 0; i--) { 7141cc406Sopenharmony_ci pnt[i] = value & 0xff; 8141cc406Sopenharmony_ci value = value >> 8; 9141cc406Sopenharmony_ci } 10141cc406Sopenharmony_ci} 11141cc406Sopenharmony_ci 12141cc406Sopenharmony_ci#define SET_WINDOW_LEN 72 13141cc406Sopenharmony_ci#define set_SW_byte7(out, val) out[7] = val 14141cc406Sopenharmony_ci#define set_SW_xres(out, val) putnbyte(out + 0x0a, val, 2) 15141cc406Sopenharmony_ci#define set_SW_yres(out, val) putnbyte(out + 0x0c, val, 2) 16141cc406Sopenharmony_ci#define set_SW_xpix(out, val) putnbyte(out + 0x16, val, 4) 17141cc406Sopenharmony_ci#define set_SW_ypix(out, val) putnbyte(out + 0x1a, val, 4) 18141cc406Sopenharmony_ci#define set_SW_compo(out, val) out[0x21] = val /*color=5,gray=2*/ 19141cc406Sopenharmony_ci#define set_SW_bpp(out, val) out[0x22] = val 20141cc406Sopenharmony_ci#define set_SW_byte31(out, val) out[0x31] = val 21141cc406Sopenharmony_ci#define set_SW_byte32(out, val) out[0x32] = val 22141cc406Sopenharmony_ci#define set_SW_byte33(out, val) out[0x33] = val 23141cc406Sopenharmony_ci#define set_SW_lpb(out, val) out[0x34] = val 24141cc406Sopenharmony_ci#define set_SW_byte35(out, val) out[0x35] = val 25141cc406Sopenharmony_ci#define set_SW_byte36(out, val) out[0x36] = val 26141cc406Sopenharmony_ci#define set_SW_byte38(out, val) out[0x38] = val /*move motor?*/ 27141cc406Sopenharmony_ci#define set_SW_fres(out, val) putnbyte(out + 0x39, val, 2) 28141cc406Sopenharmony_ci 29141cc406Sopenharmony_ci/*************** COARSE CALIBRATION DEFAULT PAYLOAD *************/ 30141cc406Sopenharmony_ci/* 1b c6 (send coarse cal) command payload - not resolution specific? */ 31141cc406Sopenharmony_ci/* first group of 3 is offset?, larger # == brighter */ 32141cc406Sopenharmony_ci/* second group of 3 is gain?, larger # == brighter */ 33141cc406Sopenharmony_cistatic unsigned char coarseCalData_FI60F[] = { 34141cc406Sopenharmony_ci0x01, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x26, 0x00, 0x26, 0x00, 0x26, 35141cc406Sopenharmony_ci0x00, 0x00, 0x0b, 0x22, 0x00, 0x00, 0x0b, 0x22, 0x00, 0x00, 0x0b, 0x22 36141cc406Sopenharmony_ci}; 37141cc406Sopenharmony_cistatic unsigned char coarseCalData_S300[] = { 38141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x24, 0x00, 0x28, 0x00, 0x00, 39141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 40141cc406Sopenharmony_ci}; 41141cc406Sopenharmony_cistatic unsigned char coarseCalData_S1300i[] = { 42141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x24, 0x00, 0x28, 0x00, 0x00, 43141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 44141cc406Sopenharmony_ci}; 45141cc406Sopenharmony_cistatic unsigned char coarseCalData_S1100[] = { 46141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x25, 0x00, 0x00, 0x00, 0x26, 0x00, 0x26, 0x00, 0x00, 47141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 48141cc406Sopenharmony_ci}; 49141cc406Sopenharmony_ci 50141cc406Sopenharmony_ci/*************** fi-60F 300dpi gray *************/ 51141cc406Sopenharmony_ci#if 0 52141cc406Sopenharmony_cistatic unsigned char setWindowScan_FI60F_300_g[] = { 53141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00, 54141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x06, 0xd5, 0x00, 0x00, 55141cc406Sopenharmony_ci0x00, 0x02, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 56141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x6c, 0x01, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 57141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 58141cc406Sopenharmony_ci}; 59141cc406Sopenharmony_ci 60141cc406Sopenharmony_ci/*************** fi-60F 400dpi gray *************/ 61141cc406Sopenharmony_cistatic unsigned char setWindowScan_FI60F_400_g[] = { 62141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x58, 0x01, 0x90, 0x00, 0x00, 63141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x60, 0x00, 0x00, 0x09, 0x1c, 0x00, 0x00, 64141cc406Sopenharmony_ci0x00, 0x02, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 65141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0xca, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 66141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 67141cc406Sopenharmony_ci}; 68141cc406Sopenharmony_ci 69141cc406Sopenharmony_ci/*************** fi-60F 600dpi gray *************/ 70141cc406Sopenharmony_cistatic unsigned char setWindowScan_FI60F_600_g[] = { 71141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x58, 0x02, 0x58, 0x00, 0x00, 72141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x60, 0x00, 0x00, 0x0d, 0xaa, 0x00, 0x00, 73141cc406Sopenharmony_ci0x00, 0x02, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 74141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0xca, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 75141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 76141cc406Sopenharmony_ci}; 77141cc406Sopenharmony_ci#endif 78141cc406Sopenharmony_ci 79141cc406Sopenharmony_ci/*************** fi-60F 150dpi *************/ 80141cc406Sopenharmony_cistatic unsigned char setWindowScan_FI60F_150[] = { 81141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x2c, 0x00, 0x96, 0x00, 0x00, 82141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x60, 0x00, 0x00, 0x03, 0x6b, 0x00, 0x00, 83141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 84141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x48, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 85141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 86141cc406Sopenharmony_ci}; 87141cc406Sopenharmony_ci 88141cc406Sopenharmony_ci/*************** fi-60F 200dpi *************/ 89141cc406Sopenharmony_cistatic unsigned char setWindowScan_FI60F_200[] = { 90141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x2c, 0x00, 0xc8, 0x00, 0x00, 91141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x60, 0x00, 0x00, 0x04, 0x8e, 0x00, 0x00, 92141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 93141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x48, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 94141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 95141cc406Sopenharmony_ci}; 96141cc406Sopenharmony_ci 97141cc406Sopenharmony_ci/*************** fi-60F 300dpi *************/ 98141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x1c20 bytes) */ 99141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_FI60F_300[] = { 100141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00, 101141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x60, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 102141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 103141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 104141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 105141cc406Sopenharmony_ci}; 106141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x1c20 bytes) */ 107141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_FI60F_300[] = { 108141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00, 109141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x60, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 110141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 111141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 112141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 113141cc406Sopenharmony_ci}; 114141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0x3840 bytes) */ 115141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_FI60F_300[] = { 116141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00, 117141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x60, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 118141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 119141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 120141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 121141cc406Sopenharmony_ci}; 122141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */ 123141cc406Sopenharmony_cistatic unsigned char sendCal1Header_FI60F_300[] = { /* plus 0x3840 data bytes */ 124141cc406Sopenharmony_ci0x8c, 0x0f, 0x8c, 0x0f, 0x8c, 0x0f, 0x8c, 0x0f, 0x8c, 0x0f, 0x8c, 0x0f, 0x00, 0x04 125141cc406Sopenharmony_ci}; 126141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */ 127141cc406Sopenharmony_cistatic unsigned char sendCal2Header_FI60F_300[] = { 128141cc406Sopenharmony_ci0x39, 0x3f, 0x39, 0x3f, 0x39, 0x3f, 0x07 129141cc406Sopenharmony_ci}; 130141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */ 131141cc406Sopenharmony_cistatic unsigned char setWindowScan_FI60F_300[] = { 132141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00, 133141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x60, 0x00, 0x00, 0x06, 0xd5, 0x00, 0x00, 134141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 135141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x48, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 136141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 137141cc406Sopenharmony_ci}; 138141cc406Sopenharmony_ci 139141cc406Sopenharmony_ci/*************** fi-60F 400dpi *************/ 140141cc406Sopenharmony_cistatic unsigned char setWindowScan_FI60F_400[] = { 141141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x58, 0x01, 0x90, 0x00, 0x00, 142141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x20, 0x00, 0x00, 0x09, 0x1c, 0x00, 0x00, 143141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 144141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 145141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 146141cc406Sopenharmony_ci}; 147141cc406Sopenharmony_ci 148141cc406Sopenharmony_ci/*************** fi-60F 600dpi *************/ 149141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x2160 bytes) */ 150141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_FI60F_600[] = { 151141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x02, 0x58, 0x02, 0x58, 0x00, 0x00, 152141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 153141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 154141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 155141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 156141cc406Sopenharmony_ci}; 157141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x2160 bytes) */ 158141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_FI60F_600[] = { 159141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x58, 0x03, 0x20, 0x00, 0x00, 160141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 161141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 162141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 163141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 164141cc406Sopenharmony_ci}; 165141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0x42c0 bytes) */ 166141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_FI60F_600[] = { 167141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x58, 0x02, 0x58, 0x00, 0x00, 168141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x20, 0x00, 0x00, 0x0d, 0xaa, 0x00, 0x00, 169141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 170141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 171141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 172141cc406Sopenharmony_ci}; 173141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */ 174141cc406Sopenharmony_cistatic unsigned char sendCal1Header_FI60F_600[] = { 175141cc406Sopenharmony_ci0x4f, 0x10, 0x4f, 0x10, 0x4f, 0x10, 0x4f, 0x10, 0x4f, 0x10, 0x4f, 0x10, 0x00, 0x04 176141cc406Sopenharmony_ci}; 177141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */ 178141cc406Sopenharmony_cistatic unsigned char sendCal2Header_FI60F_600[] = { 179141cc406Sopenharmony_ci0x2b, 0x40, 0x2b, 0x40, 0x2b, 0x40, 0x07 180141cc406Sopenharmony_ci}; 181141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */ 182141cc406Sopenharmony_cistatic unsigned char setWindowScan_FI60F_600[] = { 183141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x58, 0x02, 0x58, 0x00, 0x00, 184141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x20, 0x00, 0x00, 0x0d, 0xaa, 0x00, 0x00, 185141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 186141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 187141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 188141cc406Sopenharmony_ci}; 189141cc406Sopenharmony_ci 190141cc406Sopenharmony_ci/*************** S300 150dpi *************/ 191141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x63c0 bytes) */ 192141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_S300_150[] = { 193141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00, 194141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x90, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 195141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 196141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 197141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 198141cc406Sopenharmony_ci}; 199141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x63c0 bytes) */ 200141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_S300_150[] = { 201141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00, 202141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x90, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 203141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 204141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 205141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 206141cc406Sopenharmony_ci}; 207141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0xc780 bytes) */ 208141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_S300_150[] = { 209141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00, 210141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x40, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 211141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 212141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 213141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 214141cc406Sopenharmony_ci}; 215141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */ 216141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S300_150[] = { /* plus 0xc780 data bytes */ 217141cc406Sopenharmony_ci0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0x00, 0x04 218141cc406Sopenharmony_ci/*0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0x00, 0x05*/ 219141cc406Sopenharmony_ci}; 220141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */ 221141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S300_150[] = { /* plus 0xc780 data bytes */ 222141cc406Sopenharmony_ci0x77, 0x26, 0x77, 0x26, 0x77, 0x26, 0x07 223141cc406Sopenharmony_ci/*0xd0, 0x34, 0xd0, 0x34, 0xd0, 0x34, 0x08*/ 224141cc406Sopenharmony_ci}; 225141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */ 226141cc406Sopenharmony_cistatic unsigned char setWindowScan_S300_150[] = { 227141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x96, 0x00, 0x96, 0x00, 0x00, 228141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xc8, 0x00, 0x00, 0x06, 0xe2, 0x00, 0x00, 229141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 230141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 231141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 232141cc406Sopenharmony_ci}; 233141cc406Sopenharmony_ci 234141cc406Sopenharmony_ci/*************** S300 225dpi *************/ 235141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x63c0 bytes) */ 236141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_S300_225[] = { 237141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00, 238141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xf0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 239141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 240141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 241141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 242141cc406Sopenharmony_ci}; 243141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x63c0 bytes) */ 244141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_S300_225[] = { 245141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00, 246141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xf0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 247141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 248141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 249141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 250141cc406Sopenharmony_ci}; 251141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0xc780 bytes) */ 252141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_S300_225[] = { 253141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00, 254141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 255141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 256141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 257141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 258141cc406Sopenharmony_ci}; 259141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */ 260141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S300_225[] = { /* plus 0xc780 data bytes */ 261141cc406Sopenharmony_ci0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0x00, 0x04 262141cc406Sopenharmony_ci/*0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0x00, 0x05*/ 263141cc406Sopenharmony_ci}; 264141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */ 265141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S300_225[] = { /* plus 0xc780 data bytes */ 266141cc406Sopenharmony_ci0x77, 0x26, 0x77, 0x26, 0x77, 0x26, 0x07 267141cc406Sopenharmony_ci/*0xd0, 0x34, 0xd0, 0x34, 0xd0, 0x34, 0x08*/ 268141cc406Sopenharmony_ci}; 269141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */ 270141cc406Sopenharmony_cistatic unsigned char setWindowScan_S300_225[] = { 271141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0xe1, 0x00, 0xc8, 0x00, 0x00, 272141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x34, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00, 273141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 274141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 275141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 276141cc406Sopenharmony_ci}; 277141cc406Sopenharmony_ci 278141cc406Sopenharmony_ci/*************** S300 300dpi *************/ 279141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x6000 bytes) */ 280141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_S300_300[] = { 281141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00, 282141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xf0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 283141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 284141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x00, 0x00, 285141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 286141cc406Sopenharmony_ci}; 287141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x6000 bytes) */ 288141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_S300_300[] = { 289141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00, 290141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xf0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 291141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 292141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x00, 0x00, 293141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 294141cc406Sopenharmony_ci}; 295141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0xc000 bytes) */ 296141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_S300_300[] = { 297141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00, 298141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 299141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 300141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x00, 0x00, 301141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 302141cc406Sopenharmony_ci}; 303141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */ 304141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S300_300[] = { /* plus 0xc000 data bytes */ 305141cc406Sopenharmony_ci0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0x00, 0x04 306141cc406Sopenharmony_ci/*0x30, 0x0c, 0x30, 0x0c, 0x30, 0x0c, 0x30, 0x0c, 0x30, 0x0c, 0x30, 0x0c, 0x00, 0x05*/ 307141cc406Sopenharmony_ci}; 308141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */ 309141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S300_300[] = { /* plus 0xc000 data bytes */ 310141cc406Sopenharmony_ci0x77, 0x26, 0x77, 0x26, 0x77, 0x26, 0x07 311141cc406Sopenharmony_ci/*0xb8, 0x34, 0xb8, 0x34, 0xb8, 0x34, 0x08*/ 312141cc406Sopenharmony_ci}; 313141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */ 314141cc406Sopenharmony_cistatic unsigned char setWindowScan_S300_300[] = { 315141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00, 316141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xf0, 0x00, 0x00, 0x0d, 0xc4, 0x00, 0x00, 317141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 318141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 319141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 320141cc406Sopenharmony_ci}; 321141cc406Sopenharmony_ci 322141cc406Sopenharmony_ci/*************** S300 600dpi USB and AC power *************/ 323141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0xbc40 bytes) */ 324141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_S300_600[] = { 325141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x02, 0x58, 0x02, 0x58, 0x00, 0x00, 326141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 327141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 328141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x00, 0x00, 329141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 330141cc406Sopenharmony_ci}; 331141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0xbc40 bytes) */ 332141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_S300_600[] = { 333141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x02, 0x58, 0x03, 0x20, 0x00, 0x00, 334141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x40, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 335141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 336141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x00, 0x00, 337141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 338141cc406Sopenharmony_ci}; 339141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0x17880 bytes) */ 340141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_S300_600[] = { 341141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x02, 0x58, 0x03, 0x20, 0x00, 0x00, 342141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 343141cc406Sopenharmony_ci0x00, 0x05, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 344141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x00, 0x00, 345141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 346141cc406Sopenharmony_ci}; 347141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */ 348141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S300_600[] = { 349141cc406Sopenharmony_ci0x7f, 0x0b, 0x7f, 0x0b, 0x7f, 0x0b, 0x7f, 0x0b, 0x7f, 0x0b, 0x7f, 0x0b, 0x00, 0x04 350141cc406Sopenharmony_ci}; 351141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */ 352141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S300_600[] = { 353141cc406Sopenharmony_ci0xc7, 0x23, 0xc7, 0x23, 0xc7, 0x23, 0x07 354141cc406Sopenharmony_ci}; 355141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */ 356141cc406Sopenharmony_cistatic unsigned char setWindowScan_S300_600[] = { 357141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x02, 0x58, 0x02, 0x58, 0x00, 0x00, 358141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x40, 0x00, 0x00, 0x24, 0x21, 0x00, 0x00, 359141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 360141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 361141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 362141cc406Sopenharmony_ci}; 363141cc406Sopenharmony_ci 364141cc406Sopenharmony_ci/*S300/S1300/S1300i can also use a USB power cable, but it requires a different set of params?*/ 365141cc406Sopenharmony_ci/*************** S300/S1300/S1300i 150dpi USB *************/ 366141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x63c0 bytes) */ 367141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_S300_150_U[] = { 368141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00, 369141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 370141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 371141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 372141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 373141cc406Sopenharmony_ci}; 374141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x63c0 bytes) */ 375141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_S300_150_U[] = { 376141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00, 377141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 378141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 379141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 380141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 381141cc406Sopenharmony_ci}; 382141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0xc780 bytes) */ 383141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_S300_150_U[] = { 384141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00, 385141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x60, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 386141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 387141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 388141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 389141cc406Sopenharmony_ci}; 390141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */ 391141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S300_150_U[] = { /* plus 0xc780 data bytes */ 392141cc406Sopenharmony_ci0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0x00, 0x04 393141cc406Sopenharmony_ci/*0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0x00, 0x05*/ 394141cc406Sopenharmony_ci}; 395141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */ 396141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S300_150_U[] = { /* plus 0xc780 data bytes */ 397141cc406Sopenharmony_ci0x77, 0x26, 0x77, 0x26, 0x77, 0x26, 0x07 398141cc406Sopenharmony_ci/*0xd0, 0x34, 0xd0, 0x34, 0xd0, 0x34, 0x08*/ 399141cc406Sopenharmony_ci}; 400141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */ 401141cc406Sopenharmony_cistatic unsigned char setWindowScan_S300_150_U[] = { 402141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x96, 0x00, 0x96, 0x00, 0x00, 403141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x90, 0x00, 0x00, 0x09, 0x0d, 0x00, 0x00, 404141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 405141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 406141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 407141cc406Sopenharmony_ci}; 408141cc406Sopenharmony_ci 409141cc406Sopenharmony_ci/*************** S300/S1300/S1300i 225dpi USB *************/ 410141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x63c0 bytes) */ 411141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_S300_225_U[] = { 412141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00, 413141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 414141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 415141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 416141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 417141cc406Sopenharmony_ci}; 418141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x63c0 bytes) */ 419141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_S300_225_U[] = { 420141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00, 421141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x80, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 422141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 423141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 424141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 425141cc406Sopenharmony_ci}; 426141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0xc780 bytes) */ 427141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_S300_225_U[] = { 428141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00, 429141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 430141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 431141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 432141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 433141cc406Sopenharmony_ci}; 434141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */ 435141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S300_225_U[] = { /* plus 0xc780 data bytes */ 436141cc406Sopenharmony_ci0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0x00, 0x04 437141cc406Sopenharmony_ci/*0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0x00, 0x05*/ 438141cc406Sopenharmony_ci}; 439141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */ 440141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S300_225_U[] = { /* plus 0xc780 data bytes */ 441141cc406Sopenharmony_ci0x77, 0x26, 0x77, 0x26, 0x77, 0x26, 0x07 442141cc406Sopenharmony_ci/*0xd0, 0x34, 0xd0, 0x34, 0xd0, 0x34, 0x08*/ 443141cc406Sopenharmony_ci}; 444141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */ 445141cc406Sopenharmony_cistatic unsigned char setWindowScan_S300_225_U[] = { 446141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0xe1, 0x00, 0xc8, 0x00, 0x00, 447141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xe0, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00, 448141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 449141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 450141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 451141cc406Sopenharmony_ci}; 452141cc406Sopenharmony_ci 453141cc406Sopenharmony_ci/*************** S300/S1300/S1300i 300dpi USB *************/ 454141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x63c0 bytes) */ 455141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x63c0 bytes) */ 456141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_S300_300_U[] = { 457141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00, 458141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0xf0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 459141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 460141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x00, 0x00, 461141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 462141cc406Sopenharmony_ci}; 463141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x63c0 bytes) */ 464141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_S300_300_U[] = { 465141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00, 466141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0xf0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 467141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 468141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x00, 0x00, 469141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 470141cc406Sopenharmony_ci}; 471141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0xc780 bytes) */ 472141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_S300_300_U[] = { 473141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00, 474141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 475141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 476141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x00, 0x00, 477141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 478141cc406Sopenharmony_ci}; 479141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */ 480141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S300_300_U[] = { /* plus 0xc780 data bytes */ 481141cc406Sopenharmony_ci0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0x00, 0x04 482141cc406Sopenharmony_ci/*0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0x00, 0x05*/ 483141cc406Sopenharmony_ci}; 484141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */ 485141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S300_300_U[] = { /* plus 0xc780 data bytes */ 486141cc406Sopenharmony_ci0x77, 0x26, 0x77, 0x26, 0x77, 0x26, 0x07 487141cc406Sopenharmony_ci/*0xd0, 0x34, 0xd0, 0x34, 0xd0, 0x34, 0x08*/ 488141cc406Sopenharmony_ci}; 489141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */ 490141cc406Sopenharmony_cistatic unsigned char setWindowScan_S300_300_U[] = { 491141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00, 492141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0xf0, 0x00, 0x00, 0x12, 0x11, 0x00, 0x00, 493141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 494141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 495141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 496141cc406Sopenharmony_ci}; 497141cc406Sopenharmony_ci 498141cc406Sopenharmony_ci/*************** S300/S1300/S1300i USB is same as AC power *************/ 499141cc406Sopenharmony_ci 500141cc406Sopenharmony_ci/*************** S1300i 150dpi *************/ 501141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x5e24 bytes) */ 502141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_S1300i_150[] = { 503141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00, 504141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xa0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 505141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 506141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 507141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 508141cc406Sopenharmony_ci}; 509141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x5e24 bytes) */ 510141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_S1300i_150[] = { 511141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00, 512141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xa0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 513141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 514141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 515141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 516141cc406Sopenharmony_ci}; 517141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0xbc40 bytes) */ 518141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_S1300i_150[] = { 519141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00, 520141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x60, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 521141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 522141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 523141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 524141cc406Sopenharmony_ci}; 525141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */ 526141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S1300i_150[] = { /* plus 0xc780 data bytes */ 527141cc406Sopenharmony_ci0xc4, 0x06, 0xc4, 0x06, 0xc4, 0x06, 0xc4, 0x06, 0xc4, 0x06, 0xc4, 0x06, 0x00, 0x04 528141cc406Sopenharmony_ci}; 529141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */ 530141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S1300i_150[] = { /* plus 0xc780 data bytes */ 531141cc406Sopenharmony_ci0xd7, 0x3b, 0xd7, 0x3b, 0xd7, 0x3b, 0x07 532141cc406Sopenharmony_ci}; 533141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */ 534141cc406Sopenharmony_cistatic unsigned char setWindowScan_S1300i_150[] = { 535141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x96, 0x00, 0x96, 0x00, 0x00, 536141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x50, 0x00, 0x00, 0x06, 0xe2, 0x00, 0x00, 537141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 538141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 539141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 540141cc406Sopenharmony_ci}; 541141cc406Sopenharmony_ci 542141cc406Sopenharmony_ci/*************** S1300i 225dpi *************/ 543141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x63c0 bytes) */ 544141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_S1300i_225[] = { 545141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00, 546141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xc0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 547141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 548141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 549141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 550141cc406Sopenharmony_ci}; 551141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x63c0 bytes) */ 552141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_S1300i_225[] = { 553141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00, 554141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xc0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 555141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 556141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 557141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 558141cc406Sopenharmony_ci}; 559141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0xc780 bytes) */ 560141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_S1300i_225[] = { 561141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00, 562141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xa0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 563141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 564141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 565141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 566141cc406Sopenharmony_ci}; 567141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */ 568141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S1300i_225[] = { /* plus 0xc780 data bytes */ 569141cc406Sopenharmony_ci0x2f, 0x07, 0x2f, 0x07, 0x2f, 0x07, 0x2f, 0x07, 0x2f, 0x07, 0x2f, 0x07, 0x00, 0x04 570141cc406Sopenharmony_ci}; 571141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */ 572141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S1300i_225[] = { /* plus 0xc780 data bytes */ 573141cc406Sopenharmony_ci0xa5, 0x3b, 0xa5, 0x3b, 0xa5, 0x3b, 0x07 574141cc406Sopenharmony_ci}; 575141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */ 576141cc406Sopenharmony_cistatic unsigned char setWindowScan_S1300i_225[] = { 577141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0xe1, 0x00, 0xc8, 0x00, 0x00, 578141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00, 579141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 580141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 581141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 582141cc406Sopenharmony_ci}; 583141cc406Sopenharmony_ci 584141cc406Sopenharmony_ci/*************** S1300i 300dpi *************/ 585141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x5ee0 bytes) */ 586141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_S1300i_300[] = { 587141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00, 588141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xc0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 589141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 590141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x00, 0x00, 591141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 592141cc406Sopenharmony_ci}; 593141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x5ee0 bytes) */ 594141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_S1300i_300[] = { 595141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00, 596141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xc0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 597141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 598141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x00, 0x00, 599141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 600141cc406Sopenharmony_ci}; 601141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0xbdc0 bytes) */ 602141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_S1300i_300[] = { 603141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00, 604141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xa0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 605141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 606141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x00, 0x00, 607141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 608141cc406Sopenharmony_ci}; 609141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */ 610141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S1300i_300[] = { /* plus 0xc000 data bytes */ 611141cc406Sopenharmony_ci0xdd, 0x06, 0xdd, 0x06, 0xdd, 0x06, 0xdd, 0x06, 0xdd, 0x06, 0xdd, 0x06, 0x00, 0x04 612141cc406Sopenharmony_ci}; 613141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */ 614141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S1300i_300[] = { /* plus 0xc000 data bytes */ 615141cc406Sopenharmony_ci0x75, 0x3c, 0x75, 0x3c, 0x75, 0x3c, 0x07 616141cc406Sopenharmony_ci}; 617141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */ 618141cc406Sopenharmony_cistatic unsigned char setWindowScan_S1300i_300[] = { 619141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00, 620141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xc0, 0x00, 0x00, 0x0d, 0xc4, 0x00, 0x00, 621141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 622141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 623141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 624141cc406Sopenharmony_ci}; 625141cc406Sopenharmony_ci 626141cc406Sopenharmony_ci/*************** S1300i 600dpi AC power is same as S300 *************/ 627141cc406Sopenharmony_ci/*************** except the calibration headers *************/ 628141cc406Sopenharmony_ci 629141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */ 630141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S1300i_USB[] = { 631141cc406Sopenharmony_ci0x4d, 0x06, 0x4d, 0x06, 0x4d, 0x06, 0x4d, 0x06, 0x4d, 0x06, 0x4d, 0x06, 0x00, 0x04 632141cc406Sopenharmony_ci}; 633141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */ 634141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S1300i_USB[] = { 635141cc406Sopenharmony_ci0x8f, 0x40, 0x8f, 0x40, 0x8f, 0x40, 0x07 636141cc406Sopenharmony_ci}; 637141cc406Sopenharmony_ci 638141cc406Sopenharmony_ci/*************** S1300i all resolutions USB power is same as S300 *************/ 639141cc406Sopenharmony_ci 640141cc406Sopenharmony_ci/*************** S1100 300dpi USB *************/ 641141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x45a0 bytes) */ 642141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_S1100_300_U[] = { 643141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00, 644141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x58, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 645141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 646141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x00, 0x00, 647141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 648141cc406Sopenharmony_ci}; 649141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x45a0 bytes) */ 650141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_S1100_300_U[] = { 651141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00, 652141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x58, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 653141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 654141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x00, 0x00, 655141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 656141cc406Sopenharmony_ci}; 657141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0x45a0 bytes) */ 658141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_S1100_300_U[] = { 659141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00, 660141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0xd0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 661141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 662141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x00, 0x00, 663141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 664141cc406Sopenharmony_ci}; 665141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */ 666141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S1100_300_U[] = { /* plus 0x45a0 data bytes */ 667141cc406Sopenharmony_ci0x1e, 0x10, 0x1e, 0x10, 0x1e, 0x10, 0x1e, 0x10, 0x1e, 0x10, 0x1e, 0x10, 0x00, 0x03 668141cc406Sopenharmony_ci}; 669141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */ 670141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S1100_300_U[] = { /* plus 0x45a0 data bytes */ 671141cc406Sopenharmony_ci0x63, 0x86, 0x63, 0x86, 0x63, 0x86, 0x07 672141cc406Sopenharmony_ci}; 673141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */ 674141cc406Sopenharmony_cistatic unsigned char setWindowScan_S1100_300_U[] = { 675141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00, 676141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x58, 0x00, 0x00, 0x1b, 0xe1, 0x00, 0x00, 677141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 678141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 679141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 680141cc406Sopenharmony_ci}; 681141cc406Sopenharmony_ci 682141cc406Sopenharmony_ci/*************** S1100 600dpi USB *************/ 683141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x3e20 bytes) */ 684141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_S1100_600_U[] = { 685141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x02, 0x58, 0x02, 0x58, 0x00, 0x00, 686141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0xf0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 687141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 688141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x00, 0x00, 689141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 690141cc406Sopenharmony_ci}; 691141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x3e20 bytes) */ 692141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_S1100_600_U[] = { 693141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x02, 0x58, 0x03, 0x20, 0x00, 0x00, 694141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0xf0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 695141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 696141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x00, 0x00, 697141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 698141cc406Sopenharmony_ci}; 699141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0x7c40 bytes) */ 700141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_S1100_600_U[] = { 701141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x02, 0x58, 0x02, 0x58, 0x00, 0x00, 702141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 703141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 704141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x00, 0x00, 705141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 706141cc406Sopenharmony_ci}; 707141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */ 708141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S1100_600_U[] = { /* plus 0x7c40 data bytes */ 709141cc406Sopenharmony_ci0xff, 0x11, 0xff, 0x11, 0xff, 0x11, 0xff, 0x11, 0xff, 0x11, 0xff, 0x11, 0x00, 0x03 710141cc406Sopenharmony_ci}; 711141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */ 712141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S1100_600_U[] = { /* plus 0x7c40 data bytes */ 713141cc406Sopenharmony_ci0x4b, 0x81, 0x4b, 0x81, 0x4b, 0x81, 0x07 714141cc406Sopenharmony_ci}; 715141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */ 716141cc406Sopenharmony_cistatic unsigned char setWindowScan_S1100_600_U[] = { 717141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x02, 0x58, 0x02, 0x58, 0x00, 0x00, 718141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0xf0, 0x00, 0x00, 0x37, 0xbf, 0x00, 0x00, 719141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 720141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 721141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 722141cc406Sopenharmony_ci}; 723