Guide to updating your 4040-PRO firmware

Based off of the works of by Graham Bland

The upgrade process uses the Offline Controller for the 4040-PRO and will update both the firmware on the machine’s Grbl control board and the offline controller firmware at the same time.

The Grbl router control board firmware cannot be updated without connecting an Offline Controller for the 4040-PRO.

Identifying your current release

When the router is powered on or reset the Grbl firmware version is sent to the Gcode sender and will appear as:

Grbl 1.1f ['$' for help]

Grbl for ARM32

Version:ARM32 V2.9

The software version can also be displayed by sending the $I command to the router which will return something like:

[VER:ARM32 V2.9.20230804:]


This also shows, after the version, the build date of the release (yyyymmdd) and some of the build options used.

The current firmware version for the Offline controller is shown briefly on the startup screen when powered on.

Downloading the Latest Firmware

Firmware V3.0 releases are available to download

Firmware V2.9 releases are available to download

Details of any new releases may also be posted in the Facebook group SainSmart Genmitsu CNC Users Group

New Release details

Each firmware release will contain:

  • An update log or release note describing the changes which have been made to this version of the firmware.
  • A compressed file with a directory containing the firmware, this directory contains a number of files including firmware.bin

Reverting to a previous version or re-installing

Just repeat the installation process with any firmware version to install or re-install that version.

SD Card limitations and format

You don’t need a large SD card, in fact over-large ones can cause problems, the SD card should have a capacity of 8GB or less. The SD card which was supplied with the Offline Controller is ideal.

The SD card should be formatted as FAT32 with an Allocation Unit Size of 4096.

Updating the firmware

Backing up

It is possible that a firmware update may modify your Grbl $ settings and your offline controller settings. Before starting record your Grbl settings by connecting the router to a Gcode Sender such as Candle or UGS and send a $$ command to display the settings. Copy and paste the returned results into a text file and save it.

It is recommended that an update is performed using a blank SD card so if there are any files on your SD card that you wish to save then copy them to your PC before upgrading.

Preparing the SD card

  • Verify the SD card meets the size and format requirements, if not use a different SD card that does and/or reformat the card.
  • Delete all files and directories from the SD card.
  • Open the compressed firmware file and copy all the files in the firmware directory (this will have a large number of files including firmware.bin) to the root directory of the SD card.

Installing the Firmware

  • Ensure the router is powered off, no USB cable is connected and the offline controller is plugged in.
  • Place the SD card in the offline controller.
  • Power on the router.

Installation will start automatically, progress is shown on the offline controller screen and the process will take a few minutes.

Once complete the router and controller will reset and be ready to use.

When the update has been successfully completed the firmware.bin file is deleted from the SD card by the installation process to prevent the software installation from restarting automatically.

After installation

  • The router control board and the offline controller should both display the same firmware version number.
  • Verify the Grbl $ settings by re-displaying them. If any have been modified, if needed, change them to your preferred values which you saved earlier by sending individual $nnn=x commands to the router.
  • Check any offline controller settings such as Probing settings by viewing them on the offline controller and if necessary, re-set your preferences.
  • Any remaining installation files can be deleted from the SD card, they are no longer required.

How did we do?

Powered by HelpDocs (opens in a new tab)

Powered by HelpDocs (opens in a new tab)