Replace length-derived strncpy calls with memcpy and explicit termination. Ensure parseStr also terminates fields that end without a delimiter, and extend the bounds regression to cover truncation, empty fields, and one-byte destinations.
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
Create up to 10,000 distinct long filenames with exclusive creation, drain startup GPS command replies before writing, and update CI and installation guidance for the Adafruit fork.
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
Integrate the dependency removal proposed in #161, install SD explicitly for CI, and document its installation for shield_sdlog.
Co-authored-by: Henricus Basien <Henricus@Basien.de>
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
Use shared PROGMEM tables with flash-aware lookup and copying. Preserve the source IDs, sentence IDs and matching order while saving 110 bytes of RAM in the Uno SD logger.
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
Prevent setup from being inlined into main so SD initialization temporaries are released before loop runs. Uno disassembly confirms main no longer retains a 129-byte local frame and two saved registers.
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
Add an F()-compatible sendCommand overload and keep the SD logger command strings in flash. This saves 82 bytes of RAM on Uno.
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
Remove the unreferenced 100-byte private buffer. The Uno SD logger now uses 1865 bytes of static RAM, down from 1965 bytes. All 20 examples compile.
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
Keep only the eight F() wrappers in shield_sdlog so RAM improvements can be reviewed one at a time. Defer the other memory changes. This step saves 90 bytes on Uno, leaving 83 bytes; compilation passes but runtime SD logging still needs more RAM.
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
Keep lookup tables, sentence IDs, logger messages and commands in flash; remove the unused SPI buffer. Keep setup separate so SD initialization does not retain its stack frame during logging.
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>