Desktop companion app for the Monstatek M1 multi-tool device. Connects via USB to manage firmware, configure settings, and monitor device status.
- Download the latest release
.zipfrom the Releases page - Extract the zip to any folder (e.g.
C:\qMonstatek\) - Run
qmonstatek.exe - Connect your M1 via USB-C — it will auto-detect on the COM port
No installation required. All dependencies are included in the zip.
- Device Info — View firmware version, battery status, SD card, ESP32 status
- Firmware Update — Flash M1 firmware over USB (requires compatible RPC firmware)
- DFU Flash — Flash firmware via STM32 DFU mode (works with any firmware, including stock)
- Dual Boot — View and swap between two firmware banks
- ESP32 Update — Flash ESP32-C6 coprocessor firmware
- Screen Mirror — Live view of the M1's display
- WiFi Management — Connect to networks, manage saved credentials
- File Browser — Browse and manage files on the M1's SD card
- Sub-GHz / NFC / RFID / IR — View and manage captured signal files
If your M1 is running stock Monstatek firmware or is in an unresponsive state, use DFU Flash:
- Power off the M1 (Settings → Power → Power Off → Right Button)
- Hold Up + OK buttons for 5 seconds to enter DFU mode (screen stays dark)
- Connect to PC via USB-C
- Open qMonstatek → DFU Flash page
- Select a firmware
.binfile and click Flash
To exit DFU mode without flashing, hold Right + Back to reboot.
The M1 has two flash banks for dual-boot. You can swap between them:
- Via DFU mode: Use the Swap Bank button on the DFU Flash page
- Via firmware: Use the Dual Boot page (requires compatible firmware)
qMonstatek communicates with the M1 using a binary RPC protocol over USB CDC. Stock Monstatek firmware does not include this protocol — features like firmware update, device info, and file management require firmware that implements it.
To make your firmware compatible with qMonstatek, integrate the RPC protocol from:
https://github.com/bedge117/M1 (branch: feature/enhanced-firmware)
Key files to integrate:
m1_csrc/m1_cli.c/m1_cli.h— RPC command handlerCore/Src/cli_app.c/Core/Inc/cli_app.h— Command definitions and dispatchUSB/Class/CDC/Src/usbd_cdc_if.c— USB CDC receive → RPC frame codec
The RPC protocol uses a simple frame format over the CDC serial link. See the source files above for the command IDs and payload structures.
The DFU Flash feature works with any firmware — it uses the STM32H573's built-in ROM bootloader and ST's CubeProgrammer API. No RPC integration needed.
Requirements:
- Qt 6.4+ (MinGW 64-bit)
- CMake 3.16+
- MinGW GCC (included with Qt)
Build:
cd qMonstatek
mkdir build && cd build
cmake .. -G "MinGW Makefiles" -DCMAKE_PREFIX_PATH="C:/Qt/6.4.2/mingw_64"
mingw32-make -j8The executable is at build/src/qmonstatek.exe.
DFU Flash helper (optional — only needed for DFU Flash feature):
gcc -O2 -o tools/stm32_dfu_flash.exe tools/stm32_dfu_flash.cPlace stm32_dfu_flash.exe in a stm32prog/ folder next to the main executable, along with the CubeProgrammer API DLLs and Data_Base/ directory. See the STM32CubeProgrammer API documentation for the required files.
This project is provided as-is for use with Monstatek M1 devices.