Download uLisp


Arduino Uno, Arduino Mega 2560, and ATmega1284

Download the latest AVR version of uLisp for the Arduino ATmega platforms here:

AVR Version 2.3 - 2nd June 2018

or get it from GitHub at

Arduino Due, Arduino Zero, Arduino MKRZero, and BBC Micro Bit

Download the latest ARM version of uLisp for the Arduino SAM/SAMD and BBC Micro Bit platforms here:

ARM Version 2.3 - 2nd June 2018

or get it from GitHub at

Energia MSP430 platforms

Download the latest version of uLisp for the Energia MSP430 platforms here:

MSP430 Version 2.3 - 4th June 2018

or get it from GitHub at

Changes in Version 2.3

The 32-bit ARM version of uLisp now includes support for floating-point numbers in addition to the 32-bit integers supported in previous versions. Programs using integers will work exactly as in previous versions, and there should be no noticeable change in performance. For more information see Floating-point features.

The ARM, AVR, and MSP430 versions of uLisp also include a new Lisp Library feature, which allows you to compiler uLisp with your own Lisp extensions. For more information see Lisp Library.

Installing uLisp

This download is a text file. To compile it in the Arduino or Energia IDE either save it as a text file and rename it to a .cpp file, or copy and paste the text into a new empty project file.

Download the latest Arduino IDE from, or the latest Energia IDE from

To install uLisp on the BBC Micro Bit see BBC Micro Bit.

Note that saved images are not generally compatible between different versions of uLisp.

Compile options

The uLisp sources provide the following compile options:

Option Default Description
checkoverflow * enabled Generates an error if underflow/overflow occurs in arithmetic operations.
resetautorun disabled Loads, and optionally runs, an image using load-image on reset.
printfreespace enabled Prints the number of free cells before the uLisp prompt.
serialmonitor enabled Allows the use of the serial monitor to download programs.
printgcs disabled Prints the amount of space reclaimed after each garbage collection.
sdcardsupport disabled Provides SD card support using with-sd-card.
lisplibrary disabled Evaluates the Lisp definitions provided in the Lisp Library on reset.

* Not applicable to the versions with floating point.

Older versions

See Older versions.

Test suites

The following files contains test suites I use for testing each release of uLisp. You may find this useful if you are porting uLisp to another platform:

Test suite - 16-bit version (ATmega and MSP430)

Test suite - 32-bit version (ARM and ESP8266)

Test suite - Floating point (ARM and ESP8266)