Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
70730e5
fix: battery ADC calibration for third-party battery packs
joshbowyer Aug 9, 2026
44f1c3e
fix: clamp battery percent to 0-100; live-refresh readonly battery fi…
joshbowyer Aug 9, 2026
c6d36a4
feat: GPS telemetry Stage 1 (issue #64) - on-demand LXMF position send
joshbowyer Aug 12, 2026
0480d24
rsDeck #64: GPS status UI (fix age/sats), periodic telemetry send int…
joshbowyer Aug 12, 2026
443d570
rsDeck: fix GPS status UI jitter, add periodic-send skip diagnostics
joshbowyer Aug 12, 2026
10ec198
rsDeck: add telemetry diagnostic counters for periodic-send failure i…
joshbowyer Aug 12, 2026
2deb7e1
rsDeck: make status-bar branding text overridable via untracked local…
joshbowyer Aug 12, 2026
094756f
rsDeck: offline map tile pipeline (stage 1) + boot chime override
joshbowyer Aug 13, 2026
be8b97b
rsDeck: fix map tile SD path convention (root, x/y/z order not /maps/…
joshbowyer Aug 13, 2026
4a2428b
rsDeck: fix map tile path back to /maps/ prefix (keep x/y/z order fix)
joshbowyer Aug 13, 2026
84a72e4
rsDeck: tune tile decode chunk latency + document pngle burst limitation
joshbowyer Aug 13, 2026
d007aaa
rsDeck: LvMapScreen full pan/zoom offline map UI (issue #64)
joshbowyer Aug 13, 2026
9faa578
rsDeck: add Map to bottom tab bar
joshbowyer Aug 13, 2026
ff0b323
rsDeck: fix tab bar overflow (icon tabs) + map screen layout/tile bugs
joshbowyer Aug 13, 2026
2b52f2a
rsDeck: fix tab icon glyphs, low-zoom world tile bug, add map nav ove…
joshbowyer Aug 13, 2026
38486fd
rsDeck: fix map pan direction, enlarge nav buttons, harden tile-slot …
joshbowyer Aug 13, 2026
9216a6c
rsDeck: harden offline map renderer + fix settings scroll snap
joshbowyer Aug 15, 2026
eb91060
feat: contact location pins + on-demand Send GPS (#64 groundwork)
joshbowyer Aug 23, 2026
a3e1ed9
Apps launcher: Map under Apps with BACK + app-mode overlays
joshbowyer Aug 23, 2026
ce61cfd
Apps: Notes MVP on SD (/Files/notes)
joshbowyer Aug 24, 2026
cdc6811
Notes: Plain|Locked encrypt-at-save (RNE1 AES-256-GCM)
joshbowyer Aug 24, 2026
64edd76
Contacts/Peers menus match Pro; harden announce flood for touch
joshbowyer Aug 24, 2026
9019525
Apps: Files browser + Reader for /Files chroot
joshbowyer Aug 24, 2026
2f54e93
Apps: GPS status screen (PII-safe, no lat/lon)
joshbowyer Aug 24, 2026
6718eac
GPS: multi-format coords (DD/DM/DMS/Plus Code/UTM)
joshbowyer Aug 24, 2026
0db68ed
GPS: fix Plus Code encode, ASCII degrees, single-line layout
joshbowyer Aug 24, 2026
be6b512
Voice: Codec2-1300 decode/play on Plus (no mic)
joshbowyer Aug 25, 2026
f8113fc
Voice: C2P RX/TX, autoplay, LoRa queue harden, container OOM fix
joshbowyer Aug 25, 2026
dce61f4
Voice: drop mesh C2P/Codec2/Voice UI; simplify home GPS chip
joshbowyer Aug 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
.pio
platformio_override.ini
BUILD_NOTES.local.md
.platformio-core/
.vscode/.browse.c_cpp.db*
.vscode/c_cpp_properties.json
Expand Down
36 changes: 36 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,42 @@ AP mode exposes a local TCP endpoint for a nearby Reticulum host:
The bridging UI and interface behavior may change as Ratspeak's client release
stabilizes.

## Battery

The stock T-Deck Plus battery is read through a fixed ADC voltage-divider
ratio. Third-party/extended battery packs are commonly wired through a
different divider network on their sense line, which can make the reported
voltage (and therefore percentage) wrong even though the battery itself is
fine — e.g. reading ~69% when actually fully charged.

Tested and confirmed working with a
[makernova.io](https://makernova.io/) 8000mAh pack (JST 1.25 connector) in
[AlleyCat's extended T-Deck Plus case](https://www.printables.com/model/1345336)
(3D-printed, Printables #1345336).

If your battery percentage looks wrong, calibrate the ADC divider ratio
against a multimeter reading on the battery terminals (ideally with USB
disconnected, to avoid charge-line voltage bias):

```
b # print raw ADC, computed voltage, divider ratio, percent
B<ratio> # set + persist a new divider ratio, e.g. B1.8762
```

over the device's serial console (115200 baud). The firmware computes the
correct ratio for you from a live raw ADC reading + your multimeter value —
see the in-firmware `b` output for the exact formula. Settings persist across
reboots and firmware updates (stored alongside your identity/config, not
touched by a normal OTA/reflash).

The `Charge Above` and `Full Threshold` settings (Settings → Battery, hold
trackball click to reveal developer controls) are separate knobs:
`Charge Above` is the voltage above which the device assumes it's actively on
a charger (typically just under the LiPo absolute max of ~4.2V, not the
resting-full voltage); `Full Threshold` compensates the discharge curve for
your particular pack's typical resting-voltage sag under load. They're not
meant to be compared to each other directly.

## Build From Source

```bash
Expand Down
21 changes: 21 additions & 0 deletions lib/pngle/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2019 kikuchan

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
27 changes: 27 additions & 0 deletions lib/pngle/library.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"name": "pngle",
"version": "1.1.0",
"description": "A stream based portable PNG Loader for Embedding",
"keywords": "png, png-loader, png-decoder, c, arduino, mbed, esp32, esp8266, stm32, m5stack",
"repository": {
"type": "git",
"url": "https://github.com/kikuchan/pngle.git"
},
"authors": [
{
"name": "kikuchan",
"email": "kikuchan98@gmail.com"
}
],
"license": "MIT",
"homepage": "https://github.com/kikuchan/pngle",
"export": {
"include": [
"src",
"examples/**/*.ino",
"examples/**/*.c"
]
},
"frameworks": "*",
"platforms": "*"
}
10 changes: 10 additions & 0 deletions lib/pngle/library.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name=pngle
version=1.1.0
author=kikuchan
maintainer=kikuchan
sentence=A stream based portable PNG Loader for Embedding
paragraph=A memory frugal stream based portable PNG image for decoder embedded systems. All standard types of PNG files are supported (as tested with PngSuite), including interlaced images.
category=Display
url=https://github.com/kikuchan/pngle
architectures=*
includes=pngle.h
4,934 changes: 4,934 additions & 0 deletions lib/pngle/miniz.c

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions lib/pngle/miniz.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#define MINIZ_HEADER_FILE_ONLY
#include "./miniz.c"
Loading