Reloading RetroMax MMBasic Firmware

The MMBasic firmware for the RetroMax is a continuous effort. There are releases of stable versions of the firmware as well as some experimental beta versions. The Color Maximite 2 (CMM2) is the base design for the RetroMax, and as such the RetroMax runs the CMM2 firmware. The CMM2 information and firmware updates are available here:

Color Maximite 2 site

The STM32 processor on the RetroMax includes its own programmer/bootloader so the RetroMax firmware can be easily loaded via a USB cable connected to a personal computer or laptop (special hardware is not needed). Just follow these steps.

For the programming software go to https://www.st.com/en/development-tools/stm32cubeprog.html and download the STM32CubeProgrammer software. This is free software but STM requires you to have an STM account or provide your name and email address. They will email you a link to download the software. Then install this software on your computer (Windows, Linux and macOS are supported).

The USB connection from the PC to the RetroMax can be done in one of two ways: either using a USB A to USB B cable with the cable plugged exclusively into the USB power/console port of the RetroMax, or using a USB A to USB A cable with the cable plugged exclusively into the RetroMax keyboard port.

The USB A-A cable is less common and may be hard to purchase, but the firmware update process is easier. The A-B cable is more common, but adds a couple of minutes to the firmware update process.

Updating firmware using a USB A-A cable

Make sure that the Type-B USB power cable to the RetroMax is disconnected.

Using the USB A to A cable connect the USB Keyboard port on the RetroMax to a USB port on your desktop/laptop computer. This will power up the RetroMax. Make sure that the RetroMax is powered – the green power LED at the front should be lit up. If not, press the power button on the front.

Image: A-A cable connection (example with RetroMax out of the case)

The RetroMax firmware button is on the side of the RetroMax near the VGA connector. Hold the firmware button down. If the RetroMax is in a case, the button should be accessible through a hole in the plastic.

Image: Firmware button location

Image: Firmware button location

With the firmware button held, momentarily press the reset button You should hear a sound (the “hey I just found a USB device” sound) from your computer as it connects to the RetroMax. Release the firmware button.

Run the STM32CubeProgrammer software on your computer. On the top right of the program window select USB as the communications method. If the program does not recognize the USB connection click on the small blue circle of arrows to the right of the port drop down list to refresh the entry. Your screen should look like the illustration below (the USB port number may vary).

Image: USB port connection in Cube Programmer

Click on the “Connect” button. You should then see a series of messages as shown in the screenshot below finishing with the message “Data read successfully”. Any messages in red will indicate an error.

Image: Connection messages in Cube Programmer

Click on the download button:

on the left side of the STM32CubeProgrammer window and the software will switch to the “Erasing and Programming” mode as shown below. Use the “Browse button” to select the firmware file (it will have an extension of .bin). Tick the “Verify programming” checkbox. Finally, click on the “Start Programming” button.


Image: File path in Cube Programmer

The STM32CubeProgrammer software will then program the firmware into the flash memory on the RetroMax’s STM32 CPU. After a short time a dialog box will pop up saying that “File download completed”. Do not do anything at this point as the software will then start reading back the firmware programmed into the flash. When this has completed successfully another dialog box will pop up saying “Download verified successfully” as shown below. The whole operation will take well under a minute and any messages in red will indicate an rror.

Image: Download and verify process in Cube Programmer

Then dismiss all the dialog boxes and close the STM32CubeProgrammer software. Remove the USB Type-A to Type-A cable from the USB Keyboard port. Plug in the VGA monitor and USB keyboard. Plug the RetroMax into power via the USB A-B cable. Press the power button to turn the RetroMax on

You should now see on the VGA monitor the Maximite logo and the version number of the firmware that you have just loaded.

Image: Maximite Logo on powerup

If you do not have a VGA monitor you can use the serial console (over USB) to check the firmware installation.

When MMBasic is first loaded it will prompt for the keyboard type, the screen type, and the date/time. On subsequent firmware upgrades MMBasic will preserve these settings and will not prompt for them again. These can be changed later using the relevant OPTION commands.

If you wish to load another version of the firmware (either earlier or later) this can be done by repeating the steps above.

Updating firmware using a USB A-B cable

To load the MMBasic firmware with a USB A-B cable you must first have installed the serial over USB driver on your desktop computer.

Using the USB A to B cable connect the USB Power/Console port on the RetroMax to a USB port on your desktop/laptop computer. This will power up the RetroMax. Make sure that the RetroMax is powered – the green power LED at the front should be lit up. If not, press the power button on the front.


Image: A-B cable connection (example with RetroMax out of the case)

The RetroMax firmware button is on the side of the RetroMax near the VGA connector. Hold the firmware button down. If the RetroMax is in a case, the button should be accessible through a hole in the plastic.


Image: Firmware button location

Image: Firmware button location

Run the STM32CubeProgrammer software on your computer. On the top right of the program window select UART as the communications method. If the program does not recognize the connection click on the small blue circle of arrows to the right of the port drop down list to refresh the entry. Your screen should look like the illustration below (the serial port number may vary).


Image: Serial port connection in Cube Programmer

Click on the “Connect” button. You should then see a series of messages as shown in the screenshot below finishing with the message “Data read successfully”. Any messages in red will indicate an error.

You are now connected with the A-B cable instead of the A-A cable. Proceed with the programming process as described above. Downloading the MMBasic firmware will take about 5 minutes.

Linux and the Raspberry Pi

Loading the firmware from a Linux computer and/or the Raspberry Pi has some special considerations and these are explained here:

http://www.thebackshed.com/forum/ViewTopic.php?FID=16&TID=12171

Leave a Reply

Your email address will not be published. Required fields are marked *