Skip to content

TeslaBLE

Encode Tesla vehicle-command protobufs, run the BLE handshake, and talk to the car from C++ or Arduino.

Pair once

Load or create a P-256 key. Whitelist it with Authenticator::BuildKeyWhitelistMessage. Present an NFC card if the car returns WAIT.

Two domains

Request session info on VCSEC and Infotainment. Session::UpdateSessionInfo checks the HMAC, then BuildRoutableMessage encrypts the payload.

Encode, wrap, write

CarServer::* and Security::* encode Tesla actions. Session::BuildRoutableMessage encrypts them. BleFrame reassembles indications. You write the GATT characteristic.

Pinned to Tesla

Protos from teslamotors/vehicle-command f97fa1e. Host tests include Tesla protocol.md vectors and Go proto.Marshal goldens.