The 8-Bit Guy
By pairing a 480 MHz ARM processor with on-device BASIC interpretation, the Color Maximite 2 runs complex graphics and arcade games without requiring modern compiler toolchains.
AI-assisted summary of Color Maximite 2 - ARM CPU that runs BASIC! — original source. Check the original for full context.
Source published:
Key ideas
- The Color Maximite 2 upgrades its core processing engine from a PIC32 to a 480 MHz ARM Cortex-M7, enabling it to execute interpreted BASIC at approximately 270,000 lines per second. (0:00)
- Visual output leaps from an 8-color maximum to 16-bit color displaying up to 65,536 colors at an 800×600 default VGA resolution, completely abandoning composite NTSC. (0:00)
- Priced around $99, the device uses an off-the-shelf Waveshare core module soldered to a carrier board to simplify small-run manufacturing. (0:00)
- The hardware integrates a 40-pin GPIO header matching the Raspberry Pi pin layout, allowing real-time I/O control directly from interpreted BASIC without an external compiler toolchain. (7:49)
Detailed notes
## Background Published on YouTube by The 8-Bit Guy (David Murray) on July 1, 2020, this video reviews the Color Maximite 2, an ARM-powered hobbyist computer that boots directly into BASIC. The video description directs viewers to David's website and Patreon, highlights an in-depth video by Debuglive, and provides links to download firmware, manuals, and Gerber files from Geoff Graham's website.
## TL;DR David Murray explores the Color Maximite 2, highlighting its hardware leap from a PIC32 microcontroller to a 480 MHz ARM Cortex-M7 capable of processing 270,000 lines of interpreted BASIC per second. After demonstrating setup, media playback, and legacy compatibility fixes for his older Tetris port, he showcases ambitious community projects including real-time 3D rendering, a full *Gauntlet* arcade conversion, and a *Wolfenstein 3D* proof of concept. He then uses the 40-pin GPIO header to wire up an infrared sensor and drive a floppy disk stepper motor using quick BASIC routines. Concluding with a comparison to his own Commander X16 project, David praises the platform as an accessible, friction-free gateway to coding that eliminates the need for complex modern toolchains.
## Atmosphere & style The presentation carries a casual, hands-on maker vibe fueled by David's down-to-earth delivery and genuine curiosity. Watching him strip IDE ribbon cables to hook up breadboard components and point his camera directly at a CRT monitor gives the demonstration an unpretentious, workbench intimacy. The mood is both instructional and nostalgic, capturing David's quiet astonishment as interpreted BASIC powers fluid arcade conversions and simple hardware control loops right before the viewer's eyes.
## Bulletin - [00:00](https://www.youtube.com/watch?v=IA7REQxohV4&t=0s) The Color Maximite 2 upgrades its core processing engine from a PIC32 to a 480 MHz ARM Cortex-M7, enabling it to execute interpreted BASIC at approximately 270,000 lines per second. - [00:00](https://www.youtube.com/watch?v=IA7REQxohV4&t=0s) Visual output leaps from an 8-color maximum to 16-bit color displaying up to 65,536 colors at an 800×600 default VGA resolution, completely abandoning composite NTSC. - [00:00](https://www.youtube.com/watch?v=IA7REQxohV4&t=0s) Priced around $99, the device uses an off-the-shelf Waveshare core module soldered to a carrier board to simplify small-run manufacturing. - [07:49](https://www.youtube.com/watch?v=IA7REQxohV4&t=469s) The hardware integrates a 40-pin GPIO header matching the Raspberry Pi pin layout, allowing real-time I/O control directly from interpreted BASIC without an external compiler toolchain.
## Key takeaways - [00:00](https://www.youtube.com/watch?v=IA7REQxohV4&t=0s) The 480 MHz ARM Cortex-M7 processor allows interpreted BASIC code to execute as fast as or faster than 1980s assembly language. - [00:00](https://www.youtube.com/watch?v=IA7REQxohV4&t=0s) The platform transitions from legacy PS/2 keyboards to modern USB keyboard support while retaining standard VGA output. - [00:00](https://www.youtube.com/watch?v=IA7REQxohV4&t=0s) Using a Waveshare ARM core module on a custom carrier board circumvents the manufacturing challenge of hand-soldering high-density surface-mount chips. - [02:50](https://www.youtube.com/watch?v=IA7REQxohV4&t=170s) The system boots instantly to a command prompt with native support for SD card navigation, 16-bit graphics, MP3 playback, and Amiga MOD tracker audio. - [02:50](https://www.youtube.com/watch?v=IA7REQxohV4&t=170s) Backward compatibility with older PIC32 Maximite code requires toggling 'OPTION LEGACY ON' and updating video mode parameters. - [04:30](https://www.youtube.com/watch?v=IA7REQxohV4&t=270s) Complex real-time software, including 3D texture mapping and full arcade conversions like Gauntlet, runs entirely inside readable, interpreted BASIC. - [04:30](https://www.youtube.com/watch?v=IA7REQxohV4&t=270s) A proof-of-concept raycasting engine for Wolfenstein 3D demonstrates that 3D game mechanics can run at playable frame rates within the interpreter. - [07:49](https://www.youtube.com/watch?v=IA7REQxohV4&t=469s) A Raspberry Pi-compatible 40-pin GPIO header allows direct hardware control of peripherals, such as an infrared receiver and a floppy drive stepper motor, using simple BASIC loops. - [09:58](https://www.youtube.com/watch?v=IA7REQxohV4&t=598s) Keyboard responsiveness can be tuned down to a 25-millisecond repeat rate for rapid input handling. - [09:58](https://www.youtube.com/watch?v=IA7REQxohV4&t=598s) David Murray clarifies that the Color Maximite 2 overlaps functionally with the Commander X16, Arduino, and Raspberry Pi, despite differing hardware goals. - [10:52](https://www.youtube.com/watch?v=IA7REQxohV4&t=652s) The self-contained BASIC environment lowers the programming barrier to entry by removing the need for compilers, IDEs, and serial driver setups. - [10:52](https://www.youtube.com/watch?v=IA7REQxohV4&t=652s) The original PIC32 Maximite remains a more cost-effective choice for dedicated microcontroller tasks, whereas the Color Maximite 2 is tailored for gaming and complex projects.
## Detailed walkthrough ### [00:00](https://www.youtube.com/watch?v=IA7REQxohV4&t=0s) Introduction to the Color Maximite 2 and Hardware Upgrades
In 2018, David Murray (The 8-Bit Guy) showcased the original Color Maximite, a hobbyist machine built around a PIC32 microcontroller running an integrated operating system. That original platform allowed users to hook up a monitor and keyboard to write and run software in BASIC. It was remarkably fast for its class, easily outperforming line-drawing routines on vintage 8-bit Commodore computers and even running David's custom port of Tetris. Now, an upgraded version has arrived: the Color Maximite 2. While channels like Debuglive had already released extensive coverage, David takes the machine apart to show the physical board and dive into its technical improvements over the previous generation.
The most dramatic leap is the processor. The PIC32 has been replaced by an ARM Cortex-M7 running at a blistering 480 MHz, capable of crunching through 270,000 lines of interpreted BASIC code every second. As David points out, “This thing can literally run interpreted BASIC as fast or faster than a computer from the 80s can run assembly language.” Peripheral support and visuals also received massive overhauls. The system has shifted from legacy PS/2 keyboards to modern USB keyboard support. Visually, the evolution is striking: while the first Maximite was strictly monochrome and its immediate successor topped out at 8 colors, the Color Maximite 2 provides 16-bit color, displaying up to 65,536 colors simultaneously across five distinct video modes with a default resolution of 800×600.
Unlike the previous version, which offered a monochrome NTSC television mode alongside 2-, 4-, and 8-color configurations, the Color Maximite 2 completely drops composite NTSC output in favor of standard VGA. It retains two legacy resolutions specifically to preserve backward compatibility with software created for older Maximites. The board sells for around $99 and is built as a carrier board mated to an off-the-shelf Waveshare core module, chosen because soldering the high-density ARM chip by hand is too difficult for small-run manufacturing. David explains that the new unit is not necessarily a direct replacement for the PIC-based predecessor, which remains cheaper and well-suited for simpler microcontroller tasks.
| Specification | Original Maximite | Color Maximite (1) | Color Maximite 2 | |:--- |:--- |:--- |:--- | | **Processor** | PIC32 microcontroller | PIC32 microcontroller | ARM Cortex-M7 @ 480 MHz | | **BASIC Execution Speed** | Baseline interpreted | Baseline interpreted | ~270,000 lines per second | | **Color Support** | Monochrome (1-bit) | 8 colors (3-bit) | 65,536 colors (16-bit) | | **Keyboard Interface** | PS/2 | PS/2 | USB | | **Default / Max Video** | Monochrome VGA / NTSC | 8-color VGA / NTSC | 800×600 VGA (up to 16-bit depth) | | **Price Point / Role** | Low-cost DIY microcontroller | Low-cost DIY microcontroller | ~$99 advanced retro-style micro |
---
[02:50](https://www.youtube.com/watch?v=IA7REQxohV4&t=170s) Setup, File Management, and Legacy Compatibility
Hooking up the Color Maximite 2 requires only standard desktop peripherals: power from an ordinary 5-volt USB phone charger, a VGA monitor, a USB keyboard, and powered external desktop speakers plugged into the 3.5 mm audio jack. Upon powering on, the machine boots almost instantly into a minimalist command prompt. Typing the `FILES` command brings up an interactive file browser that displays the contents of the SD card, complete with subdirectories. The interface highlights executable BASIC programs in yellow, but it can also natively open multiple media types. It decodes standard image formats directly into 16-bit color and plays background audio streams, including MP3s and Amiga MOD tracker files, without any clutter or playback indicators intruding on the screen.
```mermaid flowchart TD accTitle: Legacy BASIC Compatibility Flow accDescr: Flowchart showing the troubleshooting steps required to adapt an older Color Maximite BASIC game to run on the Color Maximite 2.
subgraph LegacyCode["Legacy CMM1 BASIC File"] A["Load Tetris.bas"] end
subgraph ErrorHandling["Syntax & Command Corrections"] B["Fails on modern draw syntax"] --> C["Add 'OPTION LEGACY ON'"] C --> D["Runs in screen corner, crashes on MODE"] D --> E["Manually update MODE command to CMM2 resolution"] end
subgraph Result["Working Execution"] F["Game executes smoothly with minor top-text clipping"] end
A --> B E --> F ```
To test backward compatibility, David loads the Tetris clone he originally programmed for the PIC32 version. At first, the program crashes immediately because several graphic and screen-drawing commands were overhauled for the new architecture. However, the system includes a backward-compatibility toggle: entering `OPTION LEGACY ON` at the top of the program forces the BASIC interpreter to emulate the command behavior of earlier firmware. Running it again shows progress—the playfield appears, although it is constrained to a small corner of the screen—before it halts on another error. The `MODE` command cannot be translated automatically and must be updated by hand to match one of the new display modes. Once that single line is updated, the game runs completely, showing only minor cosmetic text clipping at the very top. As David observes, “So that’s good news, it means you can write code on the older Maximite and it should work on the newer one with very little modification.”
- Powers directly from a standard 5V USB charger. - Onboard media capabilities include displaying 16-bit graphic images and playing MP3 and Amiga MOD tracker audio files. - Older BASIC software functions reliably once `OPTION LEGACY ON` is appended and the video `MODE` statement is manually adapted.
---
[04:30](https://www.youtube.com/watch?v=IA7REQxohV4&t=270s) Software Demos: Gauntlet, Final Fight, Wolfenstein 3D, and the Demoscene
To illustrate what the ARM Cortex-M7 can achieve when pushed, David highlights several community creations. The first is an interactive demo of a 3D textured soccer ball spinning in real-time at an 800×600 resolution. The rendering calculations run entirely in interpreted BASIC rather than pre-compiled binaries. Hitting `Ctrl+C` immediately breaks the execution, dropping the user into the built-in editor to browse the raw mathematical routines making the animation possible.
Even more impressive is a full-featured arcade conversion of *Gauntlet*. Because David lacks an external VGA capture device compatible with the non-standard video timings, he films the CRT monitor directly while capturing line-level audio. The game begins with an arcade copyright disclaimer, prompting David to joke: “Let’s just hope Warner Brothers isn’t as evil as Nintendo is and hopefully there won’t be any cease and desist letter sent out over this.” The port features a configuration menu where players can select between 8-bit chip melodies or full 16-bit audio, and pick controller inputs—including keyboard control or a Nintendo Wii Nunchuk connected directly to a front-panel port. Once gameplay starts, the scrolling dungeons, enemy generators, and character classes look and play identical to the arcade original. Hitting `Ctrl+C` once again proves the entire game is running as transparent, human-readable BASIC code that anyone can study and alter.
```mermaid flowchart LR accTitle: Color Maximite 2 Software Capabilities accDescr: Breakdown of community software demonstrations running under the interpreted BASIC engine.
subgraph Demos["Community Creations"] A["3D Soccer Ball<br/>(800x600 Real-Time)"] B["Gauntlet Arcade Port<br/>(Wii Nunchuk + 16-bit Sound)"] C["Final Fight Engine<br/>(Sprite Combat Demo)"] D["Wolfenstein 3D Engine<br/>(Raycasting Proof of Concept)"] E["90s Demoscene Demo<br/>(Music & Visual FX)"] end
subgraph Interpreter["MMBASIC Engine"] F["480 MHz ARM Cortex-M7<br/>Real-Time Line Interpretation"] end
A --> F B --> F C --> F D --> F E --> F ```
David demonstrates several other projects in active development: - A side-scrolling beat-'em-up engine based on *Final Fight*, showcasing fluid multi-frame character animations and attack moves. - A raycasting proof-of-concept engine running *Wolfenstein 3D* at playable frame rates, which David admits he never expected to see written inside an interpreted BASIC environment. - A classic 1990s-style demoscene showcase featuring synced raster-style effects, scrollers, and tracker music.
Reflecting on the system's broader appeal, David explains: “I think this is an excellent way for somebody to get an introduction to programming as the barrier to entry here is very low compared to learning to code on modern systems.”
---
[07:49](https://www.youtube.com/watch?v=IA7REQxohV4&t=469s) Microcontroller Projects: GPIO, Infrared Sensing, and Floppy Control
Turning away from gaming, David explores the hardware interfacing capabilities of the Color Maximite 2. The rear edge of the computer features a 40-pin GPIO expansion header mapped to the standard Raspberry Pi pin layout. To wire up circuits without dedicated breakout boards, David modifies a standard 40-pin IDE ribbon cable by lopping off one connector and splitting the ribbon wires into individual strands.
```mermaid flowchart LR accTitle: GPIO Interfacing Setup accDescr: Hardware wiring layout for the infrared sensor test through the 40-pin header.
subgraph CMM2["Color Maximite 2"] Header["40-Pin GPIO Header<br/>(Raspberry Pi Layout)"] end
subgraph IDE["Stripped 40-Pin IDE Cable"] Pwr["Red Wire (+5V / VCC)"] Gnd["Black Wire (GND)"] Data["White Wire (Data Pin)"] end
subgraph Sensor["Infrared Receiver"] IR["IR Sensor Module<br/>(Active-Low Logic)"] end
Header --- Pwr Header --- Gnd Header --- Data Pwr --> IR Gnd --> IR IR --> Data ```
His first experiment uses an infrared sensor receiver connected via alligator clips. After writing a small custom BASIC oscilloscope routine in just a few minutes, the screen begins graphing the logic level of the pin in real time. By default, the input pin registers a high logic level; pulling it to ground brings the plotted trace down to zero. Hooking up the sensor module—powered via the 5V and ground pins—allows it to pull the line low whenever it senses modulated IR light. While there is minor stray electrical noise on the line that could be cleaned up with a pull-up resistor or filtering capacitor, pointing an infrared remote control at the sensor clearly draws incoming digital data packets across the monitor. David adds a single line of code to trigger a speaker beep whenever incoming signal packets arrive, creating audible feedback for each unique button press and demonstrating the repeat codes sent when holding a remote key down.
For his final hardware test, David wires the GPIO lines directly to an old 3.5-inch floppy disk drive to control its stepper motor. Floppy drive logic is straightforward: sending 5V pulses to the drive's step pin moves the read/write head by one track, while asserting a second pin alters the direction of the movement. Writing a quick BASIC loop to toggle the appropriate output pins quickly has the floppy drive stepping its head back and forth across the carriage on command.
[09:58](https://www.youtube.com/watch?v=IA7REQxohV4&t=598s) Keyboard Repeat Tuning and Commander X16 Comparison
David tests out a quick tweak to speed up responsiveness on the Color Maximite 2 by lowering the keyboard repeat rate down to 25 milliseconds, showing off the significantly faster results on screen with an enthusiastic reaction to how well it performs. Anticipating viewer feedback, he directly tackles an obvious question: “Hey David, why are you showing this, doesn’t it directly compete with the Commander X16 that you are helping develop?” His response is nuanced: “Well, yes and no. There is certainly some overlap with the Maximite and the Commander X16, as well as other products like the Raspberry Pi or Arduino.” He explains that while all these platforms are designed with distinct goals, there is natural functional crossover where several of them can accomplish the same tasks.
Taking advantage of the segue, David shares a brief project update on the Commander X16. Fresh unpopulated system boards from PCBWay had arrived just a few days prior, along with a couple of expansion cards intended specifically for hardware development. While he had not yet had the opportunity to solder components onto the boards to verify that they work, he remains optimistic about testing them in the near future before pivoting back to the Maximite.
```mermaid flowchart TD accTitle: Overlapping computing and development ecosystems accDescr: Diagram illustrating how the Color Maximite 2 overlaps with Commander X16, Arduino, and Raspberry Pi.
subgraph RetroStyle["Direct BASIC & Retro Focus"] CM2["Color Maximite 2<br/>(ARM-based BASIC)"] X16["Commander X16<br/>(Modern 8-bit Computer)"] end
subgraph MakerModern["General Maker & Microcontroller"] ARD["Arduino<br/>(Microcontroller Dev)"] RPI["Raspberry Pi<br/>(SBC / Linux)"] end
CM2 <-->|"Functional Overlap"| X16 CM2 <-->|"Hardware Control"| ARD CM2 <-->|"Standalone Computing"| RPI ```
- Keyboard repeat rate was lowered to 25 ms to demonstrate how it handles rapid-fire input. - New Commander X16 motherboards and hardware development expansion cards were manufactured and delivered by PCBWay.
[10:52](https://www.youtube.com/watch?v=IA7REQxohV4&t=652s) Accessibility of BASIC and Final Verdict on the Color Maximite 2
David makes a case for the platform as an exceptionally friendly gateway into computer programming. Even though BASIC has largely disappeared from modern commercial software development, it dramatically reduces friction for beginners. Unlike standard modern workflows, users do not need to install complex compilers, learn integrated development environments, or troubleshoot stubborn serial port drivers just to upload a test build to an Arduino. With the Color Maximite 2, anyone can write code directly on the screen and immediately witness the results. Summarizing the pedagogical advantages and raw performance of the machine, David states: “BASIC is one of the easiest languages to master. And obviously the speed is not much of a concern with the horsepower you have in this thing.”
Weighing the new hardware against its predecessor, David points out that if someone merely requires a microcontroller for basic I/O tasks, sticking with the older PIC32-powered Maximite makes more sense because it is cheaper and sufficiently fast. However, for anyone aiming to write games, the upgraded Color Maximite 2 is the clear choice. He concludes the video by teasing upcoming hardware reviews, including an all-in-one Android-based mini computer equipped with HDMI, Ethernet, and USB ports, as well as the Mini PET—a Commodore PET replica constructed entirely out of brand-new, off-the-shelf components.
- **No Toolchain Overhead:** Bypasses external toolchains, driver installation, and serial upload cycles entirely by running self-contained code on-device. - **Hardware Selection Trade-offs:** The original PIC32 Maximite remains budget-friendly for basic microcontroller applications, whereas the Color Maximite 2 provides the processing power required for gaming. - **Upcoming Project Previews:** - An all-in-one Android computer featuring rear HDMI, Ethernet, and USB ports. - The Mini PET, a fully functional Commodore PET rebuild utilizing modern off-the-shelf parts.
## Notable quotes > [09:58](https://www.youtube.com/watch?v=IA7REQxohV4&t=598s) There is certainly some overlap with the Maximite and the Commander X16, as well as other products like the Raspberry Pi or Arduino. — David Murray
## Mentioned David Murray, The 8-Bit Guy, Color Maximite, Color Maximite 2, PIC32, ARM Cortex-M7, Waveshare, Commander X16, Raspberry Pi, Arduino, PCBWay, Mini PET, Debuglive, Tetris, Gauntlet, Final Fight, Wolfenstein 3D, Nintendo Wii Nunchuk, Commodore PET, Warner Brothers, Nintendo
## Video description Support The 8-Bit Guy on Patreon: https://www.patreon.com/8BitGuy1
Visit my website: http://www.the8bitguy.com/
Check out Debuglive's more in-depth video on the Color Maximite 2: https://youtu.be/lzrX72aB7zg
Gerbers, manuals, firmware etc. are all available on http://geoffg.net/maximite.html
[Source](https://www.youtube.com/watch?v=IA7REQxohV4)