Flash firmware over USB
The normal way to install or reinstall firmware on a board you can reach. This
covers the standard Loader mode flash of a unified update.img. If the board
won't enter this mode or the flash keeps failing, use
MaskRom recovery instead.
Before you start
You need:
- The firmware package for your exact KTM board — see the caution in Flashing overview. Wrong board = won't boot or worse.
- A USB data cable (charge-only cables are the #1 cause of "won't connect").
- The board's USB OTG / download port — check the board page; a host-only port will not flash.
- Windows: RKDevTool + Driver Assistant. Linux/macOS: rkdeveloptool.
Windows — RKDevTool
1. Install the driver (once)
Unzip Driver Assistant, run DriverInstall.exe, click Install Driver. If a
previous version is installed, Uninstall Driver first, then reinstall.
2. Enter Loader mode
With the board powered on, connect the USB download cable, then briefly press the board's recovery/reset as documented for your model. RKDevTool should show:
Found One LOADER Device
If instead you want a from-scratch recovery, use MaskRom mode (next page).
3. Load the image
- Open RKDevTool, go to the Upgrade Firmware tab.
- Click Firmware and select your
update.img. - The tool reads the image and shows its version and partition layout.
4. Flash
Click Upgrade. The tool writes the image and the board reboots when done. Do not disconnect during writing.
Download Firmware...
Download IDB...
Download Image...
Reset Device... ← done
Linux / macOS — rkdeveloptool
1. Get the tool
rkdeveloptool is built from source (Rockchip's repo) or installed from your
distro where packaged. Confirm it runs:
rkdeveloptool -v
2. Enter Loader/MaskRom mode and confirm
Put the board in download mode (recovery button + power per your model), then:
rkdeveloptool ld
# lists the device: Loader or Maskrom
If nothing lists, it's the cable, the port, the button timing, or power — see troubleshooting below.
3. Push the loader, then the image
# 1. send the loader that matches your SoC/DDR
rkdeveloptool db rk35xx_loader_vX.XX.bin
# 2. write the unified image
rkdeveloptool wl 0 update.img
# 3. reset into the new firmware
rkdeveloptool rd
wl 0 writes from sector 0. For loose partition images you write each to its
offset instead — match the partition table exactly.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| No device found | Charge-only cable, wrong port, driver | Data cable, USB OTG port, reinstall driver |
| Detects then disconnects mid-flash | Wrong/incompatible loader, or unstable power | Use the loader from your board's package; check supply |
| "Download IDB failed" | Loader doesn't match SoC/DDR | Use the correct loader.bin for your board |
| Flash completes, board won't boot | Wrong image for the board, or partition/type mismatch | Reflash the correct unified image for your exact model |
| Works once, fails on a second board | Two boards in download mode at once | Flash one device at a time |
The two most common failures are a charge-only cable and a loader that doesn't match the board. Rule those out first.
Related
- Flashing overview — modes, tools, image types
- MaskRom recovery — when this normal flash won't work
- Flash from SD card — field service without a PC
- Board pages — which port is the download port