Firmware images

What is the meaning of minor and major image files of the firmware?

The minor is used to build the major

Thanks ! What is the difference minor and major ?

Major: firmware package containing multiple minor packages
Minor: Individual firmware update, for example, touchscreen, controller, module firmwares, with firmware binary and attached metadata

Firmware packing process takes one or more firmware.bin compiled binaries and attaches metadata (such as version number and type of firmware) to create multiple minor images. Then combine all of minor images into a major image.


Thanks @brent113 . That was quite informative.
And how does one combine all the bin files ?
I saw that there is a way trough LUBAN and I tried to combine the bin from controller and from module, But the converted file is always a trash file.
Do you know any other way?

There are instructions on github for building and loading your own custom firmware, which is what I’m assuming you are trying to do here.

GitHub - Snapmaker/Snapmaker2-Controller: Snapmaker2-Controller is the firmware for Snapmaker 2.0 3-in-1 3D Printers.. I use VSCode to pack. If I have multiple firmware bins to load I do it with separate major packages, I don’t bother combining. The VSCode python pack modules has the ability to combine them, you’ll have to read through it if you need to use it.

Program compiled firmware to main controller

With PlatformIO CLI

After building, type below command in VSCode terminal

> pio run -t pack

Then you will get below firmwares in the folder (PROJECT FOLDER)/release :

  • firmware.bin : raw binary of firmware.
  • firmware.elf : firmware with debug information.
  • SM2_MC_APP_{xxx such as V4.0.0}_{xxx such as 20201222}.bin : minor image of module, can be used to generate major image
  • Snapmaker_{xxx: version such as V4.0.0}_{xxx: date such as 20201222}.bin : major image which can be used to upgrade modules with USB stick

Finally, copy the major image to your USB stick and upgrade your machine follow the instructions in How to update Firmware section.

With Luban

You need to install Luban to package the compiled firmware.

First, Open SettingsFirmware Tool in Luban, upload the compiled firmware.bin , click Compile and Export . You will get a file with name like Snapmaker2_V3.2.0_20201117.bin , this is the packaged update file to be programmed.

Then, Update your firmware via USB follow the instructions in How to update Firmware section.

Python pack module:

1 Like

Thanks @brent113 that was really helpful.