LispBM (LBM) is a runtime system and language meant to be embedded into an application and add versatility by scripting to that application. LispBM is integrated into the VESC family firmware where it adds a layer of scriptability to motor controllers, displays, battery management systems and other peripherals. LispBM can be integrated into any platform that can link in a C library.
Under the hood, 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 regular Linux (and now even Windows).
Who wouldn’t want a REPL (read eval print loop) on their embedded platform? This is what LispBM is for!
New to Lisp? The Why Lisp? page covers the personal motivation for making a Lisp, why Lisp is a good fit for embedded systems, and the story of how LispBM went from a hobby project to a production system.