# fastshift/x-track

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/fastshift-x-track).**

6,250 stars · 1,340 forks · C · MIT

## Links

- GitHub: https://github.com/FASTSHIFT/X-TRACK
- Homepage: https://deepwiki.com/FASTSHIFT/X-TRACK
- awesome-repositories: https://awesome-repositories.com/repository/fastshift-x-track.md

## Topics

`bicycle` `gps` `gps-tracking` `gpx` `lvgl` `mcu` `mvp` `offline-maps` `speedometer`

## Description

X-Track is a firmware project for an embedded bicycle computer that combines GPS-based speed and ride metrics with offline map navigation. It functions as a GPS bicycle speedometer, displaying speed, distance, altitude, and other ride data on a handlebar-mounted screen, while also serving as an offline map viewer that renders locally stored map tiles without an internet connection.

The project distinguishes itself by including a firmware emulator that runs the embedded code on a PC, enabling development and testing without physical hardware. It also provides GPS-based clock calibration to automatically set the device's real-time clock from satellite signals, and records GPS tracks during rides for export in standard GPX format. Hardware troubleshooting guidance helps diagnose common connection issues with GPS, SD card, display, and power circuits.

Additional capabilities include file-based map source configuration, PNG-to-bitmap tile conversion for offline maps, and JSON-based data persistence that saves ride data automatically when power is lost. The project supports downloading map tiles for user-selected geographic regions at chosen zoom levels, and offers GPX track export for use in other mapping applications.

## Tags

### Hardware & IoT

- [Ride Metrics Displays](https://awesome-repositories.com/f/hardware-iot/gps-location-tracking/gps-data-ingestion/ride-metrics-displays.md) — An embedded device that displays speed, distance, and altitude from GPS data on a handlebar-mounted screen during rides. ([source](https://github.com/FASTSHIFT/X-TRACK))
- [GPS Coordinate Displays](https://awesome-repositories.com/f/hardware-iot/altitude-measurement/gps-coordinate-displays.md) — Show current latitude, longitude, and altitude from GPS readings. ([source](https://github.com/FASTSHIFT/X-TRACK))
- [GPX Track Loggers](https://awesome-repositories.com/f/hardware-iot/gps-location-tracking/gps-coordinate-loggers/gpx-track-loggers.md) — Logging a ride path from GPS readings and saving it as a standard GPX file for use in other apps.
- [Speed Displays](https://awesome-repositories.com/f/hardware-iot/gps-location-tracking/gps-location-controllers/speed-displays.md) — Show current speed from a GPS module on the bicycle speedometer display. ([source](https://github.com/FASTSHIFT/X-TRACK/tree/main/Hardware))
- [Track Recorders](https://awesome-repositories.com/f/hardware-iot/gps-location-tracking/track-recorders.md) — Log the cyclist's route in real time and save it as a standard GPX file for export. ([source](https://github.com/FASTSHIFT/X-TRACK/blob/main/README.md))
- [Penetration Testing Firmware](https://awesome-repositories.com/f/hardware-iot/microcontroller-firmware-frameworks/esp32-firmware-projects/penetration-testing-firmware.md) — Simulates firmware execution on a PC to develop and test code without needing physical hardware. ([source](https://github.com/FASTSHIFT/X-TRACK))
- [GPS-Based Clock Calibrations](https://awesome-repositories.com/f/hardware-iot/real-time-clock-management/gps-based-clock-calibrations.md) — Setting the real-time clock automatically by reading time signals from GPS satellites.
- [Simulators](https://awesome-repositories.com/f/hardware-iot/connectivity-iot/hardware-communication/serial-device-communication/firmware-flashing/embedded-firmware-development/simulators.md) — Running embedded firmware inside a PC emulator to test and debug features without physical hardware.
- [GPS-Based Clock Calibrations](https://awesome-repositories.com/f/hardware-iot/gps-location-tracking/gps-data-ingestion/gps-based-clock-calibrations.md) — Sets the device's real-time clock automatically using GPS satellite time signals. ([source](https://cdn.jsdelivr.net/gh/fastshift/x-track@main/README.md))

### Part of an Awesome List

- [Firmware Emulation Frameworks](https://awesome-repositories.com/f/awesome-lists/security/firmware-emulation-frameworks.md) — Runs embedded firmware inside a PC emulator to test and develop features without physical hardware.
- [Embedded Firmware Simulators](https://awesome-repositories.com/f/awesome-lists/security/firmware-emulation-frameworks/embedded-firmware-simulators.md) — Runs the device firmware on a PC to test and develop features without requiring physical hardware.

### Development Tools & Productivity

- [Speed Displays](https://awesome-repositories.com/f/development-tools-productivity/system-tray-managers/speed-displays.md) — Show current speed, distance, time, calories, and heading during a bicycle ride. ([source](https://github.com/FASTSHIFT/X-TRACK))
- [Map Tile Source Configurations](https://awesome-repositories.com/f/development-tools-productivity/path-mapping-configurations/path-mapping-configurations/repository-path-mapping/source-path-mapping/map-tile-source-configurations.md) — Sets the directory on the SD card where the device reads map tile files to support multiple map sources. ([source](https://github.com/FASTSHIFT/X-TRACK/tree/main/Tools))

### Graphics & Multimedia

- [GPX Track Exporters](https://awesome-repositories.com/f/graphics-multimedia/gpx-location-editors/gpx-track-exporters.md) — Log the bicycle's path during a ride and save it as a standard GPX file for sharing or analysis. ([source](https://github.com/FASTSHIFT/X-TRACK))
- [Offline Map Tile Renderers](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/tile-map-renderers/offline-map-tile-renderers.md) — Displays map tiles from local storage with real-time position tracking and zoom controls without an internet connection.
- [Map Tile Downloaders](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/tile-map-renderers/offline-map-tile-renderers/map-tile-downloaders.md) — Download map tiles from an online source at selected zoom levels for offline use on the device. ([source](https://github.com/FASTSHIFT/X-TRACK/tree/main/Tools))
- [Region Selectors](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/tile-map-renderers/offline-map-tile-renderers/map-tile-downloaders/region-selectors.md) — Restrict the downloaded map area to a user-chosen geographic region to control file size and download speed. ([source](https://github.com/FASTSHIFT/X-TRACK/tree/main/Tools))

### Mobile Development

- [Offline Mapping Applications](https://awesome-repositories.com/f/mobile-development/offline-mapping-applications.md) — Show a map with the user's real-time position and support zooming without an internet connection. ([source](https://github.com/FASTSHIFT/X-TRACK/blob/main/README.md))

### Testing & Quality Assurance

- [On-Device Execution Simulation](https://awesome-repositories.com/f/testing-quality-assurance/on-device-execution-simulation.md) — Simulates firmware execution on a PC to develop and test code without needing physical hardware. ([source](https://github.com/FASTSHIFT/X-TRACK))

### User Interface & Experience

- [Display Metrics](https://awesome-repositories.com/f/user-interface-experience/display-metrics.md) — Display speed, distance, time, calories, heading, latitude, altitude, and step count on the screen. ([source](https://cdn.jsdelivr.net/gh/fastshift/x-track@main/README.md))
- [Ride Metrics Displays](https://awesome-repositories.com/f/user-interface-experience/display-metrics/ride-metrics-displays.md) — Show speed, distance, time, calories, heading, altitude, and step count during a ride. ([source](https://github.com/FASTSHIFT/X-TRACK/blob/main/README.md))

### Data & Databases

- [Application-Level Persistence](https://awesome-repositories.com/f/data-databases/data-access-querying/memory-mapped-file-access/flash-memory-access/flash-storage-managers/power-loss-safe-flash-filesystems/application-level-persistence.md) — Persist ride data automatically to a JSON file when power is interrupted to prevent loss. ([source](https://github.com/FASTSHIFT/X-TRACK))
- [JSON-Based Persistence](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/data-storage/file-based-storage/local-file-storage/json-based-persistence.md) — Saves ride data automatically to a JSON file when power is removed to prevent data loss.
- [Map Tile Source Configurations](https://awesome-repositories.com/f/data-databases/data-mapping/coordinate-system-mapping/coordinate-system-mappings/map-tile-source-configurations.md) — Sets the map folder path and coordinate system in a configuration file to load correct map data and positional offsets. ([source](https://github.com/FASTSHIFT/X-TRACK/blob/main/Tools/README.md))
- [Offline Map Data Managers](https://awesome-repositories.com/f/data-databases/offline-data-management/offline-map-data-managers.md) — Download map tiles for a user-selected geographic area, limiting the region to keep file sizes manageable. ([source](https://github.com/FASTSHIFT/X-TRACK/blob/main/Tools/README.md))
- [Tile Downloaders](https://awesome-repositories.com/f/data-databases/offline-data-management/offline-map-data-managers/tile-downloaders.md) — Download map tiles for a chosen geographic region at user-selected zoom levels and store them as PNG files in a MAP folder. ([source](https://github.com/FASTSHIFT/X-TRACK/blob/main/Tools/README.md))

### DevOps & Infrastructure

- [Hardware Connection Troubleshooting Guides](https://awesome-repositories.com/f/devops-infrastructure/connectivity-troubleshooting/hardware-connection-troubleshooting-guides.md) — Diagnosing and fixing common connection issues with GPS, SD card, display, and power circuits on a custom build.

### Web Development

- [Map Tile Source Configurations](https://awesome-repositories.com/f/web-development/data-mapping/declarative-mapping-engines/configuration-file-mappings/map-tile-source-configurations.md) — Configures the map tile folder path and coordinate system in a JSON file for correct map alignment.
