As with many homelab experiments around 2022/2023, it all started with Raspberry Pi-s being either out of stock or absurdly overpriced.

I once noticed a listing for a LattePanda V1 on a local auction site. The price was reasonable at 45 EUR, and after I looked at the specifications, I had to get one to play around with.

Embrace the jank!
Embrace the jank!

The auction site usually sells used items, but this LattePanda V1 was brand new in box, which surprised me. I got the 2GB RAM/32GB eMMC option.

I put the LattePanda through its paces, and here’s what I learned.

Please note that my use cases are more on the software side, I did not try out the hardware capabilities that SBC-s are also associated with (GPIO, camera/display ports etc).

The hardware

What makes the LattePanda V1 special is that it’s based off of an x86 CPU. Mine came with an Intel Atom x5-Z8350. 4 cores, not very fast ones, but similar or better to what you’d find in a Raspberry Pi 4. Most single-board computers usually come with an ARM-based CPU.

The board behaves like any normal PC. You power it on, you see the LattePanda logo, and the OS just starts up. Smashing the “Delete” key during the boot will direct you to the UEFI settings. Since this board is marketed towards the technical crowd, it has so many settings that you can play with. Definitely more than what I’d know to do with.

The board comes with Windows 10 preinstalled. I booted it up and gave it a go, and it was slow as molasses while it downloaded the latest updates. At one point I reinstalled Windows 10 and ran into issues. It “works”, but I had trouble getting any Intel GPU drivers installed on it, which rendered it almost useless for any media playback use case that I could have used it for.

The port selection is okay. It comes with 100 Mbit/s Ethernet, one USB 3.0 port and two USB 2.0 ports. I could get around 350 MB/s out of the USB 3 port with an external SSD, and the USB 2 ports pulled anywhere between 15-40 MB/s, depending on my luck. If you fancy a gigabit connection, then an USB-to-Ethernet adapter might do the trick.

Adding one external HDD or SSD over USB is okay and works well, but after adding a second one I noticed issues with either one of the disks not receiving enough power. If you intend to use the LattePanda V1 as the brains for a cheap NAS, then use drives that are powered externally.

The eMMC storage on the board is decent. Regarding performance it’s somewhere between a hard drive and a proper SSD, and the sequential read speeds max out around 150 MB/s. My main concern with it is the durability. The eMMC chip is probably hidden behind the metal shielding on the board and replacing it (if that is even possible) might turn out to be tricky. ls -lah /dev/disk/by-id/ lists the eMMC chip as mmc-DA4032, which a little bit of Googling refers to it being a SanDisk chip.

The microSD card port works, but either booting from the microSD card is not possible or the board was a bit temperamental when I gave it a go with Ubuntu Server 22.04.

The board runs hot in its barebones configuration, any decent load over a longer time period will result in the CPU throttling itself. I recommend rigging up a metal heat sink to the bottom of the board to avoid throttling and stability issues under very high load. A thermal pad, a piece of metal, and a bunch of zip ties will do wonders.

Do not look at the bend.
Do not look at the bend.

The Linux experience

When experimenting with Linux, I found a couple of annoyances. The LattePanda V1 seems to have a display connector on board. However, in Linux it turned out to be an annoyance as the system always presented a 1024x768 display being connected to the system. Booting into a Fedora Linux liveUSB environment will lead you to staring a blank view with only the wallpaper present. Playing with settings in UEFI did not lead to any improvements. What works is adding a kernel parameter: video=DSI-1:d. With Fedora Linux, if you apply this fix in GRUB when first booting into the liveUSB environment, it will persist after the installation is done.

Once I had Fedora Linux booted up, I did not have a good time. The display flickered when I dragged the mouse near the edges and the performance was awful. It didn’t take long for the desktop session to crash.

One of the main reasons I wanted to experiment with this setup was the low power usage of this board. The LattePanda V1 idles at around 3 watts, and under a high CPU load generated with stress -c 4 I could get it to 5-6 watts. This made it a great candidate for running this website and Wireguard VPN 24/7 at home. I ended up installing Ubuntu Server 22.04 on it and actually ran this website off of it for about a week or so.

The reason I stopped using the LattePanda V1 for that purpose was the performance. The 100 Mbit/s Ethernet wasn’t a disaster, but it did set limits to how much traffic I could push through the board. What made me reconsider was the CPU performance. Simply put: SSL encryption speeds were about 5-10x slower than on my ThinkPad T430 that ran as a server before.

My performance testing wasn’t scientific or anything, but I did run simple tests. One of the involved running curl against resources, such as an image on my blog, in an infinite loop and over multiple threads. The ThinkPad T430 peaked at around 650 Mbit/s of network bandwidth while the LattePanda V1 struggled at around 60 Mbit/s.

After looking for some other benchmarking options that I could set up really quickly, I also gave ApacheBenchmark a go. This more-or-less confirmed my findings and the requests per second results are the following:

  • ThinkPad T430: 301.72
  • LattePanda V1: 55.86
ApacheBenchmark results for the ThinkPad T430.
ApacheBenchmark results for the ThinkPad T430.
ApacheBenchmark results for the LattePanda V1.
ApacheBenchmark results for the LattePanda V1.

The LattePanda V1 was over 5 times slower in that test. With a slow internet uplink this might not matter much, though.

I ended up putting the T430 back in service after doing more calculations. One idea I had with the LattePanda V1 was to have that run 24/7 due to its low idle power usage and have another beefy server run during certain hours. I liked that idea until I calculated the difference in power savings. Having the main server with around 12 W of idle power turn off for 6 hours and the LattePanda running at the same time would have actually increased the total power consumption of the setup compared to having the main server running 24/7.

The math will make sense if your main server uses much more power. Most desktop PC-s that I have seen idle around 35-50 W and rack-mounted servers use even more than that, so in those situations this might make more sense. Or you can whip up a solution that starts and stops machines in your homelab on-demand.

Oh, and don’t expect to run CPU or GPU based transcoding off of this thing with Jellyfin. It works okay for certain video formats and resolutions, but a 1080p H.265 video transcoded to H.264 is just not fast enough on this machine.

A suitable use case

I might change my mind at one point and give the LattePanda a go again as a low power web server. I hate unused hardware, which is why this LattePanda V1 is now serving as an offsite backup. The USB 3 port makes sense for attaching a bigger storage device and if you run ZFS, you can also send your whole filesystem to it with zfs send/receive or syncoid. I haven’t had much luck with ARM and ZFS, but with the LattePanda and its x86-based CPU I have not had issues.

LattePanda V1 in its final form: a backup endpoint.
LattePanda V1 in its final form: a backup endpoint.

Conclusion

All-in-all, it’s a neat little board that shows signs of instability from time to time. If you intend to just run Ubuntu Server on it and your workloads are not very performance critical, then it might work out well for you. Think of it like a juiced-up Raspberry Pi 4 to get an idea of what it might be suitable for regarding performance.

It did not fit the use case I intended to use it for, but I’m still happy that I could play around with this board. It was fun!