GitHub

Fox Red Labs / Builds / Smart home and radio

Control a CC35X1 Matter light from Apple Home

Build the lighting example, flash the CC35X1, add it to Apple Home. Phone tile and board buttons switch the red LED.

HardNo wiringAbout 20 min after host setup (estimate)

The Home app showing a Matter accessory switched on.
Apple Home with the light on, 2026-10-09.

Parts and steps

Which version

You need

  • LP-EM-CC35X1 LaunchPad development kit the board
  • LP-XDS110ET debugger Buy the debugger that programs the board
  • iPhone with the Home app the Matter controller you pair with
  • Apple TV (the Home hub) the hub the phone controls the accessory through
  • A Mac to program from runs the Toolbox and programs the board
  • Linux or Docker host builds the image
  1. Plug the board into the debugger and both USB-C cables into the Mac.BENCH

    Set the debugger's TGT VDD jumper to EXT and push the board's 20-pin edge into the debugger. Plug both USB-C cables into the Mac. Leave J4 and J6 on the lower two pins.

    You should see: The Mac lists the probe and xdsdfu -e prints its serial number.

  2. Check activation. Activate only for the lifecycle error.TERMINAL

    In /Applications/ti/simplelink_wifi_toolbox_macos_4_3_23, run the read-only activation check. If it prints the fuse table, go on. Only if it stops with Process is stopped. Life cycle OPERATIONAL is not valid., activate by hand as under “If something goes wrong.”

    Replace <probe serial> before you run this.

    ./simplelink-wifi-toolbox programmer -i XDS110 -param1 <probe serial> get_fuse_data --flash_type IS25WJ064F --activation_type sdk_example_key --verbose

    You should see: The check prints the fuse table instead of the error. Activation took about 5 seconds.

  3. Build the lighting example on a Linux or Docker host.DOCKER

    Build from the repository's cc35x1/matter folder. The script downloads four tools, checks each against a published SHA-256, fetches TI's repository at the pinned commit and leaves images in /path/to/work/out/debug. Copy toolbox to the Mac.

    ./build.sh /path/to/work

    You should see: A signed 1,758.3 kB image (toolbox/primary_vendor_image.sign.bin, 1.7 MB). The clean build took 673 seconds (11 minutes 13 seconds) under emulation on an Apple silicon Mac.

  4. Program the image.TERMINAL

    From the repository root, set TB to the copied toolbox folder and run cc35x1/matter/mac_paths.sh to swap Linux paths for local ones. Then change to the Toolbox folder and program the image.

    Replace <probe serial> before you run this.

    TB="/absolute/path/to/copied/toolbox" cc35x1/matter/mac_paths.sh "$TB" cd /Applications/ti/simplelink_wifi_toolbox_macos_4_3_23 ./simplelink-wifi-toolbox programmer -i XDS110 -param1 <probe serial> programming --tool_settings "$TB/tool_settings.mac.json"

    You should see: The Toolbox reports success after about a minute.

  5. Press S1 to open a pairing window.BENCH

    Press S1 (reset) to open a pairing window. The Toolbox does not reset the board. If it was paired before, hold SW1 for 1 second first to wipe the pairing.

    You should see: The board advertises over Bluetooth. At 115200 baud the log shows the start. One Wi-Fi disconnect line per boot is TI's known issue MATTER-456.

  6. Scan the QR picture in the Home app.PHONE

    In the Home app tap +, then Add Accessory, and scan cc35x1/matter/setup-qr.png. If the scan fails, tap More options, My Accessory Isn't Shown Here, Enter Code, and type the code cc35x1/matter/payload.py prints.

    You should see: The phone finds the accessory and warns Uncertified Accessory.

  7. Tap Add Anyway and name the light.PHONE

    Tap Add Anyway, wait about a minute, pick a room and name, tap Done.

    You should see: A progress screen, then room and name. In the board's log from the Bluetooth connect: secure channel at 3 s, Wi-Fi at 16 s, commissioning done at 63 s.

  8. Toggle the light from the phone and the board.PHONE

    Tap the light tile. Then press SW1 (on) and SW2 (off) on the board.

    You should see: The tile shows On with a yellow bulb and the red LED follows. Buttons change the tile within about a second.

Or hand it to a coding assistant

Paste this in a terminal. It hands off to an AI assistant.

git clone --depth 1 --filter=blob:none https://github.com/Fox-Red-Labs/fox-red-labs.git && cd fox-red-labs ./start.sh cc35x1 matter-device --assistant claude

It runs the steps above and reports what it saw.

Not Claude Code? Copy this prompt instead.
Clone https://github.com/Fox-Red-Labs/fox-red-labs and read cc35x1/AGENTS.md first. Then run Control a CC35X1 Matter light from Apple Home on my LP-EM-CC35X1, following docs/builds/matter-device.md. Tell me when to plug in a board and what you saw at each step.

If something goes wrong

Use both cablesTI says the debugger can brown out during Matter transmissions otherwise.
At step 2Activation cannot be undone.
The fuse table printsThe chip is already activated: do nothing. Only for the exact lifecycle error, type this by hand, never paste it: ./simplelink-wifi-toolbox programmer -i XDS110 -param1 <probe serial> custom_activation --flash_type IS25WJ064F --activation_type sdk_example_key --authentication_enabled yes. The Copy button copies only the check, on purpose.
Needs 6 GB freeAfterward run docker volume rm frl-matter-build.
The SysConfig 1.28.0 installer is goneThe script uses 1.28.1 build 4785, which built this image.
More troubleshooting
Another TI image was on the board (above all Wi-Fi CSI presence) and the serial port stays silentSave what you need, erase, and program again: ./simplelink-wifi-toolbox programmer -i XDS110 -param1 <probe serial> full_flash_erase --flash_type AUTO_DETECT --activation_type sdk_example_key. This wipes the old image and settings. Skip it on a clean board. mac_paths.sh has run only on saved thermostat build folders and synthetic paths, not a fresh light build.
It reports a missing fileRecopy toolbox and rerun.
Scan within 5 minutesThe thermostat image, same TI code, closed at 300 seconds. Matter's default is 15 minutes, untimed on the light. The blinking green LED only means Identify.
Stay within a few meters, Bluetooth onNot sure it is advertising? Press S1 again.
Pairing stallsPress S1 and restart from step 6.
At step 8It is called "Matter Accessory" until you rename it.

What to build next

Every build. The code for all of them is in the GitHub repository.

Evidence and limitsThe light joined Apple Home in 63 seconds in one recorded run. Phone and board buttons both toggled it. Google Home, Alexa and Home Assistant have no recorded run. Ran on 1 board. Results, sources, timing and limits.

TI's Matter light in Apple Home

Expected result: After about a minute Apple Home adds a light. The tile toggles the red LED and the buttons change the tile. Commissioning took 63 seconds from the Bluetooth connect, per the device log.

What this shows

  • TI's lighting example builds from source in a Linux container and runs on the CC3551E, 1,758.3 kB signed.
  • An iPhone commissions it over Bluetooth and Wi-Fi. The tile toggles the LED and the buttons update the tile. One run, 2026-10-09.
What this does not establish, and limits

What this does not establish

  • Google Home, Alexa and Home Assistant have no recorded run.
  • 63 seconds is one run. Toggle latency is untimed.
  • Setup after a reflash is unmeasured. A new image loses the pairing.

Limits to keep in mind

  • The Matter test vendor ID 0xFFF1 makes Apple Home show Uncertified Accessory.
  • TI supports Ubuntu 22.04 only. This build ran in a linux/amd64 container under emulation, hence 11 minutes.
  • Commissioning from a Mac with the matter.js shell stopped at the Bluetooth link: macOS refused a UUID. Phones are fine.
  • Matter over Thread is not for this chip: the CC3551E has no 802.15.4 radio.

Sources

Why this board

The CC3551E is TI's Production Ready chip for Matter over Wi-Fi, and the only board here that ran this example.

Versions, sizes and timing

SoftwareTI Matter release matter-v1.5-ti-1.2-ea.2, commit 33a45a1ba707418ee9f764723a5b98f2718e8abd, example examples/lighting-app/ti/cc35xxREADME notes
ToolchainSimpleLink Wi-Fi SDK 10.20.00.39, Toolbox 4.3.23, SysConfig 1.28.1, Arm GNU 12.3.rel1, CMake 3.21.3README notes
Flash and RAM1,752.1 kB of code and constants plus initialized data; 578.9 kB of initialized plus zero-initialized data (heap and stacks not counted)README notes
Build record673 s clean: packages 74, tools 20, source 9, submodules 118, bootstrap 175, Wi-Fi SDK libraries 69, lighting app 208README notes
Commissioning63 s from the Bluetooth connect to commissioning completed (secure channel 3 s, Wi-Fi joined 16 s)
Core and clockArm Cortex-M33 at 160 MHz on the CC3551EREADME notes

Evidence

  • Apple Home on an iPhone commissioned the light on 2026-10-09: Bluetooth connect 19:23:31, commissioning completed 19:24:34 (63 s), tile toggles logged from 19:41:38, board buttons reaching the tile at 19:41:51, all read from the device log.
  • Matter stack support passed (TI's lighting image, Apple Home commissioning completed, tile and button toggles confirmed). the data (CSV)

Other boards

What the status words mean

Works ran here and did what it shouldCould work some of it ran; real porting effort is left; hover for whatNot for this chip the chip or its vendor software cannot; hover for why

A Matter thermostat in Apple Home

Expected result: Within the window Apple Home adds a thermostat and the heating setpoint changes from the phone. The idle board reports about 150 kB of heap free. Pairing time is unmeasured here; the light took 63 s.

What this shows

  • TI ships no thermostat for the CC3551E. This one runs, Apple Home adds it and it takes a heating setpoint change. One iPhone, 2026-10-11.
  • Swapping the data model and one application file in the lighting example was enough. It paired on the first scan.
  • The image is 10.4 kB smaller than TI's light: 1,747.9 kB against 1,758.3 kB signed.
What this does not establish, and limits

What this does not establish

  • Google Home, Alexa and Home Assistant have no recorded run. Their result rows are waiting.
  • The occupancy endpoint is not driven: no presence line is wired.
  • Temperature is a fixed 20.8 C fallback, not a sensor. No driver path to the chip's own temperature turned up.
  • Setpoint latency, local control offline, four controllers at once and setup after a reflash are unmeasured.
  • The board's log of the write was not recorded. The evidence is the phone screen.

Limits to keep in mind

  • Programming over the Wi-Fi CSI presence image left the board silent until a full erase. The Toolbox guide does not mention it.
  • The Matter test vendor ID 0xFFF1 makes Apple Home show Uncertified Accessory. The device is not certified.
  • The 300-second window means erase, program and pair in one sitting.
  • Unknown. After Bluetooth starts the log UART turns to 0x00 and 0x80 bytes at every rate tried, 1,200 to 115,200 baud.
  • Matter over Thread is not for this chip: the CC3551E has no 802.15.4 radio.

Sources

Why this board

The CC3551E is the one chip here that TI marks Production Ready for Matter over Wi-Fi. It has 1.1 MB of RAM, but this image's 579.3 kB of static data must fit the 509 kB main RAM plus 128 kB fast RAM TI's build sets aside.

Versions, sizes and timing

SoftwareTI Matter release matter-v1.5-ti-1.2-ea.2, commit 33a45a1ba707418ee9f764723a5b98f2718e8abd, plus the thermostat example from this repository (Thermostat on endpoint 1, Occupancy Sensing on endpoint 2)README notes
ToolchainSimpleLink Wi-Fi SDK 10.20.00.39, Toolbox 4.3.23, SysConfig 1.28.1 (TI pins 1.28.0; the Linux installer for it was no longer served), Arm GNU 12.3.rel1, CMake 3.21.3, in a linux/amd64 containerREADME notes
Flash1,741.6 kB of code and constants plus initialized data; signed image 1,747.9 kB in the 8 MB flash chip (the light on the same tag: 1,752.1 kB and 1,758.3 kB)README notes
RAM579.3 kB of initialized plus zero-initialized data from the ELF, heap and stacks not counted (the light: 578.9 kB). Idle heap before pairing: 149.7 kB free, lowest ever 146.8 kBCC35X1 Matter thermostat notes
Core and clockArm Cortex-M33 at 160 MHz on the CC3551E; Wi-Fi 6 and Bluetooth LE 5.4README notes
Commissioning window300 s from start-up (TI's code unchanged)CC35X1 Matter thermostat notes
Build timeApp step 165 s on a warm volume (last try); whole script 301 s warm; cold container to the app step 500 sREADME notes

Evidence

  • Apple Home on an iPhone added the thermostat after a full flash erase and a fresh programming on 2026-10-11 and the heating setpoint was set to 67 F from the phone (screenshot 20:25). An earlier scan hung on Connecting because the 300-second window had closed. CC35X1 Matter thermostat notes
  • Commissioning passed; the pairing time was not measured. the data (CSV)
  • The phone screenshot is the proof a reader can see. thermostat-apple-home.png

Other boards

What the status words mean

Works ran here and did what it shouldCould work some of it ran; real porting effort is left; hover for whatNot for this chip the chip or its vendor software cannot; hover for why

Result grid

Project
LP-MSPM0G3507MSPM0G3507 chip
LP-MSPM0L1306MSPM0L1306 chip
LP-EM-CC2340R5CC2340R52 chip
LAUNCHXL-F2800137TMS320F2800137 chip
Control a CC35X1 Matter light from Apple Home
LP-MSPM0G3507Not for this chipNo radio on this chip.
DetailsTI's Matter software targets TI's own radio chips; it has no build for a plain microcontroller as the host of a separate radio
LP-MSPM0L1306Not for this chipNo radio on this chip.
DetailsTI's Matter software targets TI's own radio chips; it has no build for a plain microcontroller as the host of a separate radio
LP-EM-CC2340R5Not for this chipTI lists no Matter build for this chip (512 KB flash, 36 KB RAM)
LAUNCHXL-F2800137Not for this chipNo radio on this chip.
DetailsTI's Matter software targets TI's own radio chips; it has no build for a plain microcontroller as the host of a separate radio

Works ran here and did what it shouldShould work it builds; only naming, packaging or build glue is in the way; hover for whichCould work some of it ran; real porting effort is left; hover for whatNot for this chip the chip or its vendor software cannot; hover for why

Experiments (1)

StatusWhat was triedResult
Can one Matter thermostat on the LP-EM-CC35X1 work in Apple Home, Google Home, Alexa and Home Assistant?
CC35X1, 2026-10-10
The Matter thermostat on the CC35X1 (TI's lighting example with a Thermostat and an Occupancy Sensing data model, 1.7 MB, 579 kB of RAM) runs, pairs into Apple Home and takes setpoint changes from the phone...

Source files

Code brought from elsewhere

This project uses code that was written for other chips or tools. Each links to how to get it running.

Start with your code, and the prompt to port your own

Get the code and tell us how it wentThe clone command, the board folder with its AGENTS.md, reports from others, and the three report forms.

Get the code

Clone the repository and open the board's folder below. AGENTS.md is a plain text file of notes for AI coding assistants, and llms.txt at the root indexes the site for one.

git clone https://github.com/Fox-Red-Labs/fox-red-labs.git

Code is BSD-3-Clause, writing is CC BY 4.0; third-party folders keep their own licenses.

Built it? Tell us

Built this, or got stuck? Report it on GitHub with a few short answers. Your report shows here in your words, marked as yours. A failure that repeats on the bench gets its fix here.