Skip to content

Instantly share code, notes, and snippets.

@Sv443
Last active March 2, 2025 02:43
Show Gist options
  • Save Sv443/37f9ec4536718f4bab1e59fd4e3c07f3 to your computer and use it in GitHub Desktop.
Save Sv443/37f9ec4536718f4bab1e59fd4e3c07f3 to your computer and use it in GitHub Desktop.
Scripts for transmitting and receiving a string on interval via LoRa and showing the progress on the builtin oled display
// see the file beacon_heltec_lora_tx.ino below for better comments
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#define HELTEC_POWER_BUTTON
// "Heltec ESP32 LoRa v3" by "Rop Gonggrijp" - https://github.com/ropg/Heltec_ESP32_LoRa_v3
#include <heltec_unofficial.h>
#ifndef String
// include Arduino core libs if not already included
#include <Arduino.h>
#endif
#define FREQUENCY 866.3
#define BANDWIDTH 250.0
#define SPREADING_FACTOR 10
#define TRANSMIT_POWER 18
String rxdata;
volatile bool rxFlag = false;
uint64_t lastRx = 0;
void rx();
void setup() {
heltec_setup();
heltec_ve(true); // see https://github.com/ropg/heltec_esp32_lora_v3/issues/63
delay(250);
display.cls();
// display.setFont(static_cast<const uint8_t*>(reinterpret_cast<const void*>(Cousine_Regular_10)));
display.setFont(ArialMT_Plain_10);
display.setBrightness(127);
both.println("Booting...");
RADIOLIB_OR_HALT(radio.begin());
// set callback for received packets
radio.setDio1Action(rx);
// set parameters
RADIOLIB_OR_HALT(radio.setFrequency(FREQUENCY));
RADIOLIB_OR_HALT(radio.setBandwidth(BANDWIDTH));
RADIOLIB_OR_HALT(radio.setSpreadingFactor(SPREADING_FACTOR));
RADIOLIB_OR_HALT(radio.setOutputPower(TRANSMIT_POWER));
// begin receiving
RADIOLIB_OR_HALT(radio.startReceive(RADIOLIB_SX126X_RX_TIMEOUT_INF));
display.cls();
both.printf("Listening...");
}
void loop() {
heltec_loop();
// check if flag was set by the interrupt between the prior loop() call and the current one
if(rxFlag) {
both.println("RX...");
rxFlag = false;
radio.readData(rxdata);
if(_radiolib_status == RADIOLIB_ERR_NONE) {
display.cls();
both.printf("RX [%s]\n", rxdata.c_str());
both.printf(" RSSI: %.2f dBm\n", radio.getRSSI());
both.printf(" SNR: %.2f dB\n", radio.getSNR());
both.printf(" Last RX: -%.2f s\n", lastRx > 0 ? (1.0 * millis() - lastRx) / 1000 : 0);
lastRx = millis();
}
RADIOLIB_OR_HALT(radio.startReceive(RADIOLIB_SX126X_RX_TIMEOUT_INF));
}
}
// can't do Serial or display things here, takes too much time for the interrupt
// so instead set a flag and wait for the next loop() call
void rx() {
rxFlag = true;
}
// Turns the 'PRG' button into the power button, long press is off
#define HELTEC_POWER_BUTTON
// "Heltec ESP32 LoRa v3" by "Rop Gonggrijp" - https://github.com/ropg/Heltec_ESP32_LoRa_v3
#include <heltec_unofficial.h>
// see file at the bottom of this page
#include "cousine10.hpp"
#ifndef String
// include Arduino core libs if not already included
#include <Arduino.h>
#endif
// in seconds, pause between sending packets
#define PAUSE 10
// 866.3 - 868 for EU
#define FREQUENCY 866.3
// allowed values are 7.8, 10.4, 15.6, 20.8, 31.25, 41.7, 62.5, 125.0, 250.0 and 500.0 kHz
#define BANDWIDTH 250.0
// 5 to 12 - higher means slower but higher "processor gain" / distance
// #define SPREADING_FACTOR 12
#define SPREADING_FACTOR 10
// in dBm, -9 to 22 - (for a 3dBi antenna with a 10dB attenuator in the legal EU range, 21 is the max)
// #define TRANSMIT_POWER 21
#define TRANSMIT_POWER 18
#define BEACON_MSG "Sv443"
long counter = 0;
uint64_t last_tx = 0;
uint64_t tx_time;
uint64_t minimum_pause;
void setup() {
heltec_setup();
heltec_ve(true); // see https://github.com/ropg/heltec_esp32_lora_v3/issues/63
Serial.println("Radio init");
RADIOLIB_OR_HALT(radio.begin());
// set radio parameters
Serial.printf("Frequency: %.2f MHz\n", FREQUENCY);
RADIOLIB_OR_HALT(radio.setFrequency(FREQUENCY));
Serial.printf("Bandwidth: %.1f kHz\n", BANDWIDTH);
RADIOLIB_OR_HALT(radio.setBandwidth(BANDWIDTH));
Serial.printf("Spreading Factor: %i\n", SPREADING_FACTOR);
RADIOLIB_OR_HALT(radio.setSpreadingFactor(SPREADING_FACTOR));
Serial.printf("TX power: %i dBm\n", TRANSMIT_POWER);
RADIOLIB_OR_HALT(radio.setOutputPower(TRANSMIT_POWER));
// see Documents/Arduino/libraries/Heltec_ESP32_Dev-Boards/src/HT_Display.h
display.cls();
// custom font:
display.setFont(static_cast<const uint8_t*>(reinterpret_cast<const void*>(Cousine_Regular_10)));
// builtin font:
// display.setFont(ArialMT_Plain_10);
display.setBrightness(127);
display.printf("Setup...");
}
void loop() {
heltec_loop();
bool tx_legal = millis() > last_tx + minimum_pause;
// Serial.print("Millis: ");
// Serial.println(millis());
// Serial.print("Legal: ");
// Serial.println(last_tx + minimum_pause);
// Serial.print("T: ");
// Serial.println(millis() - last_tx);
if((PAUSE && tx_legal && millis() - last_tx > (PAUSE * 1000) || PAUSE && minimum_pause == 0)/* || button.isSingleClick()*/) {
// in case of manual trigger:
if(!tx_legal) {
Serial.printf("Legal limit, wait %i sec.\n", (int)((minimum_pause - (millis() - last_tx)) / 1000) + 1);
return;
}
Serial.printf("TX [%s] ", String(counter).c_str());
// remove transceive function hook if set
radio.clearDio1Action();
heltec_led(33); // 0-100%
tx_time = millis();
counter++;
RADIOLIB(radio.transmit(String(BEACON_MSG).c_str()));
tx_time = millis() - tx_time;
heltec_led(0);
if(_radiolib_status == RADIOLIB_ERR_NONE)
Serial.printf("OK (%i ms)\n", (int)tx_time);
else
Serial.printf("fail (%i)\n", _radiolib_status);
// calculate pause from max. 1% duty cycle to stay within legal limits
minimum_pause = tx_time * 100;
Serial.printf("tx_time: %i", tx_time);
Serial.printf(" - minimum_pause: %i\n", minimum_pause);
last_tx = millis();
}
display.cls();
double lastTx = (1.0 * millis() - last_tx) / 1000;
display.printf("Last TX: %s-%.2f s\n", lastTx < 10 ? " " : "", lastTx);
display.printf("Interval: %.2f s\n", (1.0 * max((uint64_t)(PAUSE * 1000), minimum_pause)) / 1000);
// display.printf("Tgt. Iv.: %.2f s\n", (1.0 * PAUSE));
// display.printf("Min. Iv.: %.2f s\n", (1.0 * minimum_pause / 1000));
display.printf("SF: %i - TP: %i dBm\n", SPREADING_FACTOR, TRANSMIT_POWER);
delay(1000);
}
// Created by https://oleddisplay.squix.ch/ Consider a donation
// In case of problems make sure that you are using the font file with the correct version!
const char Cousine_Regular_10[] PROGMEM = {
0x06, // Width: 6
0x0C, // Height: 12
0x20, // First Char: 32
0xE0, // Numbers of Chars: 224
// Jump Table:
0xFF, 0xFF, 0x00, 0x06, // 32:65535
0x00, 0x00, 0x08, 0x06, // 33:0
0x00, 0x08, 0x09, 0x06, // 34:8
0x00, 0x11, 0x0B, 0x06, // 35:17
0x00, 0x1C, 0x0B, 0x06, // 36:28
0x00, 0x27, 0x0C, 0x06, // 37:39
0x00, 0x33, 0x0C, 0x06, // 38:51
0x00, 0x3F, 0x07, 0x06, // 39:63
0x00, 0x46, 0x08, 0x06, // 40:70
0x00, 0x4E, 0x08, 0x06, // 41:78
0x00, 0x56, 0x09, 0x06, // 42:86
0x00, 0x5F, 0x09, 0x06, // 43:95
0x00, 0x68, 0x06, 0x06, // 44:104
0x00, 0x6E, 0x07, 0x06, // 45:110
0x00, 0x75, 0x08, 0x06, // 46:117
0x00, 0x7D, 0x09, 0x06, // 47:125
0x00, 0x86, 0x09, 0x06, // 48:134
0x00, 0x8F, 0x0C, 0x06, // 49:143
0x00, 0x9B, 0x0A, 0x06, // 50:155
0x00, 0xA5, 0x0A, 0x06, // 51:165
0x00, 0xAF, 0x0B, 0x06, // 52:175
0x00, 0xBA, 0x09, 0x06, // 53:186
0x00, 0xC3, 0x0A, 0x06, // 54:195
0x00, 0xCD, 0x09, 0x06, // 55:205
0x00, 0xD6, 0x0A, 0x06, // 56:214
0x00, 0xE0, 0x09, 0x06, // 57:224
0x00, 0xE9, 0x08, 0x06, // 58:233
0x00, 0xF1, 0x08, 0x06, // 59:241
0x00, 0xF9, 0x09, 0x06, // 60:249
0x01, 0x02, 0x09, 0x06, // 61:258
0x01, 0x0B, 0x09, 0x06, // 62:267
0x01, 0x14, 0x09, 0x06, // 63:276
0x01, 0x1D, 0x0B, 0x06, // 64:285
0x01, 0x28, 0x0C, 0x06, // 65:296
0x01, 0x34, 0x0B, 0x06, // 66:308
0x01, 0x3F, 0x0A, 0x06, // 67:319
0x01, 0x49, 0x0B, 0x06, // 68:329
0x01, 0x54, 0x0A, 0x06, // 69:340
0x01, 0x5E, 0x09, 0x06, // 70:350
0x01, 0x67, 0x0A, 0x06, // 71:359
0x01, 0x71, 0x0A, 0x06, // 72:369
0x01, 0x7B, 0x0A, 0x06, // 73:379
0x01, 0x85, 0x09, 0x06, // 74:389
0x01, 0x8E, 0x0C, 0x06, // 75:398
0x01, 0x9A, 0x0A, 0x06, // 76:410
0x01, 0xA4, 0x0A, 0x06, // 77:420
0x01, 0xAE, 0x0A, 0x06, // 78:430
0x01, 0xB8, 0x0B, 0x06, // 79:440
0x01, 0xC3, 0x09, 0x06, // 80:451
0x01, 0xCC, 0x0C, 0x06, // 81:460
0x01, 0xD8, 0x0A, 0x06, // 82:472
0x01, 0xE2, 0x0A, 0x06, // 83:482
0x01, 0xEC, 0x0B, 0x06, // 84:492
0x01, 0xF7, 0x0A, 0x06, // 85:503
0x02, 0x01, 0x0B, 0x06, // 86:513
0x02, 0x0C, 0x0B, 0x06, // 87:524
0x02, 0x17, 0x0C, 0x06, // 88:535
0x02, 0x23, 0x0B, 0x06, // 89:547
0x02, 0x2E, 0x0C, 0x06, // 90:558
0x02, 0x3A, 0x0A, 0x06, // 91:570
0x02, 0x44, 0x0A, 0x06, // 92:580
0x02, 0x4E, 0x08, 0x06, // 93:590
0x02, 0x56, 0x09, 0x06, // 94:598
0x02, 0x5F, 0x0C, 0x06, // 95:607
0x02, 0x6B, 0x07, 0x06, // 96:619
0x02, 0x72, 0x0C, 0x06, // 97:626
0x02, 0x7E, 0x0A, 0x06, // 98:638
0x02, 0x88, 0x0A, 0x06, // 99:648
0x02, 0x92, 0x0A, 0x06, // 100:658
0x02, 0x9C, 0x0A, 0x06, // 101:668
0x02, 0xA6, 0x09, 0x06, // 102:678
0x02, 0xAF, 0x0A, 0x06, // 103:687
0x02, 0xB9, 0x0A, 0x06, // 104:697
0x02, 0xC3, 0x0C, 0x06, // 105:707
0x02, 0xCF, 0x08, 0x06, // 106:719
0x02, 0xD7, 0x0A, 0x06, // 107:727
0x02, 0xE1, 0x0A, 0x06, // 108:737
0x02, 0xEB, 0x0A, 0x06, // 109:747
0x02, 0xF5, 0x0A, 0x06, // 110:757
0x02, 0xFF, 0x0A, 0x06, // 111:767
0x03, 0x09, 0x0A, 0x06, // 112:777
0x03, 0x13, 0x0A, 0x06, // 113:787
0x03, 0x1D, 0x09, 0x06, // 114:797
0x03, 0x26, 0x0A, 0x06, // 115:806
0x03, 0x30, 0x0A, 0x06, // 116:816
0x03, 0x3A, 0x0A, 0x06, // 117:826
0x03, 0x44, 0x09, 0x06, // 118:836
0x03, 0x4D, 0x0B, 0x06, // 119:845
0x03, 0x58, 0x0A, 0x06, // 120:856
0x03, 0x62, 0x09, 0x06, // 121:866
0x03, 0x6B, 0x0A, 0x06, // 122:875
0x03, 0x75, 0x0A, 0x06, // 123:885
0x03, 0x7F, 0x08, 0x06, // 124:895
0x03, 0x87, 0x09, 0x06, // 125:903
0x03, 0x90, 0x09, 0x06, // 126:912
0x03, 0x99, 0x08, 0x06, // 127:921
0x03, 0xA1, 0x08, 0x06, // 128:929
0x03, 0xA9, 0x08, 0x06, // 129:937
0x03, 0xB1, 0x08, 0x06, // 130:945
0x03, 0xB9, 0x08, 0x06, // 131:953
0x03, 0xC1, 0x08, 0x06, // 132:961
0x03, 0xC9, 0x08, 0x06, // 133:969
0x03, 0xD1, 0x08, 0x06, // 134:977
0x03, 0xD9, 0x08, 0x06, // 135:985
0x03, 0xE1, 0x08, 0x06, // 136:993
0x03, 0xE9, 0x08, 0x06, // 137:1001
0x03, 0xF1, 0x08, 0x06, // 138:1009
0x03, 0xF9, 0x08, 0x06, // 139:1017
0x04, 0x01, 0x08, 0x06, // 140:1025
0x04, 0x09, 0x08, 0x06, // 141:1033
0x04, 0x11, 0x08, 0x06, // 142:1041
0x04, 0x19, 0x08, 0x06, // 143:1049
0x04, 0x21, 0x08, 0x06, // 144:1057
0x04, 0x29, 0x08, 0x06, // 145:1065
0x04, 0x31, 0x08, 0x06, // 146:1073
0x04, 0x39, 0x08, 0x06, // 147:1081
0x04, 0x41, 0x08, 0x06, // 148:1089
0x04, 0x49, 0x08, 0x06, // 149:1097
0x04, 0x51, 0x08, 0x06, // 150:1105
0x04, 0x59, 0x08, 0x06, // 151:1113
0x04, 0x61, 0x08, 0x06, // 152:1121
0x04, 0x69, 0x08, 0x06, // 153:1129
0x04, 0x71, 0x08, 0x06, // 154:1137
0x04, 0x79, 0x08, 0x06, // 155:1145
0x04, 0x81, 0x08, 0x06, // 156:1153
0x04, 0x89, 0x08, 0x06, // 157:1161
0x04, 0x91, 0x08, 0x06, // 158:1169
0x04, 0x99, 0x08, 0x06, // 159:1177
0xFF, 0xFF, 0x00, 0x06, // 160:65535
0x04, 0xA1, 0x08, 0x06, // 161:1185
0x04, 0xA9, 0x09, 0x06, // 162:1193
0x04, 0xB2, 0x0C, 0x06, // 163:1202
0x04, 0xBE, 0x09, 0x06, // 164:1214
0x04, 0xC7, 0x09, 0x06, // 165:1223
0x04, 0xD0, 0x08, 0x06, // 166:1232
0x04, 0xD8, 0x0A, 0x06, // 167:1240
0x04, 0xE2, 0x07, 0x06, // 168:1250
0x04, 0xE9, 0x0B, 0x06, // 169:1257
0x04, 0xF4, 0x09, 0x06, // 170:1268
0x04, 0xFD, 0x09, 0x06, // 171:1277
0x05, 0x06, 0x09, 0x06, // 172:1286
0x05, 0x0F, 0x07, 0x06, // 173:1295
0x05, 0x16, 0x0B, 0x06, // 174:1302
0x05, 0x21, 0x0B, 0x06, // 175:1313
0x05, 0x2C, 0x07, 0x06, // 176:1324
0x05, 0x33, 0x0A, 0x06, // 177:1331
0x05, 0x3D, 0x07, 0x06, // 178:1341
0x05, 0x44, 0x09, 0x06, // 179:1348
0x05, 0x4D, 0x07, 0x06, // 180:1357
0x05, 0x54, 0x0A, 0x06, // 181:1364
0x05, 0x5E, 0x0A, 0x06, // 182:1374
0x05, 0x68, 0x07, 0x06, // 183:1384
0x05, 0x6F, 0x04, 0x06, // 184:1391
0x05, 0x73, 0x09, 0x06, // 185:1395
0x05, 0x7C, 0x09, 0x06, // 186:1404
0x05, 0x85, 0x09, 0x06, // 187:1413
0x05, 0x8E, 0x0C, 0x06, // 188:1422
0x05, 0x9A, 0x0C, 0x06, // 189:1434
0x05, 0xA6, 0x0C, 0x06, // 190:1446
0x05, 0xB2, 0x0A, 0x06, // 191:1458
0x05, 0xBC, 0x0C, 0x06, // 192:1468
0x05, 0xC8, 0x0C, 0x06, // 193:1480
0x05, 0xD4, 0x0C, 0x06, // 194:1492
0x05, 0xE0, 0x0C, 0x06, // 195:1504
0x05, 0xEC, 0x0C, 0x06, // 196:1516
0x05, 0xF8, 0x0C, 0x06, // 197:1528
0x06, 0x04, 0x0C, 0x06, // 198:1540
0x06, 0x10, 0x0A, 0x06, // 199:1552
0x06, 0x1A, 0x0A, 0x06, // 200:1562
0x06, 0x24, 0x0A, 0x06, // 201:1572
0x06, 0x2E, 0x0A, 0x06, // 202:1582
0x06, 0x38, 0x0A, 0x06, // 203:1592
0x06, 0x42, 0x0A, 0x06, // 204:1602
0x06, 0x4C, 0x0A, 0x06, // 205:1612
0x06, 0x56, 0x0A, 0x06, // 206:1622
0x06, 0x60, 0x0A, 0x06, // 207:1632
0x06, 0x6A, 0x0B, 0x06, // 208:1642
0x06, 0x75, 0x0A, 0x06, // 209:1653
0x06, 0x7F, 0x0B, 0x06, // 210:1663
0x06, 0x8A, 0x0B, 0x06, // 211:1674
0x06, 0x95, 0x0B, 0x06, // 212:1685
0x06, 0xA0, 0x0B, 0x06, // 213:1696
0x06, 0xAB, 0x0B, 0x06, // 214:1707
0x06, 0xB6, 0x09, 0x06, // 215:1718
0x06, 0xBF, 0x0B, 0x06, // 216:1727
0x06, 0xCA, 0x0A, 0x06, // 217:1738
0x06, 0xD4, 0x0A, 0x06, // 218:1748
0x06, 0xDE, 0x0A, 0x06, // 219:1758
0x06, 0xE8, 0x0A, 0x06, // 220:1768
0x06, 0xF2, 0x0B, 0x06, // 221:1778
0x06, 0xFD, 0x09, 0x06, // 222:1789
0x07, 0x06, 0x0B, 0x06, // 223:1798
0x07, 0x11, 0x0C, 0x06, // 224:1809
0x07, 0x1D, 0x0C, 0x06, // 225:1821
0x07, 0x29, 0x0C, 0x06, // 226:1833
0x07, 0x35, 0x0C, 0x06, // 227:1845
0x07, 0x41, 0x0C, 0x06, // 228:1857
0x07, 0x4D, 0x0C, 0x06, // 229:1869
0x07, 0x59, 0x0C, 0x06, // 230:1881
0x07, 0x65, 0x0A, 0x06, // 231:1893
0x07, 0x6F, 0x0A, 0x06, // 232:1903
0x07, 0x79, 0x0A, 0x06, // 233:1913
0x07, 0x83, 0x0A, 0x06, // 234:1923
0x07, 0x8D, 0x0A, 0x06, // 235:1933
0x07, 0x97, 0x0C, 0x06, // 236:1943
0x07, 0xA3, 0x0C, 0x06, // 237:1955
0x07, 0xAF, 0x0C, 0x06, // 238:1967
0x07, 0xBB, 0x0C, 0x06, // 239:1979
0x07, 0xC7, 0x0A, 0x06, // 240:1991
0x07, 0xD1, 0x0A, 0x06, // 241:2001
0x07, 0xDB, 0x0A, 0x06, // 242:2011
0x07, 0xE5, 0x0A, 0x06, // 243:2021
0x07, 0xEF, 0x0A, 0x06, // 244:2031
0x07, 0xF9, 0x0A, 0x06, // 245:2041
0x08, 0x03, 0x0A, 0x06, // 246:2051
0x08, 0x0D, 0x09, 0x06, // 247:2061
0x08, 0x16, 0x0A, 0x06, // 248:2070
0x08, 0x20, 0x0A, 0x06, // 249:2080
0x08, 0x2A, 0x0A, 0x06, // 250:2090
0x08, 0x34, 0x0A, 0x06, // 251:2100
0x08, 0x3E, 0x0A, 0x06, // 252:2110
0x08, 0x48, 0x09, 0x06, // 253:2120
0x08, 0x51, 0x0A, 0x06, // 254:2129
0x08, 0x5B, 0x09, 0x06, // 255:2139
// Font Data:
0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x01, // 33
0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C, // 34
0x40,0x00,0xF0,0x01,0x5C,0x00,0xD0,0x01,0x7C,0x00,0x10, // 35
0x80,0x00,0x1C,0x01,0x24,0x01,0xFE,0x03,0x2C,0x01,0xC0, // 36
0x1C,0x00,0x94,0x01,0x7C,0x00,0xD0,0x01,0x4C,0x01,0xC0,0x01, // 37
0xC0,0x00,0x38,0x01,0x64,0x01,0x94,0x01,0xE8,0x01,0x00,0x01, // 38
0x00,0x00,0x00,0x00,0x1C,0x00,0x04, // 39
0x00,0x00,0x00,0x00,0xF8,0x03,0x04,0x04, // 40
0x00,0x00,0x00,0x00,0x04,0x04,0xF8,0x03, // 41
0x00,0x00,0x08,0x00,0x30,0x00,0x3C,0x00,0x08, // 42
0x00,0x00,0x20,0x00,0x78,0x00,0x20,0x00,0x20, // 43
0x00,0x00,0x00,0x04,0x00,0x03, // 44
0x00,0x00,0x00,0x00,0x40,0x00,0x40, // 45
0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01, // 46
0x00,0x00,0x80,0x01,0x60,0x00,0x10,0x00,0x0C, // 47
0x00,0x00,0xF8,0x00,0x24,0x01,0x24,0x01,0xF8, // 48
0x00,0x00,0x08,0x01,0x04,0x01,0xFC,0x01,0x00,0x01,0x00,0x01, // 49
0x00,0x00,0x8C,0x01,0x44,0x01,0x24,0x01,0x3C,0x01, // 50
0x00,0x00,0x8C,0x01,0x24,0x01,0x24,0x01,0xDC,0x01, // 51
0x40,0x00,0x60,0x00,0x58,0x00,0x44,0x00,0xFC,0x01,0x40, // 52
0x00,0x00,0x9C,0x01,0x14,0x01,0x14,0x01,0xF4, // 53
0x00,0x00,0xF8,0x00,0x24,0x01,0x24,0x01,0xE8,0x01, // 54
0x00,0x00,0x04,0x00,0xC4,0x01,0x34,0x00,0x0C, // 55
0x00,0x00,0xDC,0x01,0x24,0x01,0x24,0x01,0xDC,0x01, // 56
0x00,0x00,0xBC,0x01,0x24,0x01,0x24,0x01,0xF8, // 57
0x00,0x00,0x00,0x00,0x10,0x01,0x10,0x01, // 58
0x00,0x00,0x00,0x00,0x10,0x07,0x10,0x01, // 59
0x00,0x00,0x20,0x00,0x50,0x00,0x50,0x00,0x88, // 60
0x00,0x00,0x50,0x00,0x50,0x00,0x50,0x00,0x50, // 61
0x00,0x00,0x88,0x00,0x50,0x00,0x50,0x00,0x20, // 62
0x00,0x00,0x0C,0x00,0x44,0x01,0x24,0x00,0x1C, // 63
0xF0,0x01,0x68,0x02,0x94,0x02,0x54,0x02,0xB4,0x02,0x78, // 64
0x80,0x01,0x60,0x00,0x5C,0x00,0x4C,0x00,0x70,0x00,0x80,0x01, // 65
0x00,0x00,0xFC,0x01,0x24,0x01,0x24,0x01,0x3C,0x01,0xC0, // 66
0x00,0x00,0xF8,0x00,0x04,0x01,0x04,0x01,0x8C,0x01, // 67
0x00,0x00,0xFC,0x01,0x04,0x01,0x04,0x01,0xD8,0x00,0x20, // 68
0x00,0x00,0xFC,0x01,0x24,0x01,0x24,0x01,0x24,0x01, // 69
0x00,0x00,0xFC,0x01,0x24,0x00,0x24,0x00,0x24, // 70
0x00,0x00,0xF8,0x00,0x04,0x01,0x24,0x01,0xEC,0x01, // 71
0x00,0x00,0xFC,0x01,0x20,0x00,0x20,0x00,0xFC,0x01, // 72
0x00,0x00,0x04,0x01,0xFC,0x01,0x04,0x01,0x04,0x01, // 73
0x00,0x00,0x80,0x01,0x04,0x01,0x04,0x01,0xFC, // 74
0x00,0x00,0xFC,0x01,0x20,0x00,0x78,0x00,0x84,0x00,0x00,0x01, // 75
0x00,0x00,0xFC,0x01,0x00,0x01,0x00,0x01,0x00,0x01, // 76
0x00,0x00,0xFC,0x01,0x30,0x00,0x70,0x00,0xFC,0x01, // 77
0x00,0x00,0xFC,0x01,0x38,0x00,0xC0,0x00,0xFC,0x01, // 78
0x20,0x00,0xDC,0x00,0x04,0x01,0x04,0x01,0xDC,0x00,0x20, // 79
0x00,0x00,0xFC,0x01,0x24,0x00,0x24,0x00,0x3C, // 80
0x20,0x00,0xDC,0x01,0x04,0x01,0x04,0x07,0xDC,0x04,0x20,0x04, // 81
0x00,0x00,0xFC,0x01,0x24,0x00,0x64,0x00,0x9C,0x01, // 82
0x80,0x00,0x1C,0x01,0x24,0x01,0x24,0x01,0xEC,0x01, // 83
0x04,0x00,0x04,0x00,0xFC,0x01,0x04,0x00,0x04,0x00,0x04, // 84
0x00,0x00,0xFC,0x01,0x00,0x01,0x00,0x01,0xFC,0x01, // 85
0x04,0x00,0x38,0x00,0xC0,0x01,0xC0,0x01,0x38,0x00,0x04, // 86
0x3C,0x00,0xC0,0x01,0x70,0x00,0x70,0x00,0xC0,0x01,0x3C, // 87
0x00,0x01,0x8C,0x00,0x70,0x00,0x70,0x00,0x8C,0x00,0x00,0x01, // 88
0x04,0x00,0x08,0x00,0xF0,0x01,0x30,0x00,0x08,0x00,0x04, // 89
0x00,0x01,0x84,0x01,0x64,0x01,0x14,0x01,0x0C,0x01,0x00,0x01, // 90
0x00,0x00,0x00,0x00,0xFC,0x07,0x04,0x04,0x04,0x04, // 91
0x00,0x00,0x0C,0x00,0x30,0x00,0x40,0x00,0x80,0x01, // 92
0x00,0x00,0x04,0x04,0x04,0x04,0xFC,0x07, // 93
0x00,0x00,0x30,0x00,0x0C,0x00,0x0C,0x00,0x30, // 94
0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04, // 95
0x00,0x00,0x00,0x00,0x02,0x00,0x04, // 96
0x00,0x00,0xD0,0x01,0x50,0x01,0x50,0x01,0xE0,0x01,0x00,0x01, // 97
0x00,0x00,0xFC,0x01,0x10,0x01,0x10,0x01,0xF0,0x01, // 98
0x00,0x00,0xF0,0x01,0x10,0x01,0x10,0x01,0x10,0x01, // 99
0x00,0x00,0xF0,0x01,0x10,0x01,0x10,0x01,0xFC,0x01, // 100
0x00,0x00,0xF0,0x01,0x50,0x01,0x50,0x01,0x70,0x01, // 101
0x00,0x00,0x10,0x00,0xFC,0x01,0x14,0x00,0x14, // 102
0x00,0x00,0xF0,0x05,0x10,0x05,0x10,0x05,0xF0,0x07, // 103
0x00,0x00,0xFC,0x01,0x10,0x00,0x10,0x00,0xF0,0x01, // 104
0x00,0x00,0x10,0x01,0x10,0x01,0xF4,0x01,0x00,0x01,0x00,0x01, // 105
0x00,0x00,0x10,0x04,0x10,0x04,0xF4,0x07, // 106
0x00,0x00,0xFC,0x01,0x40,0x00,0xE0,0x00,0x10,0x01, // 107
0x00,0x00,0x04,0x01,0x04,0x01,0xFC,0x01,0x00,0x01, // 108
0xE0,0x01,0x10,0x00,0xD0,0x01,0x30,0x00,0xF0,0x01, // 109
0x00,0x00,0xF0,0x01,0x10,0x00,0x10,0x00,0xF0,0x01, // 110
0x00,0x00,0xF0,0x01,0x10,0x01,0x10,0x01,0xF0,0x01, // 111
0x00,0x00,0xF0,0x07,0x10,0x01,0x10,0x01,0xF0,0x01, // 112
0x00,0x00,0xF0,0x01,0x10,0x01,0x10,0x01,0xF0,0x07, // 113
0x00,0x00,0xF0,0x01,0x20,0x00,0x10,0x00,0x10, // 114
0x00,0x00,0x30,0x01,0x50,0x01,0x50,0x01,0xD0,0x01, // 115
0x00,0x00,0x10,0x00,0xF8,0x01,0x10,0x01,0x10,0x01, // 116
0x00,0x00,0xF0,0x01,0x00,0x01,0x00,0x01,0xF0,0x01, // 117
0x00,0x00,0x70,0x00,0x80,0x01,0x80,0x01,0x70, // 118
0x70,0x00,0x80,0x01,0x60,0x00,0x60,0x00,0x80,0x01,0x70, // 119
0x00,0x00,0x10,0x01,0xE0,0x00,0xE0,0x00,0x10,0x01, // 120
0x00,0x00,0x70,0x04,0x80,0x07,0x80,0x01,0x70, // 121
0x00,0x00,0x90,0x01,0x50,0x01,0x30,0x01,0x10,0x01, // 122
0x00,0x00,0x40,0x00,0xF8,0x03,0x04,0x04,0x04,0x04, // 123
0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x07, // 124
0x00,0x00,0x04,0x04,0x04,0x04,0xF8,0x03,0x40, // 125
0x00,0x00,0x10,0x00,0x10,0x00,0x20,0x00,0x20, // 126
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 127
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 128
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 129
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 130
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 131
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 132
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 133
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 134
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 135
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 136
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 137
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 138
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 139
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 140
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 141
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 142
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 143
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 144
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 145
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 146
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 147
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 148
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 149
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 150
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 151
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 152
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 153
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 154
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 155
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 156
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 157
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 158
0x00,0x00,0xE0,0x01,0x20,0x01,0xE0,0x01, // 159
0x00,0x00,0x00,0x00,0x00,0x00,0xD0,0x07, // 161
0x00,0x00,0xF8,0x00,0x88,0x00,0x8C,0x01,0x88, // 162
0x20,0x01,0xF8,0x01,0x24,0x01,0x24,0x01,0x0C,0x01,0x00,0x01, // 163
0x00,0x00,0xF0,0x00,0x90,0x00,0x90,0x00,0xF0, // 164
0x00,0x00,0xAC,0x00,0xF0,0x01,0xB0,0x00,0xAC, // 165
0x00,0x00,0x00,0x00,0x00,0x00,0xBC,0x07, // 166
0x00,0x00,0x6C,0x02,0x94,0x02,0x94,0x02,0xE4,0x03, // 167
0x00,0x00,0x00,0x00,0x04,0x00,0x04, // 168
0xF8,0x00,0x24,0x01,0x54,0x01,0x54,0x01,0x04,0x01,0xF8, // 169
0x00,0x00,0x34,0x00,0x34,0x00,0x14,0x00,0x28, // 170
0x00,0x00,0x60,0x00,0x90,0x00,0x60,0x00,0x90, // 171
0x00,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x60, // 172
0x00,0x00,0x00,0x00,0x40,0x00,0x40, // 173
0xF8,0x00,0x74,0x01,0x34,0x01,0x74,0x01,0x04,0x01,0xF8, // 174
0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02, // 175
0x00,0x00,0x00,0x00,0x1C,0x00,0x1C, // 176
0x00,0x00,0x20,0x01,0x78,0x01,0x20,0x01,0x20,0x01, // 177
0x00,0x00,0x00,0x00,0x34,0x00,0x2C, // 178
0x00,0x00,0x00,0x00,0x24,0x00,0x2C,0x00,0x10, // 179
0x00,0x00,0x00,0x00,0x04,0x00,0x02, // 180
0x00,0x00,0xF0,0x07,0x00,0x01,0x00,0x01,0xF0,0x01, // 181
0x00,0x00,0x3C,0x00,0xFC,0x07,0x04,0x00,0xFC,0x07, // 182
0x00,0x00,0x00,0x00,0x20,0x00,0x20, // 183
0x00,0x00,0x00,0x06, // 184
0x00,0x00,0x28,0x00,0x24,0x00,0x38,0x00,0x20, // 185
0x00,0x00,0x18,0x00,0x24,0x00,0x24,0x00,0x18, // 186
0x00,0x00,0x90,0x00,0x60,0x00,0x90,0x00,0x60, // 187
0x08,0x00,0x3C,0x01,0xE0,0x00,0xD8,0x00,0xA4,0x00,0xC0,0x01, // 188
0x08,0x00,0x3C,0x01,0xC0,0x00,0x38,0x01,0xA4,0x01,0x40,0x01, // 189
0x24,0x00,0x2C,0x01,0xF0,0x00,0xD8,0x00,0xA4,0x00,0xC0,0x01, // 190
0x00,0x00,0x00,0x07,0x80,0x04,0x50,0x04,0x00,0x06, // 191
0x80,0x01,0x60,0x00,0x5C,0x00,0x4D,0x00,0x70,0x00,0x80,0x01, // 192
0x80,0x01,0x60,0x00,0x5C,0x00,0x4D,0x00,0x70,0x00,0x80,0x01, // 193
0x80,0x01,0x61,0x00,0x5C,0x00,0x4C,0x00,0x71,0x00,0x80,0x01, // 194
0x80,0x01,0x61,0x00,0x5C,0x00,0x4D,0x00,0x70,0x00,0x80,0x01, // 195
0x80,0x01,0x60,0x00,0x5D,0x00,0x4D,0x00,0x70,0x00,0x80,0x01, // 196
0x80,0x01,0x60,0x00,0x5F,0x00,0x4F,0x00,0x70,0x00,0x80,0x01, // 197
0x80,0x01,0x70,0x00,0x4C,0x00,0xFC,0x01,0x24,0x01,0x24,0x01, // 198
0x00,0x00,0xF8,0x00,0x04,0x01,0x04,0x07,0x8C,0x01, // 199
0x00,0x00,0xFC,0x01,0x24,0x01,0x25,0x01,0x24,0x01, // 200
0x00,0x00,0xFC,0x01,0x24,0x01,0x25,0x01,0x24,0x01, // 201
0x00,0x00,0xFD,0x01,0x24,0x01,0x24,0x01,0x25,0x01, // 202
0x00,0x00,0xFC,0x01,0x25,0x01,0x25,0x01,0x24,0x01, // 203
0x00,0x00,0x04,0x01,0xFC,0x01,0x05,0x01,0x04,0x01, // 204
0x00,0x00,0x04,0x01,0xFC,0x01,0x05,0x01,0x04,0x01, // 205
0x00,0x00,0x05,0x01,0xFC,0x01,0x04,0x01,0x05,0x01, // 206
0x00,0x00,0x04,0x01,0xFD,0x01,0x05,0x01,0x04,0x01, // 207
0x20,0x00,0xFC,0x01,0x24,0x01,0x04,0x01,0xD8,0x00,0x20, // 208
0x00,0x00,0xFD,0x01,0x38,0x00,0xC1,0x00,0xFC,0x01, // 209
0x20,0x00,0xDC,0x00,0x04,0x01,0x05,0x01,0xDC,0x00,0x20, // 210
0x20,0x00,0xDC,0x00,0x04,0x01,0x05,0x01,0xDC,0x00,0x20, // 211
0x20,0x00,0xDD,0x00,0x04,0x01,0x04,0x01,0xDD,0x00,0x20, // 212
0x20,0x00,0xDD,0x00,0x04,0x01,0x05,0x01,0xDC,0x00,0x20, // 213
0x20,0x00,0xDC,0x00,0x05,0x01,0x05,0x01,0xDC,0x00,0x20, // 214
0x00,0x00,0xD8,0x00,0x70,0x00,0x70,0x00,0xD8, // 215
0x20,0x01,0xDC,0x00,0x64,0x01,0x14,0x01,0xDC,0x00,0x24, // 216
0x00,0x00,0xFC,0x01,0x00,0x01,0x01,0x01,0xFC,0x01, // 217
0x00,0x00,0xFC,0x01,0x00,0x01,0x01,0x01,0xFC,0x01, // 218
0x00,0x00,0xFD,0x01,0x00,0x01,0x00,0x01,0xFD,0x01, // 219
0x00,0x00,0xFC,0x01,0x01,0x01,0x01,0x01,0xFC,0x01, // 220
0x04,0x00,0x08,0x00,0xF0,0x01,0x31,0x00,0x08,0x00,0x04, // 221
0x00,0x00,0xFC,0x01,0x88,0x00,0x88,0x00,0xF8, // 222
0x00,0x00,0xFC,0x01,0x04,0x00,0x34,0x01,0x4C,0x01,0x80, // 223
0x00,0x00,0xD0,0x01,0x52,0x01,0x54,0x01,0xE0,0x01,0x00,0x01, // 224
0x00,0x00,0xD0,0x01,0x50,0x01,0x54,0x01,0xE2,0x01,0x00,0x01, // 225
0x00,0x00,0xD4,0x01,0x52,0x01,0x52,0x01,0xE4,0x01,0x00,0x01, // 226
0x04,0x00,0xD2,0x01,0x54,0x01,0x52,0x01,0xE0,0x01,0x00,0x01, // 227
0x00,0x00,0xD0,0x01,0x54,0x01,0x54,0x01,0xE0,0x01,0x00,0x01, // 228
0x00,0x00,0xD0,0x01,0x57,0x01,0x57,0x01,0xE0,0x01,0x00,0x01, // 229
0xD0,0x01,0x50,0x01,0xF0,0x00,0x50,0x01,0x50,0x01,0x60,0x01, // 230
0x00,0x00,0xF0,0x01,0x10,0x01,0x10,0x07,0x10,0x01, // 231
0x00,0x00,0xF0,0x01,0x52,0x01,0x54,0x01,0x70,0x01, // 232
0x00,0x00,0xF0,0x01,0x50,0x01,0x54,0x01,0x72,0x01, // 233
0x00,0x00,0xF4,0x01,0x52,0x01,0x52,0x01,0x74,0x01, // 234
0x00,0x00,0xF0,0x01,0x54,0x01,0x54,0x01,0x70,0x01, // 235
0x00,0x00,0x10,0x01,0x12,0x01,0xF4,0x01,0x00,0x01,0x00,0x01, // 236
0x00,0x00,0x10,0x01,0x10,0x01,0xF4,0x01,0x02,0x01,0x00,0x01, // 237
0x00,0x00,0x14,0x01,0x12,0x01,0xF2,0x01,0x04,0x01,0x00,0x01, // 238
0x00,0x00,0x10,0x01,0x14,0x01,0xF4,0x01,0x00,0x01,0x00,0x01, // 239
0x00,0x00,0xE0,0x01,0x2C,0x01,0x2C,0x01,0xF4,0x01, // 240
0x00,0x00,0xF4,0x01,0x12,0x00,0x14,0x00,0xF2,0x01, // 241
0x00,0x00,0xF0,0x01,0x12,0x01,0x14,0x01,0xF0,0x01, // 242
0x00,0x00,0xF0,0x01,0x10,0x01,0x14,0x01,0xF2,0x01, // 243
0x00,0x00,0xF4,0x01,0x12,0x01,0x12,0x01,0xF4,0x01, // 244
0x00,0x00,0xF4,0x01,0x12,0x01,0x14,0x01,0xF2,0x01, // 245
0x00,0x00,0xF0,0x01,0x14,0x01,0x14,0x01,0xF0,0x01, // 246
0x00,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20, // 247
0x00,0x00,0xF0,0x01,0x50,0x01,0x30,0x01,0xF0,0x01, // 248
0x00,0x00,0xF0,0x01,0x02,0x01,0x04,0x01,0xF0,0x01, // 249
0x00,0x00,0xF0,0x01,0x00,0x01,0x04,0x01,0xF2,0x01, // 250
0x00,0x00,0xF4,0x01,0x02,0x01,0x02,0x01,0xF4,0x01, // 251
0x00,0x00,0xF0,0x01,0x04,0x01,0x04,0x01,0xF0,0x01, // 252
0x00,0x00,0x70,0x04,0x80,0x07,0x84,0x01,0x72, // 253
0x00,0x00,0xFC,0x07,0x10,0x01,0x10,0x01,0xF0,0x01, // 254
0x00,0x00,0x70,0x04,0x84,0x07,0x84,0x01,0x70 // 255
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment