Seeed XIAO BLE Sense data forwarding over BLE


I am using this dev board for an application that eventually will determine a number of gestures. I need to be able to stream the IMU data wirelessly for the model training, since the gestures require that there are no cables connected. Does anyone know the best way to go about this?

I have been trying all day to get the data to stream through a virtual serial port by sending it over a BLE connection. I have the code working on the board, I can connect it and create a virtual serial port (rfcomm0) but when I look at the port I have no data and the edge-impulse-data-forwarder cli doesn’t see it either. I have an LED indicator to show that board is connected to bluetooth and that it is running the loop that streams the IMU data, but the serial.Print() data is not available to me unless I connect to the PC via a USB cable. I guess the serial.Print() is probably not the correct way to send the data in this manner.

Anyone can point me in the right direction?

Did you redefine Serial? If not, writing to Bluetooth looks something like:

BLEUart bleuart; // UART over BLE
bleuart.begin(); // Configure and Start BLE UART Service
bleuart.write( buf, count );

Thank you for the information. It has been a while because I had to put this project down for a while.

I have my data coming through a serial port now. Is there a way to point the data forwarder to it? I can see the data when I view the serial port using cat but the data forwarder doesn’t find it and I don’t see any way of adding parameters to the data forwarder.

Image attached shows the data coming through the port when I use cat, and the settings of that serial port (ttyS0) along with the error that the data forwarder cant find any devices connected over serial port. The data in question is 6-axis IMU data.

Make sure to shutdown sudo cat ttys0 before running the EI Data Forwarder.

1 Like

It is not running at the same time. Perhaps it’s because it is a symlink to a virtual port that it is not detected? Is there any way to manually point the application to the desired port?