GitHub

Fox Red Labs / Builds / Motor control, power and sensing

See whether a room is occupied with an IWRL6432BOOST 60 GHz radar

TI's IWRL6432BOOST streams presence and range frames over USB with no setup. A short script reads them and a timed test scores detection, delay and false alarms.

MediumNo wiringten minutes to see frames

Parts and steps

You need

  1. Plug the board in and stand clear.BENCH

    Plug the board's micro-USB port (J5) into the computer. Leave the switches as shipped. Keep 20 cm between the board and a person while it transmits (TI's board guide).

    You should see: Lights D6 (5 V) and D3 (power good) come on; the antenna side faces the room.

  2. Find the data port.TERMINAL

    The board adds two serial ports; the one ending in 1 carries the data.

    ls /dev/cu.usbmodem*

    You should see: Two ports, one ending in 1 and one in 4.

  3. Set up Python and capture 15 seconds.TERMINAL

    Make a venv with pyserial, then capture 15 s at 115,200 baud from the port ending in 1 into a file with any serial tool.

    python3 -m venv ~/radar-venv && ~/radar-venv/bin/pip install pyserial

    You should see: A capture file of about 6 kB (4 frames a second, 384 bytes each).

  4. Read the frames.TERMINAL

    The parser prints one line per frame. Test it without a board first with --selftest.

    python3 iwrl6432boost/tools/tlv_parse.py capture.bin

    You should see: Frame number, bytes, detected objects and the block types; presence blocks are type 315 and range profiles 303.

  5. Check the antenna settings answer.TERMINAL

    Open iwrl6432boost/eval/radar_link.py and set PORT and CFG (written for this bench's folders) to your port and configuration folder. Then apply each setting and check the stream.

    python3 iwrl6432boost/eval/radar_eval.py accept

    You should see: The board's answer to every configuration line, then a stream check for 1x1 (refused with error -40107), 2x2 and 2x3.

  6. Run the timed passes.TERMINAL

    Put the board on a stand at about 1.5 m, antenna toward the room, a tape line out from it, and two chairs at 2 m and 4 m. Leave the room for the empty run, then run the cued walk-in and seated passes; Enter in the terminal confirms that the person is in place, and the tool speaks the cues.

    python3 iwrl6432boost/eval/radar_eval.py empty --seconds 60 python3 iwrl6432boost/eval/radar_eval.py run --passes walk,sit2,sit4

    You should see: A results file per setting in iwrl6432boost/eval/results/: flags in the empty room, detect delay after the cue, hold while seated, and the distance at first flag on the walk-in.

  7. Put the shipped setting back.TERMINAL

    Restore the shipped configuration.

    python3 iwrl6432boost/eval/radar_eval.py restore

    You should see: The board prints the shipped lines again and streams at about 4 frames 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 iwrl6432boost radar-presence --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 iwrl6432boost/AGENTS.md first. Then run See whether a room is occupied with a 60 GHz radar on my IWRL6432BOOST, following docs/builds/radar-presence.md. Tell me when to plug in a board and what you saw at each step.

If something goes wrong

No lightsTry another cable; the port is micro-USB B.
No ports listedCheck the cable is a data cable and the board is powered.
An empty fileCheck that you read the port ending in 1, then press the board's reset button (S2) and capture again.
The self test failsYou are not at the top of the repository.
At step 5The demo ignores its command line until one press of the board's reset button (S2) after power-up.
More troubleshooting
At step 6Put the shipped configuration back afterwards with restore.
At step 7Press reset (S2) if it does not answer.

What to build next

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

Evidence and limitsA seated person at 2 m and 4 m was held in 100 percent of frames; with a modified configuration an empty room gave 0 flags in 87,602 frames (6.08 h). Ran on 1 board. Results, sources, timing and limits.

Expected result: The board streams presence and range frames about four times a second. In the timed test a seated person at 2 m and 4 m is held as present on 2x2 and 2x3 (100 percent of frames, one pass each).

What this shows

  • A person sitting still at 2 m and 4 m was held in 100 percent of frames on 2x2 and 2x3. An arrival was flagged 4.7 to 6.2 s after the cue, which includes the person's reaction and walk. With a modified configuration (PresenceDetect-hold12.cfg) the empty room gave 0 flags in 6.08 h, until a flag whose cause was not checked.
  • A short Python parser reads the frames, and the timed test needs no change to the board's firmware.
What this does not establish, and limits

What this does not establish

  • How many people are in the room: the demo reports four floor zones on or off.
  • Anything past 4 m seated or about 7 m walking: not tested.
  • Your room: glass, metal shelving and fans change the result. One room, one afternoon, one pass per cell, so no spread.
  • Power use: the demo does not report it and no measurement was made.

Limits to keep in mind

  • The steps are from the 2026-10-09 and 2026-10-10 runs.
  • The tool's serial port and configuration paths are written for this bench (PORT, CFG in radar_link.py).
  • Checked on one Intel Mac only.

Sources

Why this board

It is the one radar board here; the same chip family has no 1 transmit by 1 receive part, so the 1x1 setting was refused by the demo.

Versions, sizes and timing

Frame rate4.00 a second as shipped; 3.85 a second with the evaluation settingREADME notes
Range bin0.121 m (derived from the settings, not checked against a measured distance)evaluate a presence radar notes
ChipIWRL6432, 2 transmit and 3 receive channels, 57 to 64 GHz; Cortex-M4F coreREADME notes

Evidence

  • 2026-10-10: empty room 60 s gave 0 flags in 240 frames on 2x2 and on 2x3. A person seated at 2 m and at 4 m was held in 100 percent of frames. Flagged 3.9 to 6.7 s after the cue; cleared 10.7 to 14.1 s after leaving (the demo's hold time). Walk-in first flagged at about 6.5 m on 2x3. One pass per cell. evaluate a presence radar notes
  • Overnight, 2x3, modified configuration (PresenceDetect-hold12.cfg), 12-frame hold: 0 flags in 87,602 frames (6.08 h) in an empty room, until a flag whose cause was not checked; 95 percent upper bound 0.49 an hour. radar antenna eval notes
  • The shipped image streams 4.00 frames a second, 384 bytes each, with no frame missing in 60 s. README notes

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
See whether a room is occupied with a 60 GHz radar
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

Experiments (5)

StatusWhat was triedResult
What do you get from all the antennas of the TI IWRL6432BOOST radar, against using one transmitter and one receiver?
IWRL6432BOOST, 2026-10-10
2x2 and 2x3 ran. The presence demo refuses 1x1 with error -40107. In an empty room neither gave a false alarm in 240 frames. Overnight, 2x3 at a 12-frame hold gave none in 87,602 frames, which is 6.08 h in an empty...
Could workCan TI's Motion and Presence demo on the IWRL6432BOOST board's IWRL6432 radar report room zones with no reflash, and can each zone become a Home Assistant sensor?
IWRL6432BOOST, 2026-10-13
Room zones need only a configuration change to TI's shipped Motion and Presence demo: up to 12 boxes, each reported in every frame. The four-zone configuration, zone logger, live page and Home Assistant poster are...
Could workDoes the reference ROS driver for TI mmWave read the IWRL6432BOOST?
IWRL6432BOOST, 2026-11-03
The reference ROS 1 driver for TI mmWave (radar-lab/ti_mmwave_rospkg) builds on ROS Noetic with one build-file edit and publishes every point of an IWRL6432BOOST walk recording, identical to the recording, when frames...
WorksDoes the popular Python mmWave SDK 3 reader work on the IWRL6432BOOST?
IWRL6432BOOST, 2026-11-03
The most-forked Python reader for mmWave SDK 3 point clouds (ibaiGorordo/AWR1843-Read-Data-Python-MMWAVE-SDK-3-) reads every point of two IWRL6432BOOST walk recordings, identical to the recordings, with its parser...
Could workCan the popular mmWave gesture recognizer run on the IWRL6432BOOST?
IWRL6432BOOST, 2026-11-03
The most-starred open gesture recognizer for TI mmWave (vilari-mickopf/mmwave-gesture-recognition) reads none of an IWRL6432BOOST stream: its config loader stops on a low-power SDK cfg, and its frame parser, built for...

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.

  • Open radar readers on the IWRL6432BOOST: the ROS driver, the Python SDK 3 reader, the gesture recognizer Could work Once the board sends the standard point format (guiMonitor 1), the most-forked Python mmWave SDK 3 reader reads every point of two recorded walks with its parser unedited; the reference ROS 1 driver publishes every point when frames come every 50 ms, nothing at the board's 250 ms; the most-starred gesture recognizer reads no frame, because it expects an AWR1642 SDK 2 layout and near-field gestures at 10 frames a second.

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.

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.