- Seeed Studio
- Getting started with XIAO BLE Sense on Windows
- Arduino IDE
- nRF52840 by Nordic Semiconductor
- Floating-point unit (FCU)
- Device Firmware Upgrade (DFU)
- adafruit-nrfutil
- Arduino IDE > File > Preferences > Settings > Additional Boards Manager URLs > https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json > OK
- Arduino IDE > Tools > Board > Board Manager > seeed nrf52 > Seeed nRF52 Boards > 2.7.2 > Install
- Arduino IDE > Tools > Board > Seeed nRF Boards > Seeed XIAO BLE Sense - nRF52840
- Quit Arduino IDE
- Arduino IDE > Tools > Port > COM* (Seeed XIAO BLE Sense - nRF52840)
- Collaborators
- Setup Arduino IDE on Raspberry Pi to support Seeed XIAO BLE Sense
- Seeed XIAO BLE Sense with Arduino IDE on Raspberry Pi OS > exec: "adafruit-nrfutil": executable file not found in $PATH > Error compiling for board Seeed XIAO nRF52840 Sense
pi@raspberrypy:~ $ pip3 install --user adafruit-nrfutil
pi@raspberrypy:~ $ adafruit-nrfutil version
adafruit-nrfutil version 0.5.3.post17
- Seeed XIAO BLE Sense with Arduino IDE on macOS > /Users/.../Library/Arduino15/packages/Seeeduino/hardware/nrf52/2.6.1/tools/adafruit-nrfutil/macos/adafruit-nrfutil: permission denied > Error compiling for board Seeed XIAO BLE Sense - nRF52840
- The subfolder name nrf52 for versions 2.6.1 and 1.0.0 becomes mbed for version 2.7.2 with executable adafruit-nrfutil
$ cd Library/Arduino15/packages/Seeeduino/hardware/nrf52/2.6.1/tools/adafruit-nrfutil/macos/
$ chmod +x adafruit-nrfutil
$ ./adafruit-nrfutil version
adafruit-nrfutil version 0.5.3.post12
- A deep sleep example showed power consumption about 3µA
- A fully charged 3.7 V 100 mAh lithium polymer battery may power the blink example up to 68 hours and 52 hours for the first and second times, respectively
- Arduino IDE > File > Examples > Build-in Examples > 01.Basics > Blink
- Keeping the battery above 50% is recommended
- 6-Axis IMU Usage on XIAO BLE Sense
- Inertial measurement unit (IMU)
- Seeed_Arduino_LSM6DS3 > Code > Download ZIP
- Arduino IDE > Sketch > Include Library > Add .ZIP Library
- Arduino IDE > File > Examples > Seeed Arduino LSM6DS3 > HighLevelExample > Upload
- LSM6DS3 iNEMO inertial module: always-on 3D accelerometer and 3D gyroscope
- PDM Microphone Usage on XIAO BLE Sense
- Pulse-code modulation (PCM)
- Pulse-density modulation (PDM)
- Adafruit PDM microphone breakout
- MSM261D3526H1CPM MEMS microphone
- Seeed_Arduino_Mic > Code > Download ZIP
- Arduino IDE > Sketch > Include Library > Add .ZIP Library
- Arduino IDE > File > Examples > Seed Arduino Mic > mic_serial_plotter > Upload
- Getting started with Wio terminal
- Thin-film-transistor liquid-crystal display (TFT LCD)
- Direct memory access (DMA)
- Interrupt service routines (ISR) also known as interrupt handler
- Wio audio spectrum display
- Speech Recognition on XIAO BLE Sense
- Arduino_TensorFlowLite > Code > Download ZIP
- Arduino IDE > Sketch > Include Library > Add .ZIP Library
- Arduino IDE > File > Examples > Arduino_TensorFlowLite > micro_speech > Upload
- Bluetooth Usage on XIAO BLE Sense
- ArduinoBLE > Code > Download ZIP
- Arduino IDE > Sketch > Include Library > Add .ZIP Library
- Arduino IDE > File > Examples > INCOMPATIBLE > ArduinoBLE > Peripheral > LED > Upload
- Arduino IDE > Tools > Serial Monitor
- When the board is powered by a battery, comment out
while(!Serial);
that pauses the code until the Arduino IDE serial monitor is open - LightBlue apps by Punch Through > Peripherals Nearby > Arduino
- Web Bluetooth API
- Web Bluetooth demos
- Motion Recognition Based on Edge Impulse
- U8g2 Monochrome Display Library > Code > Download ZIP
- Arduino IDE > Sketch > Include Library > Add .ZIP Library
- Arduino IDE > XIAO-display.ino
- Arduino IDE > XIAO-gestures.ino
- Edge Impulse
- Edge Impulse > Create new project > XIAO-BLE-gestures > Developer (20 min job limit, 4GB or 4 hours of data, limited collaboration) > Accelerometer data > Let's get started
- Open a terminal to install the Edge Impulse CLI that requires Python 3 and Node.js, e.g., node 16.15.1 and npm 8.11.0
- Run the Edge Impulse Data Forwarder to connect the XIAO BLE Sense
- Edge Impulse > Data acquisition > Record new data > Label: left-right > Sample length (ms.): 20000 > Frequency: 50Hz > Start sampling > Collected data > ⋮ > Split Sample > + Add Segment per second > Split
- Data acquisition > Record new data > Label: idle > …
- Data acquisition > Record new data > Label: up-down > …
- Dashboard > Danger zone > Perform train / test split > Yes, perform the train / test split > Confirm > Dataset was rebalanced > OK
- Impulse design > Create impulse > Time series data > Uncheck "Zero-pad data" > Add a processing block > Spectral Analysis > Add a learning block > Classification (Keras) > Save Impulse
- Impulse design > Spectral features > Save parameters > Check "Calculate feature importance" > Generate features
- Impulse design > NN Classifier > Check "Auto-balance dataset" > Start training
- Model testing > Classify all
- Deployment > Arduino library > Build > XIAO-BLE-gestures_inferencing.zip
- Arduino IDE > Sketch > Include Library > Add .ZIP Library
- Arduino IDE > File > Examples > XIAO-BLE-gestures_inferencing
- Arduino IDE > XIAOEI.ino
On Windows
npm install -g edge-impulse-cli --force
edge-impulse-data-forwarder
If "edge-impulse-data-forwarder.ps1 cannot be loaded because running scripts is disabled on this system," update Windows PowerShell execution policy with the following command to allow running scripts
Set-ExecutionPolicy unrestricted
On macOS
sudo npm install -g edge-impulse-cli --force
edge-impulse-data-forwarder
If edge-impulse-data-forwarder command not found
sudo chown -R $USER /usr/local/lib/node_modules
On both Windows and macOS
Sensor reading shall be all numbers
What is your user name or e-mail address(edgeimpulse.com)?
What is your password?
To which project do you want to connect this device? Motion Recognition with XIAO BLE SENSE
3 sensor axes detected (example values: [9.6105,-15.7887,-2.7459]). What do you want to call them? Separate the names
with ',': Ax,Ay,Az
What name do you want to give this device? XIAO BLE SENSE
To clean the configuration
edge-impulse-data-forwarder --clean
To override the frequency
edge-impulse-data-forwarder --frequency 100
To set a different baud rate
edge-impulse-data-forwarder --baud-rate 460800