blog: opi5u-review
This commit is contained in:
parent
24221307ed
commit
6e43b9e4ef
4 changed files with 158 additions and 0 deletions
BIN
content/blog/opi5u-review/fan-circuit-bottom.webp
Normal file
BIN
content/blog/opi5u-review/fan-circuit-bottom.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
BIN
content/blog/opi5u-review/fan-circuit-top.webp
Normal file
BIN
content/blog/opi5u-review/fan-circuit-top.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 37 KiB |
BIN
content/blog/opi5u-review/fan-circuit.png
Normal file
BIN
content/blog/opi5u-review/fan-circuit.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
158
content/blog/opi5u-review/index.md
Normal file
158
content/blog/opi5u-review/index.md
Normal file
|
|
@ -0,0 +1,158 @@
|
|||
+++
|
||||
title = "OrangePi 5 Ultra with Armbian: my experience"
|
||||
date = 2025-07-20
|
||||
description = "My experience on installing an Orange Pi 5 Ultra for self-hosting."
|
||||
insert_anchor_links = "left"
|
||||
[taxonomies]
|
||||
tags = ["electronics"]
|
||||
+++
|
||||
|
||||
My current server is a Raspberry Pi 4 with 8GB RAM and a USB3.1 SSD.
|
||||
It's nice but a bit slow for all the services I'm hosting.
|
||||
|
||||
## Choose the best SBC
|
||||
|
||||
I started by comparing the existing single-board computers (SBC) for my needs.
|
||||
|
||||
### Requirements
|
||||
|
||||
* ≥ 8 GB RAM
|
||||
* SATA or NVMe or anything else than USB to connect SSD or HDD
|
||||
* GB Ethernet
|
||||
* CPU ≥ 4 cores
|
||||
* CPU ≥ RPi4
|
||||
* Good mainstream Linux support
|
||||
* Power < 20 W
|
||||
* Price < 200 €
|
||||
|
||||
### Comparison
|
||||
|
||||
(made in February 2025)
|
||||
|
||||
(*) CPU is expressed relatively to RPi4 performance. A tilde ~ means a rough approximation that should be replaced with a benchmark.
|
||||
|
||||
| Board | Price | RAM | Cores | CPU* | Storage | Network | Power | Support |
|
||||
|:-------------------------------------------------------------------------------------------------------------------- | -----:| --------:| ----- | ----- | ------------ | -------- | ----- | ------------ |
|
||||
| [BPI-F3](https://docs.banana-pi.org/en/BPI-F3/BananaPi_BPI-F3) | 70€ | any DDR4 | 8 | <1 | PCIe2 | 2×1GBE | | Bad (RISC-V) |
|
||||
| [BPI-M5Pro](https://www.banana-pi.org/en/banana-pi-sbcs/177.html) | 160€ | any DDR4 | 8 | | PCIe2 | 2×1GBE | | |
|
||||
| [BPI-M7](https://www.banana-pi.org/en/banana-pi-sbcs/169.html) | 170€ | any DDR4 | 8 | 4 | PCIe3 | 2×2.5GBE | | |
|
||||
| [Lichee 4A](https://sipeed.com/licheepi4a) | | any DDR4 | 4 | 1 | USB3.0 | 2×1GBE | | |
|
||||
| [OrangePi 5 Ultra](http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-5-Ultra.html) | 150€ | any DDR5 | 8 | 4 | PCIe3 NVMe | 2.5GBE | 10W | |
|
||||
| [Pine64 ROCKPro64](https://pine64.com/product/rockpro64-4gb-single-board-computer/) | 80$ | 4GB DDR4 | 4 | ~0.75 | PCIe(?) | 1GBE | | |
|
||||
| Radxa Tock 5 ITX | 160$ | any DDR5 | 8 | 4 | PCIe3 NVMe + 4×SATA | 2×2.5GBE | 15W | Bad |
|
||||
| [Radxa Rock 5B+](https://radxa.com/products/rock5/5bp) | 150$ | any DDR5 | 8 | 4 | 2×PCIe3 NVMe | 2.5GBE | 11W | Bad |
|
||||
| [Radxa X4](https://radxa.com/products/x/x4/) | 120€ | any DDR5 | 4 | 5 | PCIe3 NVMe | 2.5GBE | 20W | Good (x86) |
|
||||
| [Renegade Elite ROC-RK3399-PC](https://libre.computer/products/roc-rk3399-pc/) | 80€ | 4GB DDR4 | 6 | ~2 | PCIe2 | 1GBE | | |
|
||||
| [RPi4](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/) | 80$ | 8GB DDR4 | 4 | 1 | USB3.1 | 1GBE | 5W | Good |
|
||||
| [RPi5](https://www.raspberrypi.com/products/raspberry-pi-5/) | 120$ | any DDR4 | 4 | 3 | PCIe2 | 1GBE | 6W | Good |
|
||||
| [Zima Board](https://www.zimaspace.com/products/single-board-server) | 200€ | 8GB DDR4 | 4 | | 2×SATA | 2×1GBE | 6W | |
|
||||
|
||||
The brand [Olimex](https://www.olimex.com/) is interesting too but for lower performance.
|
||||
|
||||
Final contenders:
|
||||
* Radxa Rock 5B+
|
||||
* 2× PCIe3 2-lane
|
||||
* OrangePi 5 Ultra
|
||||
* PCIe3.0 4-lane
|
||||
|
||||
I chose the Orange Pi because I needed only one SSD, so 4 lanes should be faster.
|
||||
|
||||
## Bill of materials
|
||||
|
||||
Official OrangePi distributors are only on AliExpress. I won't give links here as they will probably be outdated soon.
|
||||
|
||||
* OrangePi 5 Ultra
|
||||
* Good USB-C power supply (GaN, ≥ 4A, read comments carefully because some are crap)
|
||||
* The biggest passive heatsink available
|
||||
* SSD M.2 2280 NVMe PCIe3
|
||||
|
||||
Choosing a good power supply is really important. A cheap unit may make your system unstable you will regret it.
|
||||
|
||||
I took a passive heatsink because integrated fans are small and loud.
|
||||
I prefer to fix a quiet PWM laptop fan after.
|
||||
|
||||
As I was about to move without my 3D-printer, I made a case with OpenSCAD in a hurry.
|
||||
My model is not very adjusted and quite fragile if the printer is not precise enough.
|
||||
The fact that Orange Pi does not publish mechanical schematics does not help...
|
||||
I will share the source of a revised version later.
|
||||
|
||||
## Installing an OS
|
||||
|
||||
My RPi is working well with [Debian Raspi](https://raspi.debian.net/), which I prefer over Raspbian as it's cleaner, closer to the official Debian, and contains less proprietary blobs. But it won't work on Orange Pi.
|
||||
|
||||
Orange Pi provides an official distribution but it's probably an experimental proprietary crap impossible to maintain and with Chinese documentation, no thanks.
|
||||
|
||||
I'm testing [Armbian for OPi5 Max](https://www.armbian.com/orangepi-5-max/) as OPi5 Max is almost the same as OPi5 Ultra.
|
||||
|
||||
### Flash the SD card
|
||||
|
||||
As usual the image is made for booting on an SD card.
|
||||
No need to use a fancy dedicated tool, `dd` is your friend:
|
||||
|
||||
```bash
|
||||
sudo dd if=armbian.img of=/dev/SDCARD status=progress bs=512
|
||||
```
|
||||
|
||||
On the first boot, plug a screen and a keyboard, as the installation program asks for usernames and passwords to create.
|
||||
|
||||
You now have a shell, can setup SSH and update Debian as usual.
|
||||
|
||||
### Installing to NVMe
|
||||
|
||||
Do not let an OS live on an SD card, it will wear very quickly and corrupt the filesystem. That's why I don't just want to move specific data folders to the SSD, but the entire system (except `/boot`).
|
||||
|
||||
Sadly `armbian-install` seems quite experimental and obscure to use.
|
||||
|
||||
**Warning**: Maybe this step can brick your board's internal flash memory. It worked for me, but I don't know how, and I wouldn't do it again.
|
||||
|
||||
```bash
|
||||
sudo armbian-install
|
||||
# Choose 7 (flash bootloader)
|
||||
```
|
||||
|
||||
Then restart: `sudo shutdown -r now`
|
||||
|
||||
Then it wouldn't boot anymore (the LEDs stayed off). I power-cycled multiple times and pressed the "boot" button, and at some point it booted!
|
||||
|
||||
It's still booting on the SD card, but it loads the system on the SSD. The only problem it that grub/kernel/firmware updates will be written to the SSD, not the SD card, so they must be copied by hand. But... it works!
|
||||
|
||||
## Cooling
|
||||
|
||||
The first thing to improve passive cooling is to place the board vertically. Compared to horizontal position, it may reduce temperature by up to 10°C.
|
||||
|
||||
There are big copper heatsinks on AliExpress, including bolts and thermal paste. I took the biggest one and it already does a great job, keeping the chip at 30°C idling. But it was summer and I want to run more services on this server, so I needed a fan.
|
||||
|
||||
I had an old CPU fan with PWM. It's interesting because I can set it to the lowest speed in order to be quiet.
|
||||
|
||||
**Note**: only 4-pin fans have PWM. 3-pin fans have a speed sensor, but no speed control.
|
||||
|
||||
Problem is that it's a 12V fan, while the board is powered at 5V. So I need an external power supply.
|
||||
|
||||
To avoid adding electrical noise to the Pi, I made a simple isolated control circuit, using a few salvaged components:
|
||||
|
||||
* an optocoupler PS2561 from a switch-mode power supply: it allows switching high voltage/low current from a low voltage/low current source, while electrically isolating the two circuits.
|
||||
* an NPN power transistor C5027: drives fan's power from the optocoupler's output.
|
||||
|
||||

|
||||
|
||||
Please don't judge the soldering, I only used salvaged material:
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
I made [a program](https://git.txmn.tk/tuxmain/opi-fancontrol) to control the fan depending on the CPU temperature.
|
||||
|
||||
## Remaining problems
|
||||
|
||||
I don't have an IPv6 interface? That's probably because of Armbian (or the model mismatch) as it's a nightly community version.
|
||||
|
||||
## Conclusion
|
||||
|
||||
Orange Pi 5 Ultra is a great board: relatively cheap, seemingly good quality, very good performance, heatsinks and other gadgets available.
|
||||
|
||||
However it's very poorly documented (no mechanical drawing, no information about maximal electrical ratings, documents in Chinese, wiki referring to graphical proprietary Windows tools) and poorly supported by software (I couldn't make Debian work, community Armbian is unstable).
|
||||
|
||||
I would still recommend it, if you accept to spend hours fixing things and don't expect it to work out-of-the-box. My board currently runs a Luanti server, a Duniter blockchain node, and can compile Rust without problem and without restarting randomly.
|
||||
|
||||
Nobody paid me to write this. I just hope it will be useful to someone who, like me, struggles to find reliable information and concrete experience about these new SBCs.
|
||||
Loading…
Add table
Add a link
Reference in a new issue