GitHub

Fox Red Labs / Builds / Tools and languages

Print a message from the chip to your Mac

Flash TI's console example and read its text in a terminal on your computer, over the board's own USB cable. No extra wire.

EasyNo wiring10 min, tools installed

Parts and steps

You need

  1. Plug a micro-USB data cable into the debugger end of the MSPM0 L1306. No driver to install.

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

  3. Click Flash. The page writes the demo to the board.

    You should see: The board prints “> Hello from my LaunchPad 1”, then 2, 3 and on, once a second, over its USB cable.

Or hand it to a coding assistant

Plug in the board and paste this in a terminal.

git clone --depth 1 --filter=blob:none https://github.com/Fox-Red-Labs/fox-red-labs.git && cd fox-red-labs ./start.sh mspm0l1306 print-a-message

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 mspm0l1306/AGENTS.md first. Then run Print a message from the board on your computer on my LP-MSPM0L1306, following docs/builds/print-a-message.md. Tell me when to plug in a board and what you saw at each step.

If something goes wrong

Your tools live somewhere other than /Applications/tiEdit the paths at the top of mspm0g3507/mcu-bench/sdk-common/sdkmake.sh.
No ports appearTry another cable; a charge-only cable looks the same.
You moved J16 and J17 to BP for a loop-back testMove them back to XDS or the serial window stays silent.
The make line cannot find SysConfig or the compilerThe paths in step 1's sdkmake.sh do not match your install.
OpenOCD prints `ErrorChecksum mismatch - attempting binary compare` first; that is normal, and the line after it is the real result.
More troubleshooting
The window stays emptyCheck the port ends in 1 and the baud is 115200.

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 limitsText reaches the Mac over USB serial from the MSPM0 L1306. Ran on 1 board. Results, sources, timing and limits.

Expected result: A line of text from the chip appears in a terminal window on your Mac every time the example sends it, at 115200 baud, with no extra wires.

What this shows

  • The MSPM0 L1306 sends text to a terminal on the Mac over the board's own USB cable, using TI's unmodified example.
  • The same example printed readable text on the MSPM0 G3507 in the example sweep.
What this does not establish, and limits

What this does not establish

  • That text typed on the Mac reaches the chip: this example only transmits. The one-wire loop-back tests check both directions and are separate demos. They use J4 pin 34 to pin 33 on the G3507 and J1 pin 4 to pin 3 on the L1306.
  • That screen shows the text as the sweep script did: the sweep read the port with a script, and screen is the method this repository's LVGL demo uses. The two were not compared with this example.
  • A speed or reliability figure: the loop-back demos give those: every byte right from 9.6 kbaud to 4.5 Mbaud.

Limits to keep in mind

  • The route is written for the MSPM0 L1306. The G3507 has its own flash command and probe file, and was not run by hand in this form.
  • TI's example needs the board's shipped jumper settings; the loop-back tests move J16 and J17 and the serial window goes silent until they are put back.

Sources

Versions, sizes and timing

ExampleTI's uart_tx_console_multibyte_repeated_fifo_dma for LP_MSPM0L1306: UART0 on PA8 (TX) and PA9 (RX) through the DMA, timer-driven; verdict running, 195 bytes read, flash 2.3 s, in the sweep
Serial settingsUART0, 115200 8N1, on the probe port whose name ends in 1FAQ notes
ToolsMSPM0 SDK 2.11.00.07, TI Arm Clang 5.1.1.LTS, xPack OpenOCD 0.12.0-7, Intel Mac on macOS 15.7.9README notes

Evidence

  • On the MSPM0 L1306, TI's uart_tx_console_multibyte_repeated_fifo_dma example, built and flashed by script, sent 195 bytes in the sample window and printed ==== MSPM0 Console Test ==== (2026-10-06).
  • The same example printed readable text on the MSPM0 G3507 in its sweep.

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
Print a message from the board on your computer
LP-MSPM0G3507WorksZephyr sample prints its LED state over USB serial
LP-MSPM0L1306WorksZephyr hello_world and TI's console example print over USB serial LP-MSPM0L1306 Zephyr notes
LP-EM-CC2340R5WorksSpeed-test report arrives over the probe's serial port LP-EM-CC2340R5 baremetal notes
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 (3)

StatusWhat was triedResult
WorksDoes STM32G4 HAL code run on the LP-AM13E230 through TI's compatibility layer?
AM13E230, 2026-10-09
TI's STM32G4 HAL layer runs ST's GPIO and UART examples on the AM13E230 with 3 and 7 lines added to ST's main.c, plus a 13-line and a 50-line TI-side shim; it has no clock tree, no timer and no ADC, so ST's timer...
WorksCan the LP-AM13E230 run the IWRL6432BOOST radar frame parser, with no wire to the radar?
AM13E230, 2026-10-09
The radar stream parser used on the Mac runs on the AM13E230 as 882 bytes of code and 152 bytes of state, fed from the USB serial port: 62 of 62 frame lines match the Mac parser on a real capture and 40 of 40 on a...
WorksDoes a popular STM32 UART DMA example carry over to TI boards (LP-MSPM0G3519 and five more), and where does it behave the same as on the NUCLEO-U083RC?
NUCLEO-U083RC, MSPM0 G3519, MSPM0 G5187, MSPM0 L1306, MSPM0 C1104, MSPM33 C321A, AM13E230, ESP32-C6-DevKitC-1, 2026-10-20
MaJerle's STM32 UART DMA receive and transmit example (1,838 stars) runs on six TI boards from fresh AI agents, and five pass all six host checks at 115200 baud on the same method as the NUCLEO-U083RC original (632 to...

Source files

Demos with wiring

LP-MSPM0G3507 from above with jumpers J21 and J22 moved down and one wire from J4 pin 34 to J4 pin 33

Pins are drawn on TI's board drawing; the source is in the repo next to the README. Open full size

Loop 2: the chip texts itself over UART

You need

  • LP-MSPM0G3507 LaunchPad development kit: TI's 80 MHz Arm Cortex-M0+ board with 128 kB flash and 32 kB RAM, a built-in debugger, three buttons, two LEDs (one RGB) and light and temperature sensors.
  • ELEGOO jumper wires (120-piece pack): Male and female breadboard wires for connecting anything to anything.

Wiring

  1. Unplug USB
  2. Move jumpers J21 and J22 down, from XDS to BP, so the UART pins reach the header instead of the USB chip
  3. One wire from J4 pin 34 (PA10, transmit) to J4 pin 33 (PA11, receive)
  4. When done, move J21 and J22 back up or the board's serial window stays silent

What was measured

  • All 2 kB right at every speed from 9.6 kbaud to 4.5 Mbaud and again from 6.4 to 10.67 Mbaud
  • Dead band at 5 to 6 Mbaud: 5 Mbaud gets 39 of 2,048 right and 6 Mbaud gets 1,921, which is 94%; 12 Mbaud sends nothing. The MSPM0 L1306 shows the same dead band. The cause was not found; TI does not document the baud divider's behavior at those settings
  • If your serial window goes silent after moving J21 and J22, move them back to XDS. TI's example README says only to jumper PA10 to PA11 and does not mention J21 and J22

Versions: MSPM0 SDK 2.11.00.07, TI Arm Clang 5.1.1; measured 2026-10-06.

Next: Find the cause of the dead band: try the fractional baud divider settings one at a time.

How to repeat it: Jumper wires on the LP-MSPM0G3507: three loops to start. Errors and fixes: FAQ. Numbers from Loop tests: the G3507 measuring itself through two jumper wires.

LP-MSPM0L1306 from above with jumpers J16 and J17 moved to BP and one wire from J1 pin 4 to J1 pin 3

Pins are drawn on TI's board drawing; the source is in the repo next to the README. Open full size

UART loop on one wire

You need

  • LP-MSPM0L1306 LaunchPad development kit: TI's low-cost 32 MHz Cortex-M0+ board with 64 kB flash and only 4 kB RAM, a built-in debugger, LEDs, buttons, a light sensor and a thermistor.
  • ELEGOO jumper wires (120-piece pack): Male and female breadboard wires for connecting anything to anything.

Wiring

  1. Unplug USB
  2. Move jumpers J16 and J17 to BP (left), so the chip's UART leaves the USB serial port and reaches the header
  3. One wire from J1 pin 4 (PA8, transmit) to J1 pin 3 (PA9, receive)
  4. Plug USB back in; results are read over the debugger. When done, move J16 and J17 back to XDS (right)

What was measured

  • All bytes right from 9.6 kbaud to 4.5 Mbaud and from 6.4 to 10.67 Mbaud; dead band at 5 to 6 Mbaud (5 Mbaud: 38 of 2,048 right; 6 Mbaud 1,925, which is 94%); 12 Mbaud sends nothing. The cause was not found; it is the same band as the MSPM0 G3507
  • The test program is 1.5 kB of flash and 716 bytes of RAM

Versions: MSPM0 SDK 2.11.00.07, TI Arm Clang 5.1.1, OpenOCD 0.12.0; measured 2026-10-06.

Next: Loop the other UART (PA22 and PA23) the same way.

How to repeat it: How fast can the TI LP-MSPM0L1306's UART talk to itself?. Errors and fixes: FAQ.

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.