whatisgithub

What is displayconnect?

malaq88/displayconnect — explained in plain English

Analysis updated 2026-05-18

17KotlinAudience · developerComplexity · 4/5Setup · hard

In one sentence

An Android app that sends bike navigation data over Bluetooth to a cheap ESP32 screen mounted on your handlebars.

Mindmap

mindmap
  root((DisplayConnect))
    What it does
      Bike navigation display
      Phone computes the route
      ESP32 draws vector map
      BLE JSON protocol
    Tech stack
      Kotlin and Jetpack Compose
      ESP32 and Arduino
      TFT_eSPI and ArduinoJson
    Use cases
      Handlebar mounted screen
      Turn by turn directions
      Locked phone navigation
    Audience
      Cyclists
      Motorcyclists
      Hardware makers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Mount a dedicated navigation screen on bike or motorcycle handlebars instead of using a phone screen.

USE CASE 2

Get turn by turn cycling or driving directions drawn as a vector map on a cheap ESP32 display.

USE CASE 3

Keep a phone locked or screen off while riding, using a Bluetooth foreground service for navigation.

USE CASE 4

Search for a destination by place name and choose a route profile for car, motorcycle, bike, or walking.

What is it built with?

KotlinJetpack ComposeESP32ArduinoTFT_eSPIArduinoJson

How does it compare?

malaq88/displayconnectandroid/appfunctionsdw2lam/openlauncher
Stars171718
LanguageKotlinKotlinKotlin
Setup difficultyhardmoderatemoderate
Complexity4/53/52/5
Audiencedeveloperdevelopergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Needs an ESP32-2432S028 (CYD) board flashed with the Arduino firmware, plus building and installing the Android app.

The README does not clearly state a license for this project.

So what is it?

DisplayConnect is an Android app paired with cheap ESP32 hardware that turns a small screen into a bike navigation display. The phone handles GPS, route calculation, and map drawing logic, then sends the result over Bluetooth Low Energy to an inexpensive ESP32 CYD board, a small computer with a built in 2.4 inch touchscreen. The board draws the route, nearby streets, your position, and turn instructions on its own screen. The project has gone through two versions. In the first version, the app mirrored the phone's screen to the display by capturing and streaming JPEG images over WiFi. The current version, on the main branch, works differently: instead of sending a picture of the screen, the phone sends structured navigation data as JSON messages over Bluetooth, and the display draws its own vector map from that data. This means the display no longer needs WiFi, and the phone screen can stay off or locked while riding. The idea is aimed at cyclists and motorcyclists who want a dedicated navigation screen mounted on their handlebars instead of staring at their phone in sunlight or rain, and who want to avoid touching a phone screen while moving. The ESP32 CYD board used for this costs only a few dollars, much cheaper than a dedicated bike GPS unit. Under the hood, the phone uses its GPS along with OSRM for route calculation, Nominatim for searching place names, and Overpass for nearby street data, all free OpenStreetMap based services, so no Google Maps API key is required for core navigation. The Android app is written in Kotlin using Jetpack Compose for its interface. The ESP32 firmware is written in Arduino style C++ and uses the TFT_eSPI library to draw graphics and ArduinoJson to parse the incoming Bluetooth messages. You can choose between route profiles for driving, motorcycle riding, cycling, or walking. There is also an optional mode that can extract simple navigation text from a Google Maps browser window and forward it too. A Portuguese translation of the documentation is included.

Copy-paste prompts

Prompt 1
Help me flash the ESP32 CYD firmware for DisplayConnect using Arduino.
Prompt 2
Explain how the JSON navigation protocol between the Android app and the ESP32 CYD works.
Prompt 3
Show me how to build the Android app in Kotlin and pair it with the ESP32 CYD over Bluetooth.
Prompt 4
Walk me through wiring an ESP32-2432S028 board to use with DisplayConnect.

Frequently asked questions

What is displayconnect?

An Android app that sends bike navigation data over Bluetooth to a cheap ESP32 screen mounted on your handlebars.

What language is displayconnect written in?

Mainly Kotlin. The stack also includes Kotlin, Jetpack Compose, ESP32.

What license does displayconnect use?

The README does not clearly state a license for this project.

How hard is displayconnect to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is displayconnect for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.