LispBM

LispBM (Lisp Bare Metal) is an embedded scripting language that allows custom applications and control logic to run directly on VESC hardware. Within the VESC ecosystem, LispBM is integrated into VESC Tool, where scripts can be written, tested, uploaded, and monitored without modifying the underlying firmware. It runs in a sandboxed environment on the device itself and automatically starts when configured to do so.

LispBM was created by Bo Joel Svensson and is the scripting language behind all VESC Packages. It is also responsible for many of the advanced features and behaviours found throughout the VESC ecosystem, including VESC Express applications, display interfaces, communication modules, CAN Bus integrations, custom user interfaces, automation, telemetry, and device-to-device interactions.

Using LispBM, developers can create custom functionality such as:

  • Drive mode selection
  • Button and switch handling
  • CAN Bus communication
  • Display interfaces
  • Battery management logic
  • Data logging and telemetry
  • Sensor processing
  • Custom vehicle control systems
  • Wireless communication over WiFi and Bluetooth
  • Integration with VESC Packages

LispBM has access to a wide range of VESC-specific functions, allowing scripts to read ADC inputs, monitor battery voltage, communicate over CAN Bus, control outputs, interact with displays, and exchange data with other devices on the network. VESC Tool includes an integrated development environment (IDE), REPL console, live variable monitoring, plotting tools, and example projects to help develop and debug applications.

Example

A VESC Express module uses a LispBM script to read a button connected to an ADC input. Each button press changes the active drive mode, updates a display, and sends commands to other devices on the CAN Bus network.

Learn More

Official LispBM website:

https://www.lispbm.com

VESC-specific LispBM documentation:

https://www.lispbm.com/lispbm-reference-manual/html/vesc-lisp-documentation.html

LispBM language reference manual:

https://www.lispbm.com/lispbm-reference-manual/html

VESC firmware LispBM integration documentation:

https://github.com/vedderb/bldc/blob/master/lispBM/README.md

In simple terms: LispBM is the programmable logic layer of the VESC ecosystem. It powers VESC Packages and allows users to create custom functionality without modifying the main firmware.

Also known as: Lisp, LISP, LispBM scripting