It is a small retro-computer that really DOES FUN STUFF!
If your first computer is a multi-core, multi-gigabyte PC like the new ones sold today, or if your first computer was a “Home Computer” back in the 1980s, you might be aching to have your computer do something “real” around you.
The desktop PC that I’m typing this document on certainly does a lot – word processing, surfing the internet, and video editing. In fact compared to the Sinclair ZX81, TRS-80, Tandy COCO (Color Computer), Apple II, and Commodore 64 of the 1980s a modern computer is really a phenomenal machine.
Ever since I had Sinclair, TI 99/4A, TRS-80, Tandy COCO, and Apple II computers back in the 1980s I have wanted to use the machines to interface to the real world and write a BASIC program to control my hardware. That could be done if you found some unique interface hardware to do the job. But even if you did that, you were converting the only personal computer that you had at that time into a very expensive controller.
CGMMSTICK1 controlling LCD displays. Wouldn’t it have been nice to have several multi-thousand dollar computer setups to play with? Several Sinclair ZX81 or Tandy COCO computers set up that you could conveniently wire your circuits to? I couldn’t afford to do that in the 1980s. Not on my budget.
That is exactly what the Maximite can do for you. The Maximite has more power than an Apple II or Sinclair ZX81 on a single small circuit board WITH the ability to interface to your own hardware easily. The original Maximite was the clever invention of Geoff Graham (http://geoffg.net) and on a small printed circuit board he included power that rivals the 1980s Home Computer.
The Maximite that Geoff designed runs BASIC like the 1980s Home Computers did, but has a keyboard interface, a VGA connection, and an SD card. The SD card and internal (FLASH) drives take the place of the “floppy drives” of the 1980s – they are significantly better. The Maximite runs the BASIC code from these drives and can also store data on them. The Maximite also has a USB port that connects to your PC and (because of the PC driver) appears on the PC as a serial port.
There are 20 input/output lines on the CGMMSTICK Maximite that let you control LEDs, LCDs, motors, relays, and other output devices. There are even more I/O lines (an additional 20) on the CGCOLORMAX. You can measure voltages, connect to switches and buttons, and interface to sensors. These lines let you connect to serial devices, I2C chips, and SPI circuits. Don’t know how to do that? That is exactly what this document will help you learn.
CGMMSTICK1 in a solderless breadboard.
The unique feature of the CGMMSTICK is that it can plug directly into a solderless breadboard for easy circuit prototyping. The CGMMSTICK is also easy to use in projects that are more permanent than solderless breadboard projects.
CGMMSTICK1 and a 30 pin header. A straight header or a right-angle header lets you use the ‘stick’ in a solderless breadboard.
On a printed circuit board that is only 3.5 inches long and 1 inch wide, the CGMMSTICK gives you much more than the power of a Sinclair ZX81 to run your hobby and engineering projects.
The CGCOLORMAX nicknamed “ColorMax”. Female headers for Arduino shields and male headers have been added for experimentation. The CGCOLORMAX has 8 color (black, red, green, blue, cyan, yellow, purple and white) graphic output and 20 more I/O lines. There is a footprint on the PCB that can support adding Arduino Shields to the CGCOLORMAX.
The CGCOLORMAX also has a “sea-of-holes” area for hardware prototyping and circuits for RS485 and RS232 interfacing. There is a populated battery-backed clock on board.
The CGCOLORMAX can be powered from 5V on USB or 8 to 18V on the input power connector.
The CGCOLORMAX comes on a 5.7 inch by 4 inch board and supports color graphics output on a VGA connector. Included is a keyboard connector and full-size SD card.
Example CGCOLORMAX VGA output.
MMBasic supports several video modes that allow you to balance color features against available program memory. You can even use the CGCOLORMAX in black and white mode to get the most program memory possible.
The Maximite is a little computer that does fun stuff! It is the computer that I have wanted for years. It is a computer meant for interfacing with electronic projects.
It is a “retro 1980s” computer with modern features such as SD card program / data storage instead of floppies and a modern version of BASIC with commands specifically for interfacing to circuits.
Geoff Graham (http://geoffg.net) created this little gem. I’ll describe his original Maximite a little bit before the CGMMSTICK and CGCOLORMAX are described. From Geoff’s web page on the Maximite:
The Maximite is a small and versatile computer running a full featured BASIC interpreter with 128K of working memory.
It will work with a standard VGA monitor and PC compatible keyboard and because the Maximite has its own built in SD memory card and BASIC language you need nothing more to start writing and running BASIC programs.
The Maximite also has 20 input/output lines which can be independently configured as analog inputs, digital inputs or digital outputs. You can measure voltage, frequencies, detect switch closure, etc and respond by turning on lights, closing relays, etc – all under control of your BASIC program.
The original Maximite by Geoff Graham The full story of the Maximite is here: http://geoffg.net/Maximite_Story.html
Pictured here you can see the original Maximite in an enclosure. The picture has the cover off and shows some of the features of the design. Sticking out the front of the case is a full-size SD card for program and data loading and storage. That reminds me a great deal of early 1980s home computers with floppy drives sticking out the front, but the SD card can hold considerably more than the old floppy disks could. The original Maximite is approximately 6.1” by 3.6”.
Input/Output lines on the original Maximite.
A rear view of the original Maximite shows where you can connect (from left to right) a VGA monitor, a PS/2 keyboard, I/O devices, USB (to a PC), and power.
When the Maximite is connected to a PC, the driver that is provided with the Maximite makes the hardware appear as a serial port. You can open a PC terminal program to connect to the Maximite through your PC keyboard and display.
You can also use the VGA port and keyboard port as the display and keyboard for this computer. Connect power, a PS/2 keyboard, and a VGA monitor and you have a stand-alone computer.
Prototyping with the Maximite. Jumper wires connect signals between the Maximite and the circuit being tested. The row of pins on the back of the Maximite that I mentioned above as useful for “I/O devices” is where you can attach your own circuits to the Maximite to control.
You can see in the picture a Maximite that uses jumper wires to attach to a solderless breadboard. The jumper wires provide a signal pathway between the Maximite I/O lines (and the BASIC language that controls those lines) and a breadboard.
Prototyping with the CGMMSTICK1. The ‘stick’ plugs directly into a breadboard for convenience. The USB connection supplies 5V to the solderless breadboard.
The CGMMSTICK is a monochrome Maximite design intended for direct insertion into a solderless breadboard. This makes it great for circuit experimentation and control. The CGMMSTICK can be controlled directly from a PC, with a program (such as MMIDE) controlling all of the 20 Maximite I/O lines, or with 5V power provided to the CGMMSTICK through the solderless breadboard – the CGMMSTICK would run independent of the PC.
The CGMMSTICK can be embedded in a design as the control processor, automatically running a BASIC program.
The VGA and keyboard signals are also present on the 30 pin connector. The CGVGAKBD1 board brings these signals out to appropriate connectors.
CGCOLORMAX2 has VGA and keyboard connections, a real-time clock, full-size SD card, and support for interface circuitry.
The CGCOLORMAX is a color Maximite design that has VGA color and supports Arduino Shields. The CGCOLORMAX has all of the capabilities of the original Maximite and a similar form factor, but also includes an area for prototyping circuits as well as RS232 and RS485 circuits. This design has an on-board battery-backed clock and a full-size SD card.
The COLORMAX1 had surface-mount RS485 and RS232 circuits. The COLORMAX2 has optional DIP-package RS232, RS485, and CAN devices.
The CGCOLORMAX has room for shields mounted on the PCB. Here is a prototype shield mounted on the old CGCOLORMAX1.
If you wish to add additional circuitry, it is easy to expand the hardware capabilities of the CGCOLORMAX by adding commonly available Shields.
CGCOLORMAX mounted in an enclosure with a Shield in place. This is an LCD and button shield.
There are a large number of Shields available for Arduino devices. With appropriate MMBasic software they can all be used with the CGCOLORMAX.
Shields allow you to expand the hardware capabilities of the CGCOLORMAX simply by inserting a shield with the hardware that you need onto the Shield footprint.
Need an LCD display and buttons? The LCD Shield example in a later chapter shows example code.
Need relays? I/O expansion? Touch-screen graphic color LCD? Motor control? GPS interface? Backup battery? Just snap a shield in place.
All of the color video modes demonstrated by a CGCOLORMAX displayed on a VGA monitor. This picture is a CGCOLORMAX with an LCD shield attached and connected to a keyboard.
The CGCOLORMAX is design-compatible with the Colour Maximite. The CGCOLORMAX hardware offers more features.