Skip to content

ArtInChip D126 Wi-Fi / BLE ​

This guide combines ArtInChip (匠芯创) D126FxR-DEMO-V1-1 board documentation with project-provided wireless bring-up notes. The core sequence initializes AIC8800DW and its Bluetooth patch over SDIO, then starts the NimBLE BLE example over UART3 HCI.

Scope

Board specifications come from ArtInChip. The internal AIC8800DW connections, pin multiplexing, patch selection and example logs come from project notes without an SDK commit ID. Check them against your actual Luban-Lite tree; they are not guaranteed to apply to every D126 package or SDK release. No physical-board testing was performed for this article.

Product specifications ​

ItemOfficial reference-board configuration
BoardD126FxR-DEMO-V1-1
PackageBGA124
Memory / storage8/16 MB PSRAM; 16 MB SPI NOR
Display / touchMIPI + CTP
CommunicationsRS485, CAN, UART
Wireless / expansionSDIO WiFi, TF-Card
MultimediaCamera, Audio

These are board configurations, not universal specifications for all D126 ordering codes. The cited page does not establish Wi-Fi standards, frequency bands, BLE version or RF performance. Source: ArtInChip D126 board documentation.

D126FxR-DEMO-V1-1 component layout

D126FxR-DEMO-V1-1 board photograph

Images: ArtInChip board documentation; copyright remains with the respective rights holder. Consult the official schematic for hardware design.

Hardware connections ​

The updated project notes hypothesize that the D126 package contains two dies: a D12P SoC and an AIC8800DW radio. This is a project hypothesis, not a package configuration confirmed by manufacturer documentation. The CPU runs Luban-Lite and NimBLE. The identifiers below are SoC signals, not development-board header numbers; do not use them as jumper wiring instructions.

ConnectionPins / mux functionPurpose
SDMC1 / SDIOPE.12–PE.17, function 8Wi-Fi firmware and Bluetooth patch download; Wi-Fi data
UART3 TXPB.18, function 7CPU → Bluetooth controller
UART3 RXPB.19, function 7Bluetooth controller → CPU
UART3 flow controlPB.20, PB.21, function 7RTS/CTS; verify individual assignments in the actual pinmux
Wi-Fi power controlPE.18, function 1GPIO enable
Bluetooth power controlPE.20, function 1GPIO enable
Wake controlPA.6, function 1GPIO wake

The notes describe these three GPIO controls as active high. Let the driver manage them and verify board-specific levels and sequencing rather than adding arbitrary manual GPIO operations.

BLE HCI uses UART3, 1500000 baud, 8N1, H4 and RTS/CTS hardware flow control. Host settings must match the downloaded controller patch.

text
D126 CPU
  +-- SDMC1 / SDIO --> AIC8800DW: Wi-Fi firmware, Bluetooth patches, Wi-Fi data
  +-- UART3 / H4  <--> Bluetooth controller: NimBLE HCI
  +-- GPIO         --> Power enables and wake control

Software Quickstart ​

1. Select the board project ​

The official board page lists the following identifiers. Select them in the matching SDK; the configuration name is not itself a shell command.

ItemPath / identifier
Project directorytarget/d12p/d126-demo124-nor/
Default configurationd12p_d126-demo124-nor_rt-thread_helloworld_defconfig
Firmware pathoutput/d12p_d126-demo124-nor_rt-thread_helloworld/images/d12p_d126-demo124-nor_v1.0.0.img

This is a starting configuration, not evidence that NimBLE or ble_hr is already enabled. Follow your SDK's build and flashing instructions, establish a working console, then apply the configuration below.

2. Configure pinmux and the Wi-Fi driver ​

  • Select function 8 for PE.12–PE.17 and configure SDMC1 for SDIO.
  • Select function 7 for PB.18–PB.21 to route UART3.
  • Select function 1 for PE.18, PE.20 and PA.6 for driver-managed GPIO controls.
  • Select AIC8800DW and configure its power and wake pins.
  • Enable enable BT support so wireless initialization also downloads the Bluetooth patch.

Menu locations, symbols and source paths can differ between SDK releases. Do not blindly copy another chip's board configuration.

3. Check the Bluetooth patch branch ​

The project notes route DW through the same DC-H branch as DC in aicbt_patch_trap_data_load(), not the D80 branch. For the recorded chip_sub_id=2, the patch identifiers are:

  • fw_adid_8800dc_u02h
  • fw_patch_8800dc_u02h

This is revision-specific information. Do not force every device's chip_sub_id to 2. Check the detected silicon revision and SDK patch-selection logic first. A mismatched patch can interrupt download or leave the controller unresponsive.

4. Configure NimBLE HCI ​

Point NimBLE HCI to uart3, select H4 and verify 1500000 baud, 8N1 and RTS/CTS. Enable the heart-rate example that provides ble_hr.

The notes distinguish D126's UART3 from UART2 in a separate D133 external-module example. Do not copy that UART2 configuration into this setup.

5. Initialize wireless before starting BLE ​

Run on the board console:

sh
wifi -d mode sta wlan0

Wait for firmware and patch loading to finish. The recorded success message is:

text
wifi open ok

Then run:

sh
ble_hr

Expected example log:

text
GAP procedure initiated: advertise

Use a phone BLE scanner to look for blehr_sensor. This is the name recorded in the notes and may differ in customized firmware. Seeing advertisements does not validate every GATT operation.

Initialization is not a network connection

In this example, wifi -d mode sta wlan0 initializes STA mode. Router association, credentials, IP acquisition and network traffic testing require the commands documented by your SDK; this guide does not imply that the initialization command performs them.

Frequently asked questions ​

Do D126 Wi-Fi and BLE share a UART? ​

According to the project notes, Wi-Fi traffic, firmware and Bluetooth patch downloads use SDMC1 / SDIO. NimBLE Bluetooth HCI uses UART3. These paths have different roles.

Why initialize Wi-Fi before running ble_hr? ​

This example loads the Bluetooth patch through wireless initialization. Wait for wifi open ok before starting ble_hr so the controller is ready.

What BLE name should a phone find? ​

The recorded heart-rate example advertises as blehr_sensor. Advertising does not establish Wi-Fi connectivity or validate all GATT operations.

Is the D126 two-die package confirmed? ​

No. It remains a project hypothesis, not a manufacturer-confirmed package specification.

Related guide: ArtInChip D125 board-verified cJTAG debugging.

Troubleshooting ​

SymptomCheck first
wifi or ble_hr command missingDriver, console command components and heart-rate example
No wifi open okSDMC1 / SDIO pinmux, power GPIOs, AIC8800DW selection and download logs
Patch download stops or controller does not respondSilicon revision, DC-H versus D80 branch and patch files
Wi-Fi initializes but BLE does not respondBT support, UART3, 1500000 baud, H4 and RTS/CTS
Advertising log appears but phone finds nothingAdvertising name, scan permissions, distance, antenna and RF hardware
BLE advertises but Wi-Fi is offlineTest each subsystem separately; BLE advertising does not establish Wi-Fi association or an IP address

Keep the complete boot log, SDK revision, configuration changes and detected silicon revision rather than diagnosing from the last error alone.

Sources and validation limits ​

  • ArtInChip D126 board documentation: board specifications, project identifiers and both images.
  • D126FxR-DEMO-V1-1 schematic: hardware reference.
  • Project-provided D126 wireless notes: SDIO / UART3 / GPIO mappings, patch selection, commands and logs. An SDK commit ID and reproducible physical-board test record are still needed.

Ultrasemi Technology Development Co., Ltd.
Contact us for audio/video product solutions and IC selection support.
Email: doc@ultrasemi.com · QQ: 2272715136 · WeChat/Mobile: +86 13342996846

Ultrasemi Technology Development Co., Ltd.
Contact us for audio/video product solutions and IC selection support.
Email: doc@ultrasemi.com · QQ: 2272715136 · WeChat/Mobile: +86 13342996846