BASIC on Raspberry Pi Pico
  • BASIC Interpreter
  • BASIC with VGA Display
  • BASIC with WiFi & Internet

  • Maximite Family
  • Colour Maximite 2
  • Original Colour Maximite
  • Monochrome Maximite
  • The Maximite Story

  • Micromite Family
  • Micromite Summary
  • Standard Micromite
  • Micromite Plus
  • The Microbridge

  • Micromite LCD Backpack
  • Micromite LCD Backpack
  • Air Quality Monitor
  • DDS Signal Generator
  • Super Clock
  • Boat Computer MkII
  • Parking Assistant

  • Other Projects
  • Pico Gamer Console
  • Precision Analog Clock
  • Watering Controller
  • Windows/DOS MMBasic
  • ASCII Video Terminal
  • Utility Power Supply
  • Precise Voltage Reference
  • ISM Band Scanner
  • Game of Pong
  • Simple GPS Based Clock

  • Useful Techniques
  • 3D Printed Cases
  • Measuring Capacitor ESR
  • Surface Mount is Easy
  • Programming PIC Micros
  • Custom PC Boards
  • The Gerber Format

  • General Articles
  • Problems in Open Source
  • Hantek DSO-2250 Scope
  • Rigol DS1000 Scope
  • Brickbats

  • WEB Site
  • Home
  • Old or Obsolete Projects
  • About




    This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Australia (CC BY-NC-SA 3.0)

    Colour Maximite 2 Description


    This page describes the Colour Maximite 2 and its capabilities in more detail.

    For other pages related to the Colour Maximite 2 see:

    The Colour Maximite 2 was inspired by the home computers of the early 80s like the Tandy TRS-80, Commodore 64 and the Apple II. It is a fun computer with a focus on ease of use and the ability to whip up a quick program for whatever you fancy.

    It starts up in under a second and with a few keystrokes you can have it doing something. It can draw graphics on the screen, save programs and data to its SD card and control the external world through its I/O connector on the back panel


    Processor 32-bit ARM Cortex-M7 at 480MHz with 2MB of flash. 1MB on-chip RAM plus 8MB off-chip RAM for BASIC variable storage and video pages (32MB in the Generation 2 design).
    BASIC Built in full featured BASIC interpreter with double precision floating point, 64-bit integers and string variables, long variable names, arrays of floats, integers or strings with multiple dimensions, extensive string handling and user defined subroutines and functions
    Program Editor Full screen editor includes colour coded syntax, search and copy, cut and paste. Will work with a mouse if attached.
    Memory 516KB for the BASIC program, enough for large complex programs (typically 25,000 lines or more).  5MB RAM for variables, arrays and buffers (24MB in the Generation 2 design).
    Speed Typically executes programs at 270,000 lines per second.

    Colour VGA output with VGA standard timing.
    Generation 1: Selectable 14 resolutions from 240 x 210 pixels to 1280 x 720 pixels.
    Generation 2: Selectable 15 resolutions from 240 x 210 pixels to 1920 x 1080 pixels.

    Colour depth is selectable between 8-bit (256 colours), 12-bit (4096 colours plus 16 levels of transparency) and 16-bit (65,536 colours).  The Generation 2 design offers a 32-bit mode with 16 million colours and 256 levels of transparency. The default output at power up is 680 x 600 with 256 colours.

    Keyboard Standard USB keyboard with either US, UK, French, Spanish or German layout.  Can be a wireless keyboard (USB).
    Storage SD Cards up to 128GB formatted in FAT16, FAT32 or exFAT
    Graphics Set pixels, draw lines, boxes, circles, etc.  Features include BLIT, Sprites, multiple video layers (with transparency).  Rotate and scale images.
    Images Load images in BMP, JPG, PNG and GIF (including animated) formats.  Images can be loaded anywhere on the screen and be scaled and rotated.
    Audio Stereo audio output for amplified speakers. Can play WAV, FLAC and MP3 files, computer generated music (MOD format), robot speech and sound effects as well as generate precise sine wave tones
    Compatibility Backwards compatible with the Maximite and original Colour Maximite.  Special legacy mode for older graphics commands.  The BASIC interpreter is generally compatible with Microsoft Basic and the ANSI Standard for Full BASIC (X3.113-1987) or ISO/IEC 10279:1991.
    Games Extensive features for creating computer games. These include multiple video planes, support for Blits and Sprites, the ability to create computer generated music, sound effects and computer generated speech.
    Game Controller Full support for up to three Wii Nunchuk games controllers or Wii Classic controllers.  One or two can be connected via the front panel depending on the hardware generation.
    External I/O Twenty eight input/output pins with 12 capable of analog input. Connector is compatible with RPi Hats.  Built in support for an IR remote control and temperature and humidity sensors.
    Protocols Communications protocols supported include I2C, asynchronous serial, RS232, IEEE 485, SPI and 1-Wire.
    Remote Console Supports serial over USB protocol so a desktop PC or laptop can access the BASIC console for entering and running programs.
    PC Integration Programs can be easily transferred from another computer (Windows, Mac or Linux) using the SD card, XModem protocol or by streaming the program over the serial console input.
    Clock Battery backed clock will keep the correct time with the power disconnected.
    Firmware Updates The firmware can be updated via USB using a desktop or laptop computer running Windows, MacOS or Linux.
    Power 5 volts at approx 220mA typical (from a USB port or charger).

    VGA Output

    The video output is standard VGA in a variety of resolutions and number of colours as determined by the MODE command. The default at power up is 800x600 pixels however this can be changed to any one of 14 resolutions from 240x216 pixels to 1280 x 720 pixels (the Generation 2 design supports 15 selectable resolutions from 240 x 210 pixels to 1920 x 1080 pixels) .  Some modes are optimised for 4:3 aspect ratio monitors while others are optimised for wide screen monitors.  Two resolutions match the resolutions of the original Colour Maximite to aid in porting programs from that computer.

    If an HDMI output is required it is recommended that an inexpensive VGA to HDMI converter be used. These cost about US$10+ on EBay and will also encode the audio from the computer so that it can play through the monitor's speakers.


    Support for a USB keyboard including keyboards that use a wireless dongle and a number of different language layouts including US, French (FR), Spanish (ES) and German (DE)

    Keyboards that have been tested and work well include the Logitech K120, K270, K400+ or K800. Other makes include the HP SK2885, Lenovo KU-0225 and Microsoft 600.


    The Generation 1 design can support a PS2 mouse connected to the rear I/O connector.  The Generation 2 design will support a pure USB mouse or a dual mode USB/PS2 mouse, both connect to a USB socket on the rear panel.

    Within the file manager and editor the mouse works as would be expected. For example, you can use the mouse to point and select a file or line, you can select text with the mouse, scroll using the scroll wheel, double click to open/run a file and so on. Within a MMBasic program the mouse can be enabled for access with various sensitivity settings and interrupts on left and/or right clicks. Specialised built in functions can be used to determine the current mouse position in pixels and detect single or double clicks.

    Audio Output

    This is a 3.5mm stereo phono socket suitable for feeding into an amplifier or amplified speakers. The BASIC program can play files with music or sound effects in a variety of formats (WAV, FLAC and MP3). It can also play computer generated music in the MOD format. Other features include the ability to output computer generated speech (the TTS format) and the ability to generate sound effects composed of a mixture of sine, triangle and noise waveforms.

    The TONE command will generate audio sine waves with a very accurate frequency and this can be used for making a simple beep or testing amplifiers, speakers, etc.

    SD Card

    Support for a full sized SD card including editing and running programs on the SD card as well as opening files for reading, writing or random access. Cards up to 128GB formatted in FAT16, FAT32 or exFAT are supported and the files can also be read and written on personal computers running Windows, Linux or the Mac operating system.

    A graphical file manager is built into MMBasic

    I/O Connector

    A 40-pin ribbon connector provides 28 input/output pins which can be controlled from within the BASIC program plus 3.3V and 5.0V outputs for powering external circuitry plus a number of ground pins.

    The I/O connector's pin-outs includes a mixture of 28 digital I/O pins, 12 analog pins for measuring voltages, two SPI communications channels, two I2C channels and two serial ports. The pin layout and positioning of special functions is compatible with the Raspberry Pi allowing Pi HATs to be connected if required.

    Other I/O features include five PWM outputs and five I/O pins with the ability to measure frequency, period or general timing (one of these can run up to 40MHz – useful as a general purpose frequency meter). 14 of the pins are 5V tolerant so they can be used to interface with 5V circuits.

    Power and Serial Console

    A USB Type B connector provides power for the Colour Maximite 2.  It can also be used for a serial over USB connection which will allow a desktop computer to access the Colour Maximite 2's console. The console is the user's interface to the BASIC interpreter running on the Colour Maximite 2.  It is used to edit programs, run programs and it is where error messages will be displayed.

    Everything that can be done with a keyboard/monitor (except graphics) can also be done over this interface using a personal computer as the display and keyboard - so the Colour Maximite 2 can be used without an attached keyboard and monitor via this interface.  This also allows for the easy transfer of programs and data between the two.

    BASIC Interpreter

    While the hardware is important the BASIC interpreter holds it all together and allows you to make the hardware do what you want.  The version of BASIC running on the Colour Maximite 2 is called MMBasic (short for MaxiMite Basic) and it has evolved over many years into a powerful programming language. MMBasic is generally compatible with Microsoft Basic and the ANSI Standard for Full BASIC (X3.113-1987) or ISO/IEC 10279:1991 so many programs written in the 80s can be directly run with minimal change.

    The BASIC language itself was introduced in 1964 by Dartmouth College in the USA as a computer language for teaching programming and is easy to use and learn. At the same time, it has proved to be a comprehensive and powerful programming language and as a result it became very popular in the late 70s and early 80s. Even today some large commercial data systems are still written in the BASIC language (primarily Pick Basic).

    For the Colour Maximite 2 the greatest advantage of BASIC is its ease of use. Some more modern languages such as C and C++ can be truly mind bending but with BASIC you can start with a one line program and get something sensible out of it. MMBasic is also powerful in that you can draw sophisticated graphics, manipulate the external I/O pins to control other devices and communicate with other devices using a range of built-in communications protocols.

    BASIC interpreters are often derided for being slow but MMBasic on the Colour Maximite 2 does a lot of optimisations and the raw speed of the ARM Cortex-M7 processor means that any program will execute far faster than a program written in assembler did on the home computers of the 80s.  It is certainly fast enough for everything except the most complex of scientific calculations.

    MMBasic has far too many features to list here so the best recommendation is to download the Colour Maximite 2 User Manual and browse through that to understand its power and capabilities. For readers who are new to BASIC programming it is recommended that you download the tutorial Programming with the Colour Maximite 2 and work through that.