Skip to main content
The Qualcomm QCC744M Evaluation Kit (EVK) is a microcontroller development board built around the QCC744-2 SoC — a tri-radio chipset integrating 1x1 Wi-Fi 6, Bluetooth 5.4, and IEEE 802.15.4 (Thread and Zigbee-ready), powered by Qualcomm’s first connectivity platform built around a RISC-V core. The 32-bit RV32IMAFCP MCU runs at up to 325 MHz with FPU and DSP support. The QCC744M module includes 4 MB of PSRAM and an external 8 MB flash chip, and is based on the Bouffalo Lab BL61x/BL618 chipset lineage. Edge Impulse supports the QCC744M EVK through a dedicated Zephyr firmware, so you can sample sensor data, build models, and run trained machine learning models directly on the device. The Edge Impulse firmware for this development board is open source and hosted on GitHub: edgeimpulse/firmware-qc-qcc744m-evk.

Qualcomm QCC744M EVK

Zephyr support

The QCC744M EVK is supported upstream in the Zephyr RTOS as the qcc744m_evk board (board qualifier bl618m05q2i). For board-level details, pin mappings, and console configuration, see the Zephyr qcc744m_evk board documentation. Edge Impulse integration is provided by our Edge Impulse SDK for Zephyr module. This module is pulled in automatically as a west module by the QCC744M EVK firmware manifest, and provides the on-device inferencing SDK together with the Kconfig options that enable it in your build.

Key features

  • SoC: Qualcomm QCC744-2 (based on the Bouffalo Lab BL618 / BL61x series)
  • CPU: 32-bit RV32IMAFCP RISC-V MCU, up to 325 MHz, with FPU and DSP support
  • Memory: 4 MB PSRAM, 8 MB external flash
  • Connectivity: 1x1 Wi-Fi 6, Bluetooth 5.4, IEEE 802.15.4 (Thread / Zigbee-ready)
  • Peripherals: UART, SPI, I2C, I2S, ADC, GPIO
  • Serial console: UART0 over the onboard USB-serial converter (115200 baud, 8N1)

Setting up the board

USB connections

The EVK has two USB-C ports, and they are not interchangeable:
  • The left USB-C connects to the on-board CH347 USB-to-UART/JTAG bridge. It enumerates as two serial ports (listed as wch.cn devices, for example /dev/tty.usbmodem… on macOS) and carries both the serial console and the flashing UART. Use this port for everything in this guide.
  • The right USB-C is the QCC744’s native USB, which is only active once application firmware brings it up. It does not present a serial port at rest and is not used for flashing.
Connect the left USB-C to your computer; the on-board power LED confirms the board is powered.

Jumpers and buttons

The CH347 bridge signals reach the SoC through the J3 header (UART / DTR1 / JTAG selects), and the SoC is powered through the jumpers along the board edge:
  • Keep the UART jumpers on J3 fitted — they carry the console and flashing UART between the bridge and the SoC.
  • The DTR1 select on J3 ties the bridge’s DTR line to the SoC boot pin (GPIO2). Fitting it lets the flashing tool pull the board into download mode automatically (see Troubleshooting).
  • The power jumpers at the board edge must be fitted for the SoC to receive power.
The BOOT button holds the boot strap (GPIO2) high and the RESET button resets the SoC — together they put the board into UART download mode (see Flashing the firmware).

Supported sensors

The Edge Impulse reference firmware supports the following Arduino Modulino boards and sensors:
  • The Arduino Modulino Movement (ST LSM6DSO 6-axis IMU) over I2C, for motion and vibration data.
  • The Arduino Modulino Pixels board for visual status feedback.
  • The Arduino Modulino Buttons board for physical control.
  • The on-board ADC channels, for analog sensor data.
To connect the Arduino Modulino Movement to the EVK:

Building the firmware

Before you begin, install the Zephyr SDK and the west tool, the Edge Impulse CLI, and Node.js.
1

Initialize the west workspace

Initialize a west workspace from the firmware repository and pull in Zephyr, the Edge Impulse SDK for Zephyr module, and all dependencies:
2

Add your model

In Edge Impulse Studio, go to Deployment, select the Zephyr library deployment option, and click Build. Extract the downloaded .zip into the model/ folder so that it contains model-parameters/, tflite-model/, and the model CMakeLists.txt.
3

Build

The application binary is generated at build/zephyr/zephyr.bin.

Flashing the firmware

The QCC744M firmware includes a flashing script for programming the board over UART.
1

Enter flash mode

Hold the BOOT button (left), press and release RESET (right), then release BOOT. The board is now in UART flash (ISP) mode.

QCC744M EVK BOOT (left) and RESET (right) buttons

2

Flash the firmware

Flash the bootloader and application image the first time:
The bootloader only needs to be flashed once per board. For subsequent application updates, use:
3

Boot the firmware

Press RESET to boot into the Edge Impulse firmware.
Prefer a GUI? Qualcomm’s Windows-only QConn Flash utility from the Qualcomm QCC74x SDK is an alternative. Enter flash mode as above, flash the bootloader once to 0x0, then flash zephyr.bin to 0x2000.

Connecting to Edge Impulse

The firmware exposes a serial console on UART0 at 115200 baud (8 data bits, no parity, 1 stop bit) over the onboard USB-serial converter. You can drive it directly with the Edge Impulse CLI or with any serial terminal.

Running inference

To run your impulse, open a serial connection to the board and issue one of the following AT commands, or use the Edge Impulse CLI:
You can also use the Arduino Modulino Buttons board: The Arduino Modulino Pixels board provides the corresponding status feedback: Button A starts or stops inference, while the serial interface exposes the same workflow through AT+RUNIMPULSE, AT+RUNIMPULSECONT, AT+RUNIMPULSEDEBUG, and b to stop an active inference run.

Collecting data with the data forwarder

The firmware can stream raw IMU or ADC samples over serial at a fixed frequency (CONFIG_SAMPLING_FREQUENCY_HZ, 50 Hz by default) so you can capture training data with the Edge Impulse data forwarder. Use the Modulino Buttons board to cycle between the IMU and ADC source. The Modulino Pixels board indicates the active source: blue for IMU data and magenta for ADC data.
1

Enter data forwarder mode

Press button B on the Arduino Modulino Buttons board, or send AT+STARTDATAFWD over the serial connection. Press button B again, or send AT+STOPDATAFWD, to exit.
2

Start the data forwarder

Follow the prompts to log in, select your project, and name the sensor axes. You can then collect samples from the Data acquisition page in Studio.

Example: the sample motion-recognition project

The qcc744m-evk: Continuous motion recognition public project is a complete example built from IMU data captured through the data forwarder — a spectral-features and classifier impulse that recognizes movement gestures. Clone it into your own account to start from a working impulse.

The qcc744m-evk Continuous motion recognition sample project in Edge Impulse Studio

Deploying an updated model

Because the model is compiled into the firmware as a Zephyr library, updating your model means rebuilding and re-flashing:
  1. Rebuild your model in Studio (DeploymentZephyr libraryBuild) and extract it into the model/ folder.
  2. Rebuild the firmware with west build -b qcc744m_evk.
  3. Reflash the board as described in Flashing the firmware.

Troubleshooting

Use the left USB-C (the CH347 bridge), not the right (native USB) port. On macOS the bridge appears as two wch.cn usbmodem devices; the console and flashing UART is one of the two — if one does not respond, use the other.
The SoC booted its application instead of entering ROM download mode — the boot strap (GPIO2) was not held at reset. Confirm you are flashing over the correct port (the bridge exposes two serial ports; try the other one), and make sure the programmer can drive BOOT: fit the DTR1 select on J3, or hold the BOOT button while tapping RESET.
The board must be running the Edge Impulse firmware and actively streaming. Flash the firmware, then send AT+STARTDATAFWD to enter data-forwarder mode before starting edge-impulse-data-forwarder. If auto-detection still fails, pass the rate explicitly with --frequency 50.

Next steps: building a machine learning model

With everything set up you can now build your first machine learning model with these tutorials: Looking to connect different sensors? The Data forwarder lets you easily send data from any sensor into Edge Impulse.