Radio channels classification microbit or Nano BLE Sense

Dear All,
I’m new on EdgeImpulse, so thanks in advance for any advise that you would give me.

Question/Issue:
If my board, for instance BBC:microbit or Arduino Nano BLE Sense, has two wireless channels.
Is it possible to create a ML model that classify these channels based on SNR or RSSI information?
I don’t understand how to create the dataset. It seems that most of the examples that I found for EdgeImpulse are written considering other features such as audios or images from camera.

Project ID:
Not started yet, because I don’t know how to build my dataset.

Context/Use case:
Data exchange between to wireless nodes.

Thank you.
Simone

Hi @simone-s,

My recommendation would be to capture your RSSI data in an CSV with timestamps. One sample might look like the following:

timestamp rssi_1 rssi_2
0, -76, -72
10, -73, -68
20, -70, -56
...
120, -81, 67

You can then import that data using our CSV Wizard. Please note that at this time, Edge Impulse does not work with more than one model at a time.

Hei @shawn_edgeimpulse,

Thank you for the reply.
Indeed, I’m doing it in the way that you suggested.

One question: how many measurements should I do?
I see that EdgeImpulse requires some minimum dataset.

Do I have to save each CSV with a label?
Do I have to split them to increase the number of datasets with labels?

If you can give me some hints, it might be very useful!

Best regards

Hi @simone-s,

The number of measurements is up to you, and it’s a tradeoff between resolution (sampling frequency), which gets you more information, and the amount of processing power and memory you can afford on your end device. For inferring channel information based on RSSI data, I do not know what kind of sampling frequency is required–I’m assuming that is something you are familiar with and could offer some insights into.

You need to save each .csv file with its own label: one label per CSV.

Hi @shawn_edgeimpulse,

Thank you for your comments.

The RSSI is something that changes for each message that I transmit with my radio.
If tx one message for each second, what should be the sampling frequency? I’m asking to understand the general rule.

For the rest, my final target is the Arduino Nano BLE Sense rev.2. How do I understand the amount of resources I need during the EdgeImpulse workflow?

best regards

Hi @simone-s,

I really do not know what kind of sampling frequency would be required to identify signals based on RSSI. That’s something you would need to experiment with. My suggestion is to sample at the highest possible frequency, see if you can train a model to classify signals accurately, then downsample and try again. Keep downsampling until your model accuracy is no longer acceptable.

Edge Impulse will automatically estimate the resources required to run your model for a given platform. On the dashboard of your project, select your target board (or something close to it). Once you have trained your model, head to the Deployment page, select your deployment method (e.g. Arduino library), and you should see an estimate of RAM, flash, and inference times listed in a chart.