XiaoDa Call-WeChat Call_Rev0.2
1. Project overview
NT26FxDx_OpenKit_TiRTC is a TiRTC voice-terminal example based on the Lierda Cat.1 bis OpenCPU SDK. It adds a 128×64 SSD1306 OLED UI, device binding, AI voice intercom, WeChat mini-program calls, device-to-device calls, and platform LIVE intercom to the OpenKit cellular, ES8311 audio, and three-button hardware.
This project is not a standalone low-level SDK. The Lierda OpenCPU SDK provides the module runtime, RTOS, cellular networking, HTTP/MQTT, audio, I2C, GPIO, and build packaging. The TiRTC SDK and platform services are supplied by Tange; the tirtc directory integrates them with the target board.
2. Relationship to NT26FxDx OpenKit
2.1 Common hardware
PCB model |
PCB version |
Module |
Base package |
|---|---|---|---|
L-CT4IT00-YP00W-01 |
V04 |
NT26F6D0 |
F6D_A |
The project shares the following resources with the standard NT26FxDx OpenKit:
Type-C power, USB communication, and download;
Nano-SIM slot, 4G antenna, and cellular network;
PWRKEY, RESET, and BOOT buttons;
ES8311 codec, onboard microphone, and speaker connector;
Battery, charging management, RGB indicator, and other board interfaces.
For board components, power, USB, SIM, RF, audio interfaces, and flashing precautions, see the OpenKit Application Guide.
2.2 TiRTC hardware differences
The main display is a 128×64 SSD1306 OLED; LCD/TP is not used as the application UI. Although the camera connector is available on the board, the current TiRTC application does not capture camera data and does not provide video calls.
The OLED uses I2C1:
Signal |
Module pin |
Alternate function |
|---|---|---|
SDA |
57 |
3 |
SCL |
66 |
2 |
Address |
0x3C or 0x3D |
Auto-detected |
Because the OLED uses I2C1 pin 66, the TiRTC variant disables the default SPI0 pins in tirtc/board/iodriver.ini and uses:
SPI0 signal |
Module pin |
|---|---|
SCLK |
86 |
SSN |
83 |
MOSI |
85 |
MISO |
84 |
When changing the board or display, check iodriver.ini, tirtc/src/ui/ssd1306_display.c, and the audio-driver bus and pin configuration together.
3. Feature overview
3.1 User controls
Button |
Hardware input |
Application meaning |
|---|---|---|
|
GPIO20 / modem pin 5 |
|
|
GPIO22 / modem pin 19 |
|
|
|
|
The current firmware uses single-click actions with independent button debouncing. Long-press and double-click actions are not defined.
3.2 Capability matrix
After 4G registration and web binding, the device enters the home page:
Function |
Device entry |
Peer |
Prerequisites |
Current capability and limitation |
|---|---|---|---|---|
AI |
|
Device and AI agent |
Web binding and AI-agent binding |
Half-duplex voice; capture pauses during playback |
WX |
|
Device and WeChat mini program |
Web binding, WeChat VoIP authorization and reporting |
Two-way voice; up to 8 contacts cached |
DEV |
|
Two TiRTC devices |
Both devices online and bound with device contacts |
Two-way voice; no camera or video |
SET |
|
Local device |
None |
Volume and microphone gain; defaults return after reboot |
LIVE |
Web initiated |
Web and device |
Device on home page, other services idle, authorized account |
Two-way voice; no dedicated device page or video |
4. Code and responsibility boundaries
Do not treat the entire examples/NT26FxDx_OpenKit_TiRTC/tirtc directory as Lierda code.
4.1 Lierda content
NT26F6D0, the L-CT4IT00-YP00W-01_V04 board, and its hardware resources;
Lierda OpenCPU SDK, RTOS, network, HTTP/MQTT, audio, display, and GPIO APIs;
components/basePkg/F6D_A;Existing OpenKit hardware examples and board drivers;
This project’s OpenCPU board adaptation, build integration, and hardware maintenance.
4.2 Tange content
tirtc/sdk/include/tirtcandtirtc/sdk/lib/libTiRTC.a;TiRTC runtime, binding protocol, service discovery, and platform APIs;
The “Tange Xiaotai” WeChat mini program and its server-side services;
Reference implementations of AI, WX, DEV, and LIVE flows.
The TiRTC headers and static library are an independent supplier SDK. They do not become open source merely because the application project contains Apache-2.0 or MIT headers. Use, upgrade, and redistribution must follow the actual TiRTC SDK license terms.
4.3 Integration code and third-party components
Some code under tirtc is Lierda board adaptation, some comes from Tange public reference implementations, and some is project integration code. Check tirtc/SOURCE_PROVENANCE.md, tirtc/THIRD_PARTY_NOTICES.md, and individual file headers for provenance and licenses.
The build also uses third-party cJSON, Opus, and mbedTLS components. Do not determine their license scope from this project’s file headers alone.
5. Development environment
5.1 Hardware
NT26FxDx OpenKit, board
L-CT4IT00-YP00W-01_V04;NT26F6D0 module;
Internet-capable Nano-SIM and 4G antenna;
128×64 SSD1306 OLED;
Onboard or external microphone;
4 Ω speaker;
USB 2.0 Type-C data cable.
5.2 Software
Lierda OpenCPU SDK source;
F6D_A base package matching NT26F6D0;
GCC build environment or Lierda Tools;
Lierda USB driver;
Flashing tool and serial-log tool.
For USB-driver, flashing-tool, serial-tool, and download-mode instructions, see the NT26FxDx OpenKit Quick Start.
6. Build the project
6.1 Select the project
The SDK root Makefile should contain:
PROJECT ?= NT26FxDx_OpenKit_TiRTC
MODEM ?= NT26F6D0
MODEMPKG ?= F6D_A
Alternatively, build without editing the root Makefile:
make PROJECT=NT26FxDx_OpenKit_TiRTC MODEM=NT26F6D0 MODEMPKG=F6D_A all
If the root Makefile already has these defaults, run:
make all
6.2 TiRTC application configuration
The application build configuration is under:
examples/NT26FxDx_OpenKit_TiRTC/config
The default configuration enables:
Buttons and SSD1306 OLED;
LTE, PDP, and network time;
Device binding and production MQTT;
TiRTC runtime;
AI, WX, DEV, and LIVE voice features;
cJSON, mbedTLS, and Opus.
WebSocket components and the TiRTC smoke runtime are disabled by default. After changing configuration, perform a complete build and confirm that dependency checks in the compiler log pass.
6.3 Build output
Build output is placed under:
gccout/NT26FxDx_OpenKit_TiRTC/
The exact .binpkg name depends on the build log and output directory. Flash the complete package matching NT26F6D0 and F6D_A; do not flash a binpkg from another project onto this hardware.
7. Flashing and startup verification
The flashing procedure is the same as for the standard NT26FxDx OpenKit:
Connect the computer and board with a USB data cable.
Hold
BOOT, then pressRESETor reconnect USB to enter download mode.Select the TiRTC project’s
.binpkgin the Lierda flashing tool.Select the configuration for NT26F6D0 and F6D_A.
Wait for flashing to finish and for the device to restart automatically.
For first boot, verify in this order:
The OLED lights up and shows
UI READY.The screen progresses from
NET INIT,WAIT LTE, andWAIT 4Ginto binding.A new device shows a six-digit binding code.
After web binding, the home page shows
AI/WX/DEV/SET.Verify SET volume and microphone gain before voice services.
Use the serial log to confirm network, binding, TiRTC runtime, and audio initialization without errors.
8. Troubleshooting
OLED remains blank
Check that the OLED is connected to the dot-matrix display connector and that power and I2C wiring are correct;
Confirm address
0x3Cor0x3D;Confirm I2C1 uses pin 57/pin 66;
Confirm SPI0 in
iodriver.inihas not reclaimed pin 66;Use
[OLED] probeandSSD1306 reinitlog messages for diagnosis.
Device remains waiting for network
Check the SIM, antenna, and carrier coverage;
Confirm the NT26F6D0 and F6D_A pairing;
Check whether LTE registration and an IPv4 address are obtained;
Record the OLED state and serial log to distinguish a network problem from a platform-binding problem.
Binding code is shown but web binding fails
Enter the current six-digit code shown on the OLED;
Confirm that the Tange experience-platform account is used;
Request a new code after timeout and enter the new code;
Check whether the device is already bound to another account.
AI, WX, or DEV cannot make a call
Confirm web binding and
4G:OKon the home page;AI requires an AI-agent binding;
WX requires “Tange Xiaotai” authorization and reporting;
DEV requires another bound device;
Check microphone, speaker, ES8311/I2S initialization, and TiRTC runtime logs;
Only one service can own the shared TiRTC connection and audio resources at a time.