LispBM
An interpreter for a concurrent lisp with message-passing and pattern-matching.
Install / Use
/learn @svenssonjoel/LispBMREADME
lispBM (LBM)
LispBM is a lisp or scheme like programming language for microcontrollers. LispBM also borrows a couple of ideas from Erlang when it comes to concurrency, message passing, pattern matching and process monitoring. The LispBM runtime system can be compiled for either 32 or 64 bit platforms and runs on a wide range of hardware such as for example STM32, NRF52, ESP32 or X86. When running the LispBM runtime system on a microcontroller it can be built on top of ChibiOS, FreeRTOS or ZephyrOS or, if you are adventurous, on bare-metal. LispBM can also be built to run on top of a regular linux.
LispBM is an embeddable scripting language meant to be integrated into a larger application. Our goal is that LispBM is a suitably sandboxed scripting language to be used in just about any application domain.

The LispBM mascot, Lispy the llama, was created by PixiLadyArt. Thank you, Pixi!
Contribute to LispBM!
LispBM is an open source project and welcomes collaboration and contribution. Do you want to get involved and help out?
- Check out the lispbm.com website.
- Join the discord server.
Documentation
- Searchable reference manual
- More documentation available from the website
- There are demonstrations on YouTube.
Getting started
The easiest way to get started with LispBM programming on actual embedded systems is to use VESC-Tool together with the VESC EXPRESS Firmware on an esp32c3.
VESC-Tool gives you access to a very capable IDE for lisp programming on embedded systems and the VESC Express firmware provides built in functionality to interface with CAN, WIFI, BLE and UART as well as GPIO and display drivers.
Many other ways to get started with LispBM is described on our getting started page. There you can find information about how get going on a selection of platforms.
