User Tools

Site Tools


_MMBasic Code Library

MMBasic is an interpreter for members of the PIC 32MX & 32MZ, STM H7 & L4 micro-controllers, the Raspberry Pi and a DOS version. Principally developed by Geoff Graham for PIC32MX and later Peter Mather's eXtreme version for the PIC32MZ and versions for the STM H7 and L4, you can get it and read all about it here:

It provides a rich programming interface that harks back to the “feel” of the original (and widespread) MicroSoft Basic languages with definite influence from Basica, GWBasic, QBasic (and a bit of VB) and it is fast! It makes programming the otherwise complex PIC32 a breeze. For time critical sections of code, there is even a method to insert machine code (as Hex). In it's humblest micro-controller form, it runs very nimbly on a 28pin PIC32MX170 at anything from 5MHz to a very respectable 48MHz. The fastest single chip versions run up to 252MHz on the PIC32MZ2048 (MMX) and now the STM32H7 at a whopping 400MHz. All with virtually zero boot-delay. MMBasic has a version (termed PicroMite) for the raspberry Pi which is significantly faster-still (at 2.4GHz) but you do have the boot delay for the OS - there is no “instant on”. Similarly, it is risky to simply “switch-off” a modern OS. Thus the PicroMite is not completely transformed into a true micro-controller. The Pi also does not support the full range of I/O variants that micro-controllers do. MMBasic for the Raspberry Pi is still available but not longer in development due to the seemingly endless changes to the hardware and OS breaking each version and requiring re-work each time.

Many people use MMBasic to provide robust solutions for an incredibly diverse range of tasks… from Microcomputers to Air Conditioning, Security and Process Control & Monitoring and everything in between. A lot of them hang-out here and you should too if you are interested in this sort of thing.

Many code snippets, discussions and examples have appeared over the years but the MMBasic community has lacked a complete searchable, online library until now (tada!). The entire original MMBasic library has been incorporated here with kind permission of Geoff Graham (MMBasic owner) and Hugh Buckle (keeper of and contributor to the original library ZIP file). For the first time, it is now in indexed articles so it's really easy to search for tips, examples or phrases and go quickly to the relevant pages. A measure of MMBasic's robustness is that much code written years ago will still run faithfully on the most recent versions of the firmware.

The original ZIP file is attached at the top of this page and is available from but please note that it is no longer maintained.

Please contribute by adding new pages to the library and discussing those already here. If you have an example of something or written something that you think others need to know about add it here - it doesn't matter how trivial or specific to your task, it might just be the key to unlocking a problem for someone else.

Please be nice to people and get ready for criticism - it is always from a loving place but shedders will share their thoughts on your work and sometimes it might not be what you expect. A sense of humour is vital.

mmbasic_original/mmbasic_code_library.txt · Last modified: 2024/02/25 18:36 by gerry