Skip to content

Releases: embedded-machine-learning/Cpp-NN

C++20 STM32CubeIDE Example Project

12 Aug 10:01
Compare
Choose a tag to compare

Overview

This is the original STM32 project written in C++20, developed for the SEDGE paper ( https://doi.org/10.1007/s10994-025-06807-z )

The C++20 variation produces, on average, slightly faster code, but it was rewritten for maintainability.

What's in this Release
STM32 project using STM32CubeMX-generated code ( version 1.15.0, windows)
Profiling via STM32_Profiler integrated into Core/

Third-party licenses included under the Licenses/ directory
Key Notes

The profiling functionality is adapted from STM32_Profiler (MIT License).
If everything compiled correctly, there should not be any C++ std functions used, or any Matrix views used (they should be reduced to pure (immediate) pointer operations)

Licensing
All third-party components and license texts are included.
My own code is licensed under Apache 2.0.

C++17 STM32CubeIDE Example Project

30 Jul 13:35
Compare
Choose a tag to compare

Overview

This is the original STM32 project written in C++17, developed for the SEDGE paper ( https://doi.org/10.1007/s10994-025-06807-z )

⚠️ Deprecated: This version is no longer maintained. It is preserved for historical and benchmarking purposes.

A complete rewrite is available (or in progress) using C++20, offering vastly improved maintainability, modularity, and code clarity.

What's in this Release

  • STM32 project using STM32CubeMX-generated code
  • Profiling via STM32_Profiler integrated into Core/
  • Project configured for improved performance via updated compiler flags
  • Third-party licenses included under the Licenses/ directory

Key Notes

  • The C++17 version is deprecated and not recommended for new development.
  • The profiling functionality is adapted from STM32_Profiler (MIT License).
  • Use this version only for reference or legacy benchmarking.

Licensing

All third-party components and license texts are included.
My own code is licensed under Apache 2.0.

C++17 PSOC 6 AI Example per Second Example

10 Sep 09:10
Compare
Choose a tag to compare

A fully precompiled example

It uses the PSOC 6 AI Board with its microphone, detects what has been said in the last second, and sends the detected word over the serial port.

Serial settings:

  • Baudrate: 115200
  • Data bits: 8
  • Stop bits: 1
  • Parity: None
  • Flow control: None

Board

https://www.infineon.com/evaluation-board/CY8CKIT-062S2-AI

Flashing the Binary

You can program the precompiled binary onto the board using ModusToolbox Programmer:

  1. Connect the board via USB.
  2. Open ModusToolbox Programmer.
  3. Select the connected kit.
  4. Load the provided .hex file.
  5. Click Program to flash the binary.

Bases for the unreleased Code:

https://github.com/Infineon/mtb-example-psoc6-dual-cpu-empty-app
https://github.com/Infineon/mtb-example-ml-deepcraft-deploy-audio

Disclaimer

This release provides only a precompiled binary intended for use with the
PSoC 6 AI Evaluation Kit.

It is provided for research and demonstration purposes only.
It was built using Infineon’s example projects, which are licensed under the
Cypress/Infineon End User License Agreement.

No Cypress/Infineon source code is redistributed here.

Use of this binary is subject to the terms of the Infineon EULA.