Edge Impulse enables developers to create the next generation of intelligent device solutions with embedded Machine Learning. This repository contains the Edge Impulse firmware for the ST B-L475E-IOT01A development board. This device supports all Edge Impulse device features, including ingestion, remote management and inferencing.
Hardware
- Himax WE-I Plus development board.
Software
- You'll need a build toolchain, either:
- ARC GNU Toolchain (free).
- DesignWare ARC MetaWare Toolkit (paid):
- A valid ARC MetaWare license is required to build the firmware.
- Having a local install of DesignWare ARC MetaWare Toolkit. Make sure
ccac
is in yourPATH
, and that the licenses are in place.
- Or, building with Docker desktop.
- Edge Impulse CLI - to flash the firmware.
-
Clone this repository.
-
Create a build directory and initialize CMake:
$ mkdir build-gnu $ cd build-gnu $ cmake .. -DCMAKE_TOOLCHAIN_FILE=toolchain.gnu.cmake
-
Build and link the application:
$ make -j4 $ sh ../make-image.sh GNU
Replace 4 with a number of parallel build processes suitable for your system.
-
Clone this repository.
-
Build the container:
$ docker build -t himax-build-gnu -f Dockerfile.gnu .
-
Then set up your build environment:
$ mkdir -p build-gnu $ docker run --rm -it -v $PWD:/app himax-build-gnu /bin/bash -c "cd build-gnu && cmake .. -DCMAKE_TOOLCHAIN_FILE=toolchain.gnu.cmake"
-
And build and link the application:
$ docker run --rm -it -v $PWD:/app:delegated himax-build-gnu /bin/bash -c "cd build-gnu && make -j && sh ../make-image.sh GNU"
-
Clone this repository.
-
Create a build directory and initialize CMake:
$ mkdir build-mw $ cd build-mw $ cmake .. -DCMAKE_TOOLCHAIN_FILE=toolchain.metaware.cmake
-
Build and link the application:
$ make -j4 $ sh ../make-image.sh MW
Replace 4 with a number of parallel build processes suitable for your system.
-
Clone this repository.
-
Build the container:
$ docker build -t himax-build-mw -f Dockerfile .
-
Then set up your build environment:
$ mkdir -p build-mw $ docker run --rm -it -v $PWD:/app himax-build-mw /bin/bash -c "cd build-mw && cmake .. -DCMAKE_TOOLCHAIN_FILE=toolchain.metaware.cmake"
-
And build and link the application:
$ docker run --rm -it -v $PWD:/app:delegated -e SNPSLMD_LICENSE_FILE=27020@synopsys.edgeimpulse.com himax-build-mw /bin/bash -c "cd build-mw && make -j && sh ../make-image.sh MW"
Where you'll have to replace
27020@synopsys.edgeimpulse.com
with your license server or license file.
You'll need the Edge Impulse CLI v1.12 or higher. Then flash the binary with:
$ himax-flash-tool --firmware-path image_gen_linux/out.img
Images larger than 1MB will be automatically split into 1MB images (out_0.img
and out_1.img
). Note however that it is required that Himax's bootloader is v.1.4.4 or greater as older bootloader versions do not suppport flashing multiple images. Follow the instructions to update the bootloader then flash through minicom (as per Himax instructions).
- Failed to encode frame as JPEG (4)
Inferencing settings:
Image resolution: 96x96
Frame size: 9216
No. of classes: 1
Taking photo...
Begin output
Failed to encode frame as JPEG (4)
There's not enough (contiguous) memory to allocate the jpeg buffer. Try increasing the jpeg_buffer_size
.