Skip to content

Releases: hansgao0422/FlightMate

FlightMate V1.17

Choose a tag to compare

@hansgao0422 hansgao0422 released this 03 Aug 12:27
90ea179

FlightMate V1.17

FlightMate 是为 LilyGO T-LoRa Pager 制作的便携飞行信息工具,提供机场与 METAR、离线地图、GPS 飞行数据、飞行日志和实时航班雷达。

V1.17 本版更新

  • 正式航空气象报文继续优先查询 AviationWeather:先查最近 2 小时,再查最近 24 小时。
  • 只有 AviationWeather 明确返回无报文(HTTP 204,或 HTTP 200 但内容为空/过短)时,才使用机场坐标查询 Open-Meteo 当地天气。
  • 回退内容明确显示为 WEATHER / LOCAL WX,不会伪装成 METAR;显示温度、湿度、风向/风速、能见度和海平面气压。
  • METAR 与 LOCAL WX 分别记录缓存来源;重启后回退缓存显示为 WEATHER / LOCAL WX CACHE。
  • AviationWeather 的 TLS、网络或其他 HTTP 错误不会触发回退,便于区分“没有报文”和“查询失败”。
  • 沿用 V1.16 的 275 条机场记录,其中覆盖 260 个具有公开 ICAO 代码的中国大陆定期客运机场,包括徐州 ZSXZ / XUZ。

适用硬件与固件环境

项目 规格
开发板 LilyGO T-LoRa Pager V1.0
主控 ESP32-S3
Flash / PSRAM 16 MB / 8 MB
屏幕 ST7796U,480×222
构建环境 Arduino CLI 1.5.1、Arduino-ESP32 3.3.10、ESP-IDF 5.5.4
分区方案 app3M_fat9M_16MB

主要功能

主界面

  • 四个入口:AIRPORT、FLIGHT、LOGBOOK、SETTINGS。
  • 顶部中央显示设置时区对应的当地时间;时间未同步时显示 --:--。
  • 支持旋钮、WASD 和 ENTER 操作。

机场看板与 Radar

  • 以 GPS 或手动坐标为中心,在 150 km 内匹配最近机场。
  • 内置 275 条机场记录,其中覆盖 260 个具有公开 ICAO 的中国大陆定期客运机场。
  • 显示最近机场、距离、方位、UTC 时间和最新正式 METAR;机场无报文时显示明确标注的 LOCAL WX。
  • 气象查询需要 Wi-Fi;Open-Meteo 回退不需要单独设置或密钥。
  • 机场卡片中的 RADAR 按钮可进入 Flight Radar。
  • Radar 以有效 GPS 坐标为中心;无有效定位时使用设置中的手动经纬度。
  • OpenSky 提供附近航班位置、呼号、高度和航迹;未填写 OAuth 凭据时使用匿名模式。
  • TYPE 优先通过 ADSBDB 的 ICAO24 查询获得,OpenSky category 作为回退。
  • 扫描动画采用原 FlightRadar 风格的 34° 线状绿色拖影,节奏为 50 ms / 3°。
  • 雷达半径可选 40 / 80 / 120 / 160 / 250 NM,默认 80 NM。

Flight 飞行页

  • 左侧显示 SD 卡离线地图,右侧显示速度、高度、航向、经纬度、卫星数和 HDOP。
  • KM/H、M、DEG 使用同一右边界对齐。
  • 设置航班号后,航班号显示在地图定位点旁,并自动避开地图边界。
  • 支持 WASD 平移、Q/E 缩放、C 回到当前位置。

飞行日志

  • 支持浏览、创建和编辑飞行日志。
  • 航班号设置与日志数据彼此独立,不改变原有日志字段。

熄屏与低功耗

  • 自动熄屏后进入最低背光的信息页,显示当地时间、航班号和唤醒提示。
  • 熄屏字体颜色为正常界面的约 50%,系统分钟变化时立即刷新时间。
  • 熄屏页不显示产品名、版本号或 SCREEN OFF;任意按键或旋钮操作可唤醒。
  • POWER OFF 使用 BQ25896 切断电池供电路径,不再配置 BOOT/GPIO deep-sleep 唤醒源。
  • 黄键长按 2 秒会显示 RELEASE TO POWER OFF,松开后关机;短按黄键仍切换符号模式。
  • 必须先拔掉 USB 才能彻底关机;关机后长按实体 PWR 键约 1 秒或连接 USB 开机。

注意:自动熄屏页仍保持 LCD 工作,因此功耗高于 V1.10 的完全关闭屏幕。需要长时间不用设备时请拔掉 USB 后使用 POWER OFF。

与 V1.10 的关系

V1.17 保留 V1.10 的 Wi-Fi 隔离、航班号、机场/METAR、离线地图和飞行日志功能,并累计增加 Radar、OpenSky/ADSBDB、熄屏信息页、界面修正、BQ25896 硬件关机、完整的中国大陆民用运输机场覆盖,以及无 METAR 机场的 LOCAL WX 回退。完整差异见 UPGRADE-FROM-V1.10.md;从 V1.16 升级见 UPGRADE-FROM-V1.16.md。

首次使用

  1. 刷写固件并重启设备。
  2. 进入 SETTINGS,设置 WI-FI SSID、WI-FI PASSWORD、TIMEZONE 和 FLIGHT NUMBER。
  3. 确认 GPS 为 ON;室外等待定位,或填写 MANUAL LAT、MANUAL LON 作为 Radar 回退中心。
  4. OpenSky 凭据可留空使用匿名模式;需要认证模式时填写 OPENSKY CLIENT ID 和 OPENSKY SECRET。
  5. 设置 RADAR RADIUS,返回机场页并按 ENTER 打开 Radar。

常用按键

页面 操作
全局 H 返回主界面,B 切换键盘灯,黄键长按 2 秒后松开执行硬件关机
主界面 旋钮或 WASD 选择,ENTER 打开
机场 ENTER 打开 Radar,R 刷新天气,L 调节屏幕亮度
Radar R 刷新航班,S 进入 Radar 设置,Q/H 返回
Flight WASD 平移,Q/E 缩放,C 回中,L 调节亮度
日志列表 N 新建,W/S 或旋钮选择,ENTER 查看
设置 W/S 或旋钮选择,ENTER 修改

离线地图目录

固件会依次尝试以下瓦片路径:

/FlightMate/maps/base/osm/{z}/{x}/{y}.png
/maps/base/osm/{z}/{x}/{y}.png

manifest 可放在:

/FlightMate/maps/manifest.json
/FlightMate/manifest.json
/maps/manifest.json
/manifest.json

地图缩放范围为 1~9。manifest 缺失时仍会尝试直接读取瓦片。

从 V1.10 / V1.13 / V1.15 / V1.16 升级

推荐仅更新应用,保留 Wi-Fi、航班号、时区、亮度、GPS 和手动坐标等 NVS 设置:

FLASH_APP_ONLY_FLIGHTMATE_V1.17.bat COM7

将 COM7 替换为设备实际串口。从 V1.16 升级到 V1.17 时,只新增天气回退、缓存来源和对应界面标签;设置、分区、机场表、Radar 和关机方式保持兼容。

其他刷写方式

写入 bootloader、分区表、boot_app0 和应用,但不主动擦除 NVS:

FLASH_FLIGHTMATE_V1.17.bat COM7

清除整个 Flash 后重新安装:

ERASE_AND_FLASH_FLIGHTMATE_V1.17.bat COM7

完整恢复镜像 FlightMate-V1.17-merged-16MB.bin 从 0x0 写入,会覆盖设备中的设置和数据,仅建议用于故障恢复或全新安装。

镜像地址

文件 地址
FlightMate-V1.17-bootloader.bin 0x0
FlightMate-V1.17-partitions.bin 0x8000
FlightMate-V1.17-boot_app0.bin 0xE000
FlightMate-V1.17-app.bin 0x10000
FlightMate-V1.17-merged-16MB.bin 0x0

Radar 网络与日志

  • 航班位置和 TYPE 查询需要 Wi-Fi;GPS 定位本身仍在设备本地工作。

  • 认证 OpenSky 的刷新周期为 60 秒,匿名模式为 240 秒;也可在 Radar 页按 R 手动刷新。

  • 每轮最多查询前 4 架未缓存飞机的 TYPE,内存缓存容量为 12 架,避免连续请求外部接口。

  • 串口波特率为 115200。TYPE 排查时关注:

    [RADAR] state icao=... fields=... category=... fallback=...
    [RADAR] type icao=... http=... resolved=...

  • 天气排查时关注:

    [WEATHER] request icao=... hours=... http=...
    [WEATHER] local icao=... http=... summary=... detail=...
    [WEATHER] final icao=... source=... status=...

  • 关机排查时关注:

    [POWER] yellow key released; requesting hardware power off
    [POWER] hardware power off requested; bus=... power_good=... vbus=...mV
    [POWER] USB input present; unplug USB for BQ25896 BATFET shutdown

  • 串口输入 help 可查看诊断命令,包含 status、gps、sd、map、heap、tasks、weather refresh、radar refresh 和 logs rebuild。

构建与校验

  • Arduino CLI 构建通过:程序存储 1,696,029 字节(53%),全局 RAM 66,848 字节(20%)。
  • App BIN 为 1,696,176 字节;合并镜像为 16,777,216 字节。
  • bootloader、App 和 merged image 已通过 esptool checksum 和 validation hash 检查。
  • 合并镜像在 0x0 / 0x8000 / 0xE000 / 0x10000 与四个独立镜像逐字节匹配。
  • 文件 SHA-256 见 SHA256SUMS.txt;ZIP 校验见外层 FlightMate-V1.17-ZIP-SHA256SUMS.txt。

V1.17 已完成联网接口、源代码、构建、镜像和封包验证,但本轮未连接设备完成最终实机验收。请在徐州或临时设置手动坐标 34.2044, 117.2858,确认机场看板显示 ZSXZ,并在正式 METAR 缺失时显示 WEATHER / LOCAL WX;再切换到北京首都机场附近,确认有报文时仍显示 METAR / LIVE。GPS、显示布局、Wi-Fi/TLS、缓存恢复、Radar 和硬件关机仍需在设备上确认。

FlightMate-1.15

Choose a tag to compare

@hansgao0422 hansgao0422 released this 03 Aug 02:16
90ea179

FlightMate V1.15 更新说明

FlightMate 是为 LilyGO T-LoRa Pager 制作的便携飞行信息工具,提供机场与 METAR、离线地图、GPS 飞行数据、飞行日志和实时航班雷达。

V1.15 本版修复

  • 关机由 ESP32 deep sleep 改为 BQ25896 BATFET 硬件断电,避免 GPIO 唤醒源导致自动亮屏。
  • 黄键长按 2 秒后显示 RELEASE TO POWER OFF,松开按键后执行硬件关机;设置中的 POWER OFF 使用相同路径。
  • 硬件关机必须拔掉 USB 后执行;插着 USB 时会显示 UNPLUG USB TO POWER OFF 并返回界面。
  • 真正关机后,长按实体 PWR 键约 1 秒或重新连接 USB 可重新开机。
  • 清理旧的 LOW POWER STANDBY / BOOT 唤醒提示分支,正常熄屏时钟刷新和任意键唤醒逻辑保持不变。
  • 版本号沿用 FlightMate,升级为 V1.15。

适用硬件与固件环境

项目 规格
开发板 LilyGO T-LoRa Pager V1.0
主控 ESP32-S3
Flash / PSRAM 16 MB / 8 MB
屏幕 ST7796U,480×222
构建环境 Arduino CLI 1.5.1、Arduino-ESP32 3.3.10、ESP-IDF 5.5.4
分区方案 app3M_fat9M_16MB

主要功能

主界面

  • 四个入口:AIRPORT、FLIGHT、LOGBOOK、SETTINGS。
  • 顶部中央显示设置时区对应的当地时间;时间未同步时显示 --:--。
  • 支持旋钮、WASD 和 ENTER 操作。

机场看板与 Radar

  • 显示最近机场、距离、方位、UTC 时间和最新 METAR。
  • 机场卡片中的 RADAR 按钮可进入 Flight Radar。
  • Radar 以有效 GPS 坐标为中心;无有效定位时使用设置中的手动经纬度。
  • OpenSky 提供附近航班位置、呼号、高度和航迹;未填写 OAuth 凭据时使用匿名模式。
  • TYPE 优先通过 ADSBDB 的 ICAO24 查询获得,OpenSky category 作为回退。
  • 扫描动画采用原 FlightRadar 风格的 34° 线状绿色拖影,节奏为 50 ms / 3°。
  • 雷达半径可选 40 / 80 / 120 / 160 / 250 NM,默认 80 NM。

Flight 飞行页

  • 左侧显示 SD 卡离线地图,右侧显示速度、高度、航向、经纬度、卫星数和 HDOP。
  • KM/H、M、DEG 使用同一右边界对齐。
  • 设置航班号后,航班号显示在地图定位点旁,并自动避开地图边界。
  • 支持 WASD 平移、Q/E 缩放、C 回到当前位置。

飞行日志

  • 支持浏览、创建和编辑飞行日志。
  • 航班号设置与日志数据彼此独立,不改变原有日志字段。

熄屏与低功耗

  • 自动熄屏后进入最低背光的信息页,显示当地时间、航班号和唤醒提示。
  • 熄屏字体颜色为正常界面的约 50%,系统分钟变化时立即刷新时间。
  • 熄屏页不显示产品名、版本号或 SCREEN OFF;任意按键或旋钮操作可唤醒。
  • POWER OFF 使用 BQ25896 切断电池供电路径,不再配置 BOOT/GPIO deep-sleep 唤醒源。
  • 黄键长按 2 秒会显示 RELEASE TO POWER OFF,松开后关机;短按黄键仍切换符号模式。
  • 必须先拔掉 USB 才能彻底关机;关机后长按实体 PWR 键约 1 秒或连接 USB 开机。

注意:自动熄屏页仍保持 LCD 工作,因此功耗高于 V1.10 的完全关闭屏幕。需要长时间不用设备时请拔掉 USB 后使用 POWER OFF。

与 V1.10 的关系

V1.15 保留 V1.10 的 Wi-Fi 隔离、航班号、机场/METAR、离线地图和飞行日志功能,并累计增加 Radar、OpenSky/ADSBDB、熄屏信息页、界面修正和 BQ25896 硬件关机。完整差异和升级步骤见 UPGRADE-FROM-V1.10.md。

首次使用

  1. 刷写固件并重启设备。
  2. 进入 SETTINGS,设置 WI-FI SSID、WI-FI PASSWORD、TIMEZONE 和 FLIGHT NUMBER。
  3. 确认 GPS 为 ON;室外等待定位,或填写 MANUAL LAT、MANUAL LON 作为 Radar 回退中心。
  4. OpenSky 凭据可留空使用匿名模式;需要认证模式时填写 OPENSKY CLIENT ID 和 OPENSKY SECRET。
  5. 设置 RADAR RADIUS,返回机场页并按 ENTER 打开 Radar。

常用按键

页面 操作
全局 H 返回主界面,B 切换键盘灯,黄键长按 2 秒后松开进入低功耗待机
主界面 旋钮或 WASD 选择,ENTER 打开
机场 ENTER 打开 Radar,R 刷新 METAR,L 调节屏幕亮度
Radar R 刷新航班,S 进入 Radar 设置,Q/H 返回
Flight WASD 平移,Q/E 缩放,C 回中,L 调节亮度
日志列表 N 新建,W/S 或旋钮选择,ENTER 查看
设置 W/S 或旋钮选择,ENTER 修改

离线地图目录

固件会依次尝试以下瓦片路径:

/FlightMate/maps/base/osm/{z}/{x}/{y}.png
/maps/base/osm/{z}/{x}/{y}.png

manifest 可放在:

/FlightMate/maps/manifest.json
/FlightMate/manifest.json
/maps/manifest.json
/manifest.json

地图缩放范围为 1~9。manifest 缺失时仍会尝试直接读取瓦片。

从 V1.10 / V1.13 升级

推荐仅更新应用,保留 Wi-Fi、航班号、时区、亮度、GPS 和手动坐标等 NVS 设置:

FLASH_APP_ONLY_FLIGHTMATE_V1.15.bat COM7

将 COM7 替换为设备实际串口。从 V1.14 升级到 V1.15 时,主要变化是将关机方式由 deep sleep 改为 BQ25896 硬件断电。

其他刷写方式

写入 bootloader、分区表、boot_app0 和应用,但不主动擦除 NVS:

FLASH_FLIGHTMATE_V1.15.bat COM7

清除整个 Flash 后重新安装:

ERASE_AND_FLASH_FLIGHTMATE_V1.15.bat COM7

完整恢复镜像 FlightMate-V1.15-merged-16MB.bin 从 0x0 写入,会覆盖设备中的设置和数据,仅建议用于故障恢复或全新安装。

镜像地址

文件 地址
FlightMate-V1.15-bootloader.bin 0x0
FlightMate-V1.15-partitions.bin 0x8000
FlightMate-V1.15-boot_app0.bin 0xE000
FlightMate-V1.15-app.bin 0x10000
FlightMate-V1.15-merged-16MB.bin 0x0

FlightMate-1.14

Choose a tag to compare

@hansgao0422 hansgao0422 released this 02 Aug 16:42
90ea179

FlightMate V1.10 → V1.14 升级说明

本文说明从 FlightMate V1.10 升级到 V1.14 的累计变化、兼容性和推荐操作。

升级结论

  • 硬件、16 MB Flash 分区方案和主要数据结构保持兼容。
  • 从 V1.10 升级时推荐刷写 FlightMate-V1.14-app.bin,地址仍为 0x10000。
  • App-only 升级不会主动擦除 NVS,可保留 Wi-Fi、航班号、时区、亮度、GPS 和手动坐标设置。
  • V1.14 新增的 OpenSky 凭据和 Radar 半径在 V1.10 中不存在,首次启动后按需设置;缺省为 OpenSky 匿名模式和 80 NM。
  • SD 卡地图目录和原有飞行日志功能继续兼容。

相比 V1.10 的功能变化

项目 V1.10 V1.14
主界面顶部中央 显示 HOME 显示设置时区对应的当地时间
机场看板 最近机场和 METAR 保留原布局,增加 RADAR 按钮
Flight Radar 无 新增独立 Radar 页面和扫描动画
Radar 中心 无 优先使用有效 GPS,无定位时使用手动经纬度
航班位置 无 OpenSky,支持匿名与 OAuth 凭据
飞机 TYPE 无 ADSBDB ICAO24 查询与 12 架内存缓存,OpenSky category 回退
Radar 范围 无 40 / 80 / 120 / 160 / 250 NM
Radar 扫描 无 34° 线状绿色拖影,50 ms / 3°
Flight 数据单位 分散显示 KM/H、M、DEG 共用右边界
自动熄屏 关闭背光并让 LCD 休眠 最低背光显示时间、航班号和唤醒提示
熄屏时间刷新 不显示时间 系统分钟变化后立即更新
深睡眠 LOW POWER STANDBY,BOOT 唤醒 保留,并增加入睡前 BOOT/GPIO0 释放保护
黄键关机 无独立防误唤醒流程 长按 2 秒提示 RELEASE TO STANDBY,松手后进入 deep sleep
Radar 设置 无 OpenSky Client ID、Secret、Radar Radius 与 GPS/手动坐标集中显示
Radar 诊断 无 增加 RADAR state、RADAR type 和 radar refresh
关机诊断 基础日志 增加 POWER yellow release 和 BOOT/GPIO0 release 日志
Codex 图像 2026年8月3日 00_29_43

资源占用变化

项目 V1.10 V1.14 变化
程序存储报告 1,670,921 B 1,695,929 B +25,008 B
App BIN 1,671,168 B 1,696,176 B +25,008 B
全局 RAM 65,088 B 66,952 B +1,864 B
App 分区占用 53% 53% 不变
合并镜像 16,777,216 B 16,777,216 B 不变

新增 Radar、HTTPS JSON 解析、TYPE 缓存和关机保护后,程序及 RAM 占用仍处于当前 3 MB App 分区范围内。

推荐升级步骤

  1. 记录当前 Wi-Fi、时区、航班号和手动坐标,作为人工备份。

  2. 将设备连接电脑,确认串口号,例如 COM7。

  3. 解压 V1.14 固件包,在目录中运行:

    FLASH_APP_ONLY_FLIGHTMATE_V1.14.bat COM7
    
  4. 重启后确认原有设置仍在。

  5. 进入 SETTINGS,检查 GPS、MANUAL LAT/LON,设置 RADAR RADIUS。

  6. OpenSky 凭据可留空;若使用 OAuth,填写 API Client ID 和 Client Secret,不是普通网站用户名与密码。

  7. 在机场页按 ENTER 打开 Radar,并按 R 手动刷新一次。

如果 App-only 启动异常,可改用以下完整四段刷写,仍不主动擦除 NVS:

FLASH_FLIGHTMATE_V1.14.bat COM7

只有在设置损坏或需要全新安装时才运行:

ERASE_AND_FLASH_FLIGHTMATE_V1.14.bat COM7

升级后的重点检查

  • 主界面顶部中央是否显示当地时间。

  • Flight 页 KM/H、M、DEG 是否右对齐。

  • 自动熄屏后是否只显示低亮度时间、航班号和唤醒提示。

  • 熄屏时间跨分钟后是否更新,任意键是否能唤醒。

  • 长按黄键 2 秒是否出现 RELEASE TO STANDBY,松手后是否保持关闭。

  • 进入 SETTINGS → LOW POWER STANDBY 后是否不再立即亮屏。

  • BOOT 是否可正常唤醒。

  • GPS 有效时 Radar 是否跟随当前位置;无定位时是否使用手动坐标。

  • Radar 是否出现线状扫描拖影和航班目标。

  • TYPE 是否显示机型代码;若仍为 -,检查串口日志:

    [RADAR] state icao=... fields=... category=... fallback=...
    [RADAR] type icao=... http=... resolved=...
    
  • 关机仍异常时,检查串口日志:

    [POWER] yellow key released; entering deep sleep
    [POWER] BOOT/GPIO0 wake pin released=YES wait=...
    

功耗差异

V1.10 的自动超时会关闭背光并让 LCD 休眠;V1.14 为了持续显示时间和航班号,自动超时后保留最低背光及 LCD 刷新,因此待机功耗会高于 V1.10。

长时间不用设备时,应在设置中进入 LOW POWER STANDBY,或长按黄键 2 秒后松开进入低功耗待机。该模式仍使用 ESP32-S3 深睡眠并通过 BOOT 唤醒。

验证边界

V1.14 已通过 Arduino CLI 构建、esptool 镜像检查、16 MB 合并段匹配、源码同步、APP_VERSION 字符串检查、SHA-256、ZIP 顶层结构和 UTF-8 检查。本工作环境未连接实机,最终关机、防误唤醒、电流和按键体验仍需实机验收。