Skip to content

Traffic counter on the Alif AppKit-E7: Ultralytics YOLO26n on the Ethos-U55 - #1

Merged
MatthiasHertelArm merged 4 commits into
mainfrom
review
Oct 16, 2026
Merged

MatthiasHertelArm merged 4 commits into
mainfrom
review

Conversation

@MatthiasHertelArm

@MatthiasHertelArm MatthiasHertelArm commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

The traffic counter as developed on MatthiasHertelArm/cmsis-executorch-traffic-counter, imported in one commit (the full history stays there), plus four commits for review:

  • The README describes the two prompts to an AI coding agent that created and then optimized the example.
  • A third target-type, SSE-320-sim: the Corstone-320 (Cortex-M85, Ethos-U85-256) on the Corstone-320 simulator v0.2.0, which runs natively on Linux, macOS and Windows and serves the CMSIS Debugger, so the test-image run needs neither Docker nor an FVP license. It links a second export of the model for the Ethos-U85 (ai_layer_u85/). CI builds it and runs the Linux release headless.
  • The names follow the Ultralytics brand guidelines: "Ultralytics YOLO26n" on first mention, a trademark and no-affiliation note next to the licences, and the panel banner writes YOLO26n as the product is named (the 5x7 font gains lower-case glyphs for that).

What it is

One CMSIS solution, traffic/traffic.cproject.yml, on two target-types with the same Cortex-M55 and Ethos-U55-256:

Target-type Hardware Runs
AppKit-E7 Alif Ensemble E7 AppKit (Gen 2), M55 HP core camera, panel, joystick, SDS recording and playback over the User USB
SSE-300-U55 Corstone-300 FVP the detector and the tracker on the test image, Test_result: PASS
SSE-320-sim Corstone-320 simulator (Cortex-M85, Ethos-U85-256) the same, natively, with the same two trucks (0.65, 0.50)

Ultralytics YOLO26n without its attention blocks, fine-tuned on the COCO images with vehicles, exported with ExecuTorch and compiled by Vela, runs whole on the NPU: 31 ms per 416x416 frame, 25 fps with the camera. A tracker on the Cortex-M55 counts each vehicle once, per class and direction, as it crosses a line on the picture. The AI layer, the weights and the pack lock file are committed so that a clone builds the validated image. CI exports the AI layer from a fresh clone, builds both targets and runs the FVP.

Verification

  • AppKit-E7 image builds clean with Arm Compiler 6 (one pre-existing warning in a scatter file comment).
  • The brand commit changes the panel banner, so the image is no longer byte-identical to the one validated on the board; the new glyphs were checked by rendering the font on the host, not yet on the panel.
  • Licences: Apache-2.0 for the code, the YOLO26n weights under Ultralytics' AGPL-3.0, ExecuTorch sources under BSD-3-Clause. The test image is generated from a COCO photo at build time and not committed.

The traffic counter as developed on github.com/MatthiasHertelArm/
cmsis-executorch-traffic-counter (full history there): one CMSIS solution
with the project traffic/traffic.cproject.yml on two target-types with the
same Cortex-M55 and Ethos-U55-256, the AppKit-E7 (camera, panel, joystick,
SDS over the User USB) and the Corstone-300 FVP (the detector and the
tracker on the test image). Ultralytics YOLO26n without its attention
blocks, fine-tuned on the COCO images with vehicles, exported with
ExecuTorch and compiled by Vela, runs whole on the NPU in 31 ms per
416x416 frame; a tracker counts each vehicle once, per class and
direction, as it crosses a line. The AI layer, the weights and the pack
lock file are committed so that a clone builds the validated image; CI
exports the layer, builds both targets and runs the FVP.
documentation/prompt.md is the conversation that built the traffic counter
reduced to one prompt, with what its answers turned into; the README links
it.

The names follow the Ultralytics brand guidelines: the full product name,
Ultralytics YOLO26n, on the first mention of the README and of the
technical document, a trademark and no-affiliation note next to the
licences, and the panel's banner writes YOLO26n as the product is named.
For that the 5x7 font gains the glyphs from 0x5B to 0x7A (brackets,
underscore and the lower-case letters), and image_text no longer folds
lower case to upper case.
@MatthiasHertelArm
MatthiasHertelArm merged commit ee35b4a into main Oct 16, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants