Skip to content

Commit 3124c4f

Browse files
authored
Merge pull request adafruit#1244 from gmeader/master
ArduinoSelfTest for PyPortal Titano
2 parents 412ad73 + cd0f37f commit 3124c4f

File tree

3 files changed

+308
-0
lines changed

3 files changed

+308
-0
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Lines changed: 201 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,201 @@
1+
// This program does a test of all the PyPortal Titano hardware
2+
// so you can get an example of how to read
3+
// sensors, touchscreen, and display stuff!
4+
5+
#include "SPI.h"
6+
#include "Adafruit_GFX.h"
7+
#include "Adafruit_HX8357.h"
8+
#include <Adafruit_SPIFlash.h>
9+
#include "TouchScreen.h"
10+
#include <SdFat.h>
11+
#include <WiFiNINA.h>
12+
#include "click.h"
13+
14+
#define RED_LED 13
15+
#define TFT_RESET 24
16+
#define TFT_BACKLIGHT 25
17+
#define LIGHT_SENSOR A2
18+
#define SD_CS 32
19+
#define SPKR_SHUTDOWN 50
20+
21+
#define TFT_D0 34 // Data bit 0 pin (MUST be on PORT byte boundary)
22+
#define TFT_WR 26 // Write-strobe pin (CCL-inverted timer output)
23+
#define TFT_DC 10 // Data/command pin
24+
#define TFT_CS 11 // Chip-select pin
25+
#define TFT_RST 24 // Reset pin
26+
#define TFT_RD 9 // Read-strobe pin
27+
#define TFT_BACKLIGHT 25
28+
29+
// PyPortal Titano
30+
Adafruit_HX8357 tft = Adafruit_HX8357(tft8bitbus, TFT_D0, TFT_WR, TFT_DC, TFT_CS, TFT_RST, TFT_RD);
31+
32+
Adafruit_FlashTransport_QSPI flashTransport(PIN_QSPI_SCK, PIN_QSPI_CS, PIN_QSPI_IO0, PIN_QSPI_IO1, PIN_QSPI_IO2, PIN_QSPI_IO3);
33+
Adafruit_SPIFlash flash(&flashTransport);
34+
35+
#define YP A4 // must be an analog pin, use "An" notation!
36+
#define XM A7 // must be an analog pin, use "An" notation!
37+
#define YM A6 // can be a digital pin
38+
#define XP A5 // can be a digital pin
39+
TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);
40+
#define X_MIN 760
41+
#define X_MAX 320
42+
#define Y_MIN 875
43+
#define Y_MAX 193
44+
45+
Adafruit_GFX_Button soundBtn = Adafruit_GFX_Button();
46+
SdFat SD;
47+
48+
char text[25]=" ";
49+
50+
void setup() {
51+
Serial.begin(115200);
52+
//while (!Serial);
53+
54+
Serial.println("All Test!");
55+
56+
pinMode(RED_LED, OUTPUT);
57+
pinMode(TFT_BACKLIGHT, OUTPUT);
58+
digitalWrite(TFT_BACKLIGHT, HIGH);
59+
60+
pinMode(TFT_RESET, OUTPUT);
61+
digitalWrite(TFT_RESET, HIGH);
62+
delay(10);
63+
digitalWrite(TFT_RESET, LOW);
64+
delay(10);
65+
digitalWrite(TFT_RESET, HIGH);
66+
delay(10);
67+
68+
tft.begin();
69+
70+
tft.fillScreen(HX8357_BLACK);
71+
tft.setTextSize(2);
72+
tft.setTextColor(HX8357_GREEN);
73+
tft.setTextWrap(true);
74+
tft.setCursor(0, 0);
75+
76+
tft.print("QSPI Flash...");
77+
if (!flash.begin()){
78+
Serial.println("Could not find flash on QSPI bus!");
79+
tft.setTextColor(HX8357_RED);
80+
tft.println("FAILED");
81+
while (1);
82+
}
83+
Serial.println("Reading QSPI ID");
84+
Serial.print("JEDEC ID: 0x"); Serial.println(flash.getJEDECID(), HEX);
85+
tft.setTextColor(HX8357_GREEN);
86+
tft.print("QSPI Flash JEDEC 0x"); tft.println(flash.getJEDECID(), HEX);
87+
88+
/*************** SD CARD */
89+
tft.setCursor(0, 48);
90+
tft.print("SD Card...");
91+
if (!SD.begin(SD_CS)) {
92+
Serial.println("Card init. failed!");
93+
tft.setTextColor(HX8357_RED);
94+
tft.println("FAILED");
95+
tft.setTextColor(HX8357_GREEN);
96+
} else {
97+
tft.println("OK!");
98+
}
99+
100+
/*************** WiFi Module */
101+
102+
tft.setCursor(0, 64);
103+
tft.print("WiFi Module...");
104+
WiFi.status();
105+
delay(100);
106+
if (WiFi.status() == WL_NO_MODULE) {
107+
Serial.println("ESP32 SPI not found");
108+
tft.setTextColor(HX8357_RED);
109+
tft.println("FAILED");
110+
tft.setTextColor(HX8357_GREEN);
111+
} else {
112+
Serial.println("ESP32 SPI mode found");
113+
tft.println("OK!");
114+
}
115+
116+
117+
soundBtn.initButton(&tft, 150, 280, 150, 50, HX8357_WHITE, HX8357_YELLOW, HX8357_BLACK, "Sound", 2);
118+
soundBtn.drawButton();
119+
120+
analogWriteResolution(12);
121+
analogWrite(A0, 128);
122+
pinMode(SPKR_SHUTDOWN, OUTPUT);
123+
digitalWrite(SPKR_SHUTDOWN, LOW);
124+
}
125+
126+
void loop() {
127+
digitalWrite(RED_LED, HIGH);
128+
tft.setTextColor(HX8357_WHITE);
129+
// read light sensor
130+
tft.fillRect(160, 100, 240, 16, HX8357_BLACK);
131+
tft.setCursor(0, 100);
132+
uint16_t light = analogRead(LIGHT_SENSOR);
133+
Serial.print("light sensor: "); Serial.println(light);
134+
tft.print("Light sensor: "); tft.println(light);
135+
136+
// externals
137+
tft.fillRect(40, 130, 60, 34, HX8357_BLUE);
138+
tft.setCursor(0, 132);
139+
float d3 = (float)analogRead(A1) * 3.3 / 1024;
140+
float d4 = (float)analogRead(A3) * 3.3 / 1024;
141+
Serial.print("STEMMA: ");
142+
Serial.print(d3,1); Serial.print(", ");
143+
Serial.print(d4,1); Serial.println();
144+
tft.print("D3: "); tft.println(d3,1);
145+
tft.print("D4: "); tft.println(d4,1);
146+
147+
tft.fillRect(80, 164, 240, 16, HX8357_BLACK);
148+
tft.setCursor(0, 164);
149+
tft.print("Touch: ");
150+
151+
TSPoint p = ts.getPoint();
152+
// we have some minimum pressure we consider 'valid'
153+
// pressure of 0 means no pressing!
154+
if (p.z > (ts.pressureThreshhold +200)) {
155+
Serial.print("X = "); Serial.print(p.x);
156+
Serial.print("\tY = "); Serial.print(p.y);
157+
Serial.print("\tPressure = "); Serial.println(p.z);
158+
159+
// map touchscreen coordinates to screen coordinates
160+
int16_t x = map(p.x, X_MIN, X_MAX, 320, 0); // inverted X compared to screen
161+
int16_t y = map(p.y, Y_MIN, Y_MAX, 0, 480);
162+
// raw position
163+
//int16_t tx = p.x;
164+
//int16_t ty = p.y;
165+
//tft.print("("); tft.print(tx); tft.print(", "); tft.print(ty); tft.println(")");
166+
tft.fillRect(10, 180, 240, 16, HX8357_BLACK);
167+
tft.print("X:");
168+
tft.print(itoa(x,text,10)); tft.print(" Y:");
169+
tft.print(itoa(y,text,10)); tft.print(" Z:");
170+
tft.print(itoa(p.z,text,10));
171+
//tft.println(")");
172+
173+
if (soundBtn.contains(x, y)) {
174+
Serial.println("Ding!");
175+
soundBtn.press(true);
176+
} else {
177+
soundBtn.press(false);
178+
}
179+
} else {
180+
soundBtn.press(false);
181+
}
182+
if (soundBtn.justPressed()) {
183+
soundBtn.drawButton(true);
184+
digitalWrite(SPKR_SHUTDOWN, HIGH);
185+
186+
uint32_t i, prior, usec = 1000000L / SAMPLE_RATE;
187+
prior = micros();
188+
for (uint32_t i=0; i<sizeof(clickaudio); i++) {
189+
uint32_t t;
190+
while((t = micros()) - prior < usec);
191+
analogWrite(A0, (uint16_t)clickaudio[i]);
192+
prior = t;
193+
}
194+
digitalWrite(SPKR_SHUTDOWN, LOW);
195+
}
196+
if (soundBtn.justReleased()) {
197+
soundBtn.drawButton(false);
198+
}
199+
digitalWrite(RED_LED, LOW);
200+
delay(20);
201+
}
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
#define SAMPLE_RATE 16000
2+
3+
const uint8_t clickaudio[] = {
4+
0x7E, 0x83, 0x7C, 0x84, 0x7A, 0x88, 0x76, 0x90, 0x00, 0x64, 0xFF, 0xE9,
5+
0xFF, 0xF1, 0xFF, 0xEB, 0xFF, 0x8C, 0x00, 0x0D, 0x00, 0x0A, 0x00, 0x0D,
6+
0x00, 0x74, 0xFF, 0xEB, 0xFF, 0xEE, 0xFF, 0xEB, 0xFF, 0x80, 0x00, 0x0A,
7+
0x00, 0x02, 0x00, 0x00, 0x07, 0x00, 0xC7, 0xFF, 0xF3, 0xFF, 0xF6, 0xFF,
8+
0xF3, 0xFF, 0x30, 0x00, 0x0A, 0x00, 0x07, 0x00, 0x09, 0x00, 0xD2, 0xFF,
9+
0xF6, 0xFF, 0xF8, 0xFF, 0xF7, 0xFF, 0x29, 0x00, 0x07, 0x00, 0x06, 0x00,
10+
0x09, 0x00, 0xDB, 0xFF, 0xF9, 0xFF, 0xFC, 0xFF, 0xF9, 0xFF, 0x22, 0x00,
11+
0x06, 0x00, 0x05, 0x00, 0x07, 0x00, 0xE2, 0xFF, 0xFC, 0xFF, 0xFC, 0xFF,
12+
0xFB, 0xFF, 0x1C, 0x00, 0x05, 0x00, 0x06, 0x00, 0x0A, 0x00, 0x30, 0xFF,
13+
0xF6, 0xFF, 0xF7, 0xFF, 0xF5, 0xFF, 0xCC, 0x00, 0x0B, 0x00, 0x08, 0x00,
14+
0x0B, 0x00, 0x3A, 0xFF, 0xF5, 0xFF, 0xF8, 0xFF, 0xF5, 0xFF, 0xC3, 0x00,
15+
0x0E, 0x00, 0x0A, 0x00, 0x0D, 0x00, 0x43, 0xFF, 0xF3, 0xFF, 0xF6, 0xFF,
16+
0xF6, 0xFF, 0xBB, 0x00, 0x11, 0x00, 0x0E, 0x00, 0x11, 0x00, 0x4F, 0xFF,
17+
0xF7, 0xFF, 0xFE, 0xFF, 0xFF, 0xF5, 0xFF, 0x6B, 0x00, 0x13, 0x00, 0x0E,
18+
0x00, 0x13, 0x00, 0xA3, 0xFF, 0xF2, 0xFF, 0xF6, 0xFF, 0xF0, 0xFF, 0x5D,
19+
0x00, 0x0F, 0x00, 0x0C, 0x00, 0x10, 0x00, 0xA9, 0xFF, 0xF2, 0xFF, 0xF6,
20+
0xFF, 0xF2, 0xFF, 0x52, 0x00, 0x0F, 0x00, 0x0C, 0x00, 0x0F, 0x00, 0xB3,
21+
0xFF, 0xF3, 0xFF, 0xF5, 0xFF, 0xF1, 0xFF, 0x49, 0x00, 0x0B, 0x00, 0x05,
22+
0x00, 0x04, 0x00, 0x0D, 0xF3, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xF6,
23+
0x04, 0x01, 0x00, 0x03, 0x00, 0x04, 0x00, 0x0F, 0xFC, 0xFF, 0xFF, 0xFF,
24+
0xFF, 0xFE, 0xFF, 0xEF, 0x00, 0x04, 0x00, 0x03, 0x00, 0x04, 0x00, 0x17,
25+
0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xEA, 0x00, 0x07, 0x00, 0x07,
26+
0x00, 0x08, 0x00, 0x20, 0xFF, 0xFF, 0xFD, 0xFF, 0xFB, 0xFF, 0xF4, 0xFF,
27+
0x9D, 0x00, 0x16, 0x00, 0x10, 0x00, 0x16, 0x00, 0x6C, 0xFF, 0xED, 0xFF,
28+
0xF2, 0xFF, 0xED, 0xFF, 0x91, 0x00, 0x15, 0x00, 0x0F, 0x00, 0x15, 0x00,
29+
0x74, 0xFF, 0xEB, 0xFF, 0xF0, 0xFF, 0xEE, 0xFF, 0x88, 0x00, 0x15, 0x00,
30+
0x10, 0x00, 0x15, 0x00, 0x7E, 0xFF, 0xEC, 0xFF, 0xF2, 0xFF, 0xED, 0xFF,
31+
0x80, 0x00, 0x15, 0x00, 0x10, 0x00, 0x18, 0x00, 0x8B, 0xFF, 0xF0, 0xFF,
32+
0xF8, 0xFF, 0xFD, 0xFA, 0xFF, 0x34, 0x00, 0x0F, 0x00, 0x0D, 0x00, 0x10,
33+
0x00, 0xD9, 0xFF, 0xF9, 0xFF, 0xF9, 0xFF, 0xF8, 0xFF, 0x29, 0x00, 0x0C,
34+
0x00, 0x09, 0x00, 0x0B, 0x00, 0xDF, 0xFF, 0xFA, 0xFF, 0xF9, 0xFF, 0xFA,
35+
0xFF, 0x21, 0x00, 0x0A, 0x00, 0x08, 0x00, 0x09, 0x00, 0xE7, 0xFF, 0xFA,
36+
0xFE, 0xFD, 0xFE, 0xFB, 0xFF, 0x19, 0x00, 0x09, 0x00, 0x09, 0x00, 0x0D,
37+
0x00, 0x39, 0xFF, 0xF2, 0xFF, 0xF4, 0xFF, 0xF1, 0xFF, 0xC4, 0x00, 0x11,
38+
0x00, 0x0C, 0x00, 0x10, 0x00, 0x42, 0xFF, 0xF1, 0xFF, 0xF5, 0xFF, 0xF2,
39+
0xFF, 0xBC, 0x00, 0x13, 0x00, 0x0E, 0x00, 0x12, 0x00, 0x4A, 0xFF, 0xF2,
40+
0xFF, 0xF5, 0xFF, 0xF3, 0xFF, 0xB5, 0x00, 0x15, 0x00, 0x10, 0x00, 0x15,
41+
0x00, 0x59, 0xFF, 0xF3, 0xFF, 0xFC, 0xFB, 0xFF, 0xF3, 0xFF, 0x64, 0x00,
42+
0x15, 0x00, 0x11, 0x00, 0x15, 0x00, 0xA9, 0xFF, 0xF0, 0xFF, 0xF1, 0xFF,
43+
0xF0, 0xFF, 0x57, 0x00, 0x12, 0x00, 0x0E, 0x00, 0x11, 0x00, 0xAE, 0xFF,
44+
0xEE, 0xFF, 0xF3, 0xFF, 0xEF, 0xFF, 0x4C, 0x00, 0x10, 0x00, 0x0D, 0x00,
45+
0x10, 0x00, 0xB7, 0xFF, 0xF1, 0xFF, 0xF2, 0xFF, 0xEE, 0xFF, 0x42, 0x00,
46+
0x0D, 0x00, 0x09, 0x00, 0x07, 0x00, 0x11, 0xF7, 0xFE, 0xFD, 0xFD, 0xFF,
47+
0xFB, 0xFF, 0xEF, 0x03, 0x04, 0x01, 0x05, 0x01, 0x07, 0x00, 0x16, 0xFE,
48+
0xFB, 0xFD, 0xFB, 0xFF, 0xF9, 0xFF, 0xE6, 0x00, 0x07, 0x00, 0x06, 0x00,
49+
0x07, 0x00, 0x1A, 0xFF, 0xFA, 0xFF, 0xFC, 0xFF, 0xF9, 0xFF, 0xE1, 0x00,
50+
0x04, 0x00, 0x04, 0x00, 0x05, 0x00, 0x21, 0xFF, 0xF7, 0xFF, 0xF9, 0xFF,
51+
0xF5, 0xFF, 0xD7, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x0A, 0x00, 0x6B,
52+
0xFF, 0xEB, 0xFF, 0xF1, 0xFF, 0xED, 0xFF, 0x89, 0x00, 0x10, 0x00, 0x0D,
53+
0x00, 0x0F, 0x00, 0x7A, 0xFF, 0xEE, 0xFF, 0xF2, 0xFF, 0xEF, 0xFF, 0x80,
54+
0x00, 0x12, 0x00, 0x0C, 0x00, 0x11, 0x00, 0x85, 0xFF, 0xEF, 0xFF, 0xF4,
55+
0xFF, 0xEF, 0xFF, 0x77, 0x00, 0x12, 0x00, 0x0E, 0x00, 0x14, 0x00, 0x92,
56+
0xFF, 0xF3, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x2A, 0x00, 0x0C, 0x00,
57+
0x0B, 0x00, 0x0B, 0x00, 0xE0, 0xFF, 0xFC, 0xFF, 0xFD, 0xFF, 0xFB, 0xFF,
58+
0x22, 0x00, 0x08, 0x00, 0x05, 0x00, 0x07, 0x00, 0xE6, 0xFF, 0xFD, 0xFF,
59+
0xFF, 0xFF, 0xFE, 0xFF, 0x19, 0x00, 0x06, 0x00, 0x05, 0x00, 0x06, 0x00,
60+
0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0x15, 0x00, 0x06, 0x00,
61+
0x07, 0x00, 0x0B, 0x00, 0x3C, 0xFF, 0xF4, 0xFF, 0xF8, 0xFF, 0xF4, 0xFF,
62+
0xC0, 0x00, 0x0E, 0x00, 0x0A, 0x00, 0x0E, 0x00, 0x48, 0xFF, 0xF3, 0xFF,
63+
0xF8, 0xFF, 0xF4, 0xFF, 0xB7, 0x00, 0x10, 0x00, 0x0C, 0x00, 0x10, 0x00,
64+
0x4F, 0xFF, 0xF2, 0xFF, 0xF8, 0xFF, 0xF3, 0xFF, 0xAF, 0x00, 0x12, 0x00,
65+
0x0F, 0x00, 0x13, 0x00, 0x5D, 0xFF, 0xF7, 0xFF, 0xFF, 0xFE, 0xFF, 0xF6,
66+
0xFF, 0x5B, 0x00, 0x12, 0x00, 0x0E, 0x00, 0x12, 0x00, 0xAF, 0xFF, 0xF4,
67+
0xFF, 0xF6, 0xFF, 0xF3, 0xFF, 0x50, 0x00, 0x0F, 0x00, 0x0C, 0x00, 0x0F,
68+
0x00, 0xB7, 0xFF, 0xF2, 0xFF, 0xF8, 0xFF, 0xF2, 0xFF, 0x46, 0x00, 0x0D,
69+
0x00, 0x0A, 0x00, 0x0D, 0x00, 0xC0, 0xFF, 0xF4, 0xFF, 0xF7, 0xFF, 0xF4,
70+
0xFF, 0x3C, 0x00, 0x0D, 0x00, 0x09, 0x00, 0x0D, 0x00, 0xCA, 0xFF, 0xF6,
71+
0xFF, 0xFB, 0xFF, 0xFC, 0xFF, 0xE8, 0x03, 0x05, 0x01, 0x05, 0x00, 0x07,
72+
0x00, 0x1A, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xE1, 0x00, 0x08,
73+
0x00, 0x06, 0x00, 0x08, 0x00, 0x20, 0xFF, 0xF7, 0xFF, 0xF8, 0xFF, 0xF4,
74+
0xFF, 0xD8, 0x00, 0x0A, 0x00, 0x07, 0x00, 0x08, 0x00, 0x27, 0xFF, 0xF3,
75+
0xFF, 0xF4, 0xFF, 0xF2, 0xFF, 0xCD, 0x00, 0x07, 0x02, 0x02, 0x07, 0x00,
76+
0x0E, 0x00, 0x74, 0xFF, 0xE9, 0xFF, 0xEE, 0xFF, 0xEA, 0xFF, 0x82, 0x00,
77+
0x13, 0x00, 0x0F, 0x00, 0x13, 0x00, 0x80, 0xFF, 0xEC, 0xFF, 0xF1, 0xFF,
78+
0xEA, 0xFF, 0x7A, 0x00, 0x14, 0x00, 0x0F, 0x00, 0x14, 0x00, 0x8C, 0xFF,
79+
0xEE, 0xFF, 0xF1, 0xFF, 0xEC, 0xFF, 0x71, 0x00, 0x15, 0x00, 0x12, 0x00,
80+
0x15, 0x00, 0x98, 0xFF, 0xF2, 0xFF, 0xF9, 0xFF, 0xFC, 0xFC, 0xFF, 0x27,
81+
0x00, 0x0B, 0x00, 0x0A, 0x00, 0x0B, 0x00, 0xE2, 0xFF, 0xF9, 0xFF, 0xFA,
82+
0xFF, 0xFA, 0xFF, 0x1D, 0x00, 0x0A, 0x00, 0x07, 0x00, 0x08, 0x00, 0xE8,
83+
0xFF, 0xF9, 0xFF, 0xFC, 0xFE, 0xFB, 0xFE, 0x16, 0x00, 0x07, 0x00, 0x06,
84+
0x01, 0x05, 0x03, 0xEF, 0xFF, 0xFD, 0xFD, 0xFD, 0xFB, 0xFF, 0xF7, 0x11,
85+
0x00, 0x07, 0x00, 0x09, 0x00, 0x0E, 0x00, 0x44, 0xFF, 0xEF, 0xFF, 0xF3,
86+
0xFF, 0xEF, 0xFF, 0xB6, 0x00, 0x11, 0x00, 0x0D, 0x00, 0x0F, 0x00, 0x4D,
87+
0xFF, 0xED, 0xFF, 0xF2, 0xFF, 0xEE, 0xFF, 0xAF, 0x00, 0x11, 0x00, 0x0E,
88+
0x00, 0x10, 0x00, 0x56, 0xFF, 0xED, 0xFF, 0xF0, 0xFF, 0xED, 0xFF, 0xA5,
89+
0x00, 0x12, 0x00, 0x0D, 0x00, 0x11, 0x00, 0x5E, 0xFF, 0xEA, 0xFF, 0xEE,
90+
0xFF, 0xEB, 0xFF, 0x98, 0x00, 0x0E, 0x00, 0x06, 0x02, 0x01, 0x0B, 0x00,
91+
0xAC, 0xFF, 0xEB, 0xFF, 0xF1, 0xFF, 0xEC, 0xFF, 0x46, 0x00, 0x0E, 0x00,
92+
0x0B, 0x00, 0x0F, 0x00, 0xBA, 0xFF, 0xEE, 0xFF, 0xF2, 0xFF, 0xEE, 0xFF,
93+
0x3E, 0x00, 0x0E, 0x00, 0x0B, 0x00, 0x0E, 0x00, 0xC0, 0xFF, 0xEE, 0xFF,
94+
0xF0, 0xFF, 0xEE, 0xFF, 0x39, 0x00, 0x0F, 0x00, 0x0C, 0x00, 0x0F, 0x00,
95+
0xCB, 0xFF, 0xF1, 0xFF, 0xF4, 0xFF, 0xF3, 0xFF, 0xE0, 0x02, 0x08, 0x06,
96+
0x07, 0x05, 0x09, 0x00, 0x20, 0xFF, 0xF3, 0xFF, 0xF4, 0xFF, 0xF2, 0xFF,
97+
0xD9, 0x00, 0x0B, 0x04, 0x09, 0x03, 0x0B, 0x00, 0x27, 0xFF, 0xF1, 0xFF,
98+
0xF2, 0xFF, 0xF1, 0xFF, 0xD1, 0x00, 0x0E, 0x02, 0x09, 0x02, 0x0D, 0x00,
99+
0x2E, 0xFF, 0xED, 0xFF, 0xF1, 0xFF, 0xEC, 0xFF, 0xC6, 0x00, 0x0A, 0x06,
100+
0x04, 0x0B, 0x00, 0x12, 0x00, 0x7D, 0xFF, 0xE8, 0xFF, 0xEB, 0xFF, 0xE8,
101+
0xFF, 0x7C, 0x00, 0x17, 0x00, 0x12, 0x00, 0x17, 0x00, 0x89, 0xFF, 0xEA,
102+
0xFF, 0xED, 0xFF, 0xE9, 0xFF, 0x75, 0x00, 0x16, 0x00, 0x13, 0x00, 0x17,
103+
0x00, 0x92, 0xFF, 0xEB, 0xFF, 0xEF, 0xFF, 0xEB, 0xFF, 0x6D, 0x00, 0x19,
104+
0x00, 0x14, 0x00, 0x1A, 0x00, 0x9F, 0xFF, 0xEF, 0xFF, 0xF5, 0xFC, 0xF9,
105+
0xF7, 0xFF, 0x24, 0x00, 0x0E, 0x02, 0x0B, 0x01, 0x0B, 0x00, 0xE4, 0xFF,
106+
};

0 commit comments

Comments
 (0)