aen-cc3501e-ble-gatt
Silicon proof of the CC3501E BLE GATT-server path through the portable <alp/ble.h> surface only, driven from the Alif M55-HE core on the E1M-AEN801 (Alif Ensemble E8) SoM.
The app never touches the raw bridge protocol — it exercises the same portable BLE calls a customer would write. What it proves on real silicon:
alp_ble_open(),alp_ble_advertise_start(), andalp_ble_gatt_register_service()are genuine over-the-bridge wire round-trips to the CC3501E's own NimBLE host;alp_ble_gatt_register_service()returnsALP_OKwith a non-zero attribute handle per characteristic (the CC3501E GATT encoder is real, not a stub);alp_ble_gatt_read/alp_ble_gatt_write/alp_ble_gatt_notifyare called with aNULLconnection handle to prove the dispatch layer's connection guard rejects them with the documented status instead of crashing or hanging.
Source: examples/aen/aen-cc3501e-ble-gatt/.
Server-only by design
There is no live BLE central peer on this bench — no second device in range — so the app never calls alp_ble_connect(). A full read/write echo against a live central is HIL-deferred: it needs a second BLE device on the bench.
Console: RAM console, not UART
board.yaml sets diagnostics.console: ram. On the alplab bench UART5 isn't captured (only the SE-UART FT232R is on USB, SETOOLS-only), so the RESULT PASS: / RESULT FAIL: line is read from ram_console_buf over SWD, not a serial terminal.
SoM bring-up is one call
The hardware setup — control pins, inter-chip SPI, power/reset sequence — is the reusable cc3501e_bridge_bringup() SoM template, shared verbatim with aen-cc3501e-bringup and aen-cc3501e-companion-tour.
Status
- native_sim/native/64 (
twister,build_only) — against the emulated SPI controller +alp,pin-arrayin the shipped overlay. Proves the portable-API call shapes compile; not a live GATT round-trip (the CC3501E SPI bridge has no native_sim model). alp_e1m_aen801_m55_he/ae822fa0e5597ls0/rtss_he— the real bench target. Build + Flow-C/A/D flash is a bench step, not a CI run.
Bench result: PASS on physical E1M-AEN801 (SW-DP 0x4C013477), persistent across a cold POR.
See also
aen-cc3501e-gatt-register— the deeper dynamic-registration + ordering-guard gateaen-cc3501e-companion-tour— the full-surface Wi-Fi + BLE touraen-cc3501e-bringup— the minimal power + PING soak; wiring + bench recipe<alp/ble.h>reference- Examples overview