# fw-AW30N_BLE_SDK
**Repository Path**: Jieli-Tech/AW30N
## Basic Information
- **Project Name**: fw-AW30N_BLE_SDK
- **Description**: 该SDK是AW30N 系列(BLE 5.4 + 2.4GHz 私有协议、32bit DSP @ 240MHz、80KB SRAM、内置 Flash、16bit DAC+ADC+Class-D、CAN 接口、12bit SARADC)的 BLE SDK,面向蓝牙遥控器、对讲机、Dongle、小音箱和语音玩具应用。
- **Primary Language**: C
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 12
- **Forks**: 5
- **Created**: 2023-12-19
- **Last Updated**: 2026-07-09
## Categories & Tags
**Categories**: hardware
**Tags**: None
## README
[tag download]:https://gitee.com/Jieli-Tech/AW30N/tags
[tag_badgen]:https://img.shields.io/github/v/tag/Jieli-Tech/AW30N?style=plastic&logo=bluetooth&label=tag&labelColor=ffffff&color=informational
# fw-AW30N_BLE_SDK [![tag][tag_badgen]][tag download]
**Jieli AW30N Series BLE Universal MCU SDK Firmware**
[中文](./README.md) · [Documentation Center](https://doc.zh-jieli.com/AW30/zh-cn/master/index.html) · [SDK Release History](doc/AW30N_SDK_发布版本信息.pdf) · [Report an Issue](https://gitee.com/Jieli-Tech/AW30N/issues)
---
## Table of Contents
- [1. Overview](#1-overview)
- [2. Supported Chips and Platforms](#2-supported-chips-and-platforms)
- [3. Environment Setup](#3-environment-setup)
- [4. Quick Start](#4-quick-start)
- [5. Project Structure](#5-project-structure)
- [6. Applications and Examples](#6-applications-and-examples)
- [7. Build Guide](#7-build-guide)
- [8. Flashing and Upgrade](#8-flashing-and-upgrade)
- [9. Configuration](#9-configuration)
- [10. FAQ](#10-faq)
- [11. Community and Support](#11-community-and-support)
- [12. Disclaimer](#12-disclaimer)
---
## 1. Overview
`fw-AW30N_BLE_SDK` is a BLE universal MCU SDK development package provided by Jieli Technology for the AW30N series chips. These chips are 32-bit DSP MCUs with integrated BLE 5.4 Bluetooth, primarily targeted at the following application scenarios:
| Application Type | Typical Products |
|---------|---------|
| **BLE Bluetooth** | Bluetooth remote controls, Bluetooth intercoms, BLE Dongles |
| **Voice Toys** | Storytelling machines, learning devices, sound-emitting toys |
| **Mini Speakers** | Music players, loudspeakers |
| **General MCU** | Smart control, sensor acquisition, USB audio devices |
### Core Features
* Supports single-mode BLE 5.4 Bluetooth
* Supports full GATT service and simple GATT service
* Full GATT service is based on standard GATT protocol with complete GATT profile
* Simple GATT service is tailored from standard GATT protocol, supporting simple data transmission
* New BLE slave remote control, BLE Dongle host, and BLE intercom application examples
* BLE slave remote control broadcast power consumption: 290 µA+ (disconnected), standby power consumption: 130 µA+ (connected)
* Supports USB flash drive / SD card upgrade
* Supports test box UART upgrade
* Supports test box Bluetooth upgrade
* Supports phone Bluetooth OTA upgrade
* Supports phone USB upgrade
* Supports decoding playback and encoding recording from system FLASH, resource FLASH, SDMMC, USB flash drives, with up to three simultaneous decode streams
* Supports seven decoding formats: a/b/e, ump3, f1a/f1b/f1c/f1x, midi, standard mp3, wav, opus
* Supports four encoding formats for recording: standard mp2, a, ump2, opus
* Supports variable speed/pitch, echo, voice changer, howling suppression, PCM_EQ and other audio effects
* Supports MIO decoding function
* Supports traditional toy application functions including USB slave decoding, Linein, loudspeaker, recording, etc.
* AUDIO_DAC supports mono single-ended output, 12 sample rates from 8K–96k
* AUDIO_APA (Class-D direct speaker drive) supports mono differential output, 3 sample rates from 32K–48k
* AUDIO_ADC supports mono single-ended/differential input, 9 sample rates from 8K–48k
* Supports hardware resampling
* Supports SOFT OFF shutdown and POWER DOWN sleep, shutdown power consumption 2 µA+, sleep power consumption 61 µA+ (to be greatly optimized in future)
This repository contains SDK release versions and sample projects. Compilation requires the corresponding library files (`lib.a`) that follow the naming convention.
---
## 2. Supported Chips and Platforms
### 2.1 SoC Families
The AW30N series focuses on BLE Bluetooth voice remote controls, BLE intercoms, mini speakers, and voice toys.
> For chip models, datasheets, and schematic resources, see: [doc/ directory](doc/)
### 2.2 Bluetooth Protocol Support
| Bluetooth Spec | QDID | Status |
|---------|-----|------|
| **Core v5.4** | 223418 | ✅ |
---
## 3. Environment Setup
### 3.1 Prerequisites
| System | Description |
|------|------|
| **Windows** | Code::Blocks IDE recommended for compilation |
| **Linux** | Command-line compilation via Makefile (requires rewriting `download_sh.c` for Linux compatibility) |
| **macOS** | Cross-compilation toolchain must be configured manually |
### 3.2 Install the Build Toolchain
1. Download and install the **Jieli Build Toolchain**: [Download Link](https://doc.zh-jieli.com/Tools/zh-cn/dev_tools/dev_env/index.html)
2. Linux users can download from: [pkgman.jieliapp.com](http://pkgman.jieliapp.com/doc/all)
- Extract to `/opt/jieli` after downloading
- Ensure `/opt/jieli/pi32/bin/clang` exists
3. Verify installation:
```bash
# Verify toolchain installation
clang --version
```
### 3.3 Install Flashing Tools
| Tool | Purpose | How to Obtain |
|------|------|---------|
| **USB Upgrade Tool** | Flash firmware to the target board | [Application Link](https://item.taobao.com/item.htm?id=620295020803) · [User Guide](https://doc.zh-jieli.com/Tools/zh-cn/dev_tools/forced_upgrade/index.html) |
| **Mass Production Burner** | Mass production / bare-die programming | **From distributor** · [User Guide](https://doc.zh-jieli.com/Tools/zh-cn/mass_prod_tools/burner_1tuo2/index.html) |
| **Wireless Test Box** | OTA upgrade / RF calibration / product testing | [Application Link](https://item.taobao.com/item.htm?id=620942507511) · [User Guide](https://doc.zh-jieli.com/Tools/zh-cn/mass_prod_tools/testbox_1tuo2/index.html) |
---
### 3.4 Audio Tools
Universal audio tools for packaging, audio file conversion, MIDI, etc.: [Download Link](https://pan.baidu.com/s/1ajzBF4BFeiRFpDF558ER9w#list/path=%2F) Password: `3jey`
---
## 4. Quick Start
### 4.1 Clone the Repository
```bash
git clone https://gitee.com/Jieli-Tech/AW30N.git
cd AW30N/sdk
```
### 4.2 Project Entry Points
The SDK includes the following application projects, located in the `sdk/` root directory:
| Project File | Chip | Application Type |
|---------|------|---------|
| `AW30N_mbox_flash.cbp` | AW30N All Series | BLE Bluetooth / Mini Speakers / Audio player |
### 4.3 Application Code Entry Points
```
sdk/apps/app/src/mbox_flash/ # BLE remote control / Intercom / Mini speaker / Audio player application
```
### 4.4 Build and Flash
**Method 1: Code::Blocks (Recommended for Windows users)**
1. Double-click the `AW30N_mbox_flash.cbp` project file
2. Click **Build → Build** (Ctrl+F9)
3. After a successful build, use the USB Upgrade Tool to flash the generated firmware
**Method 2: Makefile (Command Line)**
```bash
# Windows users
Double-click sdk/make_prompt.bat to open the command-line environment
# Build
make -j4
# Build with verbose output
make VERBOSE=1 -j4
```
> **💡 Tip**: Before building, ensure the USB Upgrade Tool is properly connected and the target board has entered programming mode.
**Method 3: VS Code Build**
The repository comes pre-configured with VS Code tasks. Press `Ctrl+Shift+B` to select a build target.
---
## 5. Project Structure
```
fw-AW30N/
├── sdk/ # SDK root directory
│ ├── apps/ # Application layer code
│ │ ├── app/ # Application entry source code
│ │ │ ├── src/ # Application source
│ │ │ │ └── mbox_flash/ # BLE Bluetooth / Mini speaker / Audio player app
│ │ │ ├── bsp/ # Board Support Package (BSP)
│ │ │ └── post_build/ # Post-build scripts and tools
│ │ └── include_lib/ # Headers and precompiled libraries
│ │ ├── cpu/ # CPU platform headers
│ │ ├── decoder/ # Decoder API headers
│ │ ├── encoder/ # Encoder API headers
│ │ ├── audio/ # Audio API headers
│ │ ├── device/ # Device driver headers
│ │ ├── common/ # Common headers
│ │ ├── config/ # Configuration headers
│ │ ├── msg/ # Message mechanism
│ │ ├── update/ # Firmware upgrade
│ │ └── liba/ # Precompiled libraries (.a)
│ ├── tools/ # Build tools and scripts
│ │ ├── make_prompt.bat # Windows build command-line launcher
│ │ └── utils/ # Utilities (make, rm, etc.)
│ ├── Makefile # Top-level Makefile
│ └── *.cbp # Code::Blocks project files
├── doc/ # Documentation
│ ├── datasheet/ # Chip datasheets
│ ├── schematic/ # Schematics
│ ├── stuff/ # Miscellaneous (DingTalk group, etc.)
│ ├── AW30N_SDK手册_V1.7.pdf # SDK manual
│ ├── AW30N_SDK_发布版本信息.pdf # SDK release notes
│ ├── AW30N_芯片手册_V1.1.pdf # Chip manual
│ ├── AW30N硬件设计指南V1.2.pdf # Hardware design guide
│ └── 杰理科技AW30N系列芯片选型表_20240816.pdf # Chip selection table
└── README.md # This file
```
---
## 6. Applications and Examples
### 6.1 BLE Bluetooth / Audio Player Application (`apps/app/src/mbox_flash/`)
| Feature | Description |
|-------|------|
| **BLE Bluetooth** | BLE 5.4 slave/host, GATT data transfer, Bluetooth OTA upgrade |
| **BLE Remote Control** | BLE slave remote control, low-power advertising and connection |
| **BLE Intercom** | 2.4 GHz proprietary protocol intercom solution |
| **BLE Dongle** | USB BLE Dongle host |
| **Music Playback** | FLASH, SD card, USB flash drive file playback (MP3/WAV/OPUS, etc.) |
| **MIDI Performance** | MIDI synthesis and playback |
| **Recording** | MP2/A/UMP2/OPUS format encoding and recording |
| **USB Device** | USB slave device (Speaker / MIC / HID / MSD) |
| **LINEIN** | Line input |
| **Loudspeaker** | Loudspeaker / voice amplifier |
Target domains: Bluetooth remote controls, Bluetooth intercoms, BLE Dongles, mini speakers, Bluetooth toys, AI voice interaction, etc.
---
## 7. Build Guide
### 7.1 Build Command Quick Reference
Run the following commands from the `sdk/` directory:
| Target | Command |
|------|------|
| **Build** | `make -j4` |
| **Build (verbose)** | `make VERBOSE=1 -j4` |
| **Clean** | `make clean` |
### 7.2 Code::Blocks Build (Recommended for Windows users)
1. Ensure the Jieli build toolchain is installed
2. Double-click the `AW30N_mbox_flash.cbp` project file to open Code::Blocks
3. Click **Build → Build** (Ctrl+F9)
4. After a successful build, the firmware will be generated in the `post_build/` directory
### 7.3 Makefile Build
```bash
# Windows users
Double-click sdk/make_prompt.bat to open the command-line environment
make -j4
# Linux users (requires modifying download_sh.c for Linux compatibility)
cd sdk
make -j`nproc`
```
### 7.4 Common Build Errors
| Error Message | Solution |
|---------|---------|
| `clang: command not found` | Jieli build toolchain is not installed, or environment variables are not configured |
| `cannot find -lxxx` | Missing corresponding `.a` library file; check the `apps/include_lib/liba/` directory |
| `make: command not found` | On Windows, use `tools/make_prompt.bat` to open the build command environment |
| Link errors | Verify that the Makefile target matches the current chip model |
---
## 8. Flashing and Upgrade
### 8.1 First-Time Flashing
1. **Connect Hardware**: Connect the development board to the PC via **USB** or **USB Upgrade Tool**
2. **Enter Programming Mode**:
- Method 1 (USB): Hold the flash button on the development board, then reset or power-cycle
- Method 2 (USB/UART): Use the USB Upgrade Tool to enter programming mode
3. **Launch USB Upgrade Tool**: Start the flashing host software
4. **Select Firmware**: Choose the compiled firmware file
5. **Start Flashing**: Click the download button and wait for completion
> **Note**: Before flashing, ensure the USB Upgrade Tool is properly connected and the target board has entered programming mode. For details on ISD_CONFIG.INI, see [ISD Configuration Guide](https://doc.zh-jieli.com/Tools/zh-cn/dev_tools/toolchains/ini_cfg.html).
### 8.2 Mass Production Flashing
For mass production scenarios, use Jieli's mass production burner (one-to-two / one-to-eight), which supports bare-die programming. See [One-to-Two Burner User Guide](https://doc.zh-jieli.com/Tools/zh-cn/mass_prod_tools/burner_1tuo2/index.html) · [One-to-Eight Burner User Guide](https://doc.zh-jieli.com/Tools/zh-cn/mass_prod_tools/burner_1tuo8/index.html)
### 8.3 OTA Upgrade
Multiple upgrade methods supported:
- Phone Bluetooth OTA upgrade
- Phone USB upgrade
- USB flash drive / SD card upgrade
- Test box UART upgrade
- Test box Bluetooth upgrade
---
## 9. Configuration
- Edit `sdk/apps/app/src/mbox_flash/app_config.h` to configure feature toggles for the target application
- GATT services can be configured via the BLE Profile Tool
---
## 10. FAQ
### 10.1 Development Workflow
**Q: How do I create a new project?**
A: Start from an existing `.cbp` project and the application code in `apps/app/src/`, then configure the corresponding application examples.
**Q: How do I switch between different chip models?**
A: Select the corresponding chip model in the configuration. The SDK provides a unified build entry for all chips in the series.
### 10.2 Build Issues
**Q: On Windows, `make` is reported as an invalid command?**
A: Use `sdk/make_prompt.bat` to enter the pre-configured command-line environment, which sets up all environment variables and the `make` path.
**Q: How can I speed up compilation?**
A: Use the `-j` flag for parallel compilation, e.g. `make -j4` (the number specifies the parallel job count).
### 10.3 Debugging Tips
- **UART Logging**: Debug logs can be output via UART
- **BLE Sniffing**: Use a BLE Dongle for over-the-air packet capture and analysis
---
## 11. Community and Support
### Technical Discussion
| Platform | Group / Link | Status |
|------|-----------|------|
| **DingTalk Tech Group** | See [Group QR Code](doc/stuff/ding_talk.jpg) | ✅ Joinable |
### Resource Links
| Resource | Link |
|------|------|
| 📖 **Online Documentation Center** | [doc.zh-jieli.com/AW30](https://doc.zh-jieli.com/AW30/zh-cn/master/index.html) |
| 📚 **SDK Release History** | [SDK Release Notes](doc/AW30N_SDK_发布版本信息.pdf) |
| 🔧 **SDK Quick Start** | [SDK Manual](doc/AW30N_SDK手册_V1.7.pdf) |
| 📖 **Chip Manual** | [AW30N Chip Manual](doc/AW30N_芯片手册_V1.1.pdf) |
| 📐 **Hardware Design Guide** | [Hardware Design Guide](doc/AW30N硬件设计指南V1.2.pdf) |
| 📄 **Chip Selection Guide** | [Selection Table](doc/杰理科技AW30N系列芯片选型表_20240816.pdf) |
| 🎬 **Video Tutorials** | [Bilibili Homepage](https://space.bilibili.com/3493277347088769/dynamic) |
| 🎵 **MIDI Development Manual** | [MIDI Application Development Guide](https://doc.zh-jieli.com/MIDI/zh-cn/master/index.html) |
| 📦 **FAE Support** | [FAE Support Repository](https://gitee.com/jieli-tech_fae/fw-jl) |
| 🛒 **Dev Board / Flashing Tool Purchase** | [Jieli Official Store](https://shop321455197.taobao.com/) |
| 🐛 **Issue Tracker** | [Gitee Issues](https://gitee.com/Jieli-Tech/AW30N/issues) |
---
## 12. Disclaimer
`fw-AW30N_BLE_SDK` supports development for the AW30N series chips. These chips support common general-purpose MCU applications and may be used for development, evaluation, sampling, and mass production. For the corresponding SDK version, please refer to [SDK Release History](doc/AW30N_SDK_发布版本信息.pdf).
---
Copyright © Zhuhai Jieli Technology Co., Ltd. All rights reserved.