Fox Red Labs / Builds / Tools and languages
A Lisp prompt on a LaunchPad
Type a Lisp line on the MSPM0 G5187's USB serial port and see the answer. uLisp 4.9a runs unmodified through a 160-line Arduino shim.
MediumNo wiringabout 10 minutes (estimate, not timed)
Parts and steps
You need
- LP-MSPM0G5187 LaunchPad development kit runs the Lisp interpreter; the prompt is on its USB serial port
Build.TERMINAL
Put an Arm GCC on your path and build. It takes about 20 seconds.
ports/ulisp/build.shYou should see:
ports/ulisp/build-g5187/ulisp.elfexists.Flash and check the prompt.TERMINAL
Flash the image and read three seconds of the console. The check passes when
uLispappears.python3 tools/bench/run.py --board mspm0g5187 --image ports/ulisp/build-g5187/ulisp.elf --secs 3 --expect "uLisp"You should see: The tool prints a pass.
Type Lisp.TERMINAL
Open the board's serial port at 115200 baud. The port name carries your probe serial. Press
~to stop a running program.Replace <your probe serial> before you run this.
screen /dev/cu.usbmodem<your probe serial>1 115200You should see:
uLisp 4.9a, then a prompt showing the free workspace, such as2800>.(+ 1 2)answers3.
Or hand it to a coding assistant
Paste this in a terminal. It hands off to an AI assistant.
git clone --depth 1 --filter=blob:none https://github.com/Fox-Red-Labs/fox-red-labs.git && cd fox-red-labs
./start.sh mspm0g5187 ulisp --assistant claudegit clone --depth 1 --filter=blob:none https://github.com/Fox-Red-Labs/fox-red-labs.git && cd fox-red-labs
py start.py mspm0g5187 ulisp --assistant claudeIt runs the steps above and reports what it saw.
Not Claude Code? Copy this prompt instead.
If something goes wrong
| The compiler is not found | Put its bin folder first on your PATH; any arm-none-eabi-g++ 12 or newer works. |
| The tool cannot find the board | Replug the USB cable and run it again. |
| Nothing appears | Press Enter once. |
Every fix for this board: the FAQ.
What to build next
Every build. The code for all of them is in the GitHub repository.
Evidence and limitsuLisp runs on the MSPM0 G5187 and passes 19 of 19 prompt checks; the G3507 and G3519 images build. Ran on 1 board. Results, sources, timing and limits.
Expected result: A Lisp prompt on the serial port that evaluates what you type.
What this shows
- An unmodified Lisp interpreter runs on a Cortex-M0+ with 32 kB of RAM, with 2,800 objects of workspace.
(tak 18 12 6)takes 7.5 s at 80 MHz; the Arduino Zero (48 MHz) takes 11.4 s and the Raspberry Pi Pico (200 MHz) 2.6 s, from uLisp's published tables.
What this does not establish, and limits
What this does not establish
- Analog read, sound, SPI and I2C are stubs. The LED path was driven by hand, and the repository's LED check read the pin toggling but printed FAIL for the run because it reads at the instant of reset.
Limits to keep in mind
- Ran on one board. The MSPM0 G3507 and MSPM0 G3519 images build and were not flashed.
- The workspace is 2,800 objects on the 32 kB parts, 9,000 on the G3519.
Sources
Versions, sizes and timing
| tak 18 12 6 | 7.5 s at 80 MHz | the data (CSV) |
|---|---|---|
| fib 23 | 5.2 s | the data (CSV) |
| Full garbage collection | 1.07 ms | README notes |
Evidence
- 19 REPL checks and 5 benchmark runs pass on the board, over serial.
- A runaway recursion prints
Error: stack overflowand the next line works. - The image is 98.8 kB of flash (77 percent of 128 kB) and 23.1 kB of RAM, with 8.9 kB left for the stack.
Other boards
- MSPM0G3507, MSPM0G3519Builds; not flashed
- MSPM0L1306, CC2340R5, F2800137
What the status words mean
Works ran here and did what it shouldCould work some of it ran; real porting effort is left; hover for whatNot for this chip the chip or its vendor software cannot; hover for why
Result grid
Works ran here and did what it shouldShould work it builds; only naming, packaging or build glue is in the way; hover for whichCould work some of it ran; real porting effort is left; hover for whatNot for this chip the chip or its vendor software cannot; hover for why
Source files
- ulisp notes (MSPM0 G3507)
Code brought from elsewhere
This project uses code that was written for other chips or tools. Each links to how to get it running.
- uLisp Lisp interpreter on the LP-MSPM0G5187, LP-MSPM0G3507 and LP-MSPM0G3519 Works uLisp, an Arduino sketch, gives a Lisp prompt on the MSPM0 G5187's serial port: 19 of 19 REPL (type-and-run loop) checks pass.
Get the code and tell us how it wentThe clone command, the board folder with its AGENTS.md, reports from others, and the three report forms.
Get the code
Clone the repository and open the board's folder below. AGENTS.md is a plain text file of notes for AI coding assistants, and llms.txt at the root indexes the site for one.
git clone https://github.com/Fox-Red-Labs/fox-red-labs.git
- LP-MSPM0G3507: folder
mspm0g3507/.- README: the board's lab notebook (what was run, in order)
- Notes for an AI coding assistant working in this repository: notes for an AI assistant; copy it into your own project if you use one
- FAQ: errors and fixes
The other 1 board folder
- LP-MSPM0G5187: folder
mspm0g5187/.- README: the board's lab notebook (what was run, in order)
- Notes for an AI coding assistant working in this repository: notes for an AI assistant; copy it into your own project if you use one
- FAQ: errors and fixes
- LP-MSPM0G5187: folder
Code is BSD-3-Clause, writing is CC BY 4.0; third-party folders keep their own licenses.
Built it? Tell us
Built this, or got stuck? Report it on GitHub with a few short answers. Your report shows here in your words, marked as yours. A failure that repeats on the bench gets its fix here.