GitHub

Fox Red Labs / Builds / Tools and languages

Run Zephyr on a LaunchPad kit from the command line

One script installs Zephyr 4.4.2, builds blinky, flashes an MSPM0 G3507 and the LED blinks. No IDE, no Homebrew.

HardNo wiringabout 3 min with this repo's script

TI MSPM0G3507 board

Parts and steps

You need

  1. Check that git, curl and tar are installed (on a Mac, xcode-select --install brings them; 1.8 GB installed).TERMINAL

    You do not install Python 3.12, ninja, west or CMake: the script fetches them (Python 3.12 through uv) with no administrator password and no Homebrew. It also gets Zephyr 4.4.2 from GitHub, the Arm compiler from Zephyr SDK 0.17.4 and xPack OpenOCD 0.12.0-7 (2 MB), each checked against a SHA-256, about 2 GB in all.

    You should see: git --version, curl --version and tar --version each print a version.

  2. Plug the LP-MSPM0G3507 into the Mac with the micro-USB cable.BENCH

    Plug in exactly one board, or you must name the probe in step 3.

    You should see: The board's green power LED comes on. Its debug probe shows up as an XDS110 with USB id 0451:bef3.

  3. Run the script from the folder it lives in (replace <repository folder> with your clone).TERMINAL

    It builds a Python environment and gets Zephyr v4.4.2 and four modules: hal_ti, cmsis, cmsis_6 and picolibc. It downloads the compiler and OpenOCD and checks each against a SHA-256 checksum. It builds samples/basic/blinky for lp_mspm0g3507, checks the board is there, flashes it with west flash, then sends one board-level reset. If two boards are plugged in, set PROBE_SERIAL to the one you mean.

    Replace <repository folder> and <your probe serial> before you run this.

    cd <repository folder>/mspm0g3507/zephyr ./setup.sh # two boards plugged in? name the probe: # PROBE_SERIAL=<your probe serial> ./setup.sh

    You should see: About 3 minutes later, 3:00 and 3:06 in two clean runs, the script prints three things. First a build memory report, FLASH 11.7 kB of 128 KB, 9.10%. Then OpenOCD flash output ending wrote 11932 bytes. The last line is The blue LED should now blink once a second.

  4. Look at the board's blue LED.BENCH

    You should see: The blue LED blinks once 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 mspm0g3507 run-zephyr --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 mspm0g3507/AGENTS.md first. Then run Run the Zephyr real-time operating system on my LP-MSPM0G3507, following docs/builds/run-zephyr.md. Tell me when to plug in a board and what you saw at each step.

If something goes wrong

A download failsRerun the script; it keeps what it already fetched. Apple silicon built the same way in a build-only run on an M4 Mac; it was not flashed.
Step 3 later reports no debug probeList the probes it can see as shown in step 3 and check the USB cable is a data cable.
It says Found 2 debug probes or Probe ... is not connectedIt built but did not flash (exit code 3): plug in exactly one board, or set PROBE_SERIAL. List probes with /Applications/ti/ccs2101/ccs/ccs_base/common/uscif/xds110/xdsdfu -e (CCStudio) or system_profiler SPUSBDataType, where the XDS110 is 0451:bef3.
The LED stays darkThe chip is probably sitting in Zephyr's NMI handler after the debugger's soft reset. Press the board's reset button; the script's last command does the same thing with OpenOCD's mspm0_board_reset.

Every fix for this board: the FAQ.

What to build next

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

Evidence and limitsZephyr's blinky runs on the G3507, and on the L1306 with an out-of-tree board file. Ran on 1 board. Results, sources, timing and limits.

Expected result: The blue LED on the MSPM0 G3507 blinks once a second, running Zephyr 4.4.2's unmodified blinky sample. It takes about 3 minutes from the start of the script to the blink on a Mac that already had python3.12, git and ninja. The first run, while the workarounds were still being found, took about 9.5 minutes.

What this shows

  • Zephyr 4.4.2's upstream blinky for lp_mspm0g3507 builds and runs from the command line on an Intel Mac. It uses pip and prebuilt downloads instead of Homebrew and a source build of OpenOCD.
  • The image is small: 11.7 kB of flash, 9.10% of 128 kB, and 3.9 kB of RAM.
  • The install is repeatable: two clean runs from the script took 3 minutes 00 seconds and 3 minutes 06 seconds.
What this does not establish, and limits

What this does not establish

  • That this is Zephyr's officially supported path. Zephyr 4.4.2 asks for Zephyr SDK 1.0.1, which has no Intel macOS build, so the script uses the Arm compiler from SDK 0.17.4 through ZEPHYR_TOOLCHAIN_VARIANT=cross-compile. It works here, but it is not an officially supported pairing.
  • That it works on Apple Silicon, Windows or Linux, or with other Zephyr versions: only v4.4.2 was flashed and run, on macOS 15.7.9; the M4 Mac and the Linux container only built it.
  • Anything beyond blinking an LED: no serial console, sensor, radio or network sample was run in this build.

Limits to keep in mind

  • After a debugger soft reset the chip sat in Zephyr's NMI handler and did not blink; the record does not say why. The script ends with a board-level reset that clears it, and the reset button does the same.
  • The script only checks python3.12, git and ninja by using them; if one is missing it stops with that tool's own error.
  • Two checks were made before flashing a board. Neither is in Zephyr's guide. The December 2025 fix for the "bricked LaunchPad" bug, Zephyr PR 102668, was confirmed present in the source, and the image was confirmed to contain main flash addresses only.

Sources

Versions, sizes and timing

Zephyrv4.4.2, shallow clone; modules hal_ti, cmsis, cmsis_6, picolibc onlythe script
Compilerarm-zephyr-eabi from Zephyr SDK 0.17.4 (GCC 12.2.0) via ZEPHYR_TOOLCHAIN_VARIANT=cross-compilethe script
Flashing toolxPack OpenOCD 0.12.0-7, darwin-x64 build, run through west flashthe script
HostIntel Mac, macOS 15.7.9; west and CMake from pip in a Python 3.12 virtual environmentREADME notes
Image11.7 kB of flash (9.10% of 128 kB), 3.9 kB of RAM
Flash11.7 kB written in 2.87 s
Time3 min 00 s and 3 min 06 s from clean (two runs); about 9.5 min for the first run; 0 minutes hands-on in the first runREADME notes

Evidence

  • First run 2026-10-05: Zephyr 4.4.2 blinky on an MSPM0 G3507, about 9.5 minutes from nothing installed; the blue LED was confirmed blinking by eye. README notes
  • The script was then run from clean twice: 3 minutes 00 seconds and 3 minutes 06 seconds, exit code 0 both times. README notes
  • The flash log shows the probe found, the chip detected and 11.7 kB written.
  • The LED pin was read three times, a second apart, and toggled.

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
Run the Zephyr real-time operating system
LP-MSPM0G3507WorksZephyr blinky runs; 3 min to install with this repo's script Zephyr blinky on the LP-MSPM0G3507 from an Intel Mac
LP-MSPM0L1306Could workRuns on an out-of-tree board file, since none exists upstream;
Detailsa trimmed shell, logging and Thread-Metric fit, with stacks cut to the bone
LP-MSPM0L1306 Zephyr notes
LP-EM-CC2340R5Could workBlink only; upstream Zephyr has no Bluetooth for this board Zephyr on the LP-EM-CC2340R5 with the XDS110 probe
LAUNCHXL-F2800137

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 (11)

StatusWhat was triedResult
WorksDoes Bluetooth work on the TI LP-EM-CC2340R5 with TI's Zephyr fork?
CC2340R5, 2026-10-05
Partly works: with Zephyr's C library heap on (CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=2048; 1024 for TI's peripheral sample, which does not link at 2048), this repo's BTHome beacon and TI's peripheral sample run; TI's...
WorksCan Zephyr run on the TI LP-MSPM0L1306, a chip with 4 kB of RAM and no Zephyr board?
MSPM0 L1306, 2026-10-06
Runs with this repo's board file, a corrected GPIO driver, hand-written UART pins and one heap setting; standard CoreMark fits with 16 bytes of the 4 kB RAM left and scores 1.87 per MHz.
Could workDoes Zephyr's upstream board for the TI LP-MSPM0G3519 build, flash and run from a Mac?
MSPM0 G3519, 2026-10-08
Zephyr 4.4.2's blinky for lp_mspm0g3519 builds and flashes from a Mac, then stops in the non-maskable interrupt handler right after reset: SYSCTL reports an SRAM double-error (ECC) event, so the LED never blinks.
Could workCan Zephyr run LVGL with a touch screen on the TI LP-MSPM0G3519?
MSPM0 G3519, 2026-10-10
Zephyr 4.4.2 plus its LVGL module links for the G3519 (253.5 kB of flash, 49.5 kB of RAM, with a dummy display) but cannot reach the panel: the tree has no MSPM0 SPI or I2C driver, so a touch screen on this chip under...
WorksDoes upstream Zephyr run on the TI LP-AM13E230 from a Mac, flashed by OpenOCD built from source?
AM13E230, 2026-10-10
Upstream Zephyr main runs on the AM13E230 from an Intel Mac, flashed by OpenOCD built from source in 0.1 s of writing (12.6 kB): this repo's led-proof image toggled LED4 (PA5) and its counter rose about 4 per...
WorksCan the LP-AM263P run four cores at once, with different operating systems, including Zephyr?
AM263P, 2026-10-11
All four Cortex-R5F cores of the AM263P ran CoreMark at once at 1,462 to 1,464 per second each (5,854 together), within 0.1% of each core alone. A message between cores takes 3.36 to 3.87 µs round trip with TI's...
Could workWhy does Zephyr's blinky not compile for the Pico 2's RISC-V cores, and what fixes it?
Raspberry Pi Pico 2 H, 2026-10-11
Zephyr 4.4.2's blinky does not compile for rpi_pico2/rp2350a/hazard3 because that board file has no led0 alias; a 15-line overlay that adds it makes it compile (38.5 kB UF2, not flashed).
WorksCan Zephyr run on the AM62L's Cortex-A53 from on-chip SRAM with the DDR never initialized?
TMDS62LEVM (AM62L evaluation module), 2026-10-21
A Zephyr hello world linked into the AM62L's 144 kB of on-chip SRAM, loaded over JTAG into the Cortex-A53 with the DDR never initialized, no TF-A and no TIFS, boots at EL3 and prints its banner and the hello line on...
WorksCan the AM62L's DDR-less Zephyr image be run before the board arrives, and what does the simulator settle?
TMDS62LEVM (simulated in Renode; the board is on order), 2026-10-18
A Zephyr hello world linked into the AM62L's 144 kB of on-chip SRAM, entered at EL3 with no TF-A and no DDR, boots in Renode on a platform made from the build's own device tree and prints on UART0 at the chip's...
WorksDoes TI's Jailhouse hypervisor run on the AM62L EVM, and how fast do its demo cells start?
TMDS62LEVM (AM62L evaluation module), 2026-10-22
TI's Jailhouse flow from SDK 12.01.00.05.03 ran as documented on the AM62L EVM, booted from a USB stick: the hypervisor enabled in 0.27 s, the uart-demo and gic-demo inmates printed on UART1 (FT4232 port B) within a...
WorksCan Linux run on one A53 core of the AM62L and Zephyr on the other, with no hypervisor?
TMDS62LEVM (AM62L evaluation module), 2026-10-22
Linux 6.18.38 (TI SDK 12.01.00.05.03) ran on A53 core 0 with maxcpus=1, and a 44.0 kB Zephyr image linked in DDR at 0xE0000000 ran on core 1, started by a PSCI CPU_ON call from U-Boot at non-secure EL1. After Linux...

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.