450MT-Only Roadmap
Last updated: 2026-03-17
Scope rule: this roadmap targets CFMoto 450MT only.
1. Product Scope for 450MT
In scope
- TBox BLE connection/authentication for 450MT (
0x5A -> 0x5D) - BLE control commands (lock/unlock/power/find/light/units/speed limit)
- Cloud account + vehicle session + BLE key bootstrap (
encryptInfo) - Trip recording and history UX
- MotoPlay support (projection/navigation feature path)
Out of scope
- Youth/electric bike protocols (
CF110,HH40,EC30E,ED20E) - HH40 telemetry-over-BLE implementation path
- Electric-only charging flows for MVP
2. Phase Plan
Phase 1 — 450MT Core MVP (no MotoPlay yet)
Goal: reliable 450MT BLE control + core app experience.
Deliverables
- Stable connect flow:
- scan/connect, notify, MTU request, auth handshake
- clear user state transitions (
disconnected -> connecting -> connected/error)
- Command path:
- send BLE commands from UI
- ACK tracking into store (
recordCommandAcked) - lock-state updates from command responses
- Heartbeat path:
- wire keepalive ACK to store (
recordHeartbeatAck) - watchdog disconnect + UI recovery
- wire keepalive ACK to store (
- Cloud-backed session:
- login/register/forgot password/region selection
- cache and use 450MT BLE
encryptInfo
- Ride UX:
- local trip list/detail polish
- cloud ride history read sync (list/detail/delete)
Hardware-dependent gates
- Confirm keepalive ACK code on real 450MT traffic
- Confirm auth codec encoding variant (
TboxRandomNum.codec) - Confirm lock/unlock success on real TBox
Exit criteria
- New user can login, connect to 450MT, run at least one remote command, and disconnect/reconnect successfully.
- Command history + heartbeat status reflect real ACKs.
Phase 2 — MotoPlay for 450MT
Goal: add the MotoPlay feature set for 450MT compatibility with OEM behavior.
Deliverables
- MotoPlay architecture skeleton in app:
- dedicated module/service boundary (separate from TBox BLE control path)
- clear feature flag:
motoplayEnabled
- Session flow:
- connect/disconnect MotoPlay channel
- screen/state handling for active projection session
- Navigation data bridge:
- basic navigation payload pipeline and UI surface
- fallback states when navigation source is unavailable
Risks / unknowns
- Exact protocol/transport details still need targeted reverse-engineering and live validation.
- Device/cluster compatibility differences may require per-firmware handling.
Exit criteria
- 450MT user can start/stop a MotoPlay session and observe stable projection/navigation state in app.
Phase 3 — 450MT Post-MVP Expansion
Goal: complete high-value cloud features for day-to-day use.
Candidate features
- Alerts center (read/list/filter)
- Geofence management (create/update/delete)
- OTA status screen
- Vehicle/account settings parity with core OEM flows
Exit criteria
- Core cloud modules in
@open-cfmoto/cloud-clientare surfaced in mobile UI with error handling and tests.
3. Technical Workstreams (cross-phase)
- Protocol correctness
- Keep protocol constants aligned with decomp findings.
- Maintain hardware-validation checklist as source of truth.
- State/store wiring
- Ensure every outbound command has a mapped ACK route.
- Keep UI state derived from store events, not assumptions.
- Test strategy
- Unit tests for codecs/clients/stores
- Integration tests for service wiring with mocked transport
- Hardware checklist for all traffic-dependent assumptions
- Documentation hygiene
- Keep
README,docs/test-coverage.md,docs/hardware-validation.mdin sync with code status.
4. Immediate Next Sprint (recommended)
- Implement ACK/store wiring for commands + heartbeat in
CFMoto450Protocoland mobile service integration. - Add/update integration tests validating
ackedAtand heartbeat state transitions. - Build cloud ride sync UI on top of existing cloud-client ride endpoints.
- Keep MotoPlay in planning/design track until core MVP reliability gates are green.