ODROID-H3 and ODROID-H4 x86 single board computers have gotten two affordable M.2 expansion cards with the M.2 2×2 card adding two PCIe Gen 3 x2 slots and the M.2 4×1 adding four PCIe Gen 3 x1 slots (ODROID-H4 only) to the Intel SBCs.
We’ve seen plenty of PCIe HAT+ boards for the Raspberry Pi 5 since the launch of the Arm SBC last year, but it’s limited by its PCIe Gen2/Gen3 x1 interfaces, and Hardkernel now provides two new M.2 cards leveraging the M.2 PCIe Gen3 x4 socket of the ODROID-H3/H4 family allowing users to add up to four M.2 PCIe modules for storage, wired or wireless connectivity, and/or AI acceleration.
M.2 2×2 card for ODROID-H3 and H4 series
The M.2 2×2 card also named “M.2 – NVME” adds two M.2 Key-M PCIe sockets for 2280 size modules with each having a PCIe 3.0 x2 interface supporting up to 16GT/s.
There are two mounting holes that match the mounting threads on the ODROID-H3/H4 SBC. The image below shows it mounted to the board and fitted with two M.2 2280 SSDs.
Hardkernel measured the performance of the SSDs at 1600 to 1800MB/s or half of the PCIe Gen 3 x4 bandwidth as expected. Besides storage devices, users can install other M.2 modules including Key-E or Key-B wireless modules through adapters as shown in the very first photo in this article.
M.2 4×1 card for ODROID-H4 series only
The M.2 4×1 card (aka M.2 – 4NVME) uses the same principle but with four M.2 sockets for 2280-sized PCIe devices with each slot limited to one PCIe 3.0 lane at 8GT/s.
The M.2 4×1 expansion card is only supported on the ODROID-H4 because its larger footprint does not fit on the ODROID-H3. However, it could still work by using an M.2 male/female extension cable on either the ODROID-H3 or ODROID-H2. The image below shows four NVMe SSDs connected to the ODROID-H4 SBC.
Due to space constraints, the M.2 SSDs on the top and bottom overlap the ones in the middle. It works unless you plan to add a heatsink on top of the SSD, and some wireless and Ethernet modules may not fit in the middle. That’s why Hardkernel installed those on the top and bottom (left/right) sockets in the top photo. The performance further decreased due to the PCIe Gen3 x1 interface per socket, and Hardkernel measured 800 to 900MB/s for each SSD connector that way.
BIOS update required
The PCIe Gen 3 configuration (bifurcation) is embedded in the Intel microcode merged into the BIOS bin file at build time, so the different bifurcation options can’t be selected at boot time, and users need to flash a different version of the BIOS.
The M.2 4×1 card requires the same BIOS version as the NetCard 2.5 GbE with 4 bifurcated x1 lanes, and the M.2 2×2 card requires a BIOS that provides a 2×2 bifurcation. You’ll find the relevant BIOS and instructions on the relevant Wiki pages for the ODROID-H3 and ODROID-H4.
The M.2 2×2 card sells for $10 on the Hardkernel store, and the M.2 4×1 card goes for $15. Those are inexpensive, but depending on your country, the shipping fee may be pricey, so you may consider waiting for availability in a local distributor. Additional information may be found in the announcement on ODROID forums.
Thanks to Domi for the tip.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
Sorry, I’m a bit dumb on PCI-E maths.
Could the 4 slot expansion card allow for two/three drives and a 10gbe nvme?
It would work, but each socket is limited to around 8 Gbps, so you would not get the full speed for the NVMe drives and the 10GbE module. Power draw might be an issue too, but I’m not sure.
That’s the point where it would make more sense to place a PCIe switch on the board but that’s definitely not possible at this price tag. And as you mentioned, power draw can be quite an issue too, even in the current design with 4 SSDs.
Aha, ok, thanks!
It’s still got to be comparable, with slightly more grunt, to the friendly elec board. I think it would make for the perfect lower cost UHD media server, in many ways. Especially compared to something like that AsusTor NAS.
Also important to remember that the H4 can host on SATA drives, also.
So all of this magic is done using pcie 3.0, how different would things be if the mini pc got a generational update with a newer cpu and pcie 4.0?
No difference, except the PCIe gen/speed per lane.
There are already few boards that work with bifurcation on pcie4, so there is nothing to worry 🙂
The interface speed would be about double based on the table below.
https://www.cnx-software.com/wp-content/uploads/2024/04/PCIe-7.0-Speed-512GB-s.jpg
Note the values in that table are bidirectional, equivalent to saying gigabit Ethernet is 2 Gbps.
Same board for 2×2 bifurcation is available for Radxa ROCK 5B on forum as ready to order pcb schematics and BOM. On ARM only supported kernel is needed (not all have bifurcation enabled).