Board-Side Alternative
VESC Express as Receiver
If your build already runs a VESC Express, you do not need our receiver board. A LispBM script turns the Express into one: it serves the same Bluetooth service, drives your VESCs over CAN, and sends the same telemetry back. Buy the remote on its own and skip the extra hardware.
Your remote needs no firmware change. It pairs with the Express exactly as it pairs with a receiver, so nothing on your side has to be reflashed. There is nothing to configure either: the script asks your VESC for its own motor poles, gear ratio and wheel diameter, so the speed readout and trip odometer are right without you typing them in. That part needs VESC firmware new enough to run LispBM.
gb-receiver.lisp
Which One
The script covers the riding path in full: throttle, smart reverse, failsafe braking and telemetry. What you give up is everything that lived beside it.
| GB Receiver | VESC Express + script | |
|---|---|---|
| Extra hardware | Dedicated board on the CAN bus | None, if your build already has one |
| Remote pairing | MAC whitelist stored on the receiver | Any GB remote in range connects |
| Link encryption | Bonded and encrypted, MITM passkey | Not supported by BLE scripting |
| BMS monitoring | JBD smart BMS over UART | Not available |
| Battery reading | Coulomb count from the BMS | Estimated from pack voltage and cell count |
| Auxiliary output | PWM dimmed, follows throttle | On / off |
| Failsafe braking | Independent firmware, ramped regen brake | Ramped regen brake in the script |
| VESC Tool over Bluetooth | Unaffected | Disabled while BLE scripting is enabled |
| Updates | OTA, USB-C and the config tool | Re-upload the script in VESC Tool |
| Config tool | Pairing, scanning, live stream, coredumps | Not applicable |
✓ marks the stronger option, ✕ the weaker. Unmarked rows are equivalent.
Worth knowing before you choose
BLE scripting on the Express has no encryption and no bonding, and the script cannot see which device connected. The receiver's whitelist has no equivalent here, so any GB remote in range can connect to a board running this script. If you ride where that matters, or you want BMS data on the remote, use the receiver.
Deploying the script
Take the GB Receiver off the CAN bus
If you are converting an existing build, disconnect the receiver first. Two throttle sources on one bus fight each other.
Connect VESC Tool to the Express itself
Either USB-C straight into the Express, or connect to the VESC and enable CAN Fwd with the Express selected. Uploading to the motor controller by mistake fails with an unbound ble-set-name.
Enable BLE scripting
App Settings, VESC Express, Bluetooth. Set Mode to Enabled with Scripting, BLE Service Capacity to 1, and BLE Characteristic and Descriptor Capacity to 6. Write the config and power-cycle. From here on VESC Tool connects over USB or CAN only.
Upload it
Open the Lisp tab in VESC Dev Tools, open the file, and press Upload. That writes it to flash and starts it on every boot. Use Stream instead while you are still adjusting values, since it runs from RAM and is gone on reboot.
Pair and verify
Power-cycle the remote so it re-discovers the service. In the Lisp console, can-list-devs must return your VESC IDs, and throttle must track the thumbwheel. Speed appears once the script has read your drivetrain from the VESC, which takes a second or two. On the remote, set the battery cell count and chemistry, otherwise the board battery shows volts instead of a percentage.
(can-list-devs) (print throttle) (print conf-valid)
Test with the wheels off the ground
Throttle forward should spin up, past neutral should brake, and walking the remote out of range should ramp the brake in and release it once the wheels stop.