Repository navigation
CardSat v0.9.6c
A point release on top of 0.9.6b: ADIF export now produces LoTW-legal satellite
names and conforms to ADIF 3.1.7, and grid entry is uppercased on every screen.
Installation
To flash directly to Cardputer, use CardSat_Merged.bin.
For installation with Launcher, user CardSat.bin.
Added
- LoTW
SAT_NAMEmapping on ADIF export. LoTW limitsSAT_NAMEto six
characters and uses its own names, so on export CardSat translates each logged
satellite's (AMSAT) name to the correct LoTWSAT_NAME:- It consults
/CardSat/lotw_sats.csvfirst (rows ofSAT_NAME,AMSAT_NAME),
so you can update it on the card as new satellites appear without reflashing.
A built-in table covers the common non-trivial cases (e.g.ISS → ARISS,
LILACSAT-2 → CAS-3H,TEVEL2-n → TEV2-n,SONATE-2 → SONATE,
Taurus 1 → TAURUS,AO-07 → AO-7) if the file is missing. - No match → prompt. If a logged satellite can't be resolved (and its name
is longer than six characters), CardSat prompts you to enter itsSAT_NAME.
Entry is capped at six characters and uppercased. Your answer is appended
tolotw_sats.csv, so you're only asked once per satellite. - A satellite whose name already fits in six characters is used as-is (no
prompt). The starterlotw_sats.csvships in the bundle — copy it to the
card's/CardSat/folder.
- It consults
Changed
- ADIF export updated to the ADIF 3.1.7 specification. The header now declares
<ADIF_VER:5>3.1.7and addsPROGRAMVERSIONandCREATED_TIMESTAMP. The band
lookup was completed against the 3.1.7 Band enumeration — it now emitsBAND/
BAND_RXfor all amateur-satellite bands (10m, 6m, 2m, 1.25m, 70cm, 33cm, 23cm,
13cm, 9cm, 6cm, 3cm) using exact ADIF ranges, so S/X-band birds like
QO-100 (13cm up / 3cm down) now carry their bands. All emitted fields and
enumeration values (MODESSB/CW/FM,PROP_MODESAT, date/time formats,
GridSquare, String) were checked against the spec. - Grid fields are uppercased on every screen. The uppercase-by-default entry
added for the log's callsign/grid in 0.9.6b now also applies to the Location
grid and the mutual-pass DX grid. Letters come out uppercase; hold shift for
lowercase (so Maidenhead subsquares remain reachable).
Fixed
-
ISS (and other busy birds) failing to enumerate transponders. The SatNOGS
transmitters fetch was capped at 60 KB, but the ISS list (~49 transmitters)
exceeds that; the body arrived truncated, the JSON parse failed, and the
satellite ended up with no transponders. The cap is now 200 KB. A stale,
truncated transmitter cache self-heals on the next online load (a failed parse
triggers a re-fetch). -
Only active transmitters were being listed. The parser dropped every
SatNOGS transmitter not markedactive, so the ISS showed ~9 instead of its
full list. It now keeps the complete list (active and inactive), skipping only
entries with no tunable frequency; two-way transmitters still sort to the front. -
Large transmitter lists came back corrupted/short (the real ISS bug). The
response was read into a RAMString, but the read loop ignored the return of
String::concat(). Under TLS/WiFi heap pressure the String occasionally failed
to grow; those chunks were silently dropped while the byte counter advanced
anyway, splicing unrelated fragments together and corrupting the JSON. Only the
ISS (by far the biggest list) was large enough to trip it. The transmitter fetch
now streams straight to the cache file and parses directly from that file (the
same approach already used for GP/TLE data), so the full body never has to live
in one contiguous String. A previously-corrupted cache self-heals: the failed
parse triggers a fresh fetch on the next online load.
Notes / upgrade
- Put the maintained mapping at
/CardSat/lotw_sats.csvon the card. The file
uses LoTW's column order,SAT_NAME,AMSAT_NAME, with a header row. Lines added
by the on-device prompt are appended in the same format. - The match is case-insensitive on the
AMSAT_NAMEcolumn against the satellite
name CardSat logged. If your catalog names differ (e.g. a trailing designator),
add a row mapping that exact name, or answer the prompt once. FW_VERSIONis now0.9.6c(shown on the About screen).
Status
- Unchanged from 0.9.6: CAT control and the rotator are host-tested only. The
ADIF/LoTW mapping, the export prompt flow, and the grid uppercasing are verified
for brace balance and src/.ino parity, but should be confirmed on hardware —
export a log and check theSAT_NAMEfields import cleanly into LoTW/TQSL. See
the v0.9.0 notes for the full feature list and build/flash instructions.