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
- LP-AM13E230 LaunchPad development kit runs the app and drives the pack's DAC
- BOOSTXL-AUDIO audio BoosterPack plug-in module the DAC8311, amplifier, speaker and microphone
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.wavYou should see: A
host/outfolder holdstone_1khz.wavandfox_run.wav.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.shYou should see: The script leaves
audio.outunderout/boosterpack-speedrun/am13-audio-default/.Plug the pack on and flash.BENCH
Plug the BOOSTXL-AUDIO onto the LaunchPad. Copy
am13e230/AM13E23019_<probe serial>.ccxmltoam13e230/AM13E23019_<serial>.ccxmlwith 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.outYou should see: DSLite ends with
System Reset is issued.andRunning....Play the tone.TERMINAL
Open the board's serial port at 115200 baud (
/dev/cu.usbmodem<serial>1). Pressato drive the amplifier line low, then1for the 1 kHz tone.0is silence.You should see: A clear 1 kHz tone from the pack's speaker.
Play the tune and listen back.TERMINAL
Press
2for the four-voice tune "Fox Run", which loops. Pressmto power the microphone, thencto capture 2k samples at 8 kHz. Keep the volume at 4 or lower (vlowers it) for a level reading.tools/mic_analyze.pyreads 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.
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.shYou should see: The run ends with every check passing; the log is
results/host-algos-20261020.log.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 algosYou should see: The script leaves
audio.outunderout/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 claudegit clone --depth 1 --filter=blob:none https://github.com/Fox-Red-Labs/fox-red-labs.git && cd fox-red-labs
py start.py am13e230 audio-boosterpack --assistant claudeIt runs the steps above and reports what it saw.
Not Claude Code? Copy this prompt instead.
If something goes wrong
| The compiler is missing | Install the Xcode command line tools and run the line again. |
| The SDK is not found | Install it as mac-setup/README.md says and run the line again. |
It then prints Failed: Target is not halted | That is the normal end of a flash on this board: the program is running. |
| It stays silent | Press 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 values | The 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 table | Do not build the apps image until it is understood. |
| The build stops on the SDK path | Set 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
| Tone | microphone reads 1000.0 Hz, 99.9 percent of energy within 50 Hz | |
|---|---|---|
| Build size | AM13E230 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 size | AM13E230 29.6 kB flash and 22.1 kB RAM; MSPM33 C321A 23.1 and 13.4 | README 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
- MSPM0G3507, MSPM0L1306, CC2340R5, F2800137
- MSPM33C321A, MSPM0G3519should work
- MSPM0G5187could work
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
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
- LP-AM13E230: folder
am13e230/.- 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-MSPM33C321A: folder
mspm33c321a/.- 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-MSPM0G3519: folder
mspm0g3519/.- 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-MSPM33C321A: 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.