KaiGate 改 seal KaiGate

Smart shift knob

Universal commercial smart knob. ESP32-S3 firmware on a 466×466 circular AMOLED, plus the KaiGate companion app for Android and iOS.

Hardware

What ships on the knob

Display

AMOLED 1.32

Waveshare ESP32-S3-Touch-AMOLED. CO5300 QSPI, CST820 touch, ES8311 speaker path, LiPo gauge.

IMU

MPU-6050

Pitch and roll H-gate clustering plus a live two-axis G-meter. Address 0x68 on I2C0.

Haptics

DRV2605L

1027 coin ERM. Shift double-pulse and money-shift alert. Address 0x5A.

OBD

iCar Pro

Vgate BLE / ELM327. RPM, speed, coolant, boost, IAT, voltage, DTCs.

Phone

KaiGate app

GATT configurator, calibration wizard, circular lens studio, telemetry and DTC hub.

On-glass UI

Seven screens around the rim

TachGear + arc
VitalsBoost / CLT
G-meterLive bubble
Timers0–60 / shift
LensGIF / wall
MediaTransport
DTCClear codes
Lock

Production rules

2 s long-press toggles lock. Auto-relock after 10 s idle while stationary. Swipes die if speed is over 0.5 mph or a gear is in. Cold limiter holds the shift light at 3,500 RPM until coolant is 180 °F. Both values are live-tunable from the app.

Safety

Strobe and money-shift

Full-circle red/white flash, DRV2605L double-pulse, ES8311 beep. Money-shift compares predicted post-downshift RPM to redline using stored mph/rpm ratios. Idle mascot fades to /idle.gif after 30 s in neutral.

Companion

KaiGate on the phone

Tune

Redline and themes

4,000–9,500 RPM, shift light, cold limiter, brightness. JDM Amber, Euro Sport, Monochrome, Cyberpunk Neon. 5-speed, 6-speed, dog-leg.

Calibrate

IMU gate wizard

Live pitch and roll. Eight NVS clusters for N, 1–6, R. Confirmation uses speed/RPM while the engine is pulling.

Media

Now playing

Play, skip, volume. Cover art and title from the phone session. Mirrors the knob media screen over BLE.

Studio

466 × 466 lens

Pan, zoom, auto-crop. Push GIF and wallpaper over SoftAP KaiGate_Setup / kaigate32 into LittleFS.

Telemetry

0–60 history

Live vitals plus stored runs. Same packet the glass uses.

Diagnostics

Plain-English DTCs

Stored codes from the Vgate dongle. Touch CLEAR runs ELM mode 04.

Radio

One chip, two BLE roles

NimBLE dual-role: GATT peripheral for the phone, BLE central for the Vgate dongle at the same time. Large GIF and wallpaper transfers raise SoftAP KaiGate_Setup.

Service  8f400001-7a3b-4c2d-9e1f-0a1b2c3d4e5f
Tel      8f400002  telemetry notify
Cfg      8f400003  config read/write
Cmd      8f400004  command write
IMU      8f400005  pitch/roll notify
DTC      8f400006  codes notify
Status   8f400007  wifi / lock
Media    8f400008  now-playing

First drive

Bring-up

  1. Wire MPU-6050 and DRV2605L on I2C0 (GPIO 47/48). See HARDWARE.md.
  2. Fit a 1027 coin motor and a speaker on the MX1.25 header.
  3. Flash firmware. Serial should print CST820, MPU-6050, DRV2605L, ES8311.
  4. Pair Vgate iCar Pro with ignition on. Knob scans for Vgate / iCar / OBD.
  5. Open KaiGate, connect, run Calibrate in the driveway.
  6. Set redline and theme. Optional: Lens Studio → KaiGate_Setup → push idle GIF.

Firmware

Flash

cd firmware
pio run -t upload
pio run -t uploadfs
pio device monitor

App

Install

scripts\bootstrap_flutter.cmd
cd app\kaigate
flutter run
:: or flutter build apk

Tree

Repository

KaiGate/
├── branding/                 official logos
├── docs/                     hardware + BLE + this page
├── firmware/                 PlatformIO, LVGL 8, LittleFS
│   ├── include/              pins, protocol, types
│   └── src/                  hal, core, ble, net, media, ui
├── app/kaigate/              Flutter companion
└── scripts/                  bootstrap_flutter.cmd