Absolute Beginner!


Hi all,
I’ve been looking for an excuse to try and learn Lisp for awhile now and this looks great. No prior knowledge except copying/pasting some python.
Do you think you could write a bit more about the method of compiling please?
Not exactly of to a flier am I !

Compiling under Debian (Linux)


What you will find here is a small lisp with limited types (symbol, list, integer) due to the small capacities of the arduino board. It is however very fun doing small electronic devices with the platform and lisp !!! Plus, this allow for dynamic testing as you are communicating with the board and so do not need to upload a sketch each time you’re doing a modification to your code.

Where to start ? David has done a great job with its site as it introduces everything you need. Follow the links in the “Getting started” section then in the “Tutorials” section.

Note : the uLisp is not compiled code. It is an interpreted lisp by c code that’s loaded on the arduino as a legacy sketch.

Don’t hesitate to come back here with your questions, Cheers,


Ps : if you have already read all these chapters, where are you exactly blocked ? Are you able to execute some lisp code and see the results ?


Hi Sebastian,
I can’t seem to get it to work with the Arduino program. I’m using a Mac (OSX 10.7.5)
I have Arduino 1.6.5.
I copy and paste the test file into it and then

Arduino: 1.6.5 (Mac OS X), Board: “Arduino/Genuino Uno”

uLisp:45: error: ‘object’ does not name a type
uLisp:46: error: variable or field ‘myfree’ declared void
uLisp:46: error: ‘object’ was not declared in this scope
uLisp:46: error: ‘obj’ was not declared in this scope
uLisp:47: error: ‘object’ does not name a type
uLisp:48: error: ‘object’ does not name a type
uLisp:49: error: ‘object’ does not name a type
uLisp:50: error: variable or field ‘markobject’ declared void
(abbreviated by moderator)

This report would have more information with
“Show verbose output during compilation”
enabled in File > Preferences.

This is what happens when i try to verify the code.
Regarding your Note at your last replky


that’s a bit strange to me. It looks like you did not copy the whole file but are missing a few typedef.
Can you check again and be sure to start at :

/* uLisp Version 1.2 - www.ulisp.com
   Copyright (c) 2016 David Johnson-Davies
   Licensed under the MIT license: https://opensource.org/licenses/MIT

#include <setjmp.h>
#include <SPI.h>



Not having any luck, downloaded the new version 1.2 and copied the 2275 lines into my Arduino and tried to Verify the code and i’mgetting erros again, line 195
void sweep () {

‘object’ does not name a type.



What Board have you got selected on the Arduno IDE Tools menu?


Arduinno/Genuino Uno on COM1.

I don’t have it plugged at the moment, could that be an issue?


No, you should still be able to do a Verify.

Can you successfully verify one of the examples, such as Blink on the 01.Basics menu?


Hi there,
yup i can verify a sample sketch from the Examples provided in Arduino


You could try upgrading to 1.6.8 which is what I’m using, but somehow I doubt that’s the problem.


Thanks johnson,
I’ll need to wait until i get home to download it so it’ll be a couple of weeks before i get back to you
cheers for now


Hi Guys,
Managed to download the latest Arduino while in port (nightly build,1.6.10)
and it worked :)


Dear all,
I’ve a similar problem. My IDE is the official one release 1.7.10. I’ve downloded ulisp source and I’ve tried to compile it but I received a lot of errors.

Arduino:1.7.10 (Windows 7), Scheda:“Arduino Uno”

ulisp1.ino:142:1: error: ‘object’ does not name a type

ulisp1.ino:143:1: error: ‘object’ does not name a type

… (lines deleted by moderator) …

ulisp1.ino:2160:30: error: ‘integer’ cannot be used as a function

ulisp1.ino:2162:27: error: ‘name’ cannot be used as a function

Errore durante la compilazione

What is the problem? Can you help me? I used to be a programmer years ago but I’m not very comfortable with C.

Thank in advance for your help



Confusingly there are two incompatible parallel versions of the Arduino IDE, depending on whether you go to arduino.org or arduino.cc. Please try it with the latest version 1.6.10 at arduino.cc:


For more information search for “Arduino 1.6 vs 1.7” on Google.


Many thanks John,
you solved not only my problem with ulisp but also a lot of other problems with some shield sketches.

Nice to know you…



That looks like what happened when I tried to compile ulisp with a C compiler. It’s mostly C but you actually have to use a C++ compiler because it uses C++ features in a few places.



I just had this bug with the .cc/.org versions of Arduino compilers.
Perhaps worth putting something in the installation instructions?

All working now thanks


Hi, I´m trying to complile the source code ulisp provided using the arduino ide (version 1.8.13),
If i use the MEGA 2560 target board, it works fine but when I try to use the Arduino Nano Target Board (processor ATMEGA 328p) it sends the following message:

“El Sketch usa 32220 bytes (104%) del espacio de almacenamiento de programa. El máximo es 30720 bytes.text section exceeds available space in board”

please could you send some advice

thanks in advance



uLisp sits right on the edge of how large Arduino programs can be on the 328P, and it seems that some of the board specifications are too small. I believe it depends on how much space is assumed to be reserved for the bootloader.

I suspect it’s gotten to the point where it’s still possible to run uLisp on a 328, but doing so is a bit of an advanced proposition rather than a simple one.


@odin is correct – uLisp is on the borderline of what’s possible in the 32K bytes of program memory on the ATmega328P.

However, I can successfully fit the latest version of AVR uLisp 3.4a on my Arduino Uno with the default compile options; the sketch uses 32228 bytes (99%) of program space. I’m also using the Arduino IDE 1.8.13.

You say your error message reads: “El Sketch usa 32220 bytes"… so it’s about the same size as mine and should fit. I therefore suspect that your Nano has an older, larger bootloader that’s taking up more of the programming space. You should be able to update your bootloader to a smaller one, which will fix the problem.

Alternatively you could load an earlier, smaller version of AVR uLisp:

Older versions

I recommend AVR Version 3.0b, which on my Arduino Uno takes 30970 bytes. The main feature missing compared to the latest version is the format function.