-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRGB_Barometer.ino
591 lines (498 loc) · 51.9 KB
/
RGB_Barometer.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
// ----------------------------
// Standard Libraries - Already Installed if you have ESP8266 set up
// ----------------------------
#include <Ticker.h>
#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <ESP8266HTTPClient.h>
#include <mDNSResolver.h>
#include <Wire.h>
#include <Adafruit_BMP280.h>
// ----------------------------
// Additional Libraries - each one of these will need to be installed.
// ----------------------------
#include <PxMatrix.h>
// The library for controlling the LED Matrix
// Needs to be manually downloaded and installed
// https://github.com/2dom/PxMatrix
Ticker display_ticker;
// Pins for LED MATRIX
#define P_LAT 16
#define P_A 5
#define P_B 4
#define P_C 15
#define P_OE 2
#define P_D 12
#define P_E 0
#define BRIGHTNESS 32 // 20-255
#define DISPLAY 40 // 10-50 is OK, too much possible crash or flicker
#define SENSOR1_NAME "temp1.local"
#define OFFSET 2600 // Pressure offset for ~625ft Altitude above sea level. https://novalynx.com/manuals/bp-elevation-correction-tables.pdf
#define REFRESH 60 // Matrix data refresh in seconds
// PxMATRIX display(32,16,P_LAT, P_OE,P_A,P_B,P_C);
PxMATRIX display(64, 32, P_LAT, P_OE, P_A, P_B, P_C, P_D);
//PxMATRIX display(64, 32, P_LAT, P_OE, P_A, P_B, P_C, P_D, P_E);
Adafruit_BMP280 bmp; // use I2C interface
const char* ssid = "OptionsDSL";
const char* password = "9057722572";
IPAddress ServerIP (0, 0, 0, 0);
using namespace mDNSResolver;
WiFiUDP udp;
Resolver resolver(udp);
float newpressure = 96.5;
float curpressure;
float curtemperature;
float sensor1temp = 0;
unsigned long time_now = 0;
int period = 0;
void setup() {
Serial.begin(115200);
display.begin(16);
display.setFastUpdate(true);
display.clearDisplay();
Serial.print(F("Pixel draw latency in us: "));
unsigned long start_timer = micros();
display.drawPixel(1, 1, 0);
unsigned long delta_timer = micros() - start_timer;
Serial.println(delta_timer);
Serial.print(F("Display update latency in us: "));
start_timer = micros();
display.display(0);
delta_timer = micros() - start_timer;
Serial.println(delta_timer);
display_ticker.attach(0.002, display_updater);
display.clearDisplay();
display.setBrightness(BRIGHTNESS);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
display.setCursor(0, 0);
display.println(F("Connect.."));
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
}
display.println(F("Success!"));
display.print(F("Sensor1:"));
resolve_dns();
if (ServerIP == INADDR_NONE) {
display.println(F("No"));
}
else {
display.println(F("OK"));
}
Serial.println("Disabling Serial Port");
Serial.flush();
Serial.end();
// Disable serial port.
pinMode(1, FUNCTION_3); //GPIO 1 (TX) swap the pin to a GPIO.
pinMode(3, FUNCTION_3); //GPIO 3 (RX) swap the pin to a GPIO.
Wire.begin(1, 3);
delay(500);
// Setting up BMP280 Sensor
bmp.begin();
bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Operating Mode. */
Adafruit_BMP280::SAMPLING_X2, /* Temp. oversampling */
Adafruit_BMP280::SAMPLING_X16, /* Pressure oversampling */
Adafruit_BMP280::FILTER_X16, /* Filtering. */
Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */
delay(2500);
display.clearDisplay();
display.setCursor(0, 0);
display.println(bmp.readTemperature(), 3);
display.println(bmp.readPressure(), 3);
delay(3000);
display.clearDisplay();
resolver.setLocalIP(WiFi.localIP());
} // End of Setup
// ISR for display refresh
void display_updater()
{
display.display(DISPLAY);
}
// Converted using the following site: http://www.rinkydinkelectronics.com/t_imageconverter565.php
uint16_t static stormy[] = {
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2124, 0x2124, 0x2124, 0x2945, 0x2965, 0x2945, 0x2124, 0x2124, 0x2965, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2124, 0x2124, 0x31A6, 0x52AA, 0x632D, 0x634D, 0x630C, 0x4229, 0x2945, 0x2124, 0x2965, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2124, 0x2124, 0x39C7, 0x6B4D, 0x738E, 0x6B8E, 0x6B8E, 0x6B8E, 0x738E, 0x52AB, 0x2945, 0x2124, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2104, 0x2124, 0x2124, 0x2104, 0x2945, 0x632C, 0x6B8E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x738E, 0x4249, 0x2104, 0x2104, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2124, 0x2124, 0x2945, 0x39C7, 0x39E8, 0x4249, 0x6B8E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B8E, 0x630C, 0x2945, 0x2104, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2945, 0x2124, 0x3186, 0x5AEC, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B8E, 0x6B4D, 0x2965, 0x2124, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2124, 0x2945, 0x5AEB, 0x738E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B8E, 0x634D, 0x2986, 0x2124, 0x2124, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2124, 0x2104, 0x3186, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x632D, 0x4208, 0x2124, 0x2124, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2945, 0x2124, 0x39E7, 0x5AEC, 0x6B8E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B8E, 0x6B6E, 0x39C7, 0x2124, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2104, 0x39C7, 0x6B6E, 0x6B8E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x738D, 0x83CB, 0x738D, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x738E, 0x4A69, 0x2104, 0x3186, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x2124, 0x2104, 0x4A69, 0x738E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x636E, 0xBC47, 0xECE2, 0x738D, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x6B6E, 0x738E, 0x4A49, 0x2104, 0x2124, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x3186, 0x2104, 0x39E7, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x7BAC, 0xF501, 0xAC28, 0x6B6F, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x738E, 0x634D, 0x3186, 0x2124, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2124, 0x2124, 0x4228, 0x5B0C, 0x630C, 0x630C, 0x630C, 0x630C, 0x630C, 0x5AEC, 0xB426, 0xF501, 0x93CA, 0x632C, 0x5B0C, 0x630C, 0x630C, 0x630C, 0x52CB, 0x31A6, 0x2124, 0x2124, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2125, 0x41A4, 0xECC1, 0xFD21, 0xD462, 0x3164, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2104, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x1905, 0x6A63, 0xF4E1, 0xFD21, 0xCC22, 0x10E5, 0x2124, 0x2124, 0x2124, 0x2124, 0x2945, 0x2945, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD01, 0xFD01, 0xFD20, 0xFD40, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD01, 0xFD01, 0xFD21, 0xFD01, 0xFD40, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD21, 0xFD21, 0xFD21, 0xFD01, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD01, 0xFD01, 0xFD40, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD21, 0xFD21, 0xFD21, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCC1, 0xFD21, 0xCCC0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
};
uint16_t static rain[] = {
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8410, 0x8410, 0x8410, 0x8410, 0x8430, 0x7C30, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8410, 0x7C10, 0x7C10, 0x8C71, 0x8C72, 0x8451, 0x7C10, 0x8410, 0x73AE, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8410, 0x7C10, 0x94B3, 0xBE18, 0xD6BA, 0xDEDB, 0xCE7A, 0xAD76, 0x8C51, 0x8410, 0x8C51, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x7C10, 0x9CF3, 0xDEDB, 0xE73C, 0xE71C, 0xE71C, 0xE71C, 0xE73C, 0xC618, 0x8C51, 0x7C10, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7451, 0x7C10, 0x7BF0, 0x7BF0, 0x8431, 0xD69A, 0xE73C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE73C, 0xAD76, 0x7BF0, 0x7C30, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8410, 0x8410, 0x8C51, 0x9CF4, 0xA534, 0xAD76, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xD69A, 0x8451, 0x7C10, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8410, 0x7C10, 0x94B2, 0xCE59, 0xE71C, 0xE73C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xDEDB, 0x8C92, 0x7C10, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8410, 0x8451, 0xCE59, 0xE73C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xDEDB, 0x8C72, 0x7C10, 0x7C10, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8410, 0x7BF0, 0x94B2, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xD6BB, 0xA555, 0x8410, 0x8410, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8410, 0x8410, 0xA514, 0xCE59, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0x9CF4, 0x7BF0, 0x8410, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x52AA, 0x7BF0, 0x9CF4, 0xE71C, 0xE73C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE73C, 0xB5B7, 0x7BF0, 0x8410, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x8C51, 0x7BF0, 0xB5B6, 0xE73C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE73C, 0xB596, 0x7BF0, 0x8C51, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x632C, 0x7BF0, 0xA514, 0xE73C, 0xE73C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE73C, 0xDEDB, 0x94B3, 0x7C10, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8410, 0x8431, 0xAD75, 0xCE7A, 0xCE9A, 0xCE9A, 0xCE9A, 0xCE9A, 0xCE9A, 0xCE9A, 0xCE9A, 0xCE9A, 0xCE9A, 0xCE9A, 0xCE9A, 0xCE9A, 0xCE9A, 0xCE9A, 0xC618, 0x94D3, 0x8410, 0x8430, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8410, 0x8410, 0x7C10, 0x8430, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x7C10, 0x7C10, 0x7C10, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8411, 0x8430, 0x7C10, 0x7C10, 0x7C10, 0x7C10, 0x8410, 0x840F, 0x840F, 0x8410, 0x840F, 0x840F, 0x7C10, 0x7C10, 0x7C10, 0x7C10, 0x8410, 0x8410, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x035F, 0x023F, 0x0000, 0x0000, 0x039F, 0x027F, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1B7C, 0x1B9C, 0x0000, 0x0000, 0x1B9C, 0x1B9C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x241B, 0x1B9C, 0x0000, 0x0000, 0x1B9C, 0x1B9C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1B9C, 0x1B9C, 0x0000, 0x0000, 0x1B9C, 0x1B9B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x137B, 0x1B9C, 0x0000, 0x0000, 0x1B9C, 0x1B9C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x13BB, 0x1B9C, 0x0000, 0x0000, 0x1B9C, 0x135B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
};
// Change Icon 32x32
uint16_t static change[] = {
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD00, 0xFD01, 0xFC80, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD01, 0xFD21, 0x0000, 0x0000, 0xFD01, 0xFD21, 0xFD01, 0x0000, 0xFD21, 0xFD01, 0xFD40, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD01, 0xFD01, 0xFD01, 0x0000, 0xFD01, 0xFD01, 0xFCE1, 0x0000, 0xFD01, 0xFD01, 0xFD00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xF501, 0xFD01, 0xFD01, 0x0000, 0xFCC0, 0xFD21, 0x0000, 0xFD21, 0xFD01, 0xFD01, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0xF4C1, 0xFD01, 0xFD40, 0x0000, 0xFCE1, 0xFCE0, 0xFD01, 0xFD01, 0xFD01, 0xFD01, 0xFCE1, 0xFCE0, 0xFD80, 0x0000, 0x8410, 0x8410, 0x7C10, 0x7C10, 0x7C10, 0x7C10, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0xFD01, 0xFD21, 0xFD01, 0xFD21, 0xFD42, 0xFD01, 0xFD01, 0xFD81, 0xFDA1, 0xFD41, 0xFD01, 0xFD01, 0x0000, 0x8430, 0x7C10, 0x8430, 0x8C92, 0x9492, 0x8451, 0x7BF0, 0x7C10, 0x8C51, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0xDCE0, 0xFD01, 0xFD01, 0xFD21, 0xFD01, 0xFD61, 0xFE81, 0xFF41, 0xFF61, 0xFF01, 0xFDE1, 0xFD00, 0xA46B, 0x7C10, 0x9CF4, 0xC639, 0xD6DB, 0xDEDB, 0xCE7A, 0xAD55, 0x8451, 0x7C10, 0x8410, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD01, 0xFD21, 0xFE81, 0xFFA1, 0xFF81, 0xFFA1, 0xFFC0, 0xFF60, 0xE564, 0x8C0F, 0xA535, 0xDF1C, 0xE73C, 0xE71C, 0xE71C, 0xE71C, 0xE73C, 0xBDD7, 0x8451, 0x8410, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0xFD21, 0xFD01, 0xFD21, 0xFD40, 0xFCE1, 0xFDA1, 0xFF61, 0xFF81, 0xFFA0, 0xEF03, 0xBDA8, 0x9CEB, 0x844E, 0x8C72, 0xDEDB, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE73C, 0xA535, 0x7BF0, 0x8410, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0xFD01, 0xFD41, 0xFD01, 0xFD21, 0xFCE1, 0xFDC1, 0xFF81, 0xFFA0, 0xDE85, 0x8C4E, 0x8412, 0x9CD4, 0x9CF4, 0xB5B7, 0xE73C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE73C, 0xCE59, 0x8410, 0x8410, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0xFD00, 0xFD21, 0xFD01, 0xFFE0, 0xFD01, 0xFD81, 0xFF60, 0xEF03, 0x844E, 0x94B3, 0xD69A, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xD6BA, 0x8C51, 0x7C10, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCC0, 0xFCE1, 0xFD01, 0xFE40, 0xB589, 0x8432, 0xD6BA, 0xE73C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xD6BA, 0x8451, 0x8410, 0x8410, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0xFD01, 0xFD01, 0xFD01, 0xFD20, 0xF501, 0xBCA9, 0x7BEF, 0xA514, 0xE73C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xD69A, 0xA514, 0x8410, 0x8410, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0xFD01, 0xFD21, 0xFD01, 0xFC40, 0x7C10, 0x8431, 0xA555, 0xCE9A, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE73C, 0xDEFB, 0x94B3, 0x7BF0, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0xFD00, 0xFCE1, 0x0000, 0x7C31, 0x7C10, 0xAD75, 0xE73C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE73C, 0xAD76, 0x7BF0, 0x8C51, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8410, 0x8410, 0xC639, 0xE73C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE73C, 0xAD55, 0x7BF0, 0x9492, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7C10, 0x7C10, 0xB596, 0xE73D, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE73C, 0xD69A, 0x8C92, 0x7C10, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x7C10, 0x8C72, 0xB5D7, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xC618, 0x94B3, 0x7C10, 0x7C11, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x7C10, 0x8410, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8410, 0x8410, 0x8410, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x8410, 0x8410, 0x8410, 0x8410, 0x8410, 0x8410, 0x8410, 0x840F, 0x8410, 0x8410, 0x840F, 0x8410, 0x8410, 0x8410, 0x8410, 0x7C10, 0x8431, 0x738E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x035F, 0x023F, 0x0000, 0x0000, 0x039F, 0x027F, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1B7C, 0x1B9C, 0x0000, 0x0000, 0x1B9C, 0x1B9C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x241B, 0x1B9C, 0x0000, 0x0000, 0x1B9C, 0x1B9C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1B9C, 0x1B9C, 0x0000, 0x0000, 0x1B9C, 0x1B9B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x137B, 0x1B9C, 0x0000, 0x0000, 0x1B9C, 0x1B9C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x13BB, 0x1B9C, 0x0000, 0x0000, 0x1B9C, 0x135B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
};
uint16_t static fair[] = {
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD00, 0xFD01, 0xFC80, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD01, 0xFD21, 0x0000, 0x0000, 0xFD01, 0xFD21, 0xFD01, 0x0000, 0xFD21, 0xFD01, 0xFD40, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD01, 0xFD01, 0xFD01, 0x0000, 0xFD01, 0xFD01, 0xFCE1, 0x0000, 0xFD01, 0xFD01, 0xFD00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xF501, 0xFD01, 0xFD01, 0x0000, 0xFCC0, 0xFD21, 0x0000, 0xFD21, 0xFD01, 0xFD01, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0xF4C1, 0xFD01, 0xFD40, 0x0000, 0xFCE1, 0xFCE0, 0xFD01, 0xFD01, 0xFD01, 0xFD01, 0xFCE1, 0xFCE0, 0xFD80, 0x0000, 0x8410, 0x8410, 0x7C10, 0x7C10, 0x7C10, 0x7C10, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0xFD01, 0xFD21, 0xFD01, 0xFD21, 0xFD42, 0xFD01, 0xFD01, 0xFD81, 0xFDA1, 0xFD41, 0xFD01, 0xFD01, 0x0000, 0x8430, 0x7C10, 0x8430, 0x8C92, 0x9492, 0x8451, 0x7BF0, 0x7C10, 0x8C51, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0xDCE0, 0xFD01, 0xFD01, 0xFD21, 0xFD01, 0xFD61, 0xFE81, 0xFF41, 0xFF61, 0xFF01, 0xFDE1, 0xFD00, 0xA46B, 0x7C10, 0x9CF4, 0xC639, 0xD6DB, 0xDEDB, 0xCE7A, 0xAD55, 0x8451, 0x7C10, 0x8410, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD01, 0xFD21, 0xFE81, 0xFFA1, 0xFF81, 0xFFA1, 0xFFC0, 0xFF60, 0xE564, 0x8C0F, 0xA535, 0xDF1C, 0xE73C, 0xE71C, 0xE71C, 0xE71C, 0xE73C, 0xBDD7, 0x8451, 0x8410, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0xFD21, 0xFD01, 0xFD21, 0xFD40, 0xFCE1, 0xFDA1, 0xFF61, 0xFF81, 0xFFA0, 0xEF03, 0xBDA8, 0x9CEB, 0x844E, 0x8C72, 0xDEDB, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE73C, 0xA535, 0x7BF0, 0x8410, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0xFD01, 0xFD41, 0xFD01, 0xFD21, 0xFCE1, 0xFDC1, 0xFF81, 0xFFA0, 0xDE85, 0x8C4E, 0x8412, 0x9CD4, 0x9CF4, 0xB5B7, 0xE73C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE73C, 0xCE59, 0x8410, 0x8410, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0xFD00, 0xFD21, 0xFD01, 0xFFE0, 0xFD01, 0xFD81, 0xFF60, 0xEF03, 0x844E, 0x94B3, 0xD69A, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xD6BA, 0x8C51, 0x8410, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCC0, 0xFCE1, 0xFD01, 0xFE40, 0xB589, 0x8432, 0xD6BA, 0xE73C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xD6BA, 0x8451, 0x8410, 0x8410, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0xFD01, 0xFD01, 0xFD01, 0xFD20, 0xF501, 0xBCA9, 0x7BEF, 0xA514, 0xE73C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xD69A, 0xA514, 0x8410, 0x8410, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0xFD01, 0xFD21, 0xFD01, 0xFC40, 0x7C10, 0x8431, 0xA555, 0xCE9A, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE73C, 0xDEFB, 0x94B3, 0x7BF0, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0xFD00, 0xFCE1, 0x0000, 0x7C31, 0x7C10, 0xAD75, 0xE73C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE73C, 0xAD76, 0x7BF0, 0x8C51, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8410, 0x8410, 0xC639, 0xE73C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE73C, 0xAD55, 0x7BF0, 0x9492, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7C10, 0x7C10, 0xB596, 0xE73D, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE73C, 0xD69A, 0x8C92, 0x7C10, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x7C10, 0x8C72, 0xB5D7, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xC618, 0x94B3, 0x7C10, 0x7C11, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x7C10, 0x8410, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8431, 0x8410, 0x8410, 0x8410, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x8410, 0x8410, 0x8410, 0x8410, 0x8410, 0x8410, 0x8410, 0x840F, 0x8410, 0x8410, 0x840F, 0x8410, 0x8410, 0x8410, 0x8410, 0x7C10, 0x8431, 0x738E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
};
uint16_t static very_dry[] = {
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFC00, 0xFC00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD40, 0xFD01, 0xFD01, 0xFC00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD40, 0xFD01, 0xFD01, 0x0000, 0x0000, 0xFDE0, 0xFD01, 0xFD01, 0xFCC0, 0x0000, 0x0000, 0xFD01, 0xFD01, 0xFD40, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCE0, 0xFD01, 0xFD21, 0xFD20, 0x0000, 0xFDE0, 0xFD01, 0xFD01, 0xFCC0, 0x0000, 0xFD20, 0xFD21, 0xFD01, 0xFCE0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD01, 0xFD61, 0xFD01, 0xFD01, 0x0000, 0xFD21, 0xFD01, 0x0000, 0xFD01, 0xFD01, 0xFD61, 0xFD21, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD40, 0xFC40, 0x0000, 0x0000, 0xFCC0, 0xFD01, 0xFD01, 0x0000, 0xFD21, 0xFD01, 0xF501, 0xFD42, 0x0000, 0xFCE1, 0xFD01, 0xFDE0, 0x0000, 0x0000, 0xFC40, 0xFD40, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD01, 0xFD41, 0xFD21, 0xFCE0, 0x0000, 0x0000, 0xF4C1, 0xFD21, 0xFD01, 0xFCE1, 0xFD01, 0xFD01, 0xFD21, 0xFD21, 0x0000, 0x0000, 0xFCE0, 0xFD21, 0xFD21, 0xFD01, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD01, 0xFD21, 0xFD61, 0xFD01, 0x0000, 0xFD01, 0xFD21, 0xFD21, 0xFD81, 0xFDE1, 0xFDE1, 0xFD61, 0xFD21, 0xFD01, 0xFD01, 0x0000, 0xFD01, 0xFD61, 0xFD21, 0xFD01, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD00, 0xFD21, 0xFD00, 0xFD00, 0xFD01, 0xFD41, 0xFE61, 0xFF61, 0xFFA1, 0xFFA1, 0xFF61, 0xFE41, 0xFD21, 0xFD01, 0xF4E1, 0xFD01, 0xFD21, 0xFD20, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD01, 0xFD21, 0xFE61, 0xFFA1, 0xFF81, 0xFF81, 0xFF81, 0xFF81, 0xFFA1, 0xFE41, 0xFD21, 0xFD01, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD40, 0xFDE0, 0xFDE0, 0xFFE0, 0x0000, 0xFD01, 0xFD81, 0xFF61, 0xFF81, 0xFF81, 0xFF81, 0xFF81, 0xFF81, 0xFF81, 0xFF61, 0xFD61, 0xFD01, 0x0000, 0xFFE0, 0xFDE0, 0xFDE0, 0xFD40, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0xFFE0, 0xFD01, 0xFD21, 0xFD01, 0xFD01, 0xFD20, 0xFCE1, 0xFDE1, 0xFFA1, 0xFF81, 0xFF81, 0xFF81, 0xFF81, 0xFF81, 0xFF81, 0xFFA1, 0xFDC1, 0xFCE1, 0xFD01, 0xFD01, 0xFD21, 0xFD21, 0xFD01, 0xFC00, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0xFFE0, 0xFD01, 0xFD21, 0xFD01, 0xFD21, 0xFD20, 0xFCE1, 0xFDE1, 0xFFA1, 0xFF81, 0xFF81, 0xFF81, 0xFF81, 0xFF81, 0xFF81, 0xFFA1, 0xFDC1, 0xFCE1, 0xFD01, 0xFD21, 0xFD21, 0xFD21, 0xFD01, 0xFC00, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFDE0, 0xFC00, 0xFCC0, 0xFFE0, 0x0000, 0xFD01, 0xFD81, 0xFF61, 0xFF81, 0xFF81, 0xFF81, 0xFF81, 0xFF81, 0xFF81, 0xFF61, 0xFD61, 0xFD01, 0x0000, 0xFFE0, 0xFD40, 0xD400, 0xFDE0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD01, 0xFD41, 0xFE61, 0xFFA1, 0xFF81, 0xFF81, 0xFF81, 0xFF81, 0xFFA1, 0xFE41, 0xFD21, 0xFD01, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCE0, 0xFD21, 0xFD00, 0xFD00, 0xFD01, 0xFD41, 0xFE61, 0xFF61, 0xFFA1, 0xFFA1, 0xFF61, 0xFE41, 0xFD21, 0xFD01, 0xF501, 0xFD21, 0xFD21, 0xFD00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD01, 0xFD21, 0xFD61, 0xFD01, 0x0000, 0xFD00, 0xFD01, 0xFD21, 0xFD81, 0xFDE1, 0xFDE1, 0xFD61, 0xFD21, 0xFD21, 0xFD01, 0x0000, 0xFD01, 0xFD61, 0xFD21, 0xFD01, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD01, 0xFD41, 0xFD01, 0xFD40, 0x0000, 0x0000, 0xFCE1, 0xFD21, 0xFD01, 0xFCE1, 0xFCE1, 0xFD01, 0xFD21, 0xFCE1, 0x0000, 0x0000, 0xFCE0, 0xFD01, 0xFD41, 0xFD01, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD40, 0xECA0, 0x0000, 0x0000, 0xFCC0, 0xFD01, 0xFCE0, 0x0000, 0xF4E1, 0xFD21, 0xFCE1, 0xFCE2, 0x0000, 0xFD01, 0xFD01, 0xFCC0, 0x0000, 0x0000, 0xFCA0, 0xFD40, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD01, 0xFD61, 0xFD01, 0x0000, 0x0000, 0xFD01, 0xFD01, 0x0000, 0x0000, 0xFD01, 0xFD61, 0xFD01, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCE0, 0xFD01, 0xFD21, 0xFD00, 0x0000, 0xFDE0, 0xFD01, 0xFD01, 0xFCC0, 0x0000, 0xFD00, 0xFD21, 0xFD01, 0xFCE0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD40, 0xFD01, 0xFD01, 0x0000, 0x0000, 0xFDE0, 0xFD01, 0xFD01, 0xFCC0, 0x0000, 0x0000, 0xFD01, 0xFD01, 0xFD40, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD40, 0xFD01, 0xFD01, 0xFC00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFC00, 0xFC00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
};
// -------------------------------------------------------------
void loop() {
resolver.loop();
if (millis() >= time_now + period) { // Only check pressure/temp every 'period' to prevent rapid matrix updates.
if (period == 0) {
period = REFRESH * 1000;
}
time_now += period;
newpressure = round(((bmp.readPressure() + OFFSET) / 1000) * 10) / 10; // Read pressure accurate to 1 decimal.
if (curpressure != newpressure) { // Only update icon if pressure is different.
drawIcon(0, 0, newpressure); // Run to draw Icons (x, y, pressure)
}
if (curpressure > newpressure) {
trend_red(1, 27); // Draw trending red dot after icon, as to not have it overwritten with icon.
}
if (curpressure < newpressure) {
trend_green(1, 27); // Draw trending green dot after icon, as to not have it overwritten with icon.
}
curpressure = newpressure;
// ---- Remote Sensor Read Code
if (WiFi.status() == WL_CONNECTED) { //Check WiFi connection status
WiFiClient httpClient;
HTTPClient http; //Declare an object of class HTTPClient
if (ServerIP == INADDR_NONE) {
resolve_dns();
}
String ipStr = String(ServerIP[0]) + '.' + String(ServerIP[1]) + '.' + String(ServerIP[2]) + '.' + String(ServerIP[3]);
String StringIP;
StringIP += "http://";
StringIP += ipStr;
StringIP += "/temperaturec";
http.begin(httpClient, StringIP); //Specify request destination
int httpCode = http.GET(); //Send the request
if (httpCode > 0) { //Check the returning code
String payload = http.getString(); //Get the request response payload
sensor1temp = payload.toFloat();
//Serial.println(sensor1temp); //Print the response payload
}
if (http.connected()) http.end();
}
// -----
drawTemperatures(sensor1temp, bmp.readTemperature());
drawPressure(curpressure);
}
}
// -------------------------------------------------------------
void drawIcon(int x, int y, float pressure)
{
int imageHeight = 32;
int imageWidth = 32;
int counter = 0;
if (pressure > 95 && pressure <= 97) {
for (int yy = 0; yy < imageHeight; yy++) {
for (int xx = 0; xx < imageWidth; xx++) {
display.drawPixel(xx + x , yy + y, stormy[counter]);
counter++;
}
}
}
if (pressure > 97 && pressure <= 99) {
for (int yy = 0; yy < imageHeight; yy++) {
for (int xx = 0; xx < imageWidth; xx++) {
display.drawPixel(xx + x , yy + y, rain[counter]);
counter++;
}
}
}
if (pressure > 99 && pressure <= 101) {
for (int yy = 0; yy < imageHeight; yy++) {
for (int xx = 0; xx < imageWidth; xx++) {
display.drawPixel(xx + x , yy + y, change[counter]);
counter++;
}
}
}
if (pressure > 101 && pressure <= 102.1) {
for (int yy = 0; yy < imageHeight; yy++) {
for (int xx = 0; xx < imageWidth; xx++) {
display.drawPixel(xx + x , yy + y, fair[counter]);
counter++;
}
}
}
if (pressure > 102.1 && pressure <= 105) {
for (int yy = 0; yy < imageHeight; yy++) {
for (int xx = 0; xx < imageWidth; xx++) {
display.drawPixel(xx + x , yy + y, very_dry[counter]);
counter++;
}
}
}
}
// ------------------------------------------------------------
void drawTemperatures(float outsidetemp, float insidetemp) { // Draw Temperatures to matrix.
display.fillRect(29, 1, 63, 7, 0x0000); // Erase existing Temperature from matrix.
display.fillRect(33, 9, 63, 15, 0x0000); // Erase existing Temperature from matrix.
if (outsidetemp < 0) { // Negative Temp
display.drawLine(29, 4, 31, 4, 0x00DF);
display.setCursor(33, 1);
display.print(-outsidetemp, 1);
if (outsidetemp < 10) {
icon_degree_c(51, 1);
} else {
icon_degree_c(57, 1);
}
}
else { // Postive Temp
display.drawLine(29, 4, 31, 4, 0xF800);
display.drawLine(30, 3, 30, 5, 0xF800);
display.setCursor(33, 1);
display.print(outsidetemp, 1);
if (outsidetemp < 10) {
icon_degree_c(51, 1);
} else {
icon_degree_c(57, 1);
}
}
display.setCursor(33, 9);
display.print(insidetemp, 1);
if (insidetemp < 10) {
icon_degree_c(51, 9);
} else {
icon_degree_c(57, 9);
}
}
// ---------------------------------------------------------
void drawPressure(float pressure) {
display.fillRect(33, 17, 62, 23, 0x0000);
display.setCursor(33, 17);
display.print(pressure, 1);
icon_kPa(52, 25);
}
void resolve_dns() {
ServerIP = resolver.search(SENSOR1_NAME);
if (ServerIP != INADDR_NONE) {
Serial.print("Resolved: ");
Serial.println(ServerIP);
}
else {
Serial.println("Not resolved");
}
}
void trend_red(int x, int y) {
// 4x4 Red Dot
uint16_t static red_dot[] = {
0x0000, 0xF800, 0xF800, 0x0000, // 0x0020 (4) pixels
0xF800, 0xF800, 0xF800, 0xF800, // 0x0020 (8) pixels
0xF800, 0xF800, 0xF800, 0xF800, // 0x0020 (12) pixels
0x0000, 0xF800, 0xF800, 0x0000, // 0x0020 (16) pixels
};
int imageHeight = 4;
int imageWidth = 4;
int counter = 0;
for (int yy = 0; yy < imageHeight; yy++) {
for (int xx = 0; xx < imageWidth; xx++) {
display.drawPixel(xx + x , yy + y, red_dot[counter]);
counter++;
}
}
}
void trend_green(int x, int y) {
// 4x4 Green Dot
uint16_t static green_dot[] = {
0x0000, 0x0760, 0x0760, 0x0000, // 0x0020 (4) pixels
0x0760, 0x0760, 0x0760, 0x0760, // 0x0020 (8) pixels
0x0760, 0x0760, 0x0760, 0x0760, // 0x0020 (12) pixels
0x0000, 0x0760, 0x0760, 0x0000, // 0x0020 (16) pixels
};
int imageHeight = 4;
int imageWidth = 4;
int counter = 0;
for (int yy = 0; yy < imageHeight; yy++) {
for (int xx = 0; xx < imageWidth; xx++) {
display.drawPixel(xx + x , yy + y, green_dot[counter]);
counter++;
}
}
}
void icon_degree_c(int x, int y) {
// DegreeC
uint16_t static degreeC[] = {
0xF800, 0xF800, 0x0000, 0x0000, 0xFD20, 0xFD20, // t(6) pixels
0xF800, 0xF800, 0x0000, 0xFD20, 0x0000, 0x0000, // (12) pixels
0x0000, 0x0000, 0x0000, 0xFD20, 0x0000, 0x0000, // (18) pixels
0x0000, 0x0000, 0x0000, 0xFD20, 0x0000, 0x0000, // (24) pixels
0x0000, 0x0000, 0x0000, 0x0000, 0xFD20, 0xFD20, // (30) pixels
};
int imageHeight = 5;
int imageWidth = 6;
int counter = 0;
for (int yy = 0; yy < imageHeight; yy++) {
for (int xx = 0; xx < imageWidth; xx++) {
display.drawPixel(xx + x , yy + y, degreeC[counter]);
counter++;
}
}
}
void icon_kPa(int x, int y) {
uint16_t static kPa[] = {
0x07C0, 0x0000, 0x0000, 0x0000, 0x07C0, 0x07C0, 0x07C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // (12) pixels
0x07C0, 0x0000, 0x07C0, 0x0000, 0x07C0, 0x0000, 0x07C0, 0x0000, 0x07C0, 0x07C0, 0x07C0, 0x0000, // (24) pixels
0x07C0, 0x07C0, 0x0000, 0x0000, 0x07C0, 0x07C0, 0x07C0, 0x0000, 0x07C0, 0x0000, 0x07C0, 0x0000, // (36) pixels
0x07C0, 0x07C0, 0x0000, 0x0000, 0x07C0, 0x0000, 0x0000, 0x0000, 0x07C0, 0x07C0, 0x07C0, 0x0000, // (48) pixels
0x07C0, 0x0000, 0x07C0, 0x0000, 0x07C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x07C0, 0x0000, // (60) pixels
};
int imageHeight = 5;
int imageWidth = 12;
int counter = 0;
for (int yy = 0; yy < imageHeight; yy++) {
for (int xx = 0; xx < imageWidth; xx++) {
display.drawPixel(xx + x , yy + y, kPa[counter]);
counter++;
}
}
}