6.1. Device Overview
This page lists every common.target_device value that Tiny ML ModelZoo 1.5.0
accepts, with the facts you need to choose one: CPU core, hardware NPU, supported
tasks, whether a ready-made SDK example exists, and whether feature-extraction memory
is estimated.
Note
The tables on this page are generated from the 1.5.0 source: the
TARGET_DEVICE_* constants and device compilation profiles in ModelMaker
(tinyml_modelmaker/ai_modules/{timeseries,vision,audio,radar}/constants.py)
and the target_devices of each model in tinyml_modelzoo/model_descriptions.
For clock speed, memory size and peripherals, see the device’s product page on
ti.com.
6.1.1. Selecting the Device
Set the device in the common section of the config YAML. Use the exact string from
the tables below (it is case sensitive):
common:
task_type: generic_timeseries_classification
target_device: F28P55
ModelMaker checks the combination before it starts. If the device is unknown, or no
model for the task_type supports the device, the run stops with an error that lists
the supported devices or tasks.
6.1.2. Complete Device List
Task legend:
C generic time series classification (generic_timeseries_classification),
Arc arc fault, Motor motor fault, Blower blower imbalance,
ECG ECG classification, PIR PIR detection,
R regression, F forecasting, AD anomaly detection,
Img image classification, Aud audio classification, Rad radar classification.
SDK example names the device folder of the ready-made examples in the TI SDKs (see Deployment). FE memory means ModelMaker compiles the SDK feature-extraction library for this device and reports its memory.
6.1.2.1. C2000 F28x (C28x DSP)
Device |
Core (compiler flags) |
NPU |
Tasks |
SDK example |
FE memory |
|---|---|---|---|---|---|
F28P55 |
C28x, FPU32 |
Yes |
C, Arc, Motor, Blower, R, F, AD |
C2000Ware |
Yes |
F28P65 |
C28x, FPU64 |
No |
C, Arc, Motor, Blower, R, F, AD |
C2000Ware |
Yes |
F28P551x |
C28x, FPU32 |
No |
C, Arc, Motor, Blower, ECG, R, F, AD |
– |
No |
F2837 |
C28x, FPU32 |
No |
C, Arc, Motor, Blower, ECG, R, F, AD |
– |
Yes |
F2837xS |
C28x, FPU32 |
No |
C, Arc, Motor, Blower, ECG |
– |
No |
F2838x |
C28x, FPU32 |
No |
C, Arc, Motor, Blower, ECG, R, F, AD |
– |
No |
F2807x |
C28x, FPU32 |
No |
C, Arc, Motor, Blower, ECG |
– |
No |
F28003 |
C28x, FPU32 |
No |
C, Arc, Motor, Blower, ECG, R, F, AD |
C2000Ware |
Yes |
F28004 |
C28x, FPU32 |
No |
C, Arc, Motor, Blower, ECG, R, F, AD |
C2000Ware |
Yes |
F28002x |
C28x, FPU32 |
No |
Motor, Blower, ECG, R, F, AD |
– |
No |
F280013 |
C28x, FPU32 |
No |
Arc, Motor, Blower, ECG, R, F, AD |
– |
Yes |
F280015 |
C28x, FPU32 |
No |
Arc, Motor, Blower, ECG, R, F, AD |
– |
Yes |
F28E12 |
C28x, FPU32 |
No |
R, F, AD |
– |
Yes |
6.1.2.2. C2000 F29x (C29x DSP)
Device |
Core (compiler flags) |
NPU |
Tasks |
SDK example |
FE memory |
|---|---|---|---|---|---|
F29H85 |
C29x |
No |
C, Arc, Motor, Blower, R, F, AD |
F29H85x SDK |
Yes |
F29P58 |
C29x |
No |
C, R, F, AD |
– |
No |
F29P32 |
C29x |
No |
C, R, F, AD |
– |
No |
6.1.2.3. Arm Cortex-M0+, Cortex-M33 and Cortex-R5F MCUs
Device |
Core (compiler flags) |
NPU |
Tasks |
SDK example |
FE memory |
|---|---|---|---|---|---|
MSPM0G3507 |
Cortex-M0+, no FPU |
No |
C, Arc, Motor, ECG, PIR, R, F, AD, Img |
MSPM0 SDK (not in this flow, see MSPM0 Family) |
Yes |
MSPM0G3519 |
Cortex-M0+, no FPU |
No |
C, Arc, Motor, ECG, PIR, R, F, AD, Img |
MSPM0 SDK (see MSPM0 Family) |
No |
MSPM0G5187 |
Cortex-M0+, no FPU |
Yes |
C, Arc, Motor, ECG, PIR, R, F, AD, Img, Aud |
MSPM0 SDK (see MSPM0 Family) |
Yes |
MSPM33C32 |
Cortex-M33, FPv5-SP |
No |
C, Arc, Motor, Blower, PIR, R, F, AD |
MSPM33 SDK |
No |
MSPM33C34 |
Cortex-M33, FPv5-SP |
Yes (profile only) |
None in 1.5.0 (no model lists this device) |
– |
No |
AM13E2 |
Cortex-M33, FPv5-SP |
Yes |
C, Arc, Motor, Blower, R, F, AD, Img |
MCU-SDK (AM13E2x) |
Yes |
AM263 |
Cortex-R5F, VFPv3-D16 |
No |
C, Arc, Motor, Blower, R, F, AD |
MCU-PLUS-SDK |
No |
AM263P |
Cortex-R5F, VFPv3-D16 |
No |
C, R, F, AD |
– |
No |
AM261 |
Cortex-R5F, VFPv3-D16 |
No |
C, R, F, AD |
– |
No |
6.1.2.4. Connectivity and Radar Devices
Device |
Core (compiler flags) |
NPU |
Tasks |
SDK example |
FE memory |
|---|---|---|---|---|---|
CC2755 |
Cortex-M33 with CDE |
No |
C, Motor, PIR |
– |
No |
CC2745 |
Cortex-M33 with CDE |
No |
C, Motor, PIR |
– |
No |
CC35X1 |
Cortex-M33 with CDE |
No |
C, Motor, PIR |
– |
No |
CC1352 |
Cortex-M4F |
No |
C, Motor, PIR |
– |
No |
CC1312 |
Cortex-M4F |
No |
C, Motor, PIR |
– |
No |
CC1354 |
Cortex-M33, FPv5-SP |
No |
C, Motor, PIR |
– |
No |
CC1314 |
Cortex-M33, FPv5-SP |
No |
C, Motor, PIR |
– |
No |
IWRL6432 |
Cortex-M4F |
No |
Rad |
– |
No |
Note
MSPM33C34 has an NPU compilation profile and is accepted on the command line (it is hidden from the Model Composer GUI), but no 1.5.0 model lists it, so every task is rejected for it. Use MSPM33C32 for MSPM33 projects.
CDE devices (CC2755, CC2745, CC35X1) have no NPU. Their default preset compiles with
ti-npu type=m33cde, which uses the Cortex-M33 Custom Datapath Extension. See Connectivity, AM26x, MSPM33 and Radar Devices.Device-specific models exist too, for example
WiFiPresDet_4.7k_CDE(CC35X1 only) and the audio models (MSPM0G5187 only).
6.1.3. Compilation Presets
ModelMaker compiles the trained ONNX model with the
TI MCU Neural Network Compiler.
The compile options come from a preset, selected with
compilation.compile_preset_name:
compilation:
enable: True
compile_preset_name: default_preset # or compress_npu_layer_data, forced_soft_npu_preset
Preset |
Available on |
What it does |
|---|---|---|
|
All devices |
Recommended. Uses the hardware NPU when the device has one; otherwise compiles for the CPU. Options are chosen per task (for example, regression and forecasting do not request integer output). |
|
F28P55, MSPM0G5187, AM13E2 (and MSPM33C34, see note above) |
Hardware NPU, plus |
|
F28P55, MSPM0G5187, AM13E2, CC2755, CC2745, CC35X1 |
Disables the hardware acceleration and compiles the model for the CPU
( |
If you ask for a preset that the device does not have, ModelMaker logs a warning and
uses default_preset.
Important
The hardware NPU only runs TINPU-quantized models. If the model is not
TINPU-quantized (training.quantization is not 2), ModelMaker replaces
ti-npu type=hard with ti-npu type=soft and the model runs on the CPU, even on
an NPU device. training.auto_quantization is on by default and is switched off
automatically on devices without a hardware NPU (unless you set it in the config).
See Quantization.
6.1.4. NPU and Non-NPU Devices
Hardware NPU devices: F28P55, MSPM0G5187, AM13E2. The TI NPU accelerates convolution, pooling and fully connected layers of quantized models. To be accelerated, a layer must meet the NPU constraints (channel multiples of 4, kernel and pooling limits, minimum FC input size). Layers that do not meet them fall back to software. See NPU Guidelines.
All other devices run the model on the CPU. The _NPU models in the ModelZoo
(for example CLS_1k_NPU) are not limited to NPU devices: they list CPU-only devices
in their target_devices as well, and ModelMaker compiles them for the CPU there.
Tiny ML ModelZoo 1.5.0 has no separate “non-NPU” variant of these models.
6.1.5. Feature-Extraction Memory Estimation
New in 1.5.0: for the devices marked FE memory: Yes above, the compilation step
also compiles the SDK feature-extraction library with the run’s
user_input_config.h and reports its memory in the log:
============================================================
TI Feature Extraction Library Memory Usage
============================================================
Code: ...
RO Data: ...
RW Data: ...
The devices are AM13E2, MSPM0G3507, MSPM0G5187, F29H85, F28P55, F28P65, F2837,
F28003, F28004, F280013, F280015 and F28E12. You can also estimate model and
feature-extraction memory before training with the standalone script in the
tinyml-modelzoo folder:
./estimate_memory.sh examples/dc_arc_fault/config_dsk.yaml --target_device F28P55
See Memory Estimation for details.
6.1.6. Choosing a Device
Start from the task. Check the Tasks column. Image classification runs on MSPM0 and AM13E2, audio classification on MSPM0G5187, radar classification on IWRL6432, and F28E12 supports regression, forecasting and anomaly detection only.
Prefer an NPU device (F28P55, MSPM0G5187, AM13E2) for larger convolutional models or tight latency budgets.
Check the SDK example column if you want the quickest path to the board: those devices have ready-made SDK examples for all four time series tasks (see Deployment).
Check memory early with
estimate_memory.sh; the device’s Flash and RAM are on its ti.com product page.Existing designs: C2000 for motor control and power conversion, AM26x for industrial communication, CC devices for wireless sensors, MSPM0 for low-cost and low-power designs.