LogoLogo
HomeAPI & SDKsProjectsForumStudio
  • Getting started
    • For beginners
    • For ML practitioners
    • For embedded engineers
  • Frequently asked questions (FAQ)
  • Tutorials
    • End-to-end tutorials
      • Computer vision
        • Image classification
        • Object detection
          • Object detection with bounding boxes
          • Detect objects with centroid (FOMO)
        • Visual anomaly detection
        • Visual regression
      • Audio
        • Sound recognition
        • Keyword spotting
      • Time-series
        • Motion recognition + anomaly detection
        • Regression + anomaly detection
        • HR/HRV
        • Environmental (Sensor fusion)
    • Data
      • Data ingestion
        • Collecting image data from the Studio
        • Collecting image data with your mobile phone
        • Collecting image data with the OpenMV Cam H7 Plus
        • Using the Edge Impulse Python SDK to upload and download data
        • Trigger connected board data sampling
        • Ingest multi-labeled data using the API
      • Synthetic data
        • Generate audio datasets using Eleven Labs
        • Generate image datasets using Dall-E
        • Generate keyword spotting datasets using Google TTS
        • Generate physics simulation datasets using PyBullet
        • Generate timeseries data with MATLAB
      • Labeling
        • Label audio data using your existing models
        • Label image data using GPT-4o
      • Edge Impulse Datasets
    • Feature extraction
      • Building custom processing blocks
      • Sensor fusion using embeddings
    • Machine learning
      • Classification with multiple 2D input features
      • Visualize neural networks decisions with Grad-CAM
      • Sensor fusion using embeddings
      • FOMO self-attention
    • Inferencing & post-processing
      • Count objects using FOMO
      • Continuous audio sampling
      • Multi-impulse (C++)
      • Multi-impulse (Python)
    • Lifecycle management
      • CI/CD with GitHub Actions
      • Data aquisition from S3 object store - Golioth on AI
      • OTA model updates
        • with Arduino IDE (for ESP32)
        • with Arduino IoT Cloud
        • with Blues Wireless
        • with Docker on Allxon
        • with Docker on Balena
        • with Docker on NVIDIA Jetson
        • with Espressif IDF
        • with Nordic Thingy53 and the Edge Impulse app
        • with Particle Workbench
        • with Zephyr on Golioth
    • API examples
      • Customize the EON Tuner
      • Ingest multi-labeled data using the API
      • Python API bindings example
      • Running jobs using the API
      • Trigger connected board data sampling
    • Python SDK examples
      • Using the Edge Impulse Python SDK to run EON Tuner
      • Using the Edge Impulse Python SDK to upload and download data
      • Using the Edge Impulse Python SDK with Hugging Face
      • Using the Edge Impulse Python SDK with SageMaker Studio
      • Using the Edge Impulse Python SDK with TensorFlow and Keras
      • Using the Edge Impulse Python SDK with Weights & Biases
    • Expert network projects
  • Edge Impulse Studio
    • Organization hub
      • Users
      • Data campaigns
      • Data
        • Cloud data storage
      • Data pipelines
      • Data transformation
        • Transformation blocks
      • Upload portals
      • Custom blocks
        • Custom AI labeling blocks
        • Custom deployment blocks
        • Custom learning blocks
        • Custom processing blocks
        • Custom synthetic data blocks
        • Custom transformation blocks
      • Health reference design
        • Synchronizing clinical data with a bucket
        • Validating clinical data
        • Querying clinical data
        • Transforming clinical data
    • Project dashboard
      • Select AI hardware
    • Devices
    • Data acquisition
      • Uploader
      • Data explorer
      • Data sources
      • Synthetic data
      • Labeling queue
      • AI labeling
      • CSV Wizard (time-series)
      • Multi-label (time-series)
      • Tabular data (pre-processed & non-time-series)
      • Metadata
      • Auto-labeler | deprecated
    • Impulses
    • EON Tuner
      • Search space
    • Processing blocks
      • Audio MFCC
      • Audio MFE
      • Audio Syntiant
      • Flatten
      • HR/HRV features
      • Image
      • IMU Syntiant
      • Raw data
      • Spectral features
      • Spectrogram
      • Custom processing blocks
      • Feature explorer
    • Learning blocks
      • Anomaly detection (GMM)
      • Anomaly detection (K-means)
      • Classification
      • Classical ML
      • Object detection
        • MobileNetV2 SSD FPN
        • FOMO: Object detection for constrained devices
      • Object tracking
      • Regression
      • Transfer learning (images)
      • Transfer learning (keyword spotting)
      • Visual anomaly detection (FOMO-AD)
      • Custom learning blocks
      • Expert mode
      • NVIDIA TAO | deprecated
    • Retrain model
    • Live classification
    • Model testing
    • Performance calibration
    • Deployment
      • EON Compiler
      • Custom deployment blocks
    • Versioning
    • Bring your own model (BYOM)
    • File specifications
      • deployment-metadata.json
      • ei-metadata.json
      • ids.json
      • parameters.json
      • sample_id_details.json
      • train_input.json
  • Tools
    • API and SDK references
    • Edge Impulse CLI
      • Installation
      • Serial daemon
      • Uploader
      • Data forwarder
      • Impulse runner
      • Blocks
      • Himax flash tool
    • Edge Impulse for Linux
      • Linux Node.js SDK
      • Linux Go SDK
      • Linux C++ SDK
      • Linux Python SDK
      • Flex delegates
      • Rust Library
    • Rust Library
    • Edge Impulse Python SDK
  • Run inference
    • C++ library
      • As a generic C++ library
      • On Android
      • On your desktop computer
      • On your Alif Ensemble Series Device
      • On your Espressif ESP-EYE (ESP32) development board
      • On your Himax WE-I Plus
      • On your Raspberry Pi Pico (RP2040) development board
      • On your SiLabs Thunderboard Sense 2
      • On your Spresense by Sony development board
      • On your Syntiant TinyML Board
      • On your TI LaunchPad using GCC and the SimpleLink SDK
      • On your Zephyr-based Nordic Semiconductor development board
    • Arm Keil MDK CMSIS-PACK
    • Arduino library
      • Arduino IDE 1.18
    • Cube.MX CMSIS-PACK
    • Docker container
    • DRP-AI library
      • DRP-AI on your Renesas development board
      • DRP-AI TVM i8 on Renesas RZ/V2H
    • IAR library
    • Linux EIM executable
    • OpenMV
    • Particle library
    • Qualcomm IM SDK GStreamer
    • WebAssembly
      • Through WebAssembly (Node.js)
      • Through WebAssembly (browser)
    • Edge Impulse firmwares
    • Hardware specific tutorials
      • Image classification - Sony Spresense
      • Audio event detection with Particle boards
      • Motion recognition - Particle - Photon 2 & Boron
      • Motion recognition - RASynBoard
      • Motion recognition - Syntiant
      • Object detection - SiLabs xG24 Dev Kit
      • Sound recognition - TI LaunchXL
      • Keyword spotting - TI LaunchXL
      • Keyword spotting - Syntiant - RC Commands
      • Running NVIDIA TAO models on the Renesas RA8D1
      • Two cameras, two models - running multiple object detection models on the RZ/V2L
  • Edge AI Hardware
    • Overview
    • Production-ready
      • Advantech ICAM-540
      • Seeed SenseCAP A1101
      • Industry reference design - BrickML
    • MCU
      • Ambiq Apollo4 family of SoCs
      • Ambiq Apollo510
      • Arducam Pico4ML TinyML Dev Kit
      • Arduino Nano 33 BLE Sense
      • Arduino Nicla Sense ME
      • Arduino Nicla Vision
      • Arduino Portenta H7
      • Blues Wireless Swan
      • Espressif ESP-EYE
      • Himax WE-I Plus
      • Infineon CY8CKIT-062-BLE Pioneer Kit
      • Infineon CY8CKIT-062S2 Pioneer Kit
      • Nordic Semi nRF52840 DK
      • Nordic Semi nRF5340 DK
      • Nordic Semi nRF9160 DK
      • Nordic Semi nRF9161 DK
      • Nordic Semi nRF9151 DK
      • Nordic Semi nRF7002 DK
      • Nordic Semi Thingy:53
      • Nordic Semi Thingy:91
      • Open MV Cam H7 Plus
      • Particle Photon 2
      • Particle Boron
      • RAKwireless WisBlock
      • Raspberry Pi RP2040
      • Renesas CK-RA6M5 Cloud Kit
      • Renesas EK-RA8D1
      • Seeed Wio Terminal
      • Seeed XIAO nRF52840 Sense
      • Seeed XIAO ESP32 S3 Sense
      • SiLabs Thunderboard Sense 2
      • Sony's Spresense
      • ST B-L475E-IOT01A
      • TI CC1352P Launchpad
    • MCU + AI accelerators
      • Alif Ensemble
      • Arduino Nicla Voice
      • Avnet RASynBoard
      • Seeed Grove - Vision AI Module
      • Seeed Grove Vision AI Module V2 (WiseEye2)
      • Himax WiseEye2 Module and ISM Devboard
      • SiLabs xG24 Dev Kit
      • STMicroelectronics STM32N6570-DK
      • Synaptics Katana EVK
      • Syntiant Tiny ML Board
    • CPU
      • macOS
      • Linux x86_64
      • Raspberry Pi 4
      • Raspberry Pi 5
      • Texas Instruments SK-AM62
      • Microchip SAMA7G54
      • Renesas RZ/G2L
    • CPU + AI accelerators
      • AVNET RZBoard V2L
      • BrainChip AKD1000
      • i.MX 8M Plus EVK
      • Digi ConnectCore 93 Development Kit
      • MemryX MX3
      • MistyWest MistySOM RZ/V2L
      • Qualcomm Dragonwing RB3 Gen 2 Dev Kit
      • Renesas RZ/V2L
      • Renesas RZ/V2H
      • IMDT RZ/V2H
      • Texas Instruments SK-TDA4VM
      • Texas Instruments SK-AM62A-LP
      • Texas Instruments SK-AM68A
      • Thundercomm Rubik Pi 3
    • GPU
      • Advantech ICAM-540
      • NVIDIA Jetson
      • Seeed reComputer Jetson
    • Mobile phone
    • Porting guide
  • Integrations
    • Arduino Machine Learning Tools
    • AWS IoT Greengrass
    • Embedded IDEs - Open-CMSIS
    • NVIDIA Omniverse
    • Scailable
    • Weights & Biases
  • Tips & Tricks
    • Combining impulses
    • Increasing model performance
    • Optimizing compute time
    • Inference performance metrics
  • Concepts
    • Glossary
    • Course: Edge AI Fundamentals
      • Introduction to edge AI
      • What is edge computing?
      • What is machine learning (ML)?
      • What is edge AI?
      • How to choose an edge AI device
      • Edge AI lifecycle
      • What is edge MLOps?
      • What is Edge Impulse?
      • Case study: Izoelektro smart grid monitoring
      • Test and certification
    • Data engineering
      • Audio feature extraction
      • Motion feature extraction
    • Machine learning
      • Data augmentation
      • Evaluation metrics
      • Neural networks
        • Layers
        • Activation functions
        • Loss functions
        • Optimizers
          • Learned optimizer (VeLO)
        • Epochs
    • What is embedded ML, anyway?
    • What is edge machine learning (edge ML)?
Powered by GitBook
On this page
  • Installing dependencies
  • Connecting to Edge Impulse
  • Next steps: building a machine learning model
  • Connecting to the nRF Edge Impulse mobile application
  • Using the Thingy53 with WiFi
  • Troubleshooting

Was this helpful?

Export as PDF
  1. Edge AI Hardware
  2. MCU

Nordic Semi Thingy:53

PreviousNordic Semi nRF7002 DKNextNordic Semi Thingy:91

Last updated 2 months ago

Was this helpful?

The Nordic Thingy:53™ is an easy-to-use prototyping platform, it makes it possible to create prototypes and proof-of-concepts without the need to build custom hardware. Thingy:53 is built around the . The capacity of its dual Arm Cortex-M33 processors enables it to do embedded machine learning (ML), both collecting data and running trained ML models on the device. The Bluetooth Low Energy radio allows it to connect to smart phones, tablets, laptops and similar devices, without the need for a wired connection. Other protocols like Thread, Zigbee and proprietary 2.4 GHz protocols are also supported by the radio. It also includes a well of different integrated sensors, an NFC antenna, and has two buttons and one RGB LED that simplifies input and output.

Nordic's Thingy:53 is fully supported by Edge Impulse and every Thingy:53 is shipped with already flashed. You'll be able to sample raw data, build models, and deploy trained machine learning models directly out-of-the-box via the Edge Impulse Studio or the Nordic nRF Edge Impulse and apps over BLE connection.

The Edge Impulse firmware for this development board is open source and hosted on GitHub: .

Installing dependencies

To set this device up in Edge Impulse via USB serial or external debug probe, you will need to install the following software:

  1. On Linux:

    • GNU Screen: install for example via sudo apt install screen.

Problems installing the CLI?

Updating the firmware

1. Connect the development board to your computer

Use a USB cable to connect the development board to your computer. Then, set the power switch to 'on'.

2. Download the firmware

Download the latest Edge Impulse firmware:

    • *-full.zip contains HEX files to upgrade the device through the external probe.

    • *-dfu.zip contains dfu_application.zip package to upgrade the already flashed device through the Serial/USB bootloader.

3. Update the firmware

Connecting to Edge Impulse

Through nRF Edge Impulse mobile app

Through serial connection

With all the software in place it's time to connect the development board to Edge Impulse. From a command prompt or terminal, run:

edge-impulse-daemon

This starts a wizard which asks you to log in and choose an Edge Impulse project. If you want to switch projects run the command with --clean.

If prompted to select a device, choose ZEPHYR:

? Which device do you want to connect to?
❯ /dev/tty.usbmodem141301 (ZEPHYR)

Verifying connection of device

Next steps: building a machine learning model

With everything set up you can now build your first machine learning model with this tutorial:

Connecting to the nRF Edge Impulse mobile application

Now that you have created an Edge Impulse account and trained your first Edge Impulse machine learning model, using the Nordic nRF Edge Impulse app you can deploy your impulse to your Nordic Thingy:53 and acquire/upload new sensor data into your Edge Impulse projects.

Installation & Login

Connect or remove a device

Select the Devices tab to connect to your Thingy:53 device to your mobile phone:

To remove your connected Thingy:53 from your project, select the connected device name and scroll to the bottom of the device page to remove it.

Data Acquisition

To view existing data samples in your Edge Impulse project, select the Data Acquisition tab. To record and upload a new data sample into your project, click on the "+" button at the top right of the app. Select your sensor, type in the sample label, and choose a sample length and frequency, then select Start Sampling.

Deployment

Build and deploy your Edge Impulse model to your Thingy:53 via the Deployment tab. Select your project from the top drop-down, select your connected Thingy:53 device, and click Build:

The app will start building your project and uploading the firmware to the connected Thingy:53:

Inferencing

Select the Inferencing tab to view the inference results of the model flashed to the connected Thingy:53:

Using the Thingy53 with WiFi

The Nordic Thingy53 can also be using with the nRF7002eb expansion board as shown below.

The nRF7002eb is a companion IC, providing seamless WiFi connectivity and WiFi-based locationing (SSID sniffing of local WiFi hubs). With WiFi 6 the nRF7002eb brings added benefits to IoT applications including further efficiency gains that support long-life, battery-powered WiFi operation.

With this expansion board, you will be able to collect and upload data from your Thingy53 to your application over a WiFi connection.

Update the firmware

The WiFi capabilities of the Thingy53 are sandboxed in a different firmware. This helps users to choose whether they want to use the WiFi module or not and prevents consumption of extra memory if they choose not to. Therefore, to enable the WiFi capabilities of Thingy53, download the following Edge Impulse firmware:

    • *-full.zip contains HEX files to upgrade the device through the external probe.

    • *-dfu.zip contains dfu_application.zip package to upgrade the already flashed device through the Serial/USB.

Connect the Thingy53 to WiFi

Once the firmware has been updated, you will need to set up the WiFi connection between the Thingy53 and your WiFi. Make sure that the nRF7002eb WiFi module is plugged into the Thingy53 as shown in the image above. To setup the WiFi connection, simply run:

edge-impulse-daemon

This starts a wizard that helps you login to your Edge Impulse account and choose a project you want to connect your device to.

Note: If you want to switch accounts, projects or WiFi network, run the command with --clean

When prompted to select a device, choose the option with the higher USB modem number:

? Which device do you want to connect to? (Use arrow keys)
❯ /dev/tty.usbmodem103 (ZEPHYR) 
  /dev/tty.usbmodem101 (ZEPHYR) 

The wizard will now proceed to read the configuration of the device. If no WiFi connection is found, you will be prompted to connect to one. After you select Yes, it will proceed to scan for available WiFi networks:

? WiFi is not connected, do you want to set up a WiFi net
work now? Yes
Scanning WiFi networks...

Once scanning is complete, it will show you a list of available networks. You can use the arrow keys to select your network and proceed to enter the password. Once the Thingy53 is connected to the WiFi, the daemon will automatically disconnect as there's no need to keep a serial connection open.

? Select WiFi network (Use arrow keys)
❯ SSID: Vodafone-174C, Security: WPA2-PSK (1),RSSI: -54 dBm 
  SSID: Coyote, Security: WPA2-PSK (1),RSSI: -57 dBm 
  SSID: FRITZ!Box 7590 SH, Security: WPA2-PSK (1),RSSI: -64 dBm 
  SSID: Vodafone-7047, Security: WPA2-PSK (1),RSSI: -65 dBm 
  SSID: Vodafone-174C, Security: WPA2-PSK (1),RSSI: -66 dBm 
  SSID: FRITZ!Repeater 1200, Security: WPA2-PSK (1),RSSI: -73 dBm 

? Enter password for network "Vodafone-174C" ...
Connecting to "Vodafone-174C"...

[SER] Serial is connected, trying to read config...
[SER] Retrieved configuration
[SER] Device is running AT command version 1.8.0

[SER] Device is connected over WiFi to remote management API, no need to run the daemon. Exiting...

You can now disconnect the USB-C cable and remove the physical connection of the Thingy53 to your computer.

Verifying connection of device

Now your device should be connected to the project you chose during the initial setup. To verify that the device is connected, navigate to the Devices tab of your project. The connected device should be listed here:

You can now move to the Data acquisition tab of your project and start collecting data without being restricted to where your computer is.

Flashing your model

Inferencing

edge-impulse-run-inference

This will then display the inference results, in this case classify the motion of the Thingy53, in the terminal:

Inferencing settings:
	Interval: 16.0000ms.
	Frame size: 375
	Sample length: 2000.00 ms.
	No. of classes: 4
Starting inferencing in 2 seconds...
Predictions (DSP: 25 ms., Classification: 0 ms., Anomaly: 0 ms.): 
    idle: 	0.996094
    snake: 	0.000000
    updown: 	0.000000
    wave: 	0.000000
    anomaly score: -0.375301

The integration of the nRF7002eb with Edge Impulse allows users to integrate advanced machine learning models, enabling smarter and more responsive IoT applications with even more ease. The synergy between the nRF7002eb EK and Edge Impulse paves the way for innovative applications in areas such as predictive maintenance, anomaly detection, and real-time data analysis.

Settings

Select the Settings tab to view your logged-in account information, BLE scanner settings, and application version. Click on your account name to view your Edge Impulse projects and logout of your account.

Troubleshooting

Lost BLE connection to device

  • Reconnect your device by selecting your device name on the Devices tab and click "Reconnect".

  • Make sure power cables are plugged in properly.

  • Do not use iPhone/Android app multitasking during data acquisition, firmware deployment, or inferencing tasks, as the BLE streaming connection will be closed.

Switch WiFi network or project

  • Reconnect your device to your computer using a USB-C cable.

  • Run edge-impulse-daemon --clean. End the process by pressing CTRL+c on your keyboard, do not login at this step.

  • Disconnect the Thingy53 and restart using the switch on the side.

  • Reconnect to your computer and run edge-impulse-daemon. Follow instructions above to choose a different project of WiFi network.

(only needed to update device firmware through USB or external debug probe).

.

See the guide.

A brand new Thingy:53 devices will work out-of-the-box with the Edge Impulse Studio and the Nordic nRF Edge Impulse and apps. However, if your device has been flashed with some other firmware, then follow the steps below to update your device to the latest Edge Impulse firmware.

to update the firmware on the Thingy:53 through your choice of debugging connection:

.

.

.

See the section below on .

Alternatively, recent versions of Google Chrome and Microsoft Edge can collect data directly from your development board, without the need for the Edge Impulse CLI. See for more information.

That's all! Your device is now connected to Edge Impulse. To verify this, go to , and click Devices. The device will be listed here.

.

Looking to connect different sensors? The lets you easily send data from any sensor into Edge Impulse.

Download and install the Nordic nRF Edge Impulse app for your or phone.

Open the app and login with your edgeimpulse.com credentials:

Select your Thingy:53 project from the drop-down menu at the top:

If you encounter connection errors during deployment, please see .

Every Thingy:53 is shipped with a default Edge Impulse model. This model is created from the and it's .

Connect the Thingy53 to your computer with a USB-C cable and update the firmware following instructions described in .

When using the nRF7002eb expansion board, you will not be able to connect to the Nordic nRF Edge Impulse app on your phone. The best way to flash your model is by navigating to the Deployment tab of your project and downloading the built firmware from there. You can follow the instructions in to flash your model onto your device.

The firmware for the Thingy53 provided above, ships with a default motion detection model. This model is created from the and it's . To see the inferencing results of this model, reconnect the the device to your computer with a USB-C cable and run:

nRF Connect for Desktop v3.11.1
Edge Impulse CLI
Installation and troubleshooting
iPhone
Android
Edge Impulse firmware: nordic-thingy53-full.zip
Edge Impulse firmware: nordic-thingy53-dfu.zip
Follow Nordic's instructions
Updating through Bluetooth LE
Updating through USB
Updating through external debug probe
this blog post
your Edge Impulse project
Building a continuous motion recognition system
Data forwarder
iPhone
Android
Tutorial: Continuous motion recognition
corresponding Edge Impulse project
Edge Impulse firmware: nordic-thingy53-WiFi-full.zip
Edge Impulse firmware: nordic-thingy53-WiFi-dfu.zip
Tutorial: Continuous motion recognition
corresponding Edge Impulse project
Connecting to the nRF Edge Impulse mobile application
Troubleshooting
section 3 of updating the firmware
section 3 of updating the firmware
nRF5340 SoC
Edge Impulse firmware
iPhone
Android
edgeimpulse/firmware-nordic-thingy53
Thingy:53
Thingy:53 in Devices tab
Select a device.
Connect a new device.
Connected devices.
Successfully connected Thingy:53.
Delete a connected Thingy:53.
Data acquisition tab.
Record new data.
Start sampling new data.
Deployment tab.
Building...
Uploading...
Success!
Continuous gestures inferencing results.
Thingy53 with the nRF7002eb Expansion Board
Device connected over WiFi
Settings tab.
Projects and logout.