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

Parts and steps
You need
- LP-MSPM0G3507 LaunchPad development kit Buy the board
- Micro-USB data cable power and programming
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 --versionandtar --versioneach print a version.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.
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/blinkyforlp_mspm0g3507, checks the board is there, flashes it withwest flash, then sends one board-level reset. If two boards are plugged in, setPROBE_SERIALto 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.shYou 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 isThe blue LED should now blink once a second.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 claudegit clone --depth 1 --filter=blob:none https://github.com/Fox-Red-Labs/fox-red-labs.git && cd fox-red-labs
py start.py mspm0g3507 run-zephyr --assistant claudeIt runs the steps above and reports what it saw.
Not Claude Code? Copy this prompt instead.
If something goes wrong
| A download fails | Rerun 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 probe | List 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 connected | It 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 dark | The 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_mspm0g3507builds 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
| Zephyr | v4.4.2, shallow clone; modules hal_ti, cmsis, cmsis_6, picolibc only | the script |
|---|---|---|
| Compiler | arm-zephyr-eabi from Zephyr SDK 0.17.4 (GCC 12.2.0) via ZEPHYR_TOOLCHAIN_VARIANT=cross-compile | the script |
| Flashing tool | xPack OpenOCD 0.12.0-7, darwin-x64 build, run through west flash | the script |
| Host | Intel Mac, macOS 15.7.9; west and CMake from pip in a Python 3.12 virtual environment | README notes |
| Image | 11.7 kB of flash (9.10% of 128 kB), 3.9 kB of RAM | |
| Flash | 11.7 kB written in 2.87 s | |
| Time | 3 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 run | README 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
- MSPM0L1306, CC2340R5could work
- F2800137
- MSPM0G3519Not for this chip can't run it
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
Details
a trimmed shell, logging and Thread-Metric fit, with stacks cut to the boneWorks 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)
| Status | What was tried | Result |
|---|---|---|
| Works | Does 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... |
| Works | Can 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 work | Does 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 work | Can 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... |
| Works | Does 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... |
| Works | Can 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 work | Why 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). |
| Works | Can 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... |
| Works | Can 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... |
| Works | Does 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... |
| Works | Can 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
- Zephyr blinky on the LP-MSPM0G3507 from an Intel Mac (MSPM0 G3507)
- LP-MSPM0L1306 Zephyr notes (MSPM0 L1306)
- Zephyr on the LP-EM-CC2340R5 with the XDS110 probe (CC2340R5)
Code brought from elsewhere
This project uses code that was written for other chips or tools. Each links to how to get it running.
- Zephyr in 4 kB of RAM on the LP-MSPM0L1306 Works Zephyr runs on the MSPM0 L1306 in 4 kB of RAM: hello_world, blinky and CoreMark.
- Zephyr on the LP-AM13E230 Works Zephyr's hello_world reaches main and an image toggles the LED on the AM13E230.
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
- LP-MSPM0G3507: folder
mspm0g3507/.- README: the board's lab notebook (what was run, in order)
- Notes for an AI coding assistant working in this repository: notes for an AI assistant; copy it into your own project if you use one
- FAQ: errors and fixes
The other 2 board folders
- LP-MSPM0L1306: folder
mspm0l1306/.- README: the board's lab notebook (what was run, in order)
- Notes for an AI coding assistant working in this repository: notes for an AI assistant; copy it into your own project if you use one
- FAQ: errors and fixes
- LP-EM-CC2340R5: folder
cc2340r5/.- README: the board's lab notebook (what was run, in order)
- Notes for an AI coding assistant working in this repository: notes for an AI assistant; copy it into your own project if you use one
- FAQ: errors and fixes
- LP-MSPM0L1306: folder
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.