torlando-techandClaude Opus 4.7 e7efdf68c0 perf(boot): remove synchronous GPS+WiFi waits, defer LVGL task start
Boot was 48.5s end-to-end on this hardware: 92% of that was two
synchronous waits — gps_sync (15s) and wifi_connect (30s). Both
have async paths already (gps.encode is fed in loop(); the periodic
status check sets up TCP when WL_CONNECTED appears post-boot), so
blocking at boot wasn't actually load-bearing. Drop both waits to
brief opportunistic checks (500ms / 1s) and let the main loop pick
up async events.

Three follow-on changes were needed to keep functionality:

- Extract on_wifi_connected() (NTP + OTA + UDP logging setup) from
  setup_wifi so the post-boot WL_CONNECTED transition in loop() can
  run it. Idempotent via _wifi_post_connect_done.

- Add periodic GPS-time-sync retry in loop() — every 30s while
  unsynced, attempt a fast (timeout=0) sync_time_from_gps. The
  cheap path returns immediately when TinyGPSPlus already holds a
  valid date+time.

- Defer LVGL task start until AFTER setup_ui_manager. Previously
  the LVGL task started immediately after lv_init and refreshed
  its empty default screen on top of the boot splash, causing a
  visible flash to black before the first real UI frame painted.
  With the start moved to after the UIManager has built screens
  and configured the active one, the splash stays on-screen until
  the first real frame.

Net: boot drops from ~48s to ~3-5s.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 20:13:28 -04:00
2026-02-07 11:49:21 -05:00
2026-03-04 14:12:36 -05:00

Pyxis logo

Pyxis

An LXMF and LXST client firmware for T-Deck, built on a highly modified fork of microReticulum

Very much WIP, don't expect stability :)

Features

Reticulum transport over:

  • RNode-compatible LoRa
  • AutoInterface (local wifi)
  • TCP Client
  • BLE Interface (barely working if at all)

Other features:

  • GPS-synced time
  • One really annoying beep when you get a new message (user toggle)
  • View the announce stream
  • Choose a propagation node (and sync with it) (fixed in v0.2.1)
  • Set auto announce timer
  • Light up keyboard (user toggle)
  • Will crash in about 5 minutes of normal use (sorry) I had 5d uptime on v0.2.0 with BLE disabled
  • Make LXST voice calls (codec2 only, quality sounds horrible coming out the other end in Columba, needs work)

Why "Pyxis"

Pyxis, latin for "compass," is a constellation in the southern sky depicting a mariner's compass. Small but essential, the compass ensures every message finds its destination - even when the path is uncertain.

S
Description
No description provided
Readme GPL-3.0
262 MiB
Languages
C++ 47.2%
C 41.4%
Python 9.8%
mupad 0.9%
JavaScript 0.6%