νόστος — 帰郷・家路への旅。オフラインの LoRa(Nostos 独自の生 LoRa フレーム)を使った「出発点(車)まで戻る」簡易ナビゲーション。
⚖️ 電波法順守は絶対条件です。 送信ファームは技適の認証範囲内に固定します。 厳守事項は docs/COMPLIANCE.md(922〜923.4MHz / ≤200kHz / ≤5.0mW・受信は対象外)。
携帯電話の電波が届かない山中でも、たどった経路(ブレッドクラム)と出発点への帰路方向を示すオフラインナビ。
- 移動する人が GPS 付き端末を携行し、自分の移動履歴を記録
- 出発点(車内など)に固定した LoRa ノードが自身の GPS 位置を定期送信
- 携行端末が両者の位置を突き合わせ、移動ルートの表示と帰路方向(方位・距離)の指示を行う
本リポジトリは M5Stack PaperMono(ESP32-S3 / SX1262 / 3.97" e-ink) 上のアプリを扱う。
- C6L からの分ごと位置通報を受信(Nostos-native 16 バイトフレーム:時刻+緯度経度・923.000MHz。 構想初期は Meshtastic を想定していたが、生 LoRa 方式に変更 — docs/APPROACH.md)
- グリッドに過去の計測座標をプロット、線で結んで移動履歴(経路)を e-ink 表示
- (発展)出発点への帰路方向・距離を表示
=「LoRa 位置受信+ブレッドクラム描画」ロジックの実証機。
本アプリで確立した受信+描画ロジックを、M5Stack CardputerZero 側の融合アプリへ展開する:
- 登山・ハイキングで CardputerZero を携行(自機 GPS=App01 gps-logger)
- 車内に C6L を設置(車の位置を LoRa で送信)
- CZ が App02(lora-mesh-node)の LoRa で C6L の位置を受信 → 自分の移動履歴ルート+車への帰路ナビ
→ CardputerZero 側アプリは cardputerzero-apps リポジトリ(App01 × App02 融合)が担当。
Nostos(本リポジトリ)はその PaperMono プロトタイプ兼構想の名。
- Phase 2 実装完了・屋外フィールドテスト済み(2026-09-18):
firmware/nostos-fw(Rust/embassy スタンドアロン受信 FW)で Nostos-native 生 LoRa(923.000MHz / 16 バイトフレーム)の連続受信 → デコード → HOME/Trail 管理 → e-ink 軌跡マップ/帰路ナビ/設定(3 タブ・日本語表示・RGB LED・microSD ログ・ 軌跡の記録 一時停止)まで実装。送信側はfirmware/c6l-beacon(LBT 準拠・OLED UI・ HOME 長押し確定)。実 GPS で往復約 102 km・受信欠落ゼロを確認(2026-09-17)。 - 残り: CardputerZero 版への移植(cardputerzero-apps)。
- 実機実証の記録は
firmware/nostos-fw/experiments/README.md。
- デバイス: M5Stack PaperMono(full SKU
C153:NFC/LoRa 搭載) - SoC: ESP32-S3R8 / 16MB Flash / 8MB PSRAM
- 無線: SX1262(Stamp LoRa-1262)868〜923MHz
- 画面: 3.97" 480×800 4階調タッチ e-ink(SSD1677)+フロントライト
- 確定ルート: (A) Rust/embassy。BSP は papermono-rs を path 依存で利用 — docs/APPROACH.md
- BSP
canardleteer/papermono-rs(MIT)を path 依存で利用 (firmware/nostos-fwのビルドには本リポジトリと同じ階層に clone が必要)。 - 日本語グリフ(
firmware/nostos-fw/src/jpfont.rs)は BIZ UDゴシック(SIL Open Font License 1.1)からtools/gen_jpfont.pyで生成したビットマップ。 - Meshtastic ファームウェア(GPL)由来のコードは含まない(
crates/nostos-meshtasticは初期検証用に独自実装したデコーダ・現行の受信フォーマットは Nostos 独自)。