whatisgithub

What is openmoto?

negligentnarwhal/openmoto — explained in plain English

Analysis updated 2026-05-18

12KotlinAudience · generalComplexity · 4/5LicenseSetup · hard

In one sentence

An Android app that streams Android Auto or your phone screen onto certain CFMoto motorcycle dashboards, using a reverse engineered protocol.

Mindmap

mindmap
  root((OpenMoto))
    What It Does
      Android Auto on dash
      Screen mirroring
      Remembered pairing
      Touch control surface
    Tech Stack
      Kotlin
      Android
      Gradle
    Use Cases
      Motorcycle navigation
      Media control
      Dashboard mirroring
    Audience
      CFMoto riders
      Android developers

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

Run Android Auto on a CFMoto 800NK motorcycle dashboard directly from your phone.

USE CASE 2

Mirror your entire phone screen onto the dashboard to use apps Android Auto does not support.

USE CASE 3

Pair your bike once and reconnect automatically on future rides.

USE CASE 4

Control Android Auto through an in-app touch surface before mounting your phone.

What is it built with?

KotlinAndroidGradle

How does it compare?

negligentnarwhal/openmotoastoristhebrave/ursa-androiddev778g-me/korner
Stars121212
LanguageKotlinKotlinKotlin
Setup difficultyhardeasyeasy
Complexity4/52/52/5
Audiencegeneralops devopsdeveloper

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

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires building from source with JDK 17 and Android SDK, then sideloading via adb, only the 800NK is fully confirmed working.

You can use and modify it freely, but if you distribute your project built on it, including running it as a service, you generally must share your source code under the same license.

So what is it?

OpenMoto is an Android app that lets you run Android Auto, or mirror your whole phone screen, on the built in dashboard of certain CFMoto motorcycles. It is a community fork of an earlier project and adds full support for the CFMoto 800NK model sold in the US, along with a screen mirroring mode, the ability to remember a paired bike, and an in-app touch surface for controlling Android Auto before you put your phone away. The app works by having your phone act as the dashboard's brain. It joins the bike's Wi-Fi network using details from a QR code shown on the dash, runs Android Auto in a special self-contained mode on the phone, then sends that video feed to the dashboard using the same protocol CFMoto's own software uses. For screen mirroring, it instead sends a view of your entire phone screen so you can use apps that Android Auto does not support, like alternative navigation apps. The README is upfront that this is a proof of concept built by reverse engineering an undocumented protocol, not a finished product, and warns you to set everything up while the bike is stopped rather than fiddling with your phone while riding. It also clearly lists what the app does not do: it cannot read vehicle data like fuel, speed, or gear, and the bike's physical handlebar buttons will not control Android Auto, since the dashboard keeps those inputs to itself. Support varies by bike model. The 800NK is confirmed fully working, an older 675 model is expected to work but not freshly retested, and support for other models, like the 1000 MT-X, is still incomplete and needs riders willing to help test it. Building the app requires JDK 17 and the Android SDK, and it is installed onto a phone using Android's developer tools rather than an app store. The project is licensed under AGPL-3.0.

Copy-paste prompts

Prompt 1
Help me build and install OpenMoto on my Android phone using the gradlew instructions.
Prompt 2
Explain how OpenMoto's pairing process works for a CFMoto 800NK dashboard.
Prompt 3
Walk me through adding a new BikeProfile to OpenMoto for a CFMoto model that isn't supported yet.
Prompt 4
Help me understand why OpenMoto can't read fuel, speed, or gear data from my bike.

Frequently asked questions

What is openmoto?

An Android app that streams Android Auto or your phone screen onto certain CFMoto motorcycle dashboards, using a reverse engineered protocol.

What language is openmoto written in?

Mainly Kotlin. The stack also includes Kotlin, Android, Gradle.

What license does openmoto use?

You can use and modify it freely, but if you distribute your project built on it, including running it as a service, you generally must share your source code under the same license.

How hard is openmoto to set up?

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

Who is openmoto for?

Mainly general.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.