mrkeyoor.com_
Sat 05 Sept 08:37 UTC
Open Source6 min read

OpenTrailPaper Turns an $84 Board Into an Offline Bike Computer

OpenTrailPaper puts offline maps, FIT recording and Bluetooth sensors on a bare LilyGO e-paper board. Its 276-point HN debut shows the appeal and the rough edges.

OpenTrailPaper reached 276 points and 97 comments on Hacker News, while its GitHub repository had 95 stars when we checked. That gap is the useful signal. Developers are paying attention to whether an $84.21 development board can become a capable bike computer without an account, subscription or cloud service.

The answer is qualified. OpenTrailPaper is firmware and companion software for the LilyGO T5S3 4.7-inch E-Paper Pro, which the manufacturer currently lists at $84.21. Its default product-page selection was marked sold out when we checked. The buyer still has to add a microSD card and attach a compatible mount, while the bare board needs protection from rain. The project site explicitly calls it a development project rather than a finished, weatherproof product.

What the board can do

Once prepared, the head unit can navigate and record a ride without a phone or data connection. According to the project documentation, it reads GPS position, displays offline maps, follows GPX routes and writes one-hertz FIT activity files to the SD card. Bluetooth Low Energy support covers heart-rate monitors, power meters and speed or cadence sensors. It can also run structured workouts stored as ERG or MRC files.

The hardware helps explain how much fits into a single board. LilyGO's specification page lists an ESP32-S3, 16 MB of flash, 8 MB of PSRAM, Bluetooth 5, an SD card slot and a 4.7-inch e-paper panel. OpenTrailPaper drives that screen at 960 by 540 pixels and uses the board's GPS, touch controller, clock and battery-management chips. E-paper stays readable in direct sun and consumes power mainly during refreshes, though the processor and radios still draw energy throughout a ride.

A free iPhone companion app handles the jobs that would be awkward on a slow, touch-based e-paper screen. It can search for a destination, create a route, build map tiles, rearrange the device screens and transfer recorded rides over Bluetooth. Apple's listing says the app requires iOS 17 or later. The project site describes Android support as a closed beta, so Android users do not yet get the same public path.

The separation between phone and head unit is deliberate. The app prepares maps and files, then the device owns GPS tracking, sensor readings, display updates and recording on the road. The project's feature page says routes and rides stay on the user's devices, with no account required. Apple's privacy label reports that the developer says the iOS app collects no data, although Apple also notes that it has not verified that declaration.

Offline maps built for a small computer

OpenTrailPaper does more than cache screenshots. Its repository documentation describes a custom binary map format split into Uber H3 resolution-6 hexagons, each covering roughly 36 square kilometres. Roads come from OpenStreetMap through Overpass. The firmware indexes the files on the SD card, keeps 32 recently used tiles in a PSRAM cache and draws the current view around the rider's position. Empty areas produce a clear NO MAP HERE screen instead of an unexplained blank panel.

The unusual part is its answer to missing altitude hardware. The LilyGO board has no barometric pressure sensor, and the project says raw GPS altitude jitters too much to calculate climbing. The iOS app therefore fetches a coarse digital elevation grid from Open-Meteo and stores it inside each map tile. The firmware interpolates a height from that grid as the rider moves. This yields an estimated ascent profile, but only inside downloaded areas and without the fine detail needed to catch an overpass or parking-garage ramp, as the technical notes acknowledge.

People without the app can use the browser setup page to generate tiles locally from OpenStreetMap data and copy them to the SD card. That route has a catch: browser-generated tiles omit the elevation grid, so grade and ascent data lose their map-based input. The page also advises selecting a city- or county-sized area rather than trying to package an entire state in one download.

The source is open, including the workarounds

The firmware, iOS app, Android code and supporting tools are in one Apache 2.0 repository. The source tree includes the GPS and Bluetooth services, FIT writer, map renderer, LoRa messaging code and companion apps. Third-party pieces retain their own terms: the repository notes that map data derived from OpenStreetMap is covered separately by the Open Database License, while the optional epdiy display backend is licensed under LGPL 3.0 or later.

Installation can be simple if the exact board is already on hand. The setup page flashes a prebuilt image over USB using Web Serial and says the process takes about a minute. It runs locally, but only in a desktop Chromium-based browser. Chrome, Edge and Opera work; Safari, Firefox, phones and tablets do not provide the required Web Serial path. The board must first be placed in download mode by holding BOOT, tapping RESET and releasing BOOT.

Developers who want to change the firmware need PlatformIO and LilyGO's board support. The build instructions reduce the normal cycle to these commands after the dependency is present:

pio run
pio run -t upload

The repository documents a less obvious USB problem behind that convenience. Because the board runs USB in OTG mode, the usual automatic reset route cannot reach the pins needed to enter the ESP32 bootloader. OpenTrailPaper includes its own upload helper to switch modes, flash the image, clear a persistent download flag and return the board to the application. A broken build can still require the physical BOOT and RESET sequence described in the flashing notes.

There is evidence of engineering discipline, with limits worth keeping in view. GitHub Actions builds the firmware and iOS app and runs Meshtastic wire-format tests, according to the repository. The FIT encoder test writes sample rides, can check their CRCs with fitdecode and covers recovery after an interrupted recording. A host-side preview tool compiles the real display code to catch clipped text and layout errors. The documentation says the FIT and display-preview harnesses run locally rather than in CI, so their presence does not prove that every published commit passed them.

The unfinished hardware matters

The current battery result sets a firm boundary. OpenTrailPaper reports about 7.4 usable hours from a 1,500 mAh build with the front light off, measured against an eight-hour baseline target. That is enough for many rides but leaves little margin for a long day, cold-weather loss or battery ageing. The project page says power work is continuing, so newer firmware may change the figure.

Rain is a more immediate problem. The development board has no enclosure seal or IP rating, and its touch interface can be difficult with winter gloves or wet hands. The hardware buttons are limited as well. One shares the ESP32's boot-mode pin, while another sits behind an I/O expander and cannot directly wake the processor from deep sleep. The porting guide identifies dedicated wake-capable buttons, a larger battery and a weatherproof case as improvements for another board.

Navigation also carries visible compromises. There is no magnetometer, so the map cannot know its orientation while the bicycle is stopped. The basic GPS receiver may take longer to lock and struggle more under trees or between buildings than a modern multi-band unit. OpenTrailPaper seeds the receiver with stored time and position, or with the phone's location when connected, to shorten startup. Sensor pairing is BLE-only because the ESP32-S3 lacks an ANT+ radio, according to the hardware notes.

Even mounting is a maker task. The setup guide recommends sticking a Garmin-style quarter-turn adapter to the back, then clipping it into a compatible handlebar mount. A 32 GB FAT32 microSD card holds maps, routes, workouts, logs and ride files. Those ordinary folders are an advantage for anyone who wants direct access to their data, but they also make clear how far this is from opening a box and riding.

The 276-point Hacker News score measures curiosity, not field reliability, and the discussion cannot verify the project's battery or navigation claims. The more telling next evidence will come from riders using the device through bad weather, dense streets and rides that approach the reported battery limit. Also worth watching are a public Android release and ports to hardware with a sealed case, barometer, compass and better controls. Until those arrive, OpenTrailPaper is best read as a usable open platform with unusually honest documentation about where the current board falls short.

We reviewed this

  1. computer — our honest review
  2. browser — our honest review
  3. paper — our honest review

Sources

  1. OpenTrailPaper project site
  2. OpenTrailPaper source repository
  3. OpenTrailPaper device setup
  4. LILYGO T5 E-Paper S3 Pro specifications
  5. OpenTrailPaper on the App Store
  6. Show HN: Open-Source eInk Bike Computer