Deploying Edge Impulse

Deploy an Edge Impulse model on ALPON X5 AI or ALPON X4 through ALPON Cloud: package the Edge Impulse Linux runner in an ARM64 container that serves inference over HTTP, push it to the Sixfab Container Registry, and deploy it with the API key, port, and model variant it needs.

Deploy Edge Impulse on ALPON

Run an Edge Impulse machine learning model as a container on your ALPON X5 AI or ALPON X4 and query it over HTTP. This guide packages the Edge Impulse Linux runner in an ARM64 container, pushes it to the Sixfab Container Registry, deploys it through ALPON Cloud, and exposes the inference server on port 31337.

ALPON X5 AI ALPON X4 Edge Impulse Edge AI
ALPON · Tutorial · Containers · Edge AI
How do I deploy Edge Impulse on ALPON?

Build an ARM64 image from the Edge Impulse inference-container base with an entrypoint that starts the runner in HTTP server mode, push it to your Sixfab Container Registry, then use the Applications → Deploy panel on ALPON Cloud to launch it on your ALPON X5 AI or ALPON X4 with port 31337 → 1337 and the API_KEY, HTTP_PORT, and VARIANT environment variables. Send inference requests to http://<DEVICE_IP>:31337.

Overview

Edge Impulse is a platform for building and deploying machine learning models on edge devices. This guide packages an Edge Impulse Linux inference build in an ARM64 container and deploys it on an ALPON X5 AI or ALPON X4, where the runner serves your model over HTTP so other applications can send it inference requests.

The steps below are identical on ALPON X4 and ALPON X5 AI. Follow the current Edge Impulse Docker documentation when its export flow differs from this example.

Not a dedicated Edge Impulse hardware target

ALPON X4 is not listed as a dedicated Edge Impulse hardware target, so validate the exported Linux artifact, container architecture, model latency, and memory use for your project.

Before you start

You need an ALPON X5 AI or ALPON X4 powered on, operational, and registered on ALPON Cloud; an Edge Impulse API key from your Edge Impulse project settings to authenticate the runner; and Docker installed on your build machine to build and push the image. New to container deployment? Start with Containerize Apps for ALPON.

  1. 1

    Prepare the Dockerfile

    Create a file named Dockerfile on your build machine to define the containerized environment for the Edge Impulse runner:

    Dockerfile
    FROM public.ecr.aws/g7a8t7v6/inference-container:b059854aa82274b16d242ced0892ef9fea15b4df
    
    COPY ./entrypoint.sh /entrypoint.sh
    
    RUN chmod +x /entrypoint.sh
    
    ENTRYPOINT ["/entrypoint.sh"]
    Check the base image tag

    Always check the Edge Impulse documentation for the latest inference container image tag to ensure compatibility and access to the most recent features.

  2. 2

    Create the entrypoint.sh script

    The entrypoint.sh script launches the Edge Impulse runner in HTTP server mode, enabling remote interaction with your machine learning model. Create a file named entrypoint.sh next to the Dockerfile with the following content:

    entrypoint.sh
    #!/bin/bash
    node /app/linux/node/build/cli/linux/runner.js --api-key $API_KEY --run-http-server $HTTP_PORT --force-variant $VARIANT
    Customizing the entrypoint

    You can customize this script based on your application’s needs, such as adding additional parameters or modifying the runner behavior. Ensure the file has executable permissions (run chmod +x entrypoint.sh before building).

  3. 3

    Build the Docker image

    On your build machine, navigate to the directory containing the Dockerfile and entrypoint.sh, then build the image for the device’s arm64 architecture:

    bash · build the image
    docker build --platform=linux/arm64 -t edge-impulse-runner:latest .

    This command creates a container image tagged edge-impulse-runner:latest, ready for deployment.

  4. 4

    Add the Edge Impulse runner container

    Make the edge-impulse-runner image available to your device by pushing it to your Sixfab Container Registry, so deployments are fast and work offline. Log in to Sixfab Registry, click + Add Container, and follow the prompts to push the image.

    Pushing images to the Sixfab Container Registry

    For the full walkthrough of tagging and pushing an image, see Update Containers from the Sixfab Container Registry.

  5. 5

    Deploy the container on ALPON

    Open your device in ALPON Cloud, go to the Applications section, and click + Deploy. In the Deploy Container window, use these settings:

    Container Name edge-impulse
    Image The edge-impulse-runner image and tag you pushed to the Sixfab Container Registry.
    Ports Click + Add More in the Ports section and add the port mapping in the first table below.
    Environment Click + Add More in the Environment section and add the three variables in the second table below.
    FromTo
    313371337
    KeyValue
    API_KEYei_1234... (your Edge Impulse API key)
    HTTP_PORT1337
    VARIANTint8
    Choosing the model variant

    VARIANT must be set to int8, float32, or akida, depending on your model’s quantization requirements. Check your Edge Impulse project settings to confirm the appropriate variant.

    Click + Deploy to launch the Edge Impulse runner on the device.

  6. 6

    Access your Edge Impulse model

    Once the deployment finishes, find the device's local IP address under Asset Details → Network tab → Interface Monitoring → Details, then open the HTTP server in a web browser or API client:

    browser · Edge Impulse HTTP server
    http://<DEVICE_IP>:31337

    Test your model by sending inference requests as outlined in the Edge Impulse documentation. If the server doesn't respond, confirm the container is running in the Applications section and that the port mapping and environment variables from step 5 are set.

Ready when…
  • The edge-impulse container shows as running in the Applications section.
  • The HTTP server responds at http://<DEVICE_IP>:31337.
  • An inference request returns predictions from your model.

Your Edge Impulse model is now running on the ALPON, ready for real-time predictions at the edge.

Production image policy: Replace floating :latest references with a reviewed immutable tag or digest, then record the selected version for rollback.


Did this page help you?