Help wanted debugging uLisp for the Raspberry Pi Pico


I’ve got a beta version of uLisp working for the Raspberry Pi Pico, but I need help solving an issue with the serial interface.

To try it out:

  • Install the Arduino Mbed OS RP2040 Boards core, available in Boards Manager.

  • Choose Raspberry Pi Pico (the only option currently).

  • Download the uLisp ARM 3.6a Beta from here: uLisp ARM 3.6a Beta.

  • Set Programmer to ARM CMSIS-DAP Compatible.

  • Select Download.

It should run all the small benchmarks, such as tak, q, q2, and factor.

The problem

The problem is that the serial interface locks up if you try to transfer more than 63 characters.

For example, if I try and select the program Infinite precision package and paste it into the Arduino IDE’s Serial Monitor window, it just locks up.

I’ve reported the issue on GitHub here: Sending more than 63 characters causes Serial to hang.

Note that after it locks up you need to unplug the Raspberry Pi Pico board from USB and plug it in again. You shouldn’t need to download uLisp again.


  • I’m testing it on a Mac. Do you get the same problem on Windows or Linux?

  • Do you get the same problem if you transfer a program via a serial terminal, rather than using the Arduino IDE’s Serial Monitor?

As soon as I can resolve this issue I should be able to release a version of ARM uLisp that supports all the RP2040 boards.

Anyone working on support for the new Raspberry Pi Pico?
Anyone working on support for the new Raspberry Pi Pico?

Huh. I wish I could help, but an irony of where I am is that it’s usually extremely expensive to get hold of low-volume, cheap items - so I haven’t got an RP2040 board yet. :(


Alot of my micro stuff is in containers spread all over my apartment since the sprinkler system pipe broke two months ago but I was able to find my stash of Picos. Compiled uLisp 3.6a, copied the .uf2 file over, then cut and paste the infinite precision package from Arduino 1.8.13 (the serial monitor) on Mint 19.3 on a x64 box. It ran just fine for me. Compared (fac 100) to (fact 100) on my big machine and it was exactly right!

Search for adding a reset switch on your Pico so you don’t have to keep cycling the USB connector to reset the little bugger.


Interesting. That suggests it might be the USB serial driver on macOS that’s playing havoc.


Almost forgot. I used ‘gtkterm’ to connect to the Pico and uploaded the route-finder program
and it uploaded without a hitch over USB… Each function name popped up as it got transferred.
Again, this was on my Linux box described before.


@fe2o3 Thanks! Would it also be possible to try the method I used, namely:

  • In the Arduino IDE open the Serial Monitor window, with Tools -> Serial Monitor.
  • Open the Infinite Precision Program in a text window and do Select All, Copy.
  • Paste it into the text field at the top of the Serial Monitor window, and press Return.

This works for me on every other platform that uLisp supports.


Check my first message.


OK, thanks, I missed that.


BTW, (digitalread 4) causes the onboard LED to blink 5 shorts, 5 longs, and repeats.
This should be the onboard temperature sensor. Right?


Does anyone on Mac have a Raspberry Pi Pico?

I’d really appreciate it if you could try the uLisp Beta I’ve linked to in the first post of this thread to see if you get the same Serial issue as I get.


Any news on the Raspberry Pi Pico build? image


Yes, the Serial bug I reported has now been fixed by the developers, and as soon as they release the updated core I’ll release a new version of uLisp that supports the Pi Pico; possibly next week.