GitHub

Fox Red Labs / Builds / Audio

Audio BoosterPack tone and tune on a LaunchPad

Plug a BOOSTXL-AUDIO onto an AM13E230. A key press plays a 1 kHz tone or a four-voice tune through the pack's DAC and speaker, and the pack's microphone reads the pitch back.

MediumNo wiring

Parts and steps

You need

  1. Hear the code on the Mac first.TERMINAL

    Build the DAC and synth code for the Mac. A model of the DAC8311 input stage checks every frame, then the test renders the tone and the tune to WAV files. No board is needed.

    portability/boosterpacks/audio/host/run.sh open portability/boosterpacks/audio/host/out/fox_run.wav

    You should see: A host/out folder holds tone_1khz.wav and fox_run.wav.

  2. Build the app for the LP-AM13E230.TERMINAL

    Build at -O2. Nothing is flashed. The image is 16.9 kB of flash.

    portability/boosterpacks/audio/boards/am13e230/build.sh

    You should see: The script leaves audio.out under out/boosterpack-speedrun/am13-audio-default/.

  3. Plug the pack on and flash.BENCH

    Plug the BOOSTXL-AUDIO onto the LaunchPad. Copy am13e230/AM13E23019_<probe serial>.ccxml to am13e230/AM13E23019_<serial>.ccxml with your probe serial, then flash.

    Replace <serial> before you run this.

    /Applications/ti/uniflash_9.6.0/deskdb/content/TICloudAgent/osx/ccs_base/DebugServer/bin/DSLite flash -c am13e230/AM13E23019_<serial>.ccxml -e -f -v out/boosterpack-speedrun/am13-audio-default/audio.out

    You should see: DSLite ends with System Reset is issued. and Running....

  4. Play the tone.TERMINAL

    Open the board's serial port at 115200 baud (/dev/cu.usbmodem<serial>1). Press a to drive the amplifier line low, then 1 for the 1 kHz tone. 0 is silence.

    You should see: A clear 1 kHz tone from the pack's speaker.

  5. Play the tune and listen back.TERMINAL

    Press 2 for the four-voice tune "Fox Run", which loops. Press m to power the microphone, then c to capture 2k samples at 8 kHz. Keep the volume at 4 or lower (v lowers it) for a level reading. tools/mic_analyze.py reads the printed capture and reports its dominant frequency.

    You should see: The tune plays. A capture taken during the tone reads a dominant frequency of 1000.0 Hz.

  6. Check the microphone algorithms on the Mac.TERMINAL

    Run the tuner, spectrum bars, DTMF decoder and noise gate against double-precision references, on synthetic and recorded signals.

    portability/boosterpacks/audio/host/run_algos.sh

    You should see: The run ends with every check passing; the log is results/host-algos-20261020.log.

  7. Build the apps image.TERMINAL

    Build the image with the tuner, spectrum, DTMF decoder and gate. It builds and sizes at 29.6 kB of flash and 22.1 kB of RAM; it was not run on the board.

    portability/boosterpacks/audio/boards/am13e230/build.sh algos

    You should see: The script leaves audio.out under out/boosterpack-speedrun/am13-audio-algos/.

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 am13e230 audio-boosterpack --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 am13e230/AGENTS.md first. Then run Audio BoosterPack on a LaunchPad on my LP-AM13E230, following docs/builds/audio-boosterpack.md. Tell me when to plug in a board and what you saw at each step.

If something goes wrong

The compiler is missingInstall the Xcode command line tools and run the line again.
The SDK is not foundInstall it as mac-setup/README.md says and run the line again.
It then prints Failed: Target is not haltedThat is the normal end of a flash on this board: the program is running.
It stays silentPress a first: the amplifier plays only with its line driven low. Key 8 sends the wrong frame on purpose and is silent in every amplifier state.
The capture is pinned at its top valuesThe microphone clipped: lower the volume. With the speaker beside the microphone it clips from volume 8 up.
More troubleshooting
A check reports a difference larger than the README's tableDo not build the apps image until it is understood.
The build stops on the SDK pathSet it as in step 2.

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 limitsAn AM13E230 plays a 1 kHz tone and a four-voice tune through the Audio BoosterPack, and the pack's microphone reads the tone back at 1000.0 Hz. Ran on 1 board. Results, sources, timing and limits.

Expected result: The pack plays a clean 1 kHz tone and a four-voice tune, and its microphone reads the tone back at 1000.0 Hz.

What this shows

  • A plain GPIO driver sends 16-bit frames to the pack's DAC8311 from a motor-control chip, with 16 clock pulses and the chip-select held low for the whole frame.
  • The pack's microphone reads 1000.0 Hz with 99.9 percent of the energy within 50 Hz.
  • The tuner holds within 0.6 cent on clean tones from 82 to 500 Hz, the 16 spectrum bars within 1.3 pixels of a double-precision DFT above 30 pixels, and the DTMF decoder decodes a 16-digit sequence exactly down to 2 dB signal to noise, all on the Mac.
What this does not establish, and limits

What this does not establish

  • The tuner, spectrum, DTMF and gate code did not run on a board: they were checked on the Mac and built for the AM13E230 and MSPM33 C321A.
  • The gate and echo were not heard on the speaker. The DTMF decoder was tested with white noise only, not speech or music.

Limits to keep in mind

  • The synth runs at 8 kHz, so nothing above 4 kHz plays.
  • The SPI lines are bit-banged. The DAC is on SPI only: the pack's jumper positions for the LaunchPad DAC and for PWM are not tested.
  • The MSPM33 C321A and MSPM0 G3519 build the same app and were not run with the pack on. The pack cannot be driven from the MSPM0 G5187 without wires.

Sources

Versions, sizes and timing

Tonemicrophone reads 1000.0 Hz, 99.9 percent of energy within 50 Hz
Build sizeAM13E230 16.9 kB flash and 13.3 kB RAM; MSPM33 C321A 10.3 and 4.4; MSPM0 G3519 8.9 and 4.4 (default app, -O2)README notes
Apps image sizeAM13E230 29.6 kB flash and 22.1 kB RAM; MSPM33 C321A 23.1 and 13.4README notes
Tuner (Mac)within 0.6 cent for clean tones 82 to 500 Hz; no octave errors in 456 tests

Evidence

  • On 2026-10-20 the app played a 1 kHz tone and the four-voice tune. The microphone capture read 1000.0 Hz with 99.9 percent of the energy within 50 Hz; the tune's dominant frequency read 1046.5 Hz. Both were heard by ear.
  • Sending the DAC two 8-bit transfers instead of one 16-bit frame gave silence in every amplifier state. boostxl audio frame and amp notes
  • The tuner, spectrum, DTMF and gate code passes its Mac tests against double-precision references, and the apps image builds for this board.

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
Audio BoosterPack on a LaunchPad
LP-MSPM0G3507
LP-MSPM0L1306
LP-EM-CC2340R5
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

Source files

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.