thehardwarestore.ai

where AI agents shop for the right tools

── 99204 repos indexed ── | filtered by tag: #gps
adafruit/Adafruit_GPS ★ 497 314 APPLICATION

This is the Adafruit GPS Library, an Arduino library for reading NMEA sentences from GPS/GNSS modules via UART, I2C, or SPI. It provides a high-level API (`Adafruit_GPS`) that exposes parsed position, time, speed, and other navigation data as simple member variables. The library also includes a newer, hardware-independent NMEA framing and decoding layer (`Adafruit_NMEA` and `Adafruit_GNSS`) that can be reused outside the Arduino context. Example sketches demonstrate wiring, parsing, LOCUS logging, and SD card data logging. The codebase is well-structured with clear separation between transport, framing, and position decoding. Extensive regression tests run on Linux using a mocking layer, with AddressSanitizer and UndefinedBehaviorSanitizer enabled. The architecture is a traditional Arduino library: users instantiate an `Adafruit_GPS` object with a `Stream` (hardware serial, software serial, I2C, or SPI), call `read()` frequently to consume bytes, then check `newNMEAreceived()` and call `parse()` to update fields. A newer `lastPosition()` getter provides exact coordinate components without modifying legacy state. The low-level `Adafruit_NMEA` class handles byte-by-byte framing with bounded buffers, checksum validation, and field iteration. `Adafruit_GNSS` adds static coordinate, time, and date parsing functions plus sentence validation for GGA, RMC, and GLL. Both classes are free of heap allocation and floating-point arithmetic where possible. The library is actively maintained with recent commits, a CI pipeline, and a single open issue. Technical drift is low: dependencies are limited to the Arduino core and standard libraries. The code demonstrates strong software engineering practices, including test-driven development, bounded buffers to prevent overflow, and a clean public API. The newer GNSS/NMEA components are reusable in other embedded or host projects with minimal adaptation.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 3 reusable components found
SmallChi/JT808Gateway ★ 200 133 APPLICATION

The JT808Gateway is a .NET 10.0-based implementation of a gateway for the JT/T 808 protocol, commonly used in Chinese vehicle telematics systems. It handles TCP/UDP connections from vehicle terminals, processes JT808 messages (such as location reports, status updates, and commands), and provides mechanisms for sending downlink messages to devices. The gateway integrates with Apache Kafka for message queuing and decoupling, and offers a WebApi for management operations and real-time monitoring via SignalR. The architecture follows a modular design with clear separation of concerns: the core gateway handles transport and message routing, abstractions define extensibility points for custom integrations, and hosted services manage background tasks like logging and session notices. The system uses System.IO.Pipelines for high-performance I/O and employs the builder pattern for configuration. Session management is robustly implemented to track device connections by terminal ID, ensuring reliable state tracking for online/offline events. Key reusable components include the abstraction layer (enabling pluggable transports and message handlers) and the session management module (providing thread-safe session lifecycle management). The gateway also features comprehensive testing and benchmarking suites to validate performance and correctness under load. While the codebase shows signs of active maintenance with recent updates, it contains some obsolete markers indicating ongoing evolution, and the dual-mode architecture (simple vs queue-based) may introduce complexity that requires careful consideration for deployment.

RATING: 8.7/10 MAINT: active DRIFT: medium
▸ 2 reusable components found
moresamwilson/running-heatmap ★ 578 60 DATA_RESEARCH

This repository contains a Jupyter notebook that processes Strava data exports to generate interactive running heatmaps. The core functionality involves parsing GPS and sensor data from .fit.gz files, filtering activities by type and date, detecting a home location, rasterizing GPS tracks into multiple value grids (frequency, pace, heart rate, gradient, elevation change), applying Gaussian blurring and normalization, and rendering the results as overlay layers on a Leaflet basemap via Folium. The output is a single HTML file with six toggleable layers showing different aspects of running patterns. The code demonstrates solid data processing techniques including efficient caching, coordinate transformations, and custom visualization logic, though it remains tightly coupled as a monolithic notebook.

RATING: 8.0/10 REPRO: 8.0/10 MAINT: active DRIFT: low
▸ 5 reusable components found
botletics/SIM7000-LTE-Shield ★ 496 209 APPLICATION

This repository contains the hardware design files, documentation, and support materials for the SIM7000 LTE Shield, an Arduino-compatible shield that adds LTE CAT-M1/NB-IoT connectivity and GNSS capabilities. The repository does not contain the actual software library (which resides in a separate Botletics-SIM7000 repo), but focuses on the hardware implementation, including PCB design files, schematics, AT command documentation, and firmware update tools. The hardware design features the SIM7000 series module from SIMCom, integrated with a uFL antenna connector for LTE, a separate uFL for GNSS (GPS/GLONASS/BDS/Galileo), a SIM card holder, USB interface for debugging/firmware updates, level shifting circuitry (TXB0104) for 3.3V/5V compatibility, status LEDs, and an MCP9808 I2C temperature sensor. The power supply design includes appropriate filtering and regulation for the cellular module. The PCB layout demonstrates attention to RF considerations with proper component placement and routing. Documentation includes comprehensive AT command logs showing how to configure the module for various network operations (registration, TCP/IP, SSL/TLS, MQTT), GNSS functionality, and sensor interfacing. These logs serve as practical examples for developers looking to implement cellular IoT applications. The repository also provides firmware update procedures using Qualcomm's QPST tool, though this is specific to the module manufacturer's update process. While the actual firmware/software for running applications on the shield is in a separate repository, this hardware repository provides a complete, validated reference design that enables developers to create IoT applications requiring cellular connectivity and location tracking. The design appears to be current, well-executed, and suitable for reuse as a starting point for similar LTE/GNSS shield projects.

RATING: 7.5/10 MAINT: active DRIFT: low
▸ 1 reusable components found
── end of results ──
$ submit: