GitHub

Hardware / Bluetooth, Zigbee and Thread / Step 1 of 2

LP-EM-CC2340R5 (CC2340R52)

The CC2340R52 is a wireless microcontroller in TI's CC23xx family: 48 MHz Arm Cortex-M0+, 512 kB of flash, 36 kB of RAM, BLE 5.x, Zigbee, Thread, IEEE 802.15.4 PHY/MAC.

The LP-EM-CC2340R5 with its LED blinking
CC2340R52A 48 MHz Arm Cortex-M0+ with 512 kB of flash and 36 kB of RAM, and a 2.4 GHz radio for Bluetooth LE, Zigbee, Thread and proprietary links. The antenna and its connector sit just above it.

Quick facts

BoardLP-EM-CC2340R5
ChipCC2340R52
CoreCortex-M0+
Clock48 MHz
Flash512 kB
RAM36 kB
RadioBLE 5.x (qualified against Core 5.4), Zigbee, Thread, IEEE 802.15.4 PHY/MAC, proprietary 2.4 GHz
Notable peripheralsAES-128 accelerator; random number generator; 12-bit ADC 1.2 Msps (ext ref), up to 12 inputs; 1 comparator; OTA upgrade supported; max TX +8 dBm
On-board debug probeSold separately (LP-XDS110ET at TI.com)
Zephyr board namelp_em_cc2340r5
Where to buyDigiKey
Toolchains that ranTI compilers, GCC, Zephyr, FreeRTOS, Arduino, ESPHome, MicroPython

Get it running

  1. Clip the LP-XDS110ET probe onto the board and plug the probe's USB cable into your computer.

  2. In Chrome or Edge, open the browser bench and click Connect.

  3. Pick Bluetooth light: set its colors from this page, no cable and click Flash. The page writes it to the board.

    You should see: The LEDs change a moment after you tap a color or a pattern.

    The board needs the light program on it once: the button below puts it there.

What works

  • CoreMark: 111.09 (2.31 per MHz) (TI Arm Clang, bare metal, -O3; 48 MHz)
  • Flash to Bluetooth advertising: 0.17 s (advertising interval 100 ms; scan started in the same Python; 3 runs)
  • Bluetooth connect and discover services: 0.55 s (Mac as central through bleak; connect and discover services)
  • Boot to joined network: 6 s (FreeRTOS, -Oz)
  • Board-to-board radio round trip: 44 ms (boards 30 cm apart; RSSI -30 dBm both ways; channel 15; 10 runs)
  • Radio command to state change, median: 95 ms (first pairing; ZHA with ZBT-2 on Mac mini; LQI 60 RSSI -85 dBm)
  • RAM left after linking the radio stack: 22.4 kB
  • Interrupt latency, pend to first handler line: 28 cycles (bare metal; 48 MHz)
  • GPIO toggle: 2.1 cycles (bare metal, -O3; 48 MHz)
  • Blink image size: 5.6 kB of flash, 9.9 kB of RAM (bare metal)

Download every result for this board (CSV), or compare it on this board on the Benchmarks page.

Projects and ports that ran here

Fixes

  • If you see Unable to access the DAP, let CCStudio write the .ccxml (README gotcha 2) and add your probe serial.
  • If you see Failed: Connect failed from cc23xx-unlock-debug-access, pull the probe off, press it on firmly, replug USB, then flash instead of unlocking.
  • If you see Zigbee example never joins, nothing printed, in the .syscfg set zigbee.primaryChannels = [11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]; and zigbee.deviceType = ["zr"];.
  • If you see Zigbee serial output is unreadable symbols, decode with tilogger; change struct.unpack("L", ts_format) to struct.unpack("<I", ts_format) on line 132 of uart_to_log.py.
  • If you see Region Base (0xE6000) is outside the device's usable flash [0x0, 0x80000), set the storage addresses to 0x7C000 and 0x79000.
  • If you see ld.bfd: region `RAM' overflowed by 346 bytes, use CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=1024.
  • If you see section .nvs VMA [0000000000010000,0000000000013fff] overlaps section .text, apply cc2340r5/thread/ot-ti-local.patch (settings at 0x7C000).
  • If you see error #10264: NVRAM memory range overlaps existing memory range FLASH, use cc2340r5/matrix/dmm_r53_linker.cmd.

Every fix for this board, with the exact error text

How long an AI assistant took here

8 jobs timed with an AI coding assistant on this board, given the board's notes. Time is the median of the runs; passed means a person or a script checked the result. No spend or token counts here.

JobAssistantNotes givenTimePassed
ble advertiseSonnet 5.5with the board's notes3.7 min1 of 1
coremarkSonnet 5.5with the board's notes2.3 min1 of 1
port gamepad build onlySonnet 5.5with the board's notes7.3 minnot checked
thread questionSonnet 5.5with the board's notes0.3 min1 of 1
zephyr blinkFable 5.1with the board's notes3.0 min1 of 1
zephyr blinkHaiku 4.5with the board's notes3.6 min1 of 1
zephyr blinkOpus 5.5with the board's notes3.0 min1 of 1
zephyr blinkSonnet 5.5with the board's notes3.1 min1 of 1

For AI assistants

Point your assistant at this board's AGENTS.md (build, flash and fix notes), this board's llms-full.txt (every page for the board in one file) and the repository's llms.txt (the index).

Sources: cc2340r5/README.md, cc2340r5/AGENTS.md, cc2340r5/FAQ.md, data/results/cc2340r5.csv, site/data/portfolio.json, site/data/projects.json, site/data/ports.json.