Commit Graph
370 Commits
Author SHA1 Message Date
Limor "Ladyada" Fried dfeafd98ab Merge pull request #187 from ladyada-eagleclaw/run-all-regression-tests
Run all regression tests in CI
2026-09-15 15:53:11 -04:00
Limor "Ladyada" Fried faedf19cb8 Merge pull request #186 from ladyada-eagleclaw/main
Add exact decimals and NMEA command construction
2026-09-15 15:49:30 -04:00
ladyadaandLimor Fried fdaa8279b8 Run every regression test in CI
Discover the C++ tests and Arduino regression sketches automatically. Run the sketches against the actual library with host serial output and timing, including marine extensions, and propagate failures and timeouts to CI.

Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 15:41:15 -04:00
ladyadaandLimor Fried 5ffa2dfd34 Run NMEA host regressions in CI
Add an independent Ubuntu job for all three hardware-independent NMEA tests, with fatal address and undefined-behavior sanitizer checks.

Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 15:34:09 -04:00
ladyadaandLimor Fried 90c20730f5 Add exact decimals and NMEA command construction
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 15:28:35 -04:00
Limor "Ladyada" Fried afabd2d182 Merge pull request #185 from ladyada-eagleclaw/main
Add bounded NMEA field iteration
2026-09-15 15:20:34 -04:00
ladyadaandLimor Fried f15627e39c Clarify how to mark a NMEA field cursor exhausted
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 15:10:40 -04:00
ladyadaandLimor Fried 01aa7a655d Add bounded NMEA field iteration
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 14:27:29 -04:00
Eagle Claw 74cf488d40 Merge pull request #184 from ladyada-eagleclaw/main
Add bounded NMEA sentence validation
2026-09-15 14:20:49 -04:00
ladyadaandLimor Fried 4ac934719e Add bounded NMEA sentence validation
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 14:10:17 -04:00
ladyadaandLimor Fried e2b86fdf73 Propose the reusable NMEA core API
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 14:01:30 -04:00
Eagle Claw de4ebc0814 Merge pull request #183 from ladyada-eagleclaw/main
Bump version to 1.8.0
1.8.0
2026-09-15 13:45:54 -04:00
ladyadaandLimor Fried a0921cadee Bump version to 1.8.0
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 13:44:15 -04:00
Limor "Ladyada" Fried 91b1a31e3e Merge pull request #182 from ladyada-eagleclaw/fix-copy-warnings-144
Fix length-derived string-copy warnings and field termination
2026-09-15 13:34:04 -04:00
Limor "Ladyada" Fried 8db412939f Merge pull request #181 from ladyada-eagleclaw/fix-marine-sources-159
Accept additional marine NMEA source identifiers
2026-09-15 13:33:28 -04:00
Limor "Ladyada" Fried c413dd495e Merge pull request #180 from ladyada-eagleclaw/main
Use Adafruit SdFat for shield logging
2026-09-15 13:33:12 -04:00
ladyadaandLimor Fried 9ee8f63f26 Use explicit byte copies for NMEA string fields
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>
2026-09-15 13:06:12 -04:00
ladyadaandLimor Fried 67b781c292 Accept additional marine NMEA source identifiers
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 13:04:45 -04:00
ladyadaandLimor Fried 9e037659d7 Use Adafruit SdFat for GPS shield logging
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>
2026-09-15 12:54:24 -04:00
19204c4d43 Make SD an optional GPS logger dependency
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>
2026-09-15 12:27:09 -04:00
Limor "Ladyada" Fried 3174c9ed07 Merge pull request #178 from ladyada-eagleclaw/main
Support antenna status on newer CDTop GPS modules
2026-09-15 12:22:56 -04:00
Limor "Ladyada" Fried 1383bd47fa Merge pull request #179 from ladyada-eagleclaw/docs-readme-guide
Document GPS setup and all examples
2026-09-15 12:18:52 -04:00
ladyadaandLimor Fried 6ad57c1f70 Document GPS setup and all examples
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 12:04:58 -04:00
ladyadaandLimor Fried 1d07bab68a Support antenna status on newer CDTop GPS modules
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 11:56:03 -04:00
Limor "Ladyada" Fried 6d811e98f0 Merge pull request #177 from ladyada-eagleclaw/fix-wakeup-timeout
Bound GPS response waits and allow wakeup retries
2026-09-15 11:49:06 -04:00
Limor "Ladyada" Fried 976908d647 Merge pull request #176 from ladyada-eagleclaw/main
Store GPS source and sentence tables in flash
2026-09-15 11:36:50 -04:00
ladyadaandLimor Fried 716d21a748 Bound GPS response waits and allow wakeup retries
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 11:29:59 -04:00
ladyadaandLimor Fried 38ad3ffcac Keep flash table declarations compatible with Doxygen
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 11:13:37 -04:00
Limor "Ladyada" Fried d52338ac0b Merge pull request #175 from ladyada-eagleclaw/fix-logger-setup-stack
Release SD logger setup stack before logging
2026-09-15 11:02:00 -04:00
Limor "Ladyada" Fried 6c9aba2fa8 Merge pull request #174 from ladyada-eagleclaw/fix-flash-gps-commands
Allow GPS commands to be stored in flash
2026-09-15 10:57:05 -04:00
ladyadaandLimor Fried 8d660243a0 Store GPS source and sentence tables in flash
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>
2026-09-15 10:55:34 -04:00
Limor "Ladyada" Fried 782f02797f Merge pull request #173 from ladyada-eagleclaw/main
Remove unused GPS SPI buffer
2026-09-15 10:48:43 -04:00
ladyadaandLimor Fried f4bc37093d Release SD logger setup stack before logging
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>
2026-09-15 10:47:52 -04:00
ladyadaandLimor Fried c8a9190793 Allow GPS commands to be stored in flash
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>
2026-09-15 10:45:00 -04:00
ladyadaandLimor Fried 5d7d904a7f Remove unused GPS SPI buffer
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>
2026-09-15 10:38:09 -04:00
Limor "Ladyada" Fried 9f8f5b7520 Merge pull request #171 from ladyada-eagleclaw/fix-glonass-galileo-sources
Accept GLONASS and Galileo NMEA source IDs
2026-09-15 10:35:35 -04:00
ladyadaandLimor Fried 7c76916d9f Limit the Uno RAM change to flash-stored Serial messages
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>
2026-09-15 10:17:23 -04:00
ladyadaandLimor Fried 957153e23c Reduce GPS logger RAM usage on Uno
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>
2026-09-15 10:05:03 -04:00
ladyadaandLimor Fried 06f8376021 Merge current GPS fixes before checking Uno memory
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 09:56:03 -04:00
Limor "Ladyada" Fried c881ee61c0 Merge pull request #170 from ladyada-eagleclaw/fix-i2c-read-address
Use the configured I2C address when reading GPS data
2026-09-15 08:49:14 -04:00
ladyadaandLimor Fried 21384bf554 Match CI formatting for the GPS I2C read call
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-14 20:42:46 -04:00
Limor "Ladyada" Fried 0b98a99a1c Merge pull request #169 from ladyada-eagleclaw/fix-rmb-partial-update
Preserve waypoint data when RMB parsing fails
2026-09-14 20:41:13 -04:00
Limor "Ladyada" Fried c6d6337cb6 Merge pull request #168 from ladyada-eagleclaw/fix-truncated-sentences
Reject truncated NMEA sentences before parsing fields
2026-09-14 20:39:49 -04:00
ladyadaandLimor Fried 47962143f8 Clarify when RMB waypoint data is saved
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-14 20:31:56 -04:00
ladyadaandLimor Fried 3b53ad02f4 Document the zero-field parsing guard
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-14 20:26:58 -04:00
Limor "Ladyada" FriedandCopilot Autofix powered by AI 4c02b0035f Refactor I2C request call for GPS data
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-09-14 20:22:54 -04:00
Limor "Ladyada" Fried c7f66c99ae Merge pull request #167 from ladyada-eagleclaw/fix-checksum-validation
Validate NMEA checksum digits and line ending
2026-09-14 20:20:42 -04:00
ladyadaandLimor Fried a09ebd7b86 Accept GLONASS and Galileo NMEA source IDs
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-14 18:20:56 -04:00
ladyadaandLimor Fried c04d2595fc Use the configured I2C address when reading GPS data
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-14 17:58:34 -04:00
ladyadaandLimor Fried 235a733d01 Preserve waypoint data when RMB parsing fails
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-14 17:56:57 -04:00