Pillion

How it works

How it works

Pillion speaks NaviLite — the same projection protocol Garmin StreetCross uses to push navigation to the dash. Your screen is captured, scaled to 480×240, JPEG-encoded, and streamed frame by frame over Bluetooth.

Get casting in five steps

  1. 01

    Install Pillion

    Download the latest APK from GitHub Releases and sideload it on your Android phone.

  2. 02

    Pair your phone to the bike

    Bond your phone to the bike's Bluetooth exactly as you normally would. No extra pairing secret is required.

  3. 03

    Select the navigation screen

    On the bike's TFT, switch to the navigation screen so the dash is ready to receive imagery.

  4. 04

    Start Pillion

    Open Pillion, grant the screen-capture prompt, and tap Start.

  5. 05

    Open your map in landscape

    Launch Waze or Google Maps in landscape and it appears on the dash. Set up your route while parked.

The NaviLite protocol

Everything below was derived from black-box observation on an MT-07 (2025). It's an original write-up of an observed wire format — no Garmin or Yamaha code is reproduced.

Transport

Bluetooth Classic, RFCOMM / Serial Port Profile. Service UUID 0x7220. The phone is the RFCOMM client; the already-bonded dash advertises the service.

Framing

A small framed protocol with a CRC-32/MPEG-2 checksum guarding each message.

Authentication

A trivial de-obfuscate-and-echo handshake. The auth is universal — no per-bike key or pairing secret exists to extract.

Image channel

Your screen, scaled to 480×240 and JPEG-encoded, streamed as a sequence of frames at ~5–15 fps.

Read the full wire spec (PROTOCOL.md) on GitHub

Ready to put your map on the dash?

Grab the latest APK, sideload it, and start casting. It's free for non-commercial use.