Remote BLE IDs

Posted: May 21, 2020

The Boosted Board and Remote pair with each other via encrypted BLE. The board has a dedicated radio acting as the client, and the remote acts as the host. You can connect to the remote with any BLE client, and right now, read values from the throttle and buttons. For a working example of this, see my BLE V2+ Remote Test tool.

AFC05DA0-0CD4-11E6-A148-3E1D05DEFE78 - Throttle/Button State

List of IDs

Short ID Description Attributes
AFC0653E Packed Throttle Position and Button Presses Read, Notify

AFC0653E

This is the main ID that has the throttle position and button state encoded into one value. While you can one shot read the values from this ID, subscribing to notifications gets you the status many times a second.

Example values:

  • 0x2000000 (idle, no buttons pressed)
  • 0x3800300 (throttle full up, both buttons pressed)
  • 0x800000 (throttle full down, no buttons pressed)

The following is the JavaScript code used on my Remote Web Test Page:

let throttleValUnscaled = rawThrottleLevel >> 16;
let throttleVal = (throttleValUnscaled - 128 - 384);
let throttleValPercent = parseInt((throttleVal / 384) * 100);
let triggerEnabled = (rawThrottleLevel >> 9) & 1;
let buttonEnabled = (rawThrottleLevel >> 8) & 1;

Throttle

The scaled throttle position is a value between -384 and +384, corresponding to full brake/reverse (-100%), and full forward (100%).

To get the value, right shift the returned value 16 times, which will give a value between 128 (0x80) and 896 (0x380). Subtract 128 from the value to get a range of 0 -> 768, and subtract 384 to get a range centered around zero, or -384 -> +384.

Throttle Button

The throttle button (trigger) state is the returned value right shifted 9 times, and binary ANDed with 0x1.

Power Button

The power button state is the returned value right shifted 8 times, and binary ANDed with 0x1.

F4C4772C-0056-11E6-8D22-5E5517507C66 - LED/Beeper/Connectivity Control

Short ID Description Attributes
F4C47A4C Write
F4C47D8A Write
F4C47E66 Write
F4C429F3 Write
F4C48032 Remote Disconnect?
Write 0x01 to disconnect remote from board, without the “beep beep beep” that indicates communication has been lost
Write
F4C4293F Some hex value? Read, Write

00001016-D102-11E1-9B23-00025B00A5A5 – CSR OTAU

This is used to do over-the-air updates to the BLE module. Probably used by the Boosted App to upgrade the remote firmware.