alvises
Nerves RPi5 Hailo8 M.2 AI module support
Hi everyone,
I’d like this thread to serve as a common place to track the ongoing development of Hailo8 M.2 support on Nerves. I know some community members are actively working on this integration.
For those unfamiliar, the Hailo8 is an AI processor, offering high-performance, low-power machine learning acceleration. It connects via PCIe to the RPi5 and is ideal for applications requiring efficient neural network inference.
-
With the
hailo-driverbranch of the official Nerves Raspberry Pi 5 system repository (nerves_system_rpi5), the Hailo8 device is successfully recognized when connected via PCIe. I think it needs some firmware file though. -
Additionally, Gus is working on integrating HailoRT (Hailo’s runtime SDK) into Nerves. Here’s the repo GitHub - gworkman/hailo_rpi5 at add_hailo · GitHub
Most Liked
alvises
Just made this screencast showing how to run object detection models on Nerves + Rpi5 + Hailo8L with the NxHailo library.
fhunleth
The Hailo AI accelerators are now supported in Nerves out-of-the-box on Raspberry Pi 5’s with the AI hat or M.2 AI module. The nx_hailo repository has been updated to reference it and there’s a short mention in the nerves_system_rpi5 release notes.
lawik
It exists and works. Kind of an early version but Paulo and Vittoria took the efforts Cocoa, @gus and I put into making the driver work, swore at it, cursed our names, made it work again, gave us credit and then implemented the Elixir parts.
Then they made a yolo model work with some help from @alvises.
They showed it all off in Stockholm recently.
Their repo:
https://github.com/vittoriabitton/nx_hailo
Most news like this lands in the Nerves Newsletter even when I don’t remember to find all places it has been discussed to update on the situation ![]()
Last Post!
Vidar
I made a setup with the Raspberry 5 and the Hailo-8 (26 tops) including discovery and control of a GigE camera. I get about 14 frames per second interference rate using 640x640 RGB8 resolution with YOLOv8n.
The heavy frame processing and encoding are all Rust NIFs that run in parallel: Receiving the GigE camera packets and color converting them before assembly into full frames directly inside a ring buffer. No copying of anything. The ring buffer then feeds three other processes: 1. A 24fps encoder MJpeg stream with low latency which uses the pictures as feedback for a physical control setup. 2. A 24fps Rust H264 encoder that feeds a Membrane HLS web stream (with higher latency) for remote user viewing. And 3. Whenever the interference asks for it a frame is grabbed from the ring buffer, resized, and turned into an NX tensor for interference.
All user facing UI and controls are Phoenix Liveview based. The 24fps video rates could certainly be faster, but we have no need for more and less power use and heat is positive.
Popular in Discussions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #hex










