Deploy ML models to Arm edge devices using Edge Impulse and AWS IoT Greengrass
Introduction
Understand the Edge Impulse and AWS IoT Greengrass deployment architecture
Select and set up your edge device
Set up your Edge Impulse project
Install AWS IoT Greengrass on your Arm edge device
Store your Edge Impulse API key in AWS Secrets Manager
Create the Edge Impulse Greengrass component
Deploy the component to your edge device
Verify inference and view results
Next Steps
Deploy ML models to Arm edge devices using Edge Impulse and AWS IoT Greengrass
Introduction
Understand the Edge Impulse and AWS IoT Greengrass deployment architecture
Select and set up your edge device
Set up your Edge Impulse project
Install AWS IoT Greengrass on your Arm edge device
Store your Edge Impulse API key in AWS Secrets Manager
Create the Edge Impulse Greengrass component
Deploy the component to your edge device
Verify inference and view results
Next Steps
Create the non-camera custom component
For edge devices without a camera, the non-camera custom component provides sample images for the Edge Impulse Linux Runner. Configure gst_args in the Edge Impulse Linux Runner component’s JSON to use image data from a file instead of a camera.
Clone the component repository
Clone the Edge Impulse AWS Greengrass workshop supplemental repository . You’ll find the following files:
EdgeImpulseEdge Impulse Linux RunnerRuntimeInstallerComponent.yaml
artifacts/EdgeImpulseEdge Impulse Linux RunnerRuntime/1.0.0/install.sh
artifacts/EdgeImpulseEdge Impulse Linux RunnerRuntime/1.0.0/models.tar.gz
artifacts/EdgeImpulseEdge Impulse Linux RunnerRuntime/1.0.0/samples.tar.gz
Copy the artifact files to Amazon S3
In the AWS Console, open Amazon S3 and navigate to the bucket that you created for the Edge Impulse Linux Runner custom component.
In that bucket, create the following directory structure:
artifacts/EdgeImpulseEdge Impulse Linux RunnerRuntime/1.0.0
In the 1.0.0 directory in S3, upload the following files from ./artifacts/EdgeImpulseEdge Impulse Linux RunnerRuntime/1.0.0 in your cloned repository:
install.sh
models.tar.gz
samples.tar.gz
Edit EdgeImpulseEdge Impulse Linux RunnerRuntimeInstallerComponent.yaml and change the artifact location from YOUR\_S3\_ARTIFACT\_BUCKET to your S3 bucket name. You’ll find YOUR\_S3\_ARTIFACT\_BUCKET near the end of the YAML file. Save the file.
Register the custom component
To register the custom component:
- In the AWS Console, open AWS IoT Core. Under Greengrass devices, select Components.

Select Create component, then select YAML as the recipe format.
Clear the initial contents of the recipe editor, then paste the contents of your updated
EdgeImpulseEdge Impulse Linux RunnerRuntimeInstallerComponent.yamlfile:

- Select Create component. The registered component list now contains two custom components:

What you’ve accomplished and what’s next
You’ve created the non-camera support component and registered it in AWS IoT Greengrass.
Return to the component deployment steps to deploy these components to your edge device through AWS IoT Greengrass.