Getting Started with the TI CC2755R10 LaunchPad: First Flash to First BLE Packet

The CC2755R10 is the first CC27xx LaunchPad to ship with BLE 5.3 and Cortex-M33 security extensions, and the setup flow changed more than TI’s release notes suggest. If you’ve wired up a CC2640R2 or CC2652 in the past and assumed muscle memory would carry you through, you’re about to hit three or four papercuts that cost a good chunk of an afternoon.
This guide is the opinionated walkthrough you’d get from a colleague who already took those hits. You’ll go from unboxing the LP-EM-CC2755R10 to watching your first BLE advertisement land on a phone. Then you’ll see how that same advertisement can reach low Earth orbit through the Hubble Network, with a coin cell that lasts years.
What this guide skips: BLE fundamentals (GAP, advertising intervals, PDU types) and the basics of installing Code Composer Studio. If you need those, TI’s docs handle them fine.
What’s in the Box and What You Need
The LP-EM-CC2755R10 is a small board with an onboard XDS110 debugger, PCB antenna, reset and user buttons, two LEDs, and the standard 40-pin BoosterPack headers.
+---------------------------------+
| [USB] XDS110 [RESET][BTN] |
| |
| CC2755R10 LED1 LED2 |
| |
| [BoosterPack 40-pin headers] |
+---------------------------------+What you need to download, with the versions that actually play nicely together as of publish:
- SimpleLink Low Power F3 SDK 8.40.x or later (the CC2755R10 support landed in the 8.x line; anything earlier won’t see the device)
- Code Composer Studio Theia 1.5+ (or classic CCS 20.x if you must)
- SysConfig 1.21+ (bundled with CCS, but verify)
- XDS110 emulation package (bundled, but worth a manual update if you’re on an older CCS)
Optional but useful: nRF Connect for Mobile (free, iOS/Android) for quick scans, or a Nordic nRF52840 dongle running nRF Sniffer with Wireshark if you want to see the raw PDU.
Skip: TI Cloud Tools. The browser IDE technically supports CC27xx, but flashing and debugging over WebUSB is flakier than local, and the feedback loop when something breaks is slower.
Installing the Toolchain (The Opinionated Version)
Install CCS Theia first. TI’s classic Eclipse-based CCS still works, but Theia is where new CC27xx features land first, and the SysConfig integration is smoother.
Once CCS is up, don’t install the SDK as a standalone package. Open Resource Explorer inside CCS, find SimpleLink Low Power F3 SDK, and install it from there. This keeps the SDK path registered correctly with CCS, which saves you a pile of “unresolved include” errors later.
Verify the XDS110 driver is alive before you plug anything in:
$ dslite.sh --version
DSLite version 12.x.x.xIf that command isn’t on your PATH, it lives under <ccs_install>/ccs_base/DebugServer/bin/.
Open a blank SysConfig window and confirm CC2755R10 shows up in the device picker. If it doesn’t, your SDK install didn’t register: close CCS, reopen, and re-check Resource Explorer.
Resist the urge to install five related TI tools “just in case.” Each one is another version to mismatch later.
Flash the Pre-Built Example
Open Resource Explorer, drill into SimpleLink Low Power F3 SDK → Examples → Development Tools → LP-EM-CC2755R10 → BLE5-Stack → ble5_simple_peripheral, and click Import.
Pick the TI Clang toolchain variant (not GCC) unless you have a specific reason. The prebuilt libraries are compiled against Clang, and mixing toolchains produces link errors that read like hieroglyphics.
Build with Ctrl+B. You’ll see a warning or two about unused static functions in the stack library. Ignore them.
Plug in USB, hit the Debug button (the green bug), and CCS will flash and drop you at main(). Press F8 to run. LED1 starts a slow ~1 Hz blink, which is the app telling you advertising is active.
Step | Expected Result
--------------|----------------------------------------
Import | Project tree appears, no errors
Build | "Build Finished. 0 errors"
Flash | LED1 begins slow blink (~1 Hz)
Reset | Device re-advertises within 1 secondIf the Debug button grays out, your XDS110 isn’t enumerating. Skip to troubleshooting.
Capture Your First BLE Packet
The 5-minute path: Open nRF Connect on your phone, go to the Scanner tab, pull to refresh. You’re looking for a device named SimplePeripheral with an address starting 00:12:4B:00:... (TI’s OUI block). Tap it to see the decoded advertisement.
The fun path: Flash an nRF52840 dongle with the nRF Sniffer firmware, open Wireshark with the nRF Sniffer extcap (see How to Capture BLE Packets with nRF Sniffer and Wireshark for setup), and filter on your device address. You’ll see the raw ADV_IND PDUs every 100 ms.
Either way, the default advertisement looks like this:
ADV_IND | AdvA: 00:12:4B:00:XX:XX:XX:XX
Flags: 0x06 (LE General Discoverable, BR/EDR not supported)
Complete Local Name: "SimplePeripheral"
128-bit Service UUIDs: f000ffc0-0451-4000-b000-000000000000Three AD structures: flags, local name, and a 128-bit service UUID for TI’s simple GATT profile. That’s 30-ish bytes of payload inside a 31-byte legacy advertising PDU, exactly the sanity check you want.
Opinionated Troubleshooting
The three failures that eat the most first-day hours:
“Device not found” when you hit Debug. This is almost always an XDS110 firmware mismatch, not a USB driver problem. Run
xdsdfu -eto enumerate, thenxdsdfu -f firmware.bin -rto update. Don’t reinstall drivers first. That path wastes 30 minutes and rarely fixes it.Build fails with missing
ti_drivers_config.corti_ble_config.c. Right-click the.syscfgfile in the project tree and pick Generate Files. Still broken? Delete theDebug/folder and rebuild. CCS caches generated sources aggressively, and a stale cache looks exactly like a real compile error.Device advertises once, then goes silent? The stock example is connectable. The moment your phone taps it in nRF Connect, it connects, advertising stops, and you think it crashed. Either disconnect in the app, or switch the advertising type to non-connectable in
simple_peripheral.c(change theGAP_ADTYPE_FLAGS_GENERALadvertising set toADV_NONCONN_IND).
Bonus: if CCS Theia hangs on project import, close it and delete ~/.ccstheia/workspace/.metadata/.lock. Theia holds workspace locks more aggressively than classic CCS.
From Demo Packet to Hubble Beacon
Here’s where the afternoon gets interesting. The advertisement you just captured, with a small edit, can be received by satellites.
Hubble Network operates a constellation of low Earth orbit satellites that listen for standard BLE advertisements from the ground. No cellular, no LoRa gateway, no proprietary radio. If your device can advertise, it can reach orbit.
The CC2755R10 is a solid fit. The +8 dBm TX option and BLE 5 coded PHY (LE Coded S=8) give you the link margin satellites like. The Cortex-M33 sleep currents mean a CR2032 can carry a once-per-hour beacon for years.
Two changes to the example:
- Replace the default Manufacturer Specific Data with Hubble’s payload schema (company identifier plus your provisioned device payload).
- Switch the advertising type to
ADV_NONCONN_IND. Non-connectable advertising saves power and improves the odds of clean reception from a satellite moving at 7 km/s.
The payload edit lives in simple_peripheral.c, in the advertData[] array:
static uint8_t advertData[] =
{
// Flags
0x02,
GAP_ADTYPE_FLAGS,
GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED,
// Manufacturer Specific Data (Hubble payload)
0x1B, // length
GAP_ADTYPE_MANUFACTURER_SPECIFIC,
0xFF, 0xFF, // company ID (placeholder)
// 24 bytes: device ID + encrypted payload
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};The exact packet layout, company ID, and encryption modes live in Hubble’s device integration guide and the advertising packet reference. If you’d rather start from a working firmware skeleton than hand-edit TI’s sample, the Hubble Device SDK on GitHub has reference applications for several BLE platforms that you can port to the CC2755R10.
Next post in this series: provisioning your CC2755R10 with Hubble and watching your first satellite-received packet hit the dashboard.
Next: Provision Your CC2755R10 with Hubble and Watch Your First Satellite Packet
Head to Hubble’s provisioning docs and register your first device.
Hubble Network gives your CC2755R10 global satellite reachability using the same BLE advertising stack you just flashed—no cellular modem, no gateway. See how it works →