This is only a preview of the October 2021 issue of Practical Electronics. You can view 0 of the 72 pages in the full issue. Articles in this series:
|
Colour Maximite 2
(Generation 2)
Part
1
Words
Phil Boyce
Design
Geoff Graham
Firmware
Peter Mather
The latest iteration of our retro home computer
B
ack in November 2019,
we published a project that
described the original Colour
Maximite computer. The Colour Maximite computer (CMM) proved to be extremely popular, with many hundreds
of units sold globally. For those of you
unfamiliar with the CMM, it can simply
be regarded as a compact, standalone
BASIC computer to which you attach
a VGA monitor, PS2 keyboard and 5V
USB power supply. (‘BASIC’ doesn’t
mean simple or under-powered; it was
programmed using the BASIC language.)
On power up, it is immediately ready to
be used, much like the pioneering home
computers of the 1980s (for example,
the ZX Spectrum, VIC20 and BBC micro series). The version of BASIC that
the CMM uses is known as ‘MMBASIC’
(Maximite BASIC), and for those of you
that have been following the Make it
with Micromite series, it is virtually
identical to the version of MMBASIC
used to program the Micromite.
The CMM is much more powerful
than the 4MHz, 8-bit microprocessorbased computers of the 1980s. Those
typically ran on 6502 or Z80 ICs, but
the CMM uses an 80MHz, 32-bit microcontroller. In addition, it is very easy
to interface external hardware to the
CMM thanks to several input/output
(I/O) connectors and supporting I/O
MMBASIC commands.
The CMM is quite an old design, dating back to 2012, so in 2020, a new (and
much improved) version was released.
This was called the Colour Maximite 2
42
(CMM2), but for various reasons, it was
not featured in PE. However, last month
a tweaked version of the CMM2 was released; so now seems like the perfect
time to introduce you to the CMM2, or
more specifically, the tweaked version
which is known as the CMM2 Generation 2 (CMM2 G2, often just abbreviated to G2).
Before we get into the details of this
new ‘beast’, it is worth reflecting on the
previous Maximite models to appreciate how things have evolved over the
last decade. Do also bear in mind that
the first Maximite was the predecessor
of the very popular Micromite that now
features in many PE projects.
Maximite history
In late 2010, Geoff Graham, a talented
Australian hobbyist, set himself a challenge to try and implement BASIC on
what at the time was a new and powerful 32-bit PIC processor. This was not
only a huge software challenge; but it
would also involve some kind of hardware design on which, if he was successful, he could run his version of BASIC.
Ultimately, he was aiming to recreate a
1980s home computer (a Tandy TRS80)
on a single PIC32 chip, knowing that it
would also make a great project for his
local electronics magazine, Silicon Chip.
After several hardware variants, he
ended up with a working design that
Fig.1. The first Maximite Computer was based on a PIC32 microprocessor. It was released
in March 2011. The following year it became known as the Monochrome Maximite.
Practical Electronics | October | 2021
included an SD card (for program
storage), a PS2 keyboard input (for
entering program code), a VGA monochrome video output with a resolution
of 480 × 432 pixels (for displaying the
code and any other output), and an I/O
connector for interfacing with external
hardware. He had succeeded. It was
indeed controlled by a single PIC32,
all housed in a small plastic enclosure
resulting in a neat, finished product
(see Fig.1). He called it the Maximite
Computer, and it was featured in Silicon Chip in 2011 (March, April, and
May 2011 editions). The most impressive thing (at least in my opinion) is
that all this was achieved in just over
three months!
After the Maximite Computer had
been created, Geoff brought out a
trimmed-down version that did not
include a VGA output, or an SD card.
This version was named the Mini Maximite (see Fig.2), and it could be argued
that this was the true pre-cursor to the
now-popular Micromite. Once again, it
was featured in Silicon Chip magazine
(November 2011).
The Colour Maximite
Never one to rest on his laurels, Geoff
looked at improving the design. Many of
the earliest 1980s home computers were
also initially monochrome, but then
came colour. So, in September 2012,
he upgraded the Maximite Computer
to the Colour Maximite (CMM) (Fig.3),
and it went on to become one of Silicon
Chip’s magazines most popular projects.
Along with the ability to display colour
graphics (up to eight colours when using
240 × 216-pixel resolution), it was also
possible to draw coloured sprites (a twodimensional image or animation that is
integrated into a larger scene). It could
play some very impressive sounds, including stereo MOD music files. It was
even possible to insert a compatible
Arduino shield directly onto the PCB,
as well as having an option to add an
RTC (real-time-clock) chip with battery
Fig.2. The Mini Maximite Computer was
released in November 2011. It can be
regarded as an embedded-controller
version of the Maximite Computer (ie, a
basic PCB with no SD socket, and no
VGA socket).
Practical Electronics | October | 2021
Fig.3. Colour was added to the Maximite in September 2012 along with several other
additional features including stereo sound, Arduino Shield compatibility and an RTC option.
back-up. As mentioned above, the CMM
was featured in PE in 2019/2020 (November to January) and has been extremely popular here in the UK, and
also across Europe and the US. (Note
that the launch of the Colour Maximite
resulted in the first Maximite becoming
known as the Monochrome Maximite.)
STM32 and the CMM2
The Maximite was a single-chip design,
so there was no way to really improve
the hardware design without replacing
the processor with a more powerful IC.
Remember that the original PIC32 used
in the Maximite is now well over ten
years old. A decade is a long time in
G2 Features and Specification
480MHz Arm Cortex M7 STM32
processor (2MB Flash, 1MB internal RAM)
32MB additional RAM chip (program storage and video memory)
VGA colour output (15 video
modes, 240 × 216 to 1920 × 1080)
Four colour modes (8-bit, 256 colours to 24-bit, 16 million colours)
Built-in BASIC interpreter (with
programs executed at circa
250,000 lines per second)
Support for handling doubleprecision floating-point arithmetic, 64-bit integers, long variable
names, and up to five-dimensional arrays (24MB variable storage)
Seven built-in fonts, user-defined
fonts, and full pixel control via
graphics commands
BMP, GIF, JPG and PNG image files
can be read from the SD card, and
drawn anywhere on screen (scaling and rotation possible)
USB keyboard language support:
UK/US English, French, Spanish,
German, Dutch/Belgian
Mouse support: either dual-mode
mouse, or (with an additional
chip) USB-only mouse
Up to 128GB SD Card support
(FAT16, FAT32 or exFAT)
Built-in file manager (with mouse
or keyboard control) to allow easy
loading of programs
Stereo sound output; music files
supported: WAV, FLAC, MP3,
MOD
High-accuracy RTC (with battery
back-up)
28 I/O pins with pinout identical to a Raspberry Pi 40-way HAT
connector: digital inputs, digital
outputs, UART, SPI, I2C, onewire, PWM
USB type-B socket for 5V power,
or for using an external Terminal
program
Built-in, full-screen, colour-coded
Editor: up to 255-character line
length, with copy/paste functionality, advanced search and mouse
support
Special features for game creation
including multiple video layers
with various levels of transparency, multiple video pages with
high-speed copying, animated
sprites and support for up to three
Nunchuck controllers (two physical ports)
Firmware upgrade via a single
USB lead (no other hardware is
required).
43
Fig.4. The Colour Maximite 2 (CMM2) is based on an STM32 microprocessor. a) (left) The kit form used mainly through-hole
components along with a plug-in Waveshare module which contained the STM32 chip. b) (right) The fully assembled CMM2 used all
surface-mount components soldered onto both sides of a single PCB.
terms of microprocessor progress, and
the PIC32 can now be regarded as an ‘ancient’ device. A search for a replacement
resulted in the selection of the ARM
Cortex-7 STM32 processor from STMicroelectronics. It was not an easy job to
migrate the MMBASIC firmware code
from the PIC32 to the STM32. So, while
Geoff was taking a well-earned rest, this
migration task was open – step forward
Peter Mather. Based in the UK, he took
on the challenge, and within a relatively
short time he had ported MMBASIC so
that it was able to run on the STM32
processor. By using a modern processor
running at 480MHz, the speed increase
alone of MMBASIC on a CMM2 was ten
times that of the original CMM. Another
immediate benefit was that there was a
lot more internal memory, and this resulted in more colours being available
(up to 16-bit colour), as well as providing the ability to have higher-resolution
graphics (up to 1280 × 720). In addition,
other graphical effects were possible, including amazingly fast screen copying
and scrolling. Note that the CMM2 also
incorporated an additional 8MB RAM
chip to provide even more memory required to offer some of these features.
Other small additions included the ability to use a USB keyboard and to plug
in a Nunchuck game controller.
The CMM2 was released in June 2020,
and featured in Silicon Chip a month
later. It is available in kit form (Fig.4a)
or as a preassembled unit (Fig.4b) from
micromite.org
CMM2 G2
The very latest Maximite, the CMM2
G2 (or simply the G2) can be seen in
Fig.5. It has an impressive specification (see the Features box). However,
it must be made clear that the G2 is not
a replacement for either the Micromite
or the CMM2. The Micromite is a fantastic embedded controller, whereas the
CMM2 is an extremely powerful standalone computer, perfect for developing
MMBASIC programs; not to mention
44
that it is also capable of running some
very impressive retro style games – all
coded in MMBASIC of course!
The G2 should be regarded as a
Maximite offering the highest specification that is currently available. In
fact, the CMM2 and the G2 both use
the same STM32 processor, and even
share the same firmware file, so what
makes the G2 so special?
There are three main improvements
over the CMM2. First, the G2 uses a bigger RAM chip, 32MB as opposed to 8MB.
This allows for improved graphics capabilities (increasing the resolution to 1920
× 1080), as well as more space for much
larger programs. Second, the digital-toanalogue video circuit uses eight bits
per colour-channel. This results in true
24-bit colour (meaning over 16 million
colours), as well as offering more levels
of transparency. The third improvement
is that the PCB is now 4-layer, as opposed
to 2-layer. This means that all the SMDs
(surface-mount devices) are mounted on
the same side (the top), making it more
suitable for machine assembly.
So what else does the G2 offer in terms
of hardware improvements?
Referring to Fig.6, you can see a tiny
IC to the left of the SD socket. This is
a highly accurate RTC chip (DS3231)
and is fitted as standard in the G2.
There are now two physical Nunchuck ports that are accessed on the
front panel. This makes it ready for
two-player games (the CMM2 only
has one port on the front panel).
There is a dual USB connector on
the rear panel. The top USB socket
is for a USB keyboard, and the lower
USB socket can accept a mouse with
a USB connector on it. If using a
dual-mode mouse (ie, a mouse that
can use the PS2 protocol but via a
USB connector), then it can be used
without any modifications to the
G2 (apart from a couple of solder
shorts). However, a USB only mouse
will require the addition of an extra
chip. This is mounted near the upper-left corner of the PCB – you can
see the location for it (IC5) in Fig.6.
More on this next month.
Fig.5. The G2 uses a 4-layer PCB with all SMD components mounted on the top side.
It uses the same style case as the original Colour Maximite and CMM2; however, note
that the G2 adds an additional built-in Nunchuck port.
Practical Electronics | October | 2021
Table 1: The four Maximite variants compared
Feature
Monochrome
CMM
CMM2
CMM2 G2
Processor
PIC32MX795
PIC32MX795
ARM Cortex M7 STM32
ARM Cortex M7 STM32
Speed
80MHz
80MHz
400 / 480MHz
400 / 480MHz
Built-in memory (RAM/Flash)
128KB / –
128KB / –
1MB / 2MB
1MB / 2MB
Additional onboard RAM
–
–
8MB
32MB
Max number of colours
Monochrome
8
65,536 (16-bit)
16 million (24-bit)
Max resolution
480 × 432
480 × 432
1280 × 720
1920 × 1080
Video modes
2
4
14
15
Transparency levels
–
–
16
256
Fonts
1
1
7
7
Sound
Mono
Stereo
Stereo
Stereo
Sound files
MOD
MOD
WAV, FLAC, MP3, MOD
WAV, FLAC, MP3, MOD
RTC
–
Optional DS1307
STM32 built-in
High-accuracy DS3231
SD Card storage (max)
32GB
32GB
128GB
128GB
I/O
20
20 (ext) + 20 (int)
28
28
Nunchuck ports
–
–
1
2
Keyboard
PS2
PS2
USB (wireless)
USB (wireless)
Mouse support
–
–
PS2
PS2 / USB
There is provision for an internal
ESP8266-01 Wi-Fi module located
near the lower-left corner of the PCB
A 3-way jumper by the power switch
allows the switch to have its ON position selectable as either up or down
(implemented due to user feedback
on the CMM2)
The above highlights the hardware
changes that have been made over the
original CMM2 design. To open up the
features that the improved hardware
IC5: USB
keyboard IC
offers, a new version of MMBASIC has
been released (v5.07.00). This version
of the firmware can also be installed on
the CMM2 – it automatically detects
the hardware platform it’s running on
and behaves accordingly. This means
that if you currently have a CMM2,
several new software features will be
made available (such as mouse support, and improved screen resolution)
so it is worth upgrading to this latest
MMBASIC. However, when you run
32MB
RAM
it on a G2 you will have access to all
the new features.
All four of the Maximite variants are
compared in Table 1 above.
Silicon shortage
At the time of writing this article, the
supply of silicon has been adversely
affected due to various global supply
chain problems. This has greatly impacted the availability of the STM32
processor and the RAM chip; it has got
to the point where global stock of the
CMM2 and G2 are virtually non-existent.
We do expect this to change, but none
of the usual component suppliers can
offer any guarantees of dates. Some are
predicting the end of the year before they
get new stock, so please be patient if you
want to get your hands on a G2. Despite
these annoying issues, we will continue
next month with full assembly details.
Exploring further
This month’s download from the October 2021 page of the PE website includes two PDF documents that will
help you explore the potential of the
G2. The Colour Maximite 2 User Manual and Programming with the Colour
Maximite 2 (which apply both to the
CMM2 and the G2) includes all the information you need to get you up and
running with the G2 computer.
ESP-01
header
Additional
Nunchuck port
DS3231
RTC
Power
orientation
Questions? Please email Phil at:
contactus<at>micromite.org
Fig.6. Additional features for the G2, which make it different to the CMM2.
Practical Electronics | October | 2021
45
|