Updated Font. Disabled low battery irq

pull/8/head
Max-Plastix 2022-02-18 10:53:01 -08:00
rodzic a89c71d526
commit 3ac1d7f5dc
6 zmienionych plików z 500 dodań i 16 usunięć

Wyświetl plik

@ -3,10 +3,10 @@
by [Max-Plastix](https://github.com/Max-Plastix/tbeam-helium-mapper/)
### TL;DR
Read through the comments in the three source files listed below. Edit to taste, compile, and Upload to your TTGO T-Beam device. Drive around and map the Helium network!
This code loads onto Lilygo TTGO T-Beam board to make a Helium Network Mapper. To build one, download this build, configure three files, and upload it to your device. Go travel around to contribute to the Helium Network Map.
## Purpose
The goal of this version is to have a **TTGO T-Beam** Mapper that's ideally suited to walking or driving, taking cues from the USB Power source and movement for activity level.
The goal of this software is to have a **TTGO T-Beam** Mapper that's ideally suited to walking or driving, taking cues from the USB Power source and movement for activity level.
This device uploads GPS coordinates from the TTGO T-Beam to the Helium network, be used for tracking and determining signal coverage of LoRaWAN gateways and hotspots.
With this software and a T-Beam device, one can contribute to the [Helium Network](https://www.helium.com) Mapper or Cargo projects.
@ -166,7 +166,7 @@ The top status line alternates between two displays every few seconds:
- `#ABC` is the last three hex digits of your DevEUI, so you can match it to the correct device in Console. Handy if you have several Mappers that look the same.
- `4.10v` is the battery voltage
- `48mA` is the charge (or discharge) current to the battery. The TTGO charges the battery cell at around 300mA from USB, when possible.
- Satellite Count is displayed on the right at all times.
- Satellite HDOP & Count is displayed on the right at all times. (Lower HDOP hints at better GSP accuracy.)
- The GPS Time of Day (UTC) alternates on the display line every 2 seconds.
- A `*** NO GPS ***` message will show when no GPS Fix is available.
@ -200,6 +200,10 @@ This turns the Base64 Payload into values for Lat, Long, Altitude, Speed, Batter
The [Decoder Function](https://github.com/Max-Plastix/tbeam-helium-mapper/blob/main/console-decoders/unified_decoder.js) can be pasted directly into the Console custom function.
(Note that HDOP is not sent in this data.)
## Grafana integration for custom maps
If you want to maintain your own device map, there is an excellent [Grafana guide](https://friendsoflittleyus.nl/grafana-helium-gps-tracker-on-raspberry-pi/) here and [template scripts](https://github.com/takeabyte/helium_mapper_grafana) by @takeabyte available.
# Downlink
This builds adds the option to reconfigure the Mapper remotely via Helium Downlink (network to device). You can change the maximum Time Interval, Distance, and Battery Cut-off voltage remotely.

Wyświetl plik

@ -36,8 +36,19 @@ function Decoder(bytes, port) {
decoded.last_latitude = latitude;
decoded.last_longitude = longitude;
decoded.battery = parseFloat((bytes[6] / 100 + 2).toFixed(2));
decoded.status = bytes[7];
decoded.value = bytes[8];
decoded.status = bytes[7];
switch (bytes[7]) {
case 1:
decoded.status = "BOOT";
break;
case 2:
decoded.status = "USB ON";
break
case 3:
decoded.status = "USB OFF";
break;
}
break;
case 6: // Lost GPS
decoded.last_latitude = latitude;

460
main/font.cpp 100644
Wyświetl plik

@ -0,0 +1,460 @@
#include <Arduino.h>
#include "font.h"
// Created by http://oleddisplay.squix.ch/
// Roboto Medium, Plain, 11
const uint8_t Custom_Font[] PROGMEM = {
0x0B, // Width: 11
0x0A, // Height: 13, hacked to 10 to fit four lines in scroll.
0x20, // First Char: 32
0xE0, // Numbers of Chars: 224
// Jump Table:
0xFF, 0xFF, 0x00, 0x03, // 32:65535
0x00, 0x00, 0x06, 0x04, // 33:0
0x00, 0x06, 0x07, 0x05, // 34:6
0x00, 0x0D, 0x0F, 0x08, // 35:13
0x00, 0x1C, 0x0C, 0x06, // 36:28
0x00, 0x28, 0x12, 0x0A, // 37:40
0x00, 0x3A, 0x10, 0x09, // 38:58
0x00, 0x4A, 0x03, 0x03, // 39:74
0x00, 0x4D, 0x06, 0x04, // 40:77
0x00, 0x53, 0x06, 0x04, // 41:83
0x00, 0x59, 0x09, 0x05, // 42:89
0x00, 0x62, 0x0F, 0x08, // 43:98
0x00, 0x71, 0x04, 0x03, // 44:113
0x00, 0x75, 0x07, 0x04, // 45:117
0x00, 0x7C, 0x04, 0x03, // 46:124
0x00, 0x80, 0x05, 0x03, // 47:128
0x00, 0x85, 0x0C, 0x06, // 48:133
0x00, 0x91, 0x0C, 0x06, // 49:145
0x00, 0x9D, 0x0C, 0x06, // 50:157
0x00, 0xA9, 0x0C, 0x06, // 51:169
0x00, 0xB5, 0x0B, 0x06, // 52:181
0x00, 0xC0, 0x0C, 0x06, // 53:192
0x00, 0xCC, 0x0C, 0x06, // 54:204
0x00, 0xD8, 0x0B, 0x06, // 55:216
0x00, 0xE3, 0x0C, 0x06, // 56:227
0x00, 0xEF, 0x0C, 0x06, // 57:239
0x00, 0xFB, 0x04, 0x03, // 58:251
0x00, 0xFF, 0x04, 0x03, // 59:255
0x01, 0x03, 0x0E, 0x08, // 60:259
0x01, 0x11, 0x0D, 0x08, // 61:273
0x01, 0x1E, 0x0D, 0x08, // 62:286
0x01, 0x2B, 0x09, 0x05, // 63:299
0x01, 0x34, 0x13, 0x0B, // 64:308
0x01, 0x47, 0x0E, 0x07, // 65:327
0x01, 0x55, 0x0C, 0x07, // 66:341
0x01, 0x61, 0x0E, 0x08, // 67:353
0x01, 0x6F, 0x0E, 0x08, // 68:367
0x01, 0x7D, 0x0C, 0x07, // 69:381
0x01, 0x89, 0x09, 0x06, // 70:393
0x01, 0x92, 0x0E, 0x08, // 71:402
0x01, 0xA0, 0x0E, 0x08, // 72:416
0x01, 0xAE, 0x04, 0x03, // 73:430
0x01, 0xB2, 0x04, 0x03, // 74:434
0x01, 0xB6, 0x0C, 0x07, // 75:438
0x01, 0xC2, 0x0C, 0x06, // 76:450
0x01, 0xCE, 0x10, 0x09, // 77:462
0x01, 0xDE, 0x0E, 0x08, // 78:478
0x01, 0xEC, 0x0E, 0x08, // 79:492
0x01, 0xFA, 0x0B, 0x07, // 80:506
0x02, 0x05, 0x0D, 0x08, // 81:517
0x02, 0x12, 0x0E, 0x07, // 82:530
0x02, 0x20, 0x0C, 0x07, // 83:544
0x02, 0x2C, 0x09, 0x05, // 84:556
0x02, 0x35, 0x0E, 0x08, // 85:565
0x02, 0x43, 0x0D, 0x07, // 86:579
0x02, 0x50, 0x11, 0x09, // 87:592
0x02, 0x61, 0x0C, 0x06, // 88:609
0x02, 0x6D, 0x0D, 0x07, // 89:621
0x02, 0x7A, 0x0C, 0x06, // 90:634
0x02, 0x86, 0x06, 0x04, // 91:646
0x02, 0x8C, 0x06, 0x03, // 92:652
0x02, 0x92, 0x06, 0x04, // 93:658
0x02, 0x98, 0x0D, 0x08, // 94:664
0x02, 0xA5, 0x0A, 0x05, // 95:677
0x02, 0xAF, 0x05, 0x05, // 96:687
0x02, 0xB4, 0x0C, 0x06, // 97:692
0x02, 0xC0, 0x0C, 0x06, // 98:704
0x02, 0xCC, 0x0A, 0x05, // 99:716
0x02, 0xD6, 0x0C, 0x06, // 100:726
0x02, 0xE2, 0x0C, 0x06, // 101:738
0x02, 0xEE, 0x07, 0x04, // 102:750
0x02, 0xF5, 0x0C, 0x06, // 103:757
0x03, 0x01, 0x0C, 0x06, // 104:769
0x03, 0x0D, 0x04, 0x02, // 105:781
0x03, 0x11, 0x04, 0x02, // 106:785
0x03, 0x15, 0x0A, 0x05, // 107:789
0x03, 0x1F, 0x04, 0x02, // 108:799
0x03, 0x23, 0x14, 0x0A, // 109:803
0x03, 0x37, 0x0C, 0x06, // 110:823
0x03, 0x43, 0x0C, 0x06, // 111:835
0x03, 0x4F, 0x0C, 0x06, // 112:847
0x03, 0x5B, 0x0C, 0x06, // 113:859
0x03, 0x67, 0x07, 0x04, // 114:871
0x03, 0x6E, 0x0A, 0x05, // 115:878
0x03, 0x78, 0x08, 0x04, // 116:888
0x03, 0x80, 0x0C, 0x06, // 117:896
0x03, 0x8C, 0x0B, 0x06, // 118:908
0x03, 0x97, 0x0F, 0x08, // 119:919
0x03, 0xA6, 0x0C, 0x06, // 120:934
0x03, 0xB2, 0x0B, 0x06, // 121:946
0x03, 0xBD, 0x0A, 0x05, // 122:957
0x03, 0xC7, 0x0A, 0x06, // 123:967
0x03, 0xD1, 0x04, 0x03, // 124:977
0x03, 0xD5, 0x09, 0x06, // 125:981
0x03, 0xDE, 0x0D, 0x08, // 126:990
0x03, 0xEB, 0x0C, 0x06, // 127:1003
0x03, 0xF7, 0x0C, 0x06, // 128:1015
0x04, 0x03, 0x0C, 0x06, // 129:1027
0x04, 0x0F, 0x0C, 0x06, // 130:1039
0x04, 0x1B, 0x0C, 0x06, // 131:1051
0x04, 0x27, 0x0C, 0x06, // 132:1063
0x04, 0x33, 0x0C, 0x06, // 133:1075
0x04, 0x3F, 0x0C, 0x06, // 134:1087
0x04, 0x4B, 0x0C, 0x06, // 135:1099
0x04, 0x57, 0x0C, 0x06, // 136:1111
0x04, 0x63, 0x0C, 0x06, // 137:1123
0x04, 0x6F, 0x0C, 0x06, // 138:1135
0x04, 0x7B, 0x0C, 0x06, // 139:1147
0x04, 0x87, 0x0C, 0x06, // 140:1159
0x04, 0x93, 0x0C, 0x06, // 141:1171
0x04, 0x9F, 0x0C, 0x06, // 142:1183
0x04, 0xAB, 0x0C, 0x06, // 143:1195
0x04, 0xB7, 0x0C, 0x06, // 144:1207
0x04, 0xC3, 0x0C, 0x06, // 145:1219
0x04, 0xCF, 0x0C, 0x06, // 146:1231
0x04, 0xDB, 0x0C, 0x06, // 147:1243
0x04, 0xE7, 0x0C, 0x06, // 148:1255
0x04, 0xF3, 0x0C, 0x06, // 149:1267
0x04, 0xFF, 0x0C, 0x06, // 150:1279
0x05, 0x0B, 0x0C, 0x06, // 151:1291
0x05, 0x17, 0x0C, 0x06, // 152:1303
0x05, 0x23, 0x0C, 0x06, // 153:1315
0x05, 0x2F, 0x0C, 0x06, // 154:1327
0x05, 0x3B, 0x0C, 0x06, // 155:1339
0x05, 0x47, 0x0C, 0x06, // 156:1351
0x05, 0x53, 0x0C, 0x06, // 157:1363
0x05, 0x5F, 0x0C, 0x06, // 158:1375
0x05, 0x6B, 0x0C, 0x06, // 159:1387
0xFF, 0xFF, 0x00, 0x03, // 160:65535
0x05, 0x77, 0x06, 0x04, // 161:1399
0x05, 0x7D, 0x0A, 0x06, // 162:1405
0x05, 0x87, 0x0C, 0x06, // 163:1415
0x05, 0x93, 0x0C, 0x06, // 164:1427
0x05, 0x9F, 0x0B, 0x06, // 165:1439
0x05, 0xAA, 0x04, 0x03, // 166:1450
0x05, 0xAE, 0x08, 0x05, // 167:1454
0x05, 0xB6, 0x07, 0x05, // 168:1462
0x05, 0xBD, 0x0F, 0x0A, // 169:1469
0x05, 0xCC, 0x0A, 0x05, // 170:1484
0x05, 0xD6, 0x0A, 0x06, // 171:1494
0x05, 0xE0, 0x0E, 0x08, // 172:1504
0x05, 0xEE, 0x07, 0x04, // 173:1518
0x05, 0xF5, 0x0F, 0x0A, // 174:1525
0x06, 0x04, 0x07, 0x05, // 175:1540
0x06, 0x0B, 0x07, 0x05, // 176:1547
0x06, 0x12, 0x10, 0x08, // 177:1554
0x06, 0x22, 0x07, 0x04, // 178:1570
0x06, 0x29, 0x07, 0x04, // 179:1577
0x06, 0x30, 0x07, 0x05, // 180:1584
0x06, 0x37, 0x0E, 0x07, // 181:1591
0x06, 0x45, 0x0C, 0x06, // 182:1605
0x06, 0x51, 0x03, 0x03, // 183:1617
0x06, 0x54, 0x06, 0x05, // 184:1620
0x06, 0x5A, 0x07, 0x04, // 185:1626
0x06, 0x61, 0x0A, 0x05, // 186:1633
0x06, 0x6B, 0x09, 0x06, // 187:1643
0x06, 0x74, 0x14, 0x0A, // 188:1652
0x06, 0x88, 0x14, 0x0A, // 189:1672
0x06, 0x9C, 0x14, 0x0A, // 190:1692
0x06, 0xB0, 0x0A, 0x05, // 191:1712
0x06, 0xBA, 0x0E, 0x07, // 192:1722
0x06, 0xC8, 0x0E, 0x07, // 193:1736
0x06, 0xD6, 0x0E, 0x07, // 194:1750
0x06, 0xE4, 0x0E, 0x07, // 195:1764
0x06, 0xF2, 0x0E, 0x07, // 196:1778
0x07, 0x00, 0x0E, 0x07, // 197:1792
0x07, 0x0E, 0x12, 0x0A, // 198:1806
0x07, 0x20, 0x0E, 0x08, // 199:1824
0x07, 0x2E, 0x0C, 0x07, // 200:1838
0x07, 0x3A, 0x0C, 0x07, // 201:1850
0x07, 0x46, 0x0C, 0x07, // 202:1862
0x07, 0x52, 0x0C, 0x07, // 203:1874
0x07, 0x5E, 0x04, 0x03, // 204:1886
0x07, 0x62, 0x05, 0x03, // 205:1890
0x07, 0x67, 0x05, 0x03, // 206:1895
0x07, 0x6C, 0x05, 0x03, // 207:1900
0x07, 0x71, 0x0E, 0x08, // 208:1905
0x07, 0x7F, 0x0E, 0x08, // 209:1919
0x07, 0x8D, 0x0E, 0x08, // 210:1933
0x07, 0x9B, 0x0E, 0x08, // 211:1947
0x07, 0xA9, 0x0E, 0x08, // 212:1961
0x07, 0xB7, 0x0E, 0x08, // 213:1975
0x07, 0xC5, 0x0E, 0x08, // 214:1989
0x07, 0xD3, 0x0E, 0x08, // 215:2003
0x07, 0xE1, 0x0E, 0x08, // 216:2017
0x07, 0xEF, 0x0E, 0x08, // 217:2031
0x07, 0xFD, 0x0E, 0x08, // 218:2045
0x08, 0x0B, 0x0E, 0x08, // 219:2059
0x08, 0x19, 0x0E, 0x08, // 220:2073
0x08, 0x27, 0x0D, 0x07, // 221:2087
0x08, 0x34, 0x0B, 0x07, // 222:2100
0x08, 0x3F, 0x0C, 0x06, // 223:2111
0x08, 0x4B, 0x0C, 0x06, // 224:2123
0x08, 0x57, 0x0C, 0x06, // 225:2135
0x08, 0x63, 0x0C, 0x06, // 226:2147
0x08, 0x6F, 0x0C, 0x06, // 227:2159
0x08, 0x7B, 0x0C, 0x06, // 228:2171
0x08, 0x87, 0x0C, 0x06, // 229:2183
0x08, 0x93, 0x14, 0x0A, // 230:2195
0x08, 0xA7, 0x0A, 0x05, // 231:2215
0x08, 0xB1, 0x0C, 0x06, // 232:2225
0x08, 0xBD, 0x0C, 0x06, // 233:2237
0x08, 0xC9, 0x0C, 0x06, // 234:2249
0x08, 0xD5, 0x0C, 0x06, // 235:2261
0x08, 0xE1, 0x04, 0x02, // 236:2273
0x08, 0xE5, 0x04, 0x02, // 237:2277
0x08, 0xE9, 0x04, 0x02, // 238:2281
0x08, 0xED, 0x04, 0x02, // 239:2285
0x08, 0xF1, 0x0C, 0x06, // 240:2289
0x08, 0xFD, 0x0C, 0x06, // 241:2301
0x09, 0x09, 0x0C, 0x06, // 242:2313
0x09, 0x15, 0x0C, 0x06, // 243:2325
0x09, 0x21, 0x0C, 0x06, // 244:2337
0x09, 0x2D, 0x0C, 0x06, // 245:2349
0x09, 0x39, 0x0C, 0x06, // 246:2361
0x09, 0x45, 0x0F, 0x08, // 247:2373
0x09, 0x54, 0x0C, 0x06, // 248:2388
0x09, 0x60, 0x0C, 0x06, // 249:2400
0x09, 0x6C, 0x0C, 0x06, // 250:2412
0x09, 0x78, 0x0C, 0x06, // 251:2424
0x09, 0x84, 0x0C, 0x06, // 252:2436
0x09, 0x90, 0x0B, 0x06, // 253:2448
0x09, 0x9B, 0x0C, 0x06, // 254:2459
0x09, 0xA7, 0x0B, 0x06, // 255:2471
// Font Data:
0x00,0x00,0x00,0x00,0xF8,0x02, // 33
0x00,0x00,0x38,0x00,0x00,0x00,0x38, // 34
0x00,0x00,0x80,0x00,0xA0,0x03,0xF8,0x00,0xA0,0x00,0xE0,0x03,0xB8,0x00,0x20, // 35
0x00,0x00,0x60,0x02,0x50,0x02,0xF8,0x07,0x90,0x02,0x90,0x01, // 36
0x00,0x00,0x78,0x00,0x48,0x00,0x78,0x03,0xC0,0x00,0x60,0x00,0xD8,0x03,0x40,0x02,0xC0,0x03, // 37
0x00,0x00,0xC0,0x01,0x30,0x03,0x48,0x02,0x48,0x02,0x90,0x01,0x00,0x01,0xC0,0x02, // 38
0x00,0x00,0x38, // 39
0x00,0x00,0xF8,0x03,0x04,0x04, // 40
0x00,0x00,0x0C,0x06,0xF0,0x01, // 41
0x48,0x00,0x30,0x00,0x78,0x00,0x30,0x00,0x48, // 42
0x00,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0xF8,0x03,0x40,0x00,0x40,0x00,0x40, // 43
0x00,0x00,0x00,0x06, // 44
0x00,0x00,0x80,0x00,0x80,0x00,0x80, // 45
0x00,0x00,0x00,0x02, // 46
0x00,0x06,0xE0,0x01,0x18, // 47
0x00,0x00,0xF0,0x01,0x08,0x02,0x08,0x02,0x08,0x02,0xF0,0x01, // 48
0x00,0x00,0x08,0x02,0x08,0x02,0xF8,0x03,0x00,0x02,0x00,0x02, // 49
0x00,0x00,0x10,0x02,0x08,0x03,0x88,0x02,0x48,0x02,0x30,0x02, // 50
0x00,0x00,0x10,0x01,0x48,0x02,0x48,0x02,0x48,0x02,0xB0,0x01, // 51
0x00,0x00,0xC0,0x00,0xA0,0x00,0x90,0x00,0xF8,0x03,0x80, // 52
0x00,0x00,0x38,0x02,0x28,0x02,0x28,0x02,0x28,0x02,0xC0,0x01, // 53
0x00,0x00,0xF0,0x01,0x58,0x02,0x48,0x02,0x48,0x02,0x88,0x01, // 54
0x00,0x00,0x08,0x00,0x08,0x02,0x88,0x01,0x68,0x00,0x18, // 55
0x00,0x00,0xB0,0x01,0x48,0x02,0x48,0x02,0x48,0x02,0xB0,0x01, // 56
0x00,0x00,0x30,0x02,0x48,0x02,0x48,0x02,0x48,0x03,0xF0,0x01, // 57
0x00,0x00,0x20,0x02, // 58
0x00,0x00,0x20,0x06, // 59
0x00,0x00,0x40,0x00,0x40,0x00,0xA0,0x00,0xA0,0x00,0xA0,0x00,0x10,0x01, // 60
0x00,0x00,0xA0,0x00,0xA0,0x00,0xA0,0x00,0xA0,0x00,0xA0,0x00,0xA0, // 61
0x00,0x00,0x10,0x01,0xA0,0x00,0xA0,0x00,0xA0,0x00,0x40,0x00,0x40, // 62
0x00,0x00,0x08,0x00,0xC8,0x02,0x28,0x00,0x18, // 63
0x00,0x00,0xE0,0x03,0x30,0x06,0x18,0x0C,0xC8,0x09,0x48,0x09,0xC8,0x09,0x08,0x05,0x90,0x01,0xE0, // 64
0x00,0x02,0xC0,0x01,0xB0,0x00,0x88,0x00,0xB0,0x00,0xC0,0x01,0x00,0x02, // 65
0x00,0x00,0xF8,0x03,0x48,0x02,0x48,0x02,0x48,0x02,0xB0,0x01, // 66
0x00,0x00,0xE0,0x00,0x10,0x01,0x08,0x02,0x08,0x02,0x08,0x02,0x10,0x01, // 67
0x00,0x00,0xF8,0x03,0x08,0x02,0x08,0x02,0x08,0x02,0x18,0x03,0xF0,0x01, // 68
0x00,0x00,0xF8,0x03,0x48,0x02,0x48,0x02,0x48,0x02,0x48,0x02, // 69
0x00,0x00,0xF8,0x03,0x48,0x00,0x48,0x00,0x48, // 70
0x00,0x00,0xF0,0x01,0x18,0x03,0x08,0x02,0x48,0x02,0x48,0x02,0xD0,0x01, // 71
0x00,0x00,0xF8,0x03,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0xF8,0x03, // 72
0x00,0x00,0xF8,0x03, // 73
0x00,0x08,0xF8,0x07, // 74
0x00,0x00,0xF8,0x03,0x40,0x00,0xA0,0x00,0x10,0x01,0x08,0x02, // 75
0x00,0x00,0xF8,0x03,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02, // 76
0x00,0x00,0xF8,0x03,0x30,0x00,0xC0,0x00,0x00,0x01,0xC0,0x00,0x30,0x00,0xF8,0x03, // 77
0x00,0x00,0xF8,0x03,0x10,0x00,0x60,0x00,0x80,0x00,0x00,0x01,0xF8,0x03, // 78
0x00,0x00,0xF0,0x01,0x18,0x03,0x08,0x02,0x08,0x02,0x18,0x03,0xF0,0x01, // 79
0x00,0x00,0xF8,0x03,0x48,0x00,0x48,0x00,0x48,0x00,0x30, // 80
0x00,0x00,0xF0,0x01,0x18,0x03,0x08,0x02,0x08,0x02,0x18,0x05,0xF0, // 81
0x00,0x00,0xF8,0x03,0x48,0x00,0x48,0x00,0xC8,0x00,0x30,0x01,0x00,0x02, // 82
0x00,0x00,0x30,0x01,0x48,0x02,0x48,0x02,0x48,0x02,0x90,0x01, // 83
0x08,0x00,0x08,0x00,0xF8,0x03,0x08,0x00,0x08, // 84
0x00,0x00,0xF8,0x01,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0xF8,0x01, // 85
0x18,0x00,0x60,0x00,0x80,0x01,0x00,0x02,0x80,0x01,0x60,0x00,0x18, // 86
0x18,0x00,0xE0,0x00,0x00,0x03,0xE0,0x00,0x18,0x00,0xE0,0x00,0x00,0x03,0xE0,0x00,0x18, // 87
0x08,0x02,0x18,0x03,0xE0,0x00,0xE0,0x00,0x18,0x03,0x08,0x02, // 88
0x08,0x00,0x10,0x00,0x20,0x00,0xC0,0x03,0x20,0x00,0x10,0x00,0x08, // 89
0x08,0x02,0x08,0x03,0xC8,0x02,0x68,0x02,0x18,0x02,0x08,0x02, // 90
0x00,0x00,0xFC,0x07,0x04,0x04, // 91
0x18,0x00,0xE0,0x01,0x00,0x06, // 92
0x00,0x00,0x04,0x04,0xFC,0x07, // 93
0x00,0x00,0x20,0x00,0x10,0x00,0x08,0x00,0x08,0x00,0x10,0x00,0x20, // 94
0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08, // 95
0x00,0x00,0x04,0x00,0x08, // 96
0x00,0x00,0x00,0x03,0xA0,0x02,0xA0,0x02,0xA0,0x02,0xC0,0x03, // 97
0x00,0x00,0xFC,0x03,0x20,0x02,0x20,0x02,0x20,0x02,0xC0,0x01, // 98
0x00,0x00,0xC0,0x01,0x20,0x02,0x20,0x02,0x20,0x02, // 99
0x00,0x00,0xC0,0x01,0x20,0x02,0x20,0x02,0x20,0x02,0xFC,0x03, // 100
0x00,0x00,0xC0,0x01,0xA0,0x02,0xA0,0x02,0xA0,0x02,0xC0,0x02, // 101
0x00,0x00,0x20,0x00,0xFC,0x03,0x24, // 102
0x00,0x00,0xC0,0x01,0x20,0x0A,0x20,0x0A,0x20,0x0A,0xE0,0x07, // 103
0x00,0x00,0xFC,0x03,0x20,0x00,0x20,0x00,0x20,0x00,0xC0,0x03, // 104
0x00,0x00,0xE4,0x03, // 105
0x00,0x08,0xE4,0x0F, // 106
0x00,0x00,0xFC,0x03,0x80,0x00,0x40,0x01,0x20,0x02, // 107
0x00,0x00,0xFC,0x03, // 108
0x00,0x00,0xE0,0x03,0x20,0x00,0x20,0x00,0x20,0x00,0xC0,0x03,0x20,0x00,0x20,0x00,0x20,0x00,0xC0,0x03, // 109
0x00,0x00,0xE0,0x03,0x20,0x00,0x20,0x00,0x20,0x00,0xC0,0x03, // 110
0x00,0x00,0xC0,0x01,0x20,0x02,0x20,0x02,0x20,0x02,0xC0,0x01, // 111
0x00,0x00,0xE0,0x0F,0x20,0x02,0x20,0x02,0x20,0x02,0xC0,0x01, // 112
0x00,0x00,0xC0,0x01,0x20,0x02,0x20,0x02,0x20,0x02,0xE0,0x0F, // 113
0x00,0x00,0xE0,0x03,0x20,0x00,0x20, // 114
0x00,0x00,0x60,0x02,0xA0,0x02,0xA0,0x02,0xA0,0x03, // 115
0x20,0x00,0xF8,0x03,0x20,0x02,0x20,0x02, // 116
0x00,0x00,0xE0,0x01,0x00,0x02,0x00,0x02,0x00,0x02,0xE0,0x03, // 117
0x00,0x00,0x60,0x00,0x80,0x01,0x00,0x02,0x80,0x01,0x60, // 118
0x00,0x00,0xE0,0x00,0x00,0x03,0xC0,0x00,0x20,0x00,0xC0,0x00,0x00,0x03,0xE0, // 119
0x00,0x00,0x20,0x02,0x40,0x01,0x80,0x00,0x40,0x01,0x20,0x02, // 120
0x00,0x00,0x60,0x08,0x80,0x09,0x00,0x06,0x80,0x01,0x60, // 121
0x00,0x00,0x20,0x02,0x20,0x03,0xA0,0x02,0x60,0x02, // 122
0x00,0x00,0x40,0x00,0x40,0x00,0xBC,0x07,0x04,0x04, // 123
0x00,0x00,0xFC,0x0F, // 124
0x00,0x00,0x04,0x04,0xBC,0x07,0x40,0x00,0x40, // 125
0x00,0x00,0x80,0x00,0x40,0x00,0x40,0x00,0x80,0x00,0x80,0x00,0x40, // 126
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 127
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 128
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 129
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 130
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 131
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 132
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 133
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 134
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 135
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 136
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 137
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 138
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 139
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 140
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 141
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 142
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 143
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 144
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 145
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 146
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 147
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 148
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 149
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 150
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 151
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 152
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 153
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 154
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 155
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 156
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 157
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 158
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F, // 159
0x00,0x00,0x00,0x00,0xA0,0x0F, // 161
0x00,0x00,0xC0,0x01,0x20,0x02,0xF0,0x07,0x20,0x02, // 162
0x00,0x00,0x40,0x02,0xF0,0x03,0x48,0x02,0x48,0x02,0x10,0x02, // 163
0x10,0x02,0xE0,0x01,0x20,0x01,0x20,0x01,0xE0,0x01,0x10,0x02, // 164
0x00,0x00,0xA8,0x00,0xB0,0x00,0xC0,0x03,0xB0,0x00,0xA8, // 165
0x00,0x00,0x78,0x0F, // 166
0xD8,0x04,0xA8,0x04,0x68,0x05,0xC8,0x06, // 167
0x00,0x00,0x08,0x00,0x00,0x00,0x08, // 168
0x00,0x00,0xE0,0x00,0x10,0x01,0xE8,0x02,0xA8,0x02,0xA8,0x02,0x10,0x01,0xE0, // 169
0x00,0x00,0x70,0x01,0x58,0x01,0x58,0x01,0x78,0x01, // 170
0x00,0x00,0xC0,0x00,0xE0,0x01,0xC0,0x00,0xE0,0x01, // 171
0x00,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0xC0,0x01, // 172
0x00,0x00,0x80,0x00,0x80,0x00,0x80, // 173
0x00,0x00,0xE0,0x00,0x10,0x01,0xE8,0x02,0x68,0x02,0xE8,0x02,0x10,0x01,0xE0, // 174
0x00,0x00,0x08,0x00,0x08,0x00,0x08, // 175
0x00,0x00,0x38,0x00,0x28,0x00,0x38, // 176
0x00,0x00,0x40,0x02,0x40,0x02,0x40,0x02,0xF0,0x03,0x40,0x02,0x40,0x02,0x40,0x02, // 177
0x00,0x00,0x48,0x00,0x68,0x00,0x58, // 178
0x00,0x00,0x48,0x00,0x58,0x00,0x68, // 179
0x00,0x00,0x00,0x00,0x08,0x00,0x04, // 180
0x00,0x00,0xE0,0x0F,0x00,0x02,0x00,0x02,0x00,0x02,0xE0,0x03,0x00,0x02, // 181
0x00,0x00,0x70,0x00,0x78,0x00,0xF8,0x07,0x08,0x00,0xF8,0x07, // 182
0x00,0x00,0x40, // 183
0x00,0x00,0x00,0x08,0x00,0x0C, // 184
0x00,0x00,0x48,0x00,0x78,0x00,0x40, // 185
0x00,0x00,0x30,0x01,0x48,0x01,0x48,0x01,0x30,0x01, // 186
0x00,0x00,0xE0,0x01,0xC0,0x00,0xE0,0x01,0xC0, // 187
0x00,0x00,0x48,0x00,0x78,0x02,0xC0,0x01,0xE0,0x00,0x30,0x00,0x08,0x01,0x80,0x01,0xC0,0x03,0x00,0x01, // 188
0x00,0x00,0x48,0x00,0x78,0x02,0xC0,0x01,0xE0,0x00,0x30,0x00,0x08,0x00,0x40,0x02,0x40,0x03,0xC0,0x02, // 189
0x00,0x00,0x48,0x00,0x58,0x02,0xE8,0x01,0xE0,0x00,0x30,0x00,0x08,0x01,0x80,0x01,0xC0,0x03,0x00,0x01, // 190
0x00,0x00,0x00,0x0C,0x00,0x0A,0xA0,0x09,0x00,0x08, // 191
0x00,0x02,0xC0,0x01,0xB1,0x00,0x8A,0x00,0xB0,0x00,0xC0,0x01,0x00,0x02, // 192
0x00,0x02,0xC0,0x01,0xB0,0x00,0x8A,0x00,0xB1,0x00,0xC0,0x01,0x00,0x02, // 193
0x00,0x02,0xC0,0x01,0xB2,0x00,0x89,0x00,0xB2,0x00,0xC0,0x01,0x00,0x02, // 194
0x00,0x02,0xC0,0x01,0xB2,0x00,0x8B,0x00,0xB1,0x00,0xC0,0x01,0x00,0x02, // 195
0x00,0x02,0xC0,0x01,0xB2,0x00,0x88,0x00,0xB2,0x00,0xC0,0x01,0x00,0x02, // 196
0x00,0x02,0x80,0x01,0xF6,0x00,0x8A,0x00,0xF6,0x00,0x80,0x01,0x00,0x02, // 197
0x00,0x02,0xC0,0x01,0xB0,0x00,0x88,0x00,0xF8,0x03,0x48,0x02,0x48,0x02,0x48,0x02,0x48,0x02, // 198
0x00,0x00,0xE0,0x00,0x10,0x09,0x08,0x0E,0x08,0x02,0x08,0x02,0x10,0x01, // 199
0x00,0x00,0xF8,0x03,0x49,0x02,0x4A,0x02,0x48,0x02,0x48,0x02, // 200
0x00,0x00,0xF8,0x03,0x48,0x02,0x4A,0x02,0x49,0x02,0x48,0x02, // 201
0x00,0x00,0xF8,0x03,0x4A,0x02,0x49,0x02,0x4A,0x02,0x48,0x02, // 202
0x00,0x00,0xF8,0x03,0x4A,0x02,0x48,0x02,0x4A,0x02,0x48,0x02, // 203
0x01,0x00,0xFA,0x03, // 204
0x00,0x00,0xFA,0x03,0x01, // 205
0x02,0x00,0xF9,0x03,0x02, // 206
0x02,0x00,0xF8,0x03,0x02, // 207
0x40,0x00,0xF8,0x03,0x48,0x02,0x48,0x02,0x08,0x02,0x18,0x03,0xF0,0x01, // 208
0x00,0x00,0xF8,0x03,0x12,0x00,0x61,0x00,0x82,0x00,0x01,0x01,0xF8,0x03, // 209
0x00,0x00,0xF0,0x01,0x19,0x03,0x0A,0x02,0x08,0x02,0x18,0x03,0xF0,0x01, // 210
0x00,0x00,0xF0,0x01,0x18,0x03,0x0A,0x02,0x09,0x02,0x18,0x03,0xF0,0x01, // 211
0x00,0x00,0xF0,0x01,0x1A,0x03,0x09,0x02,0x09,0x02,0x1A,0x03,0xF0,0x01, // 212
0x00,0x00,0xF0,0x01,0x1A,0x03,0x09,0x02,0x0A,0x02,0x19,0x03,0xF0,0x01, // 213
0x00,0x00,0xF0,0x01,0x1A,0x03,0x08,0x02,0x08,0x02,0x1A,0x03,0xF0,0x01, // 214
0x00,0x00,0x10,0x02,0x20,0x01,0xC0,0x00,0xC0,0x00,0x20,0x01,0x10,0x02, // 215
0x00,0x00,0xF0,0x02,0x18,0x01,0xC8,0x02,0x28,0x02,0x10,0x03,0xE8,0x01, // 216
0x00,0x00,0xF8,0x01,0x01,0x02,0x02,0x02,0x00,0x02,0x00,0x02,0xF8,0x01, // 217
0x00,0x00,0xF8,0x01,0x00,0x02,0x02,0x02,0x01,0x02,0x00,0x02,0xF8,0x01, // 218
0x00,0x00,0xF8,0x01,0x02,0x02,0x01,0x02,0x01,0x02,0x02,0x02,0xF8,0x01, // 219
0x00,0x00,0xF8,0x01,0x02,0x02,0x00,0x02,0x00,0x02,0x02,0x02,0xF8,0x01, // 220
0x08,0x00,0x10,0x00,0x20,0x00,0xC2,0x03,0x21,0x00,0x10,0x00,0x08, // 221
0x00,0x00,0xF8,0x03,0x90,0x00,0x90,0x00,0x90,0x00,0x60, // 222
0x00,0x00,0xF8,0x03,0x04,0x00,0x74,0x02,0x58,0x02,0x80,0x03, // 223
0x00,0x00,0x00,0x03,0xA4,0x02,0xA8,0x02,0xA0,0x02,0xC0,0x03, // 224
0x00,0x00,0x00,0x03,0xA0,0x02,0xA8,0x02,0xA4,0x02,0xC0,0x03, // 225
0x00,0x00,0x00,0x03,0xA8,0x02,0xA4,0x02,0xA8,0x02,0xC0,0x03, // 226
0x00,0x00,0x0C,0x03,0xA4,0x02,0xAC,0x02,0xA8,0x02,0xCC,0x03, // 227
0x00,0x00,0x00,0x03,0xA8,0x02,0xA0,0x02,0xA8,0x02,0xC0,0x03, // 228
0x00,0x00,0x00,0x03,0xAE,0x02,0xAA,0x02,0xAE,0x02,0xC0,0x03, // 229
0x00,0x00,0x00,0x03,0xA0,0x02,0xA0,0x02,0xA0,0x02,0xC0,0x01,0xA0,0x02,0xA0,0x02,0xA0,0x02,0xC0,0x02, // 230
0x00,0x00,0xC0,0x01,0x20,0x0A,0x20,0x0E,0x20,0x02, // 231
0x00,0x00,0xC0,0x01,0xA4,0x02,0xA8,0x02,0xA0,0x02,0xC0,0x02, // 232
0x00,0x00,0xC0,0x01,0xA0,0x02,0xA8,0x02,0xA4,0x02,0xC0,0x02, // 233
0x00,0x00,0xC0,0x01,0xA8,0x02,0xA4,0x02,0xA8,0x02,0xC0,0x02, // 234
0x00,0x00,0xC0,0x01,0xA8,0x02,0xA0,0x02,0xA8,0x02,0xC0,0x02, // 235
0x04,0x00,0xE8,0x03, // 236
0x00,0x00,0xE8,0x03, // 237
0x08,0x00,0xE4,0x03, // 238
0x08,0x00,0xE0,0x03, // 239
0x00,0x00,0xC0,0x01,0x2C,0x02,0x28,0x02,0x34,0x02,0xC0,0x01, // 240
0x00,0x00,0xEC,0x03,0x24,0x00,0x28,0x00,0x2C,0x00,0xC0,0x03, // 241
0x00,0x00,0xC0,0x01,0x24,0x02,0x28,0x02,0x20,0x02,0xC0,0x01, // 242
0x00,0x00,0xC0,0x01,0x20,0x02,0x28,0x02,0x24,0x02,0xC0,0x01, // 243
0x00,0x00,0xC0,0x01,0x28,0x02,0x24,0x02,0x28,0x02,0xC0,0x01, // 244
0x00,0x00,0xCC,0x01,0x24,0x02,0x2C,0x02,0x28,0x02,0xCC,0x01, // 245
0x00,0x00,0xC0,0x01,0x28,0x02,0x20,0x02,0x28,0x02,0xC0,0x01, // 246
0x00,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x50,0x01,0x40,0x00,0x40,0x00,0x40, // 247
0x00,0x00,0xC0,0x03,0x20,0x03,0xA0,0x02,0x60,0x02,0xE0,0x01, // 248
0x00,0x00,0xE0,0x01,0x04,0x02,0x08,0x02,0x00,0x02,0xE0,0x03, // 249
0x00,0x00,0xE0,0x01,0x00,0x02,0x08,0x02,0x04,0x02,0xE0,0x03, // 250
0x00,0x00,0xE0,0x01,0x08,0x02,0x04,0x02,0x08,0x02,0xE0,0x03, // 251
0x00,0x00,0xE0,0x01,0x08,0x02,0x00,0x02,0x08,0x02,0xE0,0x03, // 252
0x00,0x00,0x60,0x08,0x88,0x09,0x04,0x06,0x80,0x01,0x60, // 253
0x00,0x00,0xFC,0x0F,0x20,0x02,0x20,0x02,0x20,0x02,0xC0,0x01, // 254
0x00,0x00,0x60,0x08,0x88,0x09,0x00,0x06,0x88,0x01,0x60 // 255
};

3
main/font.h 100644
Wyświetl plik

@ -0,0 +1,3 @@
#pragma once
extern const uint8_t Custom_Font[] PROGMEM;

Wyświetl plik

@ -639,10 +639,12 @@ void axp192Init() {
// Configure REG 36H: PEK press key parameter set. Index values for
// argument!
axp.setStartupTime(2); // "Power on time": 512mS
axp.setlongPressTime(2); // "Long time key press time": 2S
axp.setShutdownTime(2); // "Power off time" = 8S
axp.setTimeOutShutdown(1); // "When key press time is longer than power off time, auto power off"
axp.setStartupTime(2); // "Power on time": 512mS
axp.setlongPressTime(2); // "Long time key press time": 2S
axp.setShutdownTime(2); // "Power off time" = 8S
axp.setTimeOutShutdown(1); // "When key press time is longer than power off time, auto power off"
axp.setVWarningLevel1(2950); // These warning IRQs do not clear until charged, and inhibit other IRQs!
axp.setVWarningLevel2(2900); // We effectively disable them by setting them lower than we'd run
// Serial.printf("AC IN: %fv\n", axp.getAcinVoltage());
// Serial.printf("Vbus: %fv\n", axp.getVbusVoltage());
@ -681,7 +683,14 @@ void axp192Init() {
// @Kenny_PDY discovered that low-battery voltage inhibits detecting the menu button.
// Disable these two IRQs until we figure out why it blocks the PEK button IRQs.
axp.enableIRQ(APX202_APS_LOW_VOL_LEVEL1_IRQ | AXP202_APS_LOW_VOL_LEVEL2_IRQ, 0);
// Low battery also seems to inhibit the USB present/lost signal we use to wake up.
axp.enableIRQ(APX202_APS_LOW_VOL_LEVEL1_IRQ, 0);
axp.enableIRQ(AXP202_APS_LOW_VOL_LEVEL2_IRQ, 0);
// The Charging Current available is less than requested for battery charging.
// Another Persistent IRQ. Clear it after showing it once?
// TODO: Show it every X minutes? Adjust charge current request?
axp.enableIRQ(AXP202_CHARGE_LOW_CUR_IRQ, 0);
axp.clearIRQ();
} else {
@ -709,8 +718,8 @@ void setup() {
wakeup();
// Make sure WiFi and BT are off
WiFi.disconnect(true);
WiFi.mode(WIFI_OFF);
//WiFi.disconnect(true);
WiFi.mode(WIFI_MODE_NULL);
btStop();
Wire.begin(I2C_SDA, I2C_SCL);
@ -1013,10 +1022,6 @@ const char *find_irq_name(void) {
irq_name = "ChipOvertemperature";
else if (axp.isChargingCurrentLessIRQ()) {
irq_name = "ChargingCurrentLess";
// The Charging Current (770mA max feed) is less than requested
// Persistent IRQ. Clear it after showing it once.
// TODO: Show it every X minutes? Adjust charge current request?
axp.enableIRQ(AXP202_CHARGE_LOW_CUR_IRQ, 0);
} else if (axp.isDC2VoltageLessIRQ())
irq_name = "DC2VoltageLess";
else if (axp.isDC3VoltageLessIRQ())

Wyświetl plik

@ -31,6 +31,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "credentials.h"
#include "gps.h"
#include "images.h"
#include "font.h"
#define SCREEN_HEADER_HEIGHT 24
@ -180,7 +181,7 @@ void screen_setup(uint8_t addr) {
return;
display->init();
display->flipScreenVertically();
display->setFont(ArialMT_Plain_10);
display->setFont(Custom_Font);
// Scroll buffer
display->setLogBuffer(4, 30);