0. Unboxing and Assembly
Unboxing Checklist
When you open the package, you will receive the following items:
| # | Item | Qty | Status |
|---|---|---|---|
| 1 | 9Mod_MCPBoard Main Board | ×1 | Fully assembled with STM32F103CBT6, relay, SHT30 sensor, speaker terminal etc. |
| 2 | Ai-WV01-32S-Kit | ×1 | Plugged into main board headers, onboard PCB antenna; pre-flashed with UART-MCP firmware v1.3 |
| 3 | OLED Display | ×1 | Connected via blue FPC cable |
| 4 | Speaker | ×1 | Connected to SPK terminal, 2W 8Ω round speaker |
| 5 | Type-C Cable | ×1 | For connecting the STM32 debug port to PC |
| 6 | Copper Standoffs + Nuts | ×7 | Installed on the board, gold-colored |
Please confirm you have received all items listed above. If any are missing or damaged, please contact Ai-Thinker support.
Power-On Verification
✅ The 9Mod MCPBoard comes fully assembled — no manual assembly required.
⚠️ Note: The OLED is driven by the STM32, which ships without firmware. On first power-on, the OLED will not display — this is normal.
Follow these two stages:
🟡 Stage 1: First Power-On
- Connect the STM32 Debug Port (CH340C) to your PC via the Type-C cable
- Observe after power-up:
- ✅ PWR LED lights up (red) — power is normal
- 🔄 OLED may not display (normal — STM32 firmware not yet flashed)
- ✅ Ai-WV01-32S module announces voice confirmation
- Once the PWR LED is on, proceed to flash the STM32 firmware (§4-6)
🟢 Stage 2: After Flashing
After completing STM32 firmware flashing (§5-6):
- ✅ OLED displays the initial screen
- 🎉 All ready! Proceed to network configuration (§2)
⚠️ The two Type-C ports have different functions: STM32 Debug Port (CH340C) → connect to PC for flashing and debug logs; PD Type-C Port → connect to PD charger (optional) for high-voltage output testing. For daily use, connect to the STM32 Debug Port.
1. Ai-WV01-32S-Kit Firmware
The Ai-WV01-32S-Kit comes pre-flashed with UART-MCP firmware v1.3, ready to use — no additional flashing required.
To update or restore the firmware, visit download.md to download the firmware and flashing tools.
2. Ai-WV01-32S-Kit Network Configuration
▫️Prerequisites
- Enable Bluetooth and location services on your phone to allow the mini-program to discover the device.
▫️Connect the Device to Wi-Fi
- Say to the device: "Xiao An, hello"
- Wait for reply: "Hi there"
- Say to the device: "Start network configuration"
- Device replies: "Network configuration started, please use the mini-program to configure Wi-Fi"
- Scan the QR code on the right with WeChat to open "AI Hardware Agent"
- Select "AI Hardware Agent"
- Click "Add Device"
- Click "Scan Device"
- Find "Ai_WV01_V{version}_{mac12hex}" and connect
- Enter the Wi-Fi name in the "SSID" field (Note: Wi-Fi name should not have a 5G suffix)
- Enter the Wi-Fi password in the "Password" field
- After filling in, click "Configure Wi-Fi" below
- Device replies: "Connecting..."
- Wait for device reply: "Connection successful"
- If there is no response for a long time or it shows "Connection failed", repeat the above steps
- After successful network configuration, the device is automatically bound in the "AI Hardware Agent" mini-program — no additional steps needed
- Return to the mini-program home page to see your bound device, where you can manage firmware updates and AI agent configuration

▫️Reconfigure Network
After power-up, use the voice command: "Xiao An, start network configuration", then follow the steps above to reconfigure Wi-Fi.
3. Device Management
After network configuration, the device is automatically bound in the "AI Hardware Agent" WeChat mini-program. You can manage your device directly through the mini-program:
- 📋 View device status (online/offline)
- 🔄 OTA firmware updates
- 🤖 Configure AI agent (tool registration, voice style, etc.)
- 🔧 Factory reset
Open WeChat → Discover → Mini-Programs → Search for "AI Hardware Agent" to access.
It is recommended to download the source code using Git:
git clone https://github.com/Ai-Thinker-Open/emMCP.git5. Development Environment Setup
It is recommended to use VSCode + STM32CubeMX + ARM GCC as the development environment. For detailed setup steps, refer to the Development Guide.
5.1 Install ARM GCC Toolchain
ARM GCC is the cross-compiler for compiling STM32 firmware. Choose one of the following installation methods:
- ARM Official: Download the
gcc-arm-none-eabiarchive from the ARM Developer website, extract it, and configure the system PATH - MSYS2 (Windows):
pacman -S mingw-w64-x86_64-arm-none-eabi-gcc - apt (Ubuntu/Debian):
sudo apt install gcc-arm-none-eabi
Verify installation:
arm-none-eabi-gcc --version5.2 Open the Example
After cloning the repository, open the example directory in VSCode:
git clone https://github.com/Ai-Thinker-Open/emMCP.gitThen in VSCode, go to File > Open Folder and select emMCP/example/9Mod_MCPBoard/.
5.3 Compile Firmware
Run the following commands in the VSCode terminal to compile:
cd emMCP/example/9Mod_MCPBoard
mkdir -p build && cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/gcc-arm-none-eabi.cmake
make -j$(nproc)After successful compilation, the build/ directory will contain firmware files such as 9Mod_MCPBoard.hex and 9Mod_MCPBoard.bin.
For modifying peripheral configurations with STM32CubeMX, learning about the CMake build system, or troubleshooting compilation errors, refer to the relevant sections in the Development Guide.
🔹Reference Video
6. Flashing Verification
▫️Prerequisites
Prepare an ST-Link Debugger
A common ST-Link V2 (or V2 clone) will work. They are inexpensive and available on Taobao, JD.com, etc.Install ST-Link Driver
If this is your first time using an ST-Link, you need to install the driver:- Download and install the ST-Link Official Driver (STSW-LINK009)
- After installation, plug in the ST-Link. Device Manager should show a ST-Link Debug device
▫️Wiring Instructions
Connect the ST-Link to the SWD interface header on the board as follows:
| ST-Link Pin | Board Pin | Description |
|---|---|---|
| SWDIO | PA13 | Data line |
| SWCLK | PA14 | Clock line |
| GND | GND | Common ground |
| 3.3V | VDD | Power supply (optional, not needed if board is already USB-powered) |
The board has a dedicated SWD interface header (silkscreen labeled SWDIO, SWCLK, GND, 3.3V). Just connect jumper wires directly.
▫️BOOT0 Jumper Check
⚠️ Important: Before flashing, make sure the BOOT0 jumper cap is pulled low (connected to GND), otherwise the STM32 will not run properly and flashing may fail.
▫️Compile and Flash Steps
- Open the cloned repository example
emMCP/example/9Mod_MCPBoardin VSCode - Connect the ST-Link to the development board as per the wiring table above
- Compile the project and click the flash button (or use the shortcut key)
- Wait for the progress bar to complete — success will be indicated
▫️Post-Flash Verification
- Disconnect the ST-Link and power-cycle the board
- If the OLED displays the interface normally and the AI module can communicate with the STM32, the flashing was successful
- You can check the serial log (1500000, 8N1) from the STM32 debug port to view runtime output

