I have been working on getting MMBasic running on the PicoCalc with the Luckfox Lyra Linux build, and it has been going well.
I now have a working MMBasic binary running directly on the PicoCalc on top of Linux. This means the PicoCalc can run BASIC programs from the Linux side, while still keeping the normal Linux tools available underneath.
The base project I started from is MMB4L, “MMBasic for Linux,” by Thomas Hugo Williams (@thwill1000 on GitHub):
MMB4L turned out to be exactly the right foundation. It is already a very complete Linux version of MMBasic, so instead of starting from scratch, I used it as the core interpreter.
Because this work is specifically for the PicoCalc/Luckfox Lyra hardware, I did not want to fork MMB4L directly and turn it into a PicoCalc-only tree. Instead, the project uses MMB4L as a Git submodule. The PicoCalc/Luckfox work lives in the outer project as a patch queue. During the build, the patches are applied in order on top of upstream MMB4L.
Right now there are 17 patches. That may not sound like many, but some of them are substantial. The largest one is:
0009-auto-create-picocalc-display-surface.patch
It touches 28 files and has 54 hunks.
That patch is a big part of what makes PicoCalc graphics work naturally. PicoMite-style programs expect to be able to draw directly using commands like PIXEL, LINE, BOX, RBOX, TEXT, BLIT, IMAGE, SPRITE, and FRAMEBUFFER without first setting up a desktop-style graphics window. On the Luckfox PicoCalc build, the patched MMBasic automatically creates and selects the 320x320 PicoCalc display when graphics commands are used.
What works now:
- MMBasic runs on the Luckfox Lyra PicoCalc Linux image.
- The repo includes a prebuilt ARMv7 binary.
- There is a no-build release ZIP, so users do not need to compile anything.
- DirectFB framebuffer setup is documented and packaged.
- PicoCalc display support is working through SDL2/DirectFB.
- Graphics primitives work: PIXEL, LINE, BOX, RBOX, CIRCLE, ARC, TRIANGLE, POLYGON, TEXT, RGB, and CLS.
- Image and sprite features are partially working: LOAD BMP, LOAD PNG, IMAGE RESIZE, IMAGE ROTATE, SAVE IMAGE, BLIT, SPRITE LOAD, SPRITE SHOW, SPRITE MOVE, and related commands.
- FRAMEBUFFER CREATE and FRAMEBUFFER WRITE F are supported.
- PRINT @(x,y) now draws positioned text on the PicoCalc screen.
- MM.HRES and MM.VRES report the PicoCalc display size correctly.
- MM.INFO(CALLTABLE) works for CSUB support.
- Real CSUB code has been tested on the PicoCalc.
- Basic WiFi/network inspection exists through Linux-backed MM.INFO values and WEB SCAN.
- A target-side test runner is included so users can run health checks directly on the PicoCalc.
The project also includes documentation comparing MMB4L against the PicoMite/WebMite V6 language target. The goal is not just “make BASIC run,” but to keep moving toward the richest practical PicoMite-style MMBasic experience on the Linux-powered PicoCalc.
The install path is intended to be simple for users:
- Download the release ZIP.
- Copy it to the PicoCalc.
- Unzip it.
- Run the install script.
- Run mmbasic.
This is still a work in progress, but it is already far enough along to run real graphics demos, calculator-style text UI programs, Mandelbrot tests, framebuffer tests, and CSUB examples on the PicoCalc screen.
Take a look.

