MaixCAM2 System Flashing

Downloading the System

For MaixCAM2, there are two types of systems and flashing methods:

  • Method 1: The original chip manufacturer’s flashing format (.axp). Requires AXDL to flash.
    • Pros: Works regardless of whether the EMMC has a boot partition or system.
    • Cons: Only supported on Windows, flashing speed is slow.
  • Method 2: USB flashing (.img.xz format), which contains a complete system. You can flash it with general tools such as etcher / rufus / win32diskimager / imageUSB.
    • Pros: Simple, OS/software independent, faster (TF > USB2.0 > AXDL).
    • Cons: Only works if the EMMC already has a boot partition. If the boot partition is missing or corrupted, you must first flash a *.axp system using Method 1 before Method 2 can be used.
  • Method 3: TF card flashing (.img.xz format), which contains a complete system.
    • Pros: Simple, OS/software independent, no extra 3rd-parth PC software needed, faster (TF > USB2.0 > AXDL).
    • Cons: Need a TF card. Only works if the EMMC already has a boot partition. If the boot partition is missing or corrupted, you must first flash a *.axp system using Method 1 before Method 2 can be used.

Recommended: Normally, devices are shipped with a boot partition already flashed, so Method 2 is sufficient. Only use Method 1 if the boot partition is damaged.

Follow the MaixPy system flashing guide to download the appropriate system image for your model, and remember to back up your data.

System Boot Process (Overview)

To help you understand, here’s a simplified version of the boot process:

  1. On power-up, the chip’s internal bootrom checks if the boot/Func pin is pulled low (the MaixCAM2 Func button pressed). If yes, it enters AXDL USB download mode and waits for AXDL software to communicate via USB for at least 5 seconds.
    If not pressed, it proceeds to normal boot.

  2. It then loads the boot partition firmware from internal EMMC storage (where the system and data are stored). This firmware also checks if boot/Func is pressed—if yes, it enters USB/TF upgrade mode; if not, it continues loading the system from EMMC.

Method 1: Flashing .axp System via USB to EMMC

As mentioned earlier, there are three flashing methods. Here we’ll cover the first in detail.

Launch AXDL Software

Download AXDL.(Only have Windows version)
Open the AXDL software interface.

Preparing the System

You should already have downloaded the .axp format system. Usually, two types are provided, e.g.:

  • maixcam2-2025-09-01-maixpy-v4.11.9.axp: A full .axp system (~8GB).
  • boot_parts_maixcam2-2025-09-01-maixpy-v4.11.9.axp: A boot partition only file (<50MB).

This means you can:

  • Use AXDL once to flash the complete system, then boot and run directly.
  • Or, if you prefer USB/TF flashing but your boot partition is damaged (“bricked”), quickly restore just the boot partition with boot_parts_xxx.axp, then use Method 2 to flash the full system.

Load and Flash the System File

  • Click the “Load System File” button and select your .axp system file.
  • After loading, click “Start” to begin USB detection.
  • Hold the boot/Func button, connect the board to the PC via USB, and AXDL will start flashing. Release the button and wait.
  • Alternatively, connect USB first, then hold boot/Func and power on. Once detected by AXDL, release the button.
  • Do not touch the USB cable or board during flashing.
  • After completion, the board reboots into the system. The first boot may take longer—wait until it reaches the main interface before powering off.

Method 2 (Recommended): Flashing .img System via USB to EMMC

This method is faster and easier than flashing .axp files. It works on any OS and achieves higher speeds (~40MiB/s).

Choosing the Right Flashing Software

We’ll use Etcher as an example. Other software works similarly.

On Windows, you can also use Win32DiskImager, Rufus, or imageUSB. If Etcher fails, try one of these alternatives.

If you encounter errors like Error spawning the child process, it’s likely a permissions issue. Run as administrator.
If problems persist, or the system won’t boot after flashing, try rufus or win32diskimager.

Load and Flash the System File

  • Load the system image you downloaded (e.g. maixcam2-2025-09-01-maixpy-v4.11.9.img.xz).
    Most of software will automatically decompress xz to img, if not you must do it manually first.
    Etchermay occurs Missing partition table not a bootable image ... warning, it's normall for MaixCAM2, just click Continue to continue.

  • Enter USB/TF upgrade mode:

    • Method 1: Plug one end of USB into the PC, then within 1 second of connecting to the board, press and hold boot/Func. Release after 3 seconds.
    • Method 2: Power off, connect USB, power on, then within 1 second press and hold boot/Func. Release after 3 seconds.

    Don’t hold the button before power-on—this enters AXDL mode, which takes at least 5 seconds. Too slow.

  • After a few seconds, you’ll see a virtual U-disk appear. The blue LED flashes in a off-on-on pattern.

  • Click the software’s “Flash” button to begin. The blue LED flashes 0.5s on / 0.5s off.

  • If Windows prompts to format the new drive—do not format it! Just close the window.

  • When done, the blue LED becomes solid on. Software may still be verifying data—wait for it.

  • Safely eject the drive.

  • Reboot to enter the new system. Again, wait for the first boot to reach the main interface before powering off.

Method 3: Flashing .img System via TF Card to EMMC

This is similar to USB flashing but often faster (depending on TF card speed, e.g. ~90MiB/s).

Preparing a TF Upgrade Card

  • Insert the TF card into your PC using a card reader.

  • Format the TF card as exFAT or ext4 (not FAT32).

  • Decompress xxx.img.xz to xxx.img and copy it to the TF card.

  • Safely eject the card to ensure data is fully written.

  • Power off the MaixCAM2.

  • Insert the TF card and power on.

  • The board will auto-detect and flash the system. Blue LED flashes 0.5s on / 0.5s off.

    If it doesn’t, check previous steps.

  • When complete, the LED stays solid on. Fast flashing (0.3s on / 0.3s off) indicates failure. Do not power off—use Method 2 (USB) to recover. If powered off and still failing, use AXDL to restore the boot partition.

  • Reboot to enter the new system. As before, wait for the first boot to finish before shutting down.

Power Supply Notes

Shutdown and Power-Off

Aside from the above flashing situations, do not power off by cutting power (including using the power switch, which is also a hard cut). If the system is writing to the TF card, forced power-off can corrupt data. The same risk applies when pressing reset. Always shutdown via software first.

Ways to safely shutdown/reboot:

  • Method 1: From the main interface, long-press Func to select shutdown, or go to Settings -> Power.
  • Method 2: In terminal, run poweroff or reboot.
  • Method 3: From code, e.g. in Python: import os; os.system("poweroff").

File Writing and Data Loss

The system uses caching. When writing files, data may remain in memory before being flushed to disk. If power is cut in this period, data is lost.

Solutions:

  • Avoid forced shutdowns/resets; use software shutdown.

  • To ensure data is written, manually flush caches. For example, in Python:

    import os
    os.sync()
    

    This tells the system to immediately write cached data to disk. Other languages/contexts have equivalent APIs (search for “Linux flush cache to disk”).