AT COMMANDS, ATCI .src code

I’m trying to find the embedded application layers AT commands source code, at least the ATCI (AT Command Interpreter) source code
1- Is such source code available? If yes, where?

if not,
2- Can someone explain how the ATCI comes bumbled together with processing-pack+algos into the STM32 Discovery Kit executable .bin file

Went thought this: https://docs.edgeimpulse.com/reference#remote-mgmt-serial-protocol
Not sure I’m at the right place.
Also navigated GitHub, but haven’t seen any ATCI apps layer code (perhaps I missed it)

Thanks

Hi @vincent_alcouffe,

The AT commands are registered here and the source of the interpreter is here. It’s all pretty closely tied to Mbed (interrupt handlers, event signaling, etc.) but should probably work as-is on other Mbed OS boards.

Can someone explain how the ATCI comes bumbled together with processing-pack+algos into the STM32 Discovery Kit executable .bin file

So when we compile the application we:

  1. Build a package that contains all configuration (in model_metadata.h), the C++ inferencing SDK, and all trained learning blocks. This is the same package you get when you export as a C++ library.
  2. Then take the firmware-st-b-l475e-iot01a project and unzip the package into the source folder.
  3. Build the project (using the same instructions as are in the firmware project).

That’s it! So you’ll always get the latest version of our internal firmware, plus your own machine learning model.

Speed of light answer @janjongboom . Thanks !
99% crystal clear now!

The remaining 1% , out of curiosity, is, how does AT+RUNIMPULSE work… as i perhaps (again) missed its source code.
Actually, I’m curious to learn what does exactly this command trigger ?

Happy coding.
`

Thanks @vincent_alcouffe, AT+RUNIMPULSE is declared in main.cpp, which then starts capturing data from the sensor, caches it on flash or in RAM (depending on the sensor), and then calls run_classifier. This function is part of the inferencing SDK and is the main entrypoint for all the DSP & ML operations. Underneath it takes the raw signal, runs the signal processing steps to preprocess the data, and then invokes the learning blocks (e.g. anomaly detection or neural network), and puts the results in a struct.

It’s probably easier to see through the Running your impulse locally tutorial. It comes with a small C++ application that directly calls the classifier.

Hi @janjongboom. Can we compile the demo firmware firmware-st-b-l475e-iot01a with the wifi disabled (MACRO SWITCH)?
Instead I want to test the firmware with the serial deamon to upload training data to edge impulse.

Just run:

edge-impulse-daemon —clean

And Choose “n” for WiFi. This gives you the same behaviour.

To prevent asking for connection again in the future then start the daemon with:

edge-impulse-daemon —silent

Thanks a lot. I will try and revert back.