LattePanda IOTA review: how does it perform as a home server?
Disclosure: the review sample was provided by DFRobot, the makers of LattePanda. I am allowed to keep the review sample indefinitely, no money exchanged hands, and as always, this post covers my own thoughts and views on the product.1
In 2023, I happened to find a LattePanda V1 for sale at a good price. Given the then-poor availability of affordable Raspberry Pi units, I got one for testing and finding potential use cases for it in my setup. However, it was just a little bit too weak for any practical uses in 2023, with its CPU and USB connectivity being just slow enough to be of less use, and the networking being capped at 100 Mbit/s.
In 2025, we have the spiritual successor to it: the LattePanda IOTA. It keeps the same form factor, but the connectivity and raw power have all received a significant jump, with the CPU performance rivalling my current home server, the trusty ThinkPad T430.
The marketing materials list all sorts of sensible use cases for it. I’m sure that it works fine for those, but I’m only interested in one thing: how close does this board get to being the perfect home server?
The perfect home server uses very little power, offers plenty of affordable storage and provides a lot of performance when it’s actually being relied upon.
In my case, low power means less than 5 W while idling, 10+ TB of redundant storage for data resilience and integrity concerns, and performance means about 4 modern CPU cores’ worth (low-to-midrange desktop CPU performance).
The model and accessories
The model I’m reviewing is the 8GB RAM/64GB eMMC one, with a Windows 11 installation on it (not activated).
Along with the review unit itself, I got sent the following accessories:
- active cooler
- M.2 M-key expansion board
- 51W PoE expansion board
- M.2 4G LTE expansion board
- UPS expansion board
The board was tested with a Lenovo 65W USB-C power adapter, because that’s what I had available. Given the specs of the board and the accessories, that should be plenty. As far as I know, USB power delivery seems to work fine and it’s not just a weird USB-C connector that requires specific voltages to work.
The M.2 NVMe SSD used in this review is a 512 GB Samsung PM9A1. I got that one from another PC that really didn’t need a boot drive that large.
Most of the testing was done with a fresh Fedora Server 43 installation, kernel version 6.17.7.
The hardware
I suggest looking at the spec sheet if you’re interested in all the fine details and available configurations.
In short:
- CPU: Intel N150, 4 cores, 4 threads, up to 3.6 GHz
- RAM: 8/16 GB (depending on model)
- Onboard storage: 64/128GB eMMC (depending on model)
- Networking: gigabit Ethernet port
- Real-time clock: yes!
The overall connectivity has been improved with the new version of this board compared to the old board. The USB ports are all fast 10 Gbit/s ones, and we have actual PCIe connectivity to play with, although the available bandwidth is quite limited with a PCIe 3.0 x1 lane available on the port that both the M.2 M-key and PoE adapter connect to.
What caught my eye was the CPU performance I’ve been proudly running an old ThinkPad T430 as a server for a while now, with some failed attempts to find a more low-power and efficient solution.
The Intel N150 is now offering similar levels of performance, but in a much smaller power envelope.
When it comes to more specialized functionalities, such as GPIO and the RP2040 microcontroller, I don’t currently have a solid use case for them, so they won’t be covered in this review. I might fancy giving them a go in the future though, it would be nice to get some environmental sensors on it to monitor the temperature and humidity of the server room (which is a closet).
Since I also don’t have an 4G LTE modem available, I did not test the associated adapter.
M.2 M-key adapter
The way you can add expansion boards to the LattePanda IOTA is quite similar to how Raspberry Pi 5 and other similar single board computers do it: you simply run a flexible cable to an adapter board, and bam, you have extra connectivity!
With the M.2 M-key adapter kit, you get the adapter itself, some mounting screws and brass stand-offs, and a tiny little flexible cable for the PCIe signal.
The link speed is PCIe 3.0, with one lane available. In theory, this means a maximum of 1 GB/s of throughput. In
practice and with this board and SSD combination, I got a maximum of ~810 MB/s. I expect some levels of losses with
these types of setups, so in my view this seems normal. For the test, I just did
a dd if=/dev/nvme0n1 of=/dev/null bs=8M status=progress. The SSD itself supports up to 4 lanes of PCIe connectivity so
that should not be a limiting factor here.
The lovely part about M.2 NVMe ports is that you can use it for a lot of off-label use cases.
Fancy some SATA ports? There’s an adapter for that.2
Or a network card? Some fancy AI accelator thingy? Or a full-sized GPU? Anything will work (probably), as long as the cables and adapters are high quality, and you provide extra power to the device through other means.
PoE expansion board
The only device on my network that is connected over PoE is currently an Ubiquiti Wi-Fi access point, and that is unlikely to change in the near future because that would require a full replacement of my networking gear.3
However, I still gave this board a quick go, and I’m happy to report that it also works as an additional standalone
Ethernet port. The Ethernet controller seems to be similar or the same as on the main board, and it shows up as a
separate networking device. Both are Realtek
NIC-s (Realtek Semiconductor Co., Ltd. RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet Controller), and they work
with the r8169 driver. Realtek has a spotty compatibility story overall on Linux from what I’ve read, but this one
seems to work fine on Fedora Server 43.
I was very close to pulling the trigger and turning it into a beefy router so that I can finally move my Wireguard networks on the router as my current one cannot do more than 20 Mbit/s of Wireguard traffic, but I didn’t end up going through with that idea because of how well the SBC did in other areas.
UPS expansion board
As some of you might know, I’m a fan of playing with fir- 18650 Li-ion battery cells, and I’m hoping to one day build a solar-powered server of my own (of which there are many examples).
I took some spare 18650 cells that came from an old ThinkPad battery, made sure that the voltages are more-or-less the same, and threw them on the board.
Connecting the UPS board with the standoffs was fine, but the cable connecting it with the SBC was finicky. I triple-checked that the connector was the right way, but had to still use an uncomfortable amount of force to connect it all up. The battery cells themselves sit snugly on the board, and unless you drop the board, they should not fall out on their own. You’d still want to build a case around it if you’re going to actually put it to use in rough environments.
The manual for the UPS board emphasizes that it only works on Windows 10/11, and sadly that seems to be the case, the UPS does not seem to show up as an USB-listed device, and tools like NUT did not find anything to monitor with a quick 5-minute investigation.
The UPS board also has an interesting selection of switches that you can use to adjust the behaviour of the board, like automatically turning the board on when power comes back on, and setting an 80% battery charge limit. The first one was not really necessary to use, the board would follow whatever setting you have enabled on the SBC itself. I configured mine via UEFI settings to automatically turn on with a power adapter connected, and that worked here as well.
The run time of your LattePanda IOTA with the UPS expansion board will heavily depend on your workloads and quality of
your battery cells. Mine were used cells, and then I hit the board with stress -c 4 to create some load on it. It ran
for over an hour like that, and then I got bored and wanted to proceed with testing other accessories. The marketing
materials mention up to 8 hours of runtime, and I suspect that with good Li-ion cells and workloads where you idle most
of the time, it will likely be achievable.
The board seems to trigger a hard shutdown on Linux because the host OS is not aware of a battery being connected. Not that catastrophic for most modern filesystems and database engines, but something to consider in your own workloads in case they are Linux-based.
The UPS board seems to handle power connection and disconnection events well enough, it did not do anything weird when repeatedly plugging and unplugging the USB-C cable.4
Based on the readings from a wall outlet energy meter, the board uses up to 20W when charging the cells. It’s possible for the board to pull more than that with a maximum CPU load and connected peripherals, so I wonder if that may be an issue with more intense usage scenarios.
During charging and discharging cycles, even under heavy loads, the battery cells did not get hot and were at best warm to touch.
Ethernet
It’s gigabit.
Fine for my use case given that I still live in 2006 and only have devices that support gigabit Ethernet speeds at best (excluding the Ubiquiti Wi-Fi AP), but certainly less than some competing products.
eMMC and USB storage
Compared to the LattePanda V1, the USB port performance is actually decent for my use case. I can connect up to three USB-connected storage devices to the board, so that’s exactly what I did.
I set up three different USB-connected devices:
- USB hard drive (Seagate Basic)
- USB SATA SSD (Samsung QVO 4TB in ICY BOX USB-SATA adapter)
- USB NVMe SSD (512 GB Samsung PM9A1 with some random cheap USB to M.2 NVMe adapter)
For each device (including on-board eMMC device), I ran
a while true; do dd if=/dev/X of=/dev/null bs=8M status=progress; sleep 5; done, which puts a sequential
read workload on all the drives in an infinite loop.
After about 72 TB of data read in less than 24 hours, I checked the kernel logs and there were no stability issues whatsoever. The NVMe SSD started throttling due to heat, which was expected with that cheap adapter.
Assuming no issues with any cables and adapters, the USB ports seem to be solid enough for running storage devices off of. Yes, it can be a horrible idea in some use cases, but at the same time my ThinkPad T430 has been excellent with USB-based storage, and that’s with one of the USB ports being coffee-stained!
The eMMC chip is also more performant compared to the previous iteration, with sequential read speeds averaging around 316 MB/s, writes around 175 MB/s, and average read latency being around 0.15 ms. Certainly good enough for a boot drive.
Display connectivity
The LattePanda V1 struggled with larger displays, and when I gave it a go during this review, it would not properly display an image on my 3440x1440p monitor.
The LattePanda IOTA just did it, at 60 Hz. On Fedora Workstation and GNOME, the experience was smooth. Once you start doing things in the browser, like video playback, the situation is less optimal, but as a makeshift desktop PC it is alright for most low/mid-range activities.
Windows compatibility
The board came with a Windows 11 installation (not activated). As is tradition with Windows, the initial impressions are horrible, update processes running in the background made the active cooler go wild and the device felt sluggish.
But after that process is done, the experience is not bad at all if you look past the OS being Windows.
I did not do a thorough investigation and I suggest formatting the device boot drive either way when receiving it, but the Windows 11 installation looked clean enough, with no obvious bloatware.
Linux compatibility
The LattePanda V1 had some quirks. The performance was iffy, and you had to specify a Linux kernel parameter on first boot so that Fedora Linux does not confuse the optional display interface to be an always-connected primary display.
The previous version also didn’t include a real-time clock (RTC) by default, which meant that it was impossible to schedule some systemd timers as the time would always jump on boot years ahead on distros like Fedora Server. I got stuck in a reboot loop with a scheduled reboot job that way, was not fun to recover from.
With the LattePanda IOTA, I have not observed any weird oddities and quirks with it. Even the kernel logs don’t show anything that’s problematic, and the RTC is handy to have around as that helps avoid the issue mentioned above.
Active cooler
With the LattePanda V1, the cooler was not strictly required, but strongly recommended if you were going to use the board with moderate to high sustained loads. My solution was to slap an inappropriately sized heat sink to it with a thermal pad and zip ties and/or velcro strips, which looked horrible, because it was.
With the LattePanda IOTA, the cooler is now a mandatory part of the assembly. It can be fitted with either a passive cooler, a case with passive cooling, or an active cooler.
The active cooler does a good job of keeping the board cool, but it does get super loud at higher loads. The default fan curve is very primitive, with the fan changing it speeds in big and sudden increments. Bursty workloads certainly feel bursty with this fan. You will not want to be in the same room with this active cooler.
The sound profile is very similar to a thin and light laptop, and the fan has a very strong high-pitched whine to it.
You can mitigate the active cooler noise issue by reducing the CPU clock speed by setting a lower power limit in UEFI
settings, or on Linux, setting a lower CPU performance ceiling using intel_pstate driver max_perf_pct option once on
boot. This comes at the obvious cost of some raw performance, but given that CPU power scales non-linearly, you may not
even notice it that much.
If you are sensitive to fan noise, then do get the passive cooler and slap a Noctua fan on it, it will likely be a much better experience with both the cooling performance and noise levels.
Oh, and fun fact: I got so carried away with testing that I actually forgot to remove the plastic film on the larger thermal pad that cools supporting components.
And then I did about 24 hours of stress testing with that arrangement.
I can confirm that the design of the board is idiot-proof, as I did not actually notice any severe throttling or thermal issues with that mistake. You can actually see the plastic film being present in a few photos of the board in this review. I still can’t believe that after all these years I ended up making that one mistake that you usually see online in tech support gore posts.
Power consumption
The idle power consumption of the LattePanda IOTA seems to be around 4.0W, which is more than the Raspberry Pi 5 8GB with its power consumption being around 3.2W. Slightly higher compared to that, but lower than most x86 mini PC-s with idle power consumption typically in the range of 6-14W.
During the disk read speed stress test, I saw a maximum of 24.4W pulled from the wall.
With the disk read stress test and a full CPU stress test, I saw a peak of 36.3W, with it quickly dropping down as the CPU settled down at a lower clock speed.
Home server
This board came surprisingly close to my perfect home server criteria that I had outlined earlier this year.
Less than 5W when idling? Check.
10+ TB of redundant storage? Check.
4 modern cores’ worth of CPU performance? Check.
Enough performance during bursty workloads? So far, yes.
I then installed a fresh copy of Fedora Server 43 and moved all my home server workloads to it. The eMMC storage is used
as a boot drive, journald writes are disabled, workloads requiring good latency and speed are on the 512GB NVMe SSD,
and bulk storage is connected via two existing USB-SATA adapters taken from one of those WD Elements/MyBook external
hard drive enclosures.
Then it just worked. No issues.5
The drop in the overall power consumption of my whole home server and networking stack was also immediately noticeable.
Here are my observations of the CPU performance and behaviour after hitting it with an all-core CPU load:
- 2.9 GHz for a short time period (10-15 seconds), with CPU hovering around 80°C
- 2.2-2.3 GHz after that, with the CPU dropping to around 70°C
I have seen the CPU hit around 3.6 GHz with a single core load while there is nothing running in the background, but during my normal home server operations the cores are doing enough work across all 4 cores, so that doesn’t happen all that often, and 2.9 GHz is the ceiling for single core performance.
The only limiting factor so far has been the 8 GB of memory on my review unit, but on the bright side that limitation forced me to review the memory usage of some of the jobs that I run on my home server, which ended up with me finding a few resource hogs and then fixing them all up. Now I can run about 30 Docker containers of various resource consumption on a single board computer, and with less than 4GB of RAM used. I set up an 8GB swap file on the SSD, just in case.
Thanks to the relatively small boot drive, I also learned that even if you move the Docker data-root folder to another
location, containerd will still clutter up your boot drive, so you’ll have to change that path in
its /etc/containerd/config.toml file root setting.
I’m genuinely impressed with how well the LattePanda IOTA runs as a home server. The board isn’t really designed with that use case in mind, and I suspect that the Intel N150 might be doing most of the heavy lifting here, but still, very impressive!
Is it the perfect home server? No, but it’s pretty damn close to my definition of it.
UEFI settings tour
For those interested in what options are available on the board via its UEFI settings, here are some screenshots of the settings.6
- Main view
- Advanced
- Advanced -> ACPI
- Advanced -> CPU configuration
- Advanced -> Super IO configuration
- Advanced -> Serial port 1 configuration
- Advanced -> SMART Fan Control
- Advanced -> Trusted Computing
- Advanced -> NVMe configuration (no device connected at time of screenshot, oops)
- Advanced -> Power configuration
- Advanced -> USB configuration
- Advanced -> Serial Port console redirection
- Advanced -> SDIO configuration
- Advanced -> Realtek PCIe Ethernet controller
- Chipset
- Chipset -> System Agent (SA) configuration
- Chipset -> Device configuration
- Security
- Security -> Secure Boot
- Boot
- Save & Exit
Conclusion
If the LattePanda IOTA with its adapters fits your project requirements, you’re aware of its limitations, and the price is right, then I believe it’s a solid choice for your next project. My testing didn’t immediately break it, even when I forgot to remove the plastic film on one of the thermal pads.
The current pricing of it and its accessories seem to be roughly in the ballpark of the Raspberry Pi 5 8GB (based on prices in Estonia). Boards like the Zimaboard 2 (have not tested it myself) are more expensive, but they’re also catering to a slightly different audience and have better specs, like 2.5G Ethernet ports and SATA ports with power delivery suitable for running two 3.5" hard drives straight from the board.
It’s hard to beat the bargain that you can get from a used mini PC or NAS, but it won’t come with the charm, low power consumption and bragging rights that a single board computer gets you, especially if you’re using it for an off-label use case like I am.7
In the meantime, I’ll keep rocking it as a home server. In case something noteworthy happens, I’ll update this post, which is brought to you by the very same LattePanda IOTA at the time of publishing.
-
this also marks the first time that I’ve been sent a review sample throughout the course of running this blog! ↩︎
-
do note that with most M.2 PCIe->SATA adapters, the controller of the adapter determines how good of an experience you will have. With some, I’ve read that the controllers may not handle some failure scenarios well, one device having issues may throw off the whole controller, and now you have a bigger mess. ↩︎
-
the earliest PC motherboard with a gigabit Ethernet connection that I’ve personally used was manufactured in 2006. That’s how long gigabit Ethernet has been around for in the consumer space. ↩︎
-
say that 10 times in a row! ↩︎
-
I know, that usually does not happen on this blog. ↩︎
-
being a prolific open source influencer does not bring in as much money as you’d think, so I haven’t bought a proper capture device yet. ↩︎
-
no, but seriously, I cannot be the only one who has a strange affection towards SBC-s with their bare PCB-s. I can’t tell a capacitor from a resistor, but the boards are just so damn cool, right? ↩︎
Subscribe to new posts via the RSS feed.
Not sure what RSS is, or how to get started? Check this guide!
You can reach me via e-mail or LinkedIn.
If you liked this post, consider sharing it!