Main Content

BASIC Interpreter for the Raspberry Pi Pico

The PicoMite is a Raspberry Pi Pico running the free MMBasic interpreter.

MMBasic is a Microsoft BASIC compatible implementation of the BASIC language with floating point, integer and string variables, arrays, long variable names, a built in program editor and many other features.

Using MMBasic you can use communications protocols such as I2C or SPI to get data from a variety of sensors. You can save data to an SD card, display information on colour LCD displays, measure voltages, detect digital inputs and drive output pins to turn on lights, relays, etc. All from inside this low cost microcontroller.

The PicoMite firmware is totally free to download and use.

Program Development

Program development is done on the Raspberry Pi Pico using a terminal emulator on a PC (Windows, Linux or MacOS) connected via a serial over USB interface to the Pico’s USB connector. No special software or hardware is required other than the terminal emulator which is free. Over this USB interface the programmer can configure features, test BASIC commands, edit the program and run the program.

When the program is complete it can be set to automatically run on power up and the PC connection removed. The Pico will then independently run its program forever. The terminal emulator and PC can be reconnected at any time to modify or update the running program.

The emphasis with MMBasic is on ease of use and development. The development cycle is very fast with the ability to instantly switch from edit to run. Errors are listed in plain English and when an error does occur a single keystroke will invoke the built in editor with the cursor positioned on the line that caused the error.

Hardware Support

MMBasic supports all the hardware features of the Raspberry Pi Pico (serial, I2C, SPI, CPU clock, ADC, etc) and adds support for:

- SD Cards with FAT16 or FAT32 file systems up to 32GB. Files can be created and read/written using both sequential or random access. Directories can be created/deleted and navigated. Long file and directory names are supported and the files written are fully compatible with Windows, Linux or MacOS.
- LCD, OLED and e-Ink display panels from 0.96” to 3.5” (diagonal) with resolutions up to 480 * 320 pixels. MMBasic supports multiple fonts, loadable images and extensive graphics commands for drawing graphs and icons on the display.
- Touch Sensitive LCD panels are supported allowing the programmer to implement sophisticated graphical user interfaces with on screen buttons, switches, keypads, etc.
- Real Time Clocks using the PCF8563, DS1307, DS3231 or DS3232 chips means that the time is always accurately known.
- Infrared Remote Control support allowing a Sony or NEC IR remote control to send signals to the BASIC program.
- Temperature and Humidity measurement using the DS18B20 or DHT22/DH11 sensors.
- Distance measurement using the HC-SR04 ultrasonic sensor.
- Numeric keypads with 4x3 keypad or a 4x4 keypad layout for numeric data entry.
- Full support for the WS2812 multi colour LED chip which can be daisy chained into long strings.
All these features are built into the BASIC interpreter, there is no need to load libraries or write special code.


MMBasic on the Raspberry Pi Pico implements a large subset of Microsoft’s GW-BASIC plus some more modern programming structures documented in the ANSI Standard for Full BASIC (X3.113-1987) or ISO/IEC 10279:1991.

It is also compatible with the version of MMBasic running on the Micromite and most programs written for the Micromite can be run with little or no change.”

Link to article