Skip to content

0. Unboxing and Assembly

Unboxing Checklist

When you open the package, you will receive the following items:

#ItemQtyStatus
19Mod_MCPBoard Main Board×1Fully assembled with STM32F103CBT6, relay, SHT30 sensor, speaker terminal etc.
2Ai-WV01-32S-Kit×1Plugged into main board headers, onboard PCB antenna; pre-flashed with UART-MCP firmware v1.3
3OLED Display×1Connected via blue FPC cable
4Speaker×1Connected to SPK terminal, 2W 8Ω round speaker
5Type-C Cable×1For connecting the STM32 debug port to PC
6Copper Standoffs + Nuts×7Installed 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

  1. Connect the STM32 Debug Port (CH340C) to your PC via the Type-C cable
  2. 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
  3. 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

  1. Say to the device: "Xiao An, hello"
  2. Wait for reply: "Hi there"
  3. Say to the device: "Start network configuration"
  4. Device replies: "Network configuration started, please use the mini-program to configure Wi-Fi"
  5. Scan the QR code on the right with WeChat to open "AI Hardware Agent"
  6. Select "AI Hardware Agent"
  7. Click "Add Device"
  8. Click "Scan Device"
  9. 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
  10. 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
  11. After successful network configuration, the device is automatically bound in the "AI Hardware Agent" mini-program — no additional steps needed
  12. Return to the mini-program home page to see your bound device, where you can manage firmware updates and AI agent configuration
Ai-Thinker IOT WeChat Mini Program QR Code

▫️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:

bash
git clone https://github.com/Ai-Thinker-Open/emMCP.git

5. 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-eabi archive 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:

bash
arm-none-eabi-gcc --version

5.2 Open the Example

After cloning the repository, open the example directory in VSCode:

bash
git clone https://github.com/Ai-Thinker-Open/emMCP.git

Then 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:

bash
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

  1. 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.

  2. 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 PinBoard PinDescription
SWDIOPA13Data line
SWCLKPA14Clock line
GNDGNDCommon ground
3.3VVDDPower 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

  1. Open the cloned repository example emMCP/example/9Mod_MCPBoard in VSCode
  2. Connect the ST-Link to the development board as per the wiring table above
  3. Compile the project and click the flash button (or use the shortcut key)
  4. 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

Released under the MIT License.