TECHNICAL BLOG
Deep Dives for Engineers
Detailed technical articles covering the real problems we solve in embedded systems, AI, and robotics engineering.
Detailed technical articles covering the real problems we solve in embedded systems, AI, and robotics engineering.
Hands-on evaluation of the Banana Pi M5 for embedded Linux development — hardware capabilities, BSP quality, Yocto support, and where it fits against the Raspberry Pi ecosystem.
The Banana Pi M5 centres on Amlogic's S905X3 SoC — four Cortex-A55 cores at up to 2.0 GHz, a Mali-G31 GPU, and an onboard NPU rated at 2.0 TOPS for lightweight inference. It ships with 4 GB LPDDR4 and 16 GB eMMC onboard, eliminating the SD card reliability concerns that plague development with boards that boot exclusively from SD. The 4-port USB 3.0 hub, Gigabit Ethernet, and HDMI 2.1 (4K@60Hz capable) make it genuinely versatile.
This is where the evaluation becomes nuanced. The Banana Pi M5's BSP is based on Amlogic's vendor kernel, which lags the mainline by a significant margin. Mainline kernel support for the S905X3 is improving — thermal, GPIO, eMMC, and Ethernet are well supported — but the NPU and certain multimedia blocks remain vendor-kernel-only. For production embedded Linux deployments, assess whether your use case requires the NPU; if not, a near-mainline kernel is strongly preferable for long-term maintainability.
Check the current upstream status via linux-meson.com, which tracks Amlogic mainlining progress actively.
The meta-meson layer provides Yocto support for Amlogic targets including the S905X3. It is community-maintained and tracks OpenEmbedded's current release. Building a minimal image for the M5:
git clone https://github.com/superna9999/meta-meson -b scarthgap
# Add to bblayers.conf alongside openembedded-core
MACHINE = "bananapi-m5"
Buildroot support is more mature for straightforward configurations and is a good choice if Yocto's complexity is not justified by your project's scope.
Amlogic markets the S905X3's NPU at 2.0 TOPS, but the available toolchain (NNAPI via Android, or the proprietary Amlogic SDK) has significant friction on bare Linux. For TensorFlow Lite or ONNX Runtime inference, the four Cortex-A55 cores — augmented with ARM's Neon SIMD extensions — often deliver comparable throughput for MobileNet-class models without requiring the proprietary NPU toolchain. Test your specific model on both paths before investing in NPU integration.
The Banana Pi M5 is a solid choice for applications that benefit from onboard eMMC reliability and can tolerate vendor kernel dependencies — IoT gateways, media players, and lightweight edge servers where the Pi's SD-card-first design is a concern. For applications requiring maximum BSP maturity, community support, and software ecosystem breadth, the Raspberry Pi 4 or 5 remains the more practical choice.
The M5 is a capable board with genuinely differentiating hardware features. The BSP maturity gap relative to Raspberry Pi is real and should factor into any production commitment. For development and prototyping, it is a worthwhile addition to your lab. For production, evaluate the kernel support gap against your specific peripheral requirements before committing.
Continue reading — handpicked articles you might enjoy