LogoLogo
HomeDocsAPIProjectsForum
  • Getting Started
    • For beginners
    • For ML practitioners
    • For embedded engineers
  • Frequently asked questions
  • Tutorials
    • End-to-end tutorials
      • Continuous motion recognition
      • Responding to your voice
      • Recognize sounds from audio
      • Adding sight to your sensors
        • Collecting image data from the Studio
        • Collecting image data with your mobile phone
        • Collecting image data with the OpenMV Cam H7 Plus
      • Object detection
        • Detect objects using MobileNet SSD
        • Detect objects with FOMO
      • Sensor fusion
      • Sensor fusion using Embeddings
      • Processing PPG input with HR/HRV Features Block
      • Industrial Anomaly Detection on Arduino® Opta® PLC
    • Advanced inferencing
      • Continuous audio sampling
      • Multi-impulse
      • Count objects using FOMO
    • API examples
      • Running jobs using the API
      • Python API Bindings Example
      • Customize the EON Tuner
      • Ingest multi-labeled data using the API
      • Trigger connected board data sampling
    • ML & data engineering
      • EI Python SDK
        • Using the Edge Impulse Python SDK with TensorFlow and Keras
        • Using the Edge Impulse Python SDK to run EON Tuner
        • Using the Edge Impulse Python SDK with Hugging Face
        • Using the Edge Impulse Python SDK with Weights & Biases
        • Using the Edge Impulse Python SDK with SageMaker Studio
        • Using the Edge Impulse Python SDK to upload and download data
      • Label image data using GPT-4o
      • Label audio data using your existing models
      • Generate synthetic datasets
        • Generate image datasets using Dall·E
        • Generate keyword spotting datasets
        • Generate physics simulation datasets
        • Generate audio datasets using Eleven Labs
      • FOMO self-attention
    • Lifecycle Management
      • CI/CD with GitHub Actions
      • OTA Model Updates
        • with Nordic Thingy53 and the Edge Impulse APP
      • Data Aquisition from S3 Object Store - Golioth on AI
    • Expert network projects
  • Edge Impulse Studio
    • Organization hub
      • Users
      • Data campaigns
      • Data
      • Data transformation
      • Upload portals
      • Custom blocks
        • Transformation blocks
        • Deployment blocks
          • Deployment metadata spec
      • Health Reference Design
        • Synchronizing clinical data with a bucket
        • Validating clinical data
        • Querying clinical data
        • Transforming clinical data
        • Buildling data pipelines
    • 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]
    • Impulse design & Experiments
    • Bring your own model (BYOM)
    • Processing blocks
      • Raw data
      • Flatten
      • Image
      • Spectral features
      • Spectrogram
      • Audio MFE
      • Audio MFCC
      • Audio Syntiant
      • IMU Syntiant
      • HR/HRV features
      • Building custom processing blocks
        • Hosting custom DSP blocks
      • Feature explorer
    • Learning blocks
      • Classification (Keras)
      • Anomaly detection (K-means)
      • Anomaly detection (GMM)
      • Visual anomaly detection (FOMO-AD)
      • Regression (Keras)
      • Transfer learning (Images)
      • Transfer learning (Keyword Spotting)
      • Object detection (Images)
        • MobileNetV2 SSD FPN
        • FOMO: Object detection for constrained devices
      • NVIDIA TAO (Object detection & Images)
      • Classical ML
      • Community learn blocks
      • Expert Mode
      • Custom learning blocks
    • EON Tuner
      • Search space
    • Retrain model
    • Live classification
    • Model testing
    • Performance calibration
    • Deployment
      • EON Compiler
      • Custom deployment blocks
    • Versioning
  • 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
    • Edge Impulse Python SDK
  • Run inference
    • C++ library
      • As a generic C++ library
      • On your desktop computer
      • On your Zephyr-based Nordic Semiconductor development board
    • Linux EIM Executable
    • WebAssembly
      • Through WebAssembly (Node.js)
      • Through WebAssembly (browser)
    • Docker container
    • Edge Impulse firmwares
  • Edge AI Hardware
    • Overview
    • MCU
      • 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
    • CPU
      • macOS
      • Linux x86_64
    • Mobile Phone
    • Porting Guide
  • Integrations
    • Arduino Machine Learning Tools
    • NVIDIA Omniverse
    • Embedded IDEs - Open-CMSIS
    • Scailable
    • Weights & Biases
  • Pre-built datasets
    • Continuous gestures
    • Running faucet
    • Keyword spotting
    • LiteRT (Tensorflow Lite) reference models
  • Tips & Tricks
    • Increasing model performance
    • Data augmentation
    • Inference performance metrics
    • Optimize compute time
    • Adding parameters to custom blocks
    • Combine Impulses
  • Concepts
    • Glossary
    • Data Engineering
      • Audio Feature Extraction
      • Motion Feature Extraction
    • ML Concepts
      • Neural Networks
        • Layers
        • Activation Functions
        • Loss Functions
        • Optimizers
          • Learned Optimizer (VeLO)
        • Epochs
      • Evaluation Metrics
    • Edge AI
      • 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
    • What is embedded ML, anyway?
    • What is edge machine learning (edge ML)?
Powered by GitBook
On this page
  • Installation - Windows
  • Installation - Windows Subsystem for Linux (WSL)
  • Installation - Linux, Ubuntu, MacOS, and Raspbian OS
  • Troubleshooting
  1. Tools
  2. Edge Impulse CLI

Installation

PreviousEdge Impulse CLINextSerial daemon

Last updated 6 months ago

This Edge Impulse CLI is used to control local devices, act as a proxy to synchronise data for devices that don't have an internet connection, and to upload and convert local files. The CLI consists of seven tools:

  • - configures devices over serial, and acts as a proxy for devices that do not have an IP connection.

  • - allows uploading and signing local files.

  • - a very easy way to collect data from any device over a serial connection, and forward the data to Edge Impulse.

  • - show the impulse running on your device.

  • - create organizational transformation, custom dsp, custom deployment and custom transfer learning blocks.

  • - to flash the Himax boards and microcontrollers.

Connect to devices without the CLI? Recent versions of Google Chrome and Microsoft Edge can connect directly to fully-supported development boards, without the CLI. See for more information.

Installation - Windows

It is highly recommended to use the Command Prompt (CMD) vs Powershell when installing and using the Edge Impulse CLI on Windows.

During installation you may get an error about needing Visual Studio Build Tools. This is needed for some parts of the Edge Impulse CLI. Please follow the error links to get the correct version from Microsoft.

  1. Create an .

  2. Install on your host computer.

  3. Install v20 or above on your host computer.

    • For Windows users, install the Additional Node.js tools (called Tools for Native Modules on newer versions) when prompted.

  4. Install the CLI tools via:

    npm install -g edge-impulse-cli --force

You should now have the tools available in your PATH.

Installation - Windows Subsystem for Linux (WSL)

To install WSL, open PowerShell as an Administrator and run:

wsl --install

Once complete you can then enable WSL by running the following command in PowerShell as an Administrator, and follow the rest of the Linux instructions.:

wsl

Installation - Linux, Ubuntu, MacOS, and Raspbian OS

Important: Edge Impulse requires Node.js version 20.x or later. Using older versions may lead to installation issues or runtime errors. Please ensure you have the correct version installed before proceeding with the setup.

  1. Alternatively, run the following commands:

    curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash -
    sudo apt-get install -y nodejs
    node -v

    The last command should return the node version, v20 or above.

    Let's verify the node installation directory:

    npm config get prefix

    If it returns /usr/local/, run the following commands to change npm's default directory:

    mkdir ~/.npm-global
    npm config set prefix '~/.npm-global'
    echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.profile

    On MacOS you might be using zsh as default, so you will want to update the correct profile

    mkdir ~/.npm-global
    npm config set prefix '~/.npm-global'
    echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zprofile
  2. Install the CLI tools via:

    npm install -g edge-impulse-cli

You should now have the tools available in your PATH.

Troubleshooting

Error: Could not locate the bindings file. (Windows)

This error indicates an issue occurred when installing the edge-impulse-cli for the first time or you have not selected to install the addition tools when installing NodeJS (not selected by default).

Remove NodeJS and install it again selecting the option:

Re-install the CLI via

npm uninstall -g edge-impulse-cli
npm install -g edge-impulse-cli

Tools version "2.0" is unrecognized (Windows)

If you receive the following error: The tools version "2.0" is unrecognized. Available tools versions are "4.0", launch a new command window as administrator and run:

npm install --global --production windows-build-tools
npm config set msvs_version 2015 --global

EACCES: permission denied, access '/usr/local/lib/node_modules' (macOS)

This is indication that the node_modules is not owned by you, but rather by root. This is probably not what you want. To fix this, run:

sudo chown -R $USER /usr/local/lib/node_modules

EACCES user "nobody" does not have permission to access the dev dir (Linux)

Try to set the npm user to root and re-run the installation command. You can do this via:

npm config set user root

Error: Can’t find Python executable (Windows)

If you receive an error such as:

gyp ERR! stack Error: Can’t find Python executable “C:\Users\vale.windows-build-tools\python27\python.exe”, you can set the PYTHON env variable.

You're running an older version of node-gyp (a way to build binary packages). Upgrade via:

npm install node-gyp@latest -g

The module XXX was compiled against a different Node.js version

This error occurs when you have upgraded Node.js since installing the Edge Impulse CLI. Re-install the CLI via:

npm uninstall -g edge-impulse-cli
npm install -g edge-impulse-cli

Which will rebuild the dependencies.

Error: "gyp: No Xcode or CLT version detected!" (macOS)

Failed to authenticate with Edge Impulse read ECONNRESET

If you see this error message and you're behind a proxy you will need to set your proxy settings via:

Windows

set HTTPS_PROXY=...
edge-impulse-daemon

macOS, Linux

HTTPS_PROXY=... edge-impulse-daemon

ENOENT: no such file or directory, access ‘~/.npm-global/lib/node_modules/edge-impulse-cli’ (Linux)

Manually delete the Edge Impulse directory from node_modules and reinstall:

cd ~/.npm-global/lib/node_modules
rm -rf edge-impulse-cli
npm install -g edge-impulse-cli

Create an .

Install on your Windows machine.

You can find full instructions on how to install WSL .

Then follow the linux installation instructions .

Create an .

Install on your host computer.

Install v20.x+ or above on your host computer.

If you have issues installing the CLI you can also collect data from directly using recent versions of Google Chrome and Microsoft Edge. See on how to get started.

This can happen even though you have Xcode CLT installed if you've updated macOS since your install. Follow to reinstall Xcode CLT.

edge-impulse-daemon
edge-impulse-uploader
edge-impulse-data-forwarder
edge-impulse-run-impulse
edge-impulse-blocks
himax-flash-tool
this blog post
Edge Impulse account
Python 3
Node.js
Edge Impulse account
WSL
here
Edge Impulse account
Python 3
Node.js
fully-supported development boards
this blog post
this guide
below