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
  • Windows/DOS MMBasic
  • ASCII Video Terminal
  • Utility Power Supply
  • Precise Voltage Reference
  • ISM Band Scanner
  • Game of Pong
  • GPS Synchronised Clock
  • Simple GPS Based Clock

  • Useful Techniques
  • 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 want.

    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 400MHz or 480MHz with 2MB of flash. 1MB on-chip RAM plus 8MB off-chip RAM for BASIC variable storage and video pages.
    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.
    Memory 516KB for the BASIC program, enough for large complex programs (typically 25,000 lines or more).  5MB RAM for variables, arrays and buffers
    Speed Typically executes programs at 270,000 lines per second.
    Display Colour VGA output with VGA standard timing.
    VGA Resolutions 800 x 600 (default), 640 x 400, 320 x 200, 480 x 432 and 240 x 216
    The last two emulate the resolutions available on the original Colour Maximite.
    Graphics Colours 8-bit (256 colours; default), 12-bit (4096 colours plus 16 levels of transparency) or 16-bit (65,536 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 can be connected via the front panel..
    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).

    Hardware Features

    The Waveshare CoreH743I CPU Board is the brains of the Colour Maximite 2.  This plugs into a motherboard which holds the interface components and connectors - most of of which are connected directly to the Cortex-M7 32-bit RISC processor on the Waveshare board.  Most functionality is provided by this processor which includes holding the BASIC program in flash, generating the VGA output, etc. The Waveshare board also includes 8MB of SDRAM and various support components.

    The plug in board concept eliminates the need to solder the ARM CPU with its 176 pins and 0.2mm gap between pins. It also allows the whole CPU system to be easily replaced if it is suspected that the CPU has been damaged.

    Many suppliers offer fully assembled units that do not use the plug in board design. Instead the STM32 chip and its supporting components will be soldered directly to the main PCB (this makes sense for a machine assembled board and is cheaper to supply). The layout of these boards is essentially the same except that there are no configuration jumpers as on the Waveshare board.

    VGA Output

    This generates standard VGA signals in a variety of resolutions and number of colours as determined by the MODE command. These range from 800x600 pixels (the default at power up) to 240x216 pixels and 256, 4096 or 65536 colours. All modes work perfectly with monitors that have an aspect ratio of 4:3 or widescreen monitors that can switch to that ratio (most widescreen monitors will do this automatically).

    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.

    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.

    I/O Connector

    This 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 pin layout and positioning of special functions is compatible with the Raspberry Pi allowing Pi HATs to be connected if required.

    The I/O connector's pin-outs is shown on the right (a better diagram is in the user's manual).  It 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.

    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

    This USB 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 the past eight 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.