The LattePanda Mu

Even though my current preferences in the “Intel” space actually lean towards AMD, I’ve been keeping an eye on industrial x86-64 for a while. But not too closely, so I was pretty surprised to get my hands on a LattePanda Mu, and it feels like a fresh take on the entire compute module concept.

The LattePanda Mu and the Lite Carrier in a 3D printed case
The LattePanda Mu and the Lite Carrier in a 3D printed case

Tiny But Mighty

Of all the development boards I’ve (and the multiple industrial mini-PCs I’ve also looked at for customers), the Mu is the first one that feels like a proper “compute module” you can actually build a product around:

This is the core product—just the board
This is the core product—just the board

You see, unlike previous LattePanda products, this is not a “regular” single-board computer, but rather a compute module you can slot into a couple of different carrier boards—or, more to the point, design your own.

Disclaimer: DFRobot supplied me with a Mu and a Lite Carrier free of charge, and I covered customs and supplied my own extra storage. And, as usual, this article follows my .

Hardware

This is what the LattePanda Mu looks like:

Both sides of the compute board
Both sides of the compute board

This tiny board includes a N305 CPU, 16GB RAM, and 64GB eMMC storage—all basics are included in-module. There are also N100 versions with either 8GB or 16GB RAM, and all of them are compatible with two carrier boards, which provide different sets of capabilities and ports:

  • Lite Carrier (DFR1142): the more compact option, with USB-C PD or 12-20V DC in, HDMI 2.0, GbE (sadly, you don’t get 2.5GbE on this model), M.2 M-key (NVMe 2230), M.2 E-key (Wi-Fi), and a PCIe 3.0 x4 slot.
  • Full-Function Evaluation Carrier: an ITX-ish board that exposes pretty much all the bus lines, including dual 2.5GbE, dual SATA, more USB, RS-232, extra PCIe, fan headers, etc.

The idea here is that the Lite Carrier is a compact board that provides essential I/O options, while the “Full Function Evaluation Carrier” offers a more extensive set of features for development and testing. You still get a very nice set of ports with the Lite, and that PCIe 3.0 x4 slot is a great addition.

What I Got

I have the N305 SKU (8 cores, up to 3.8GHz) with 16GB LPDDR5 and 64GB eMMC, mounted on the Lite Carrier. Given Intel dropped Hyper-Threading on these but kept virtualization, the N305’s eight efficient cores make a lot of sense for containers/VMs and appliance workloads. Having tested multiple N100 and N150 machines recently, I wanted to see how it compared.

But let’s be realistic—the N100 (and an N150 variant, when it comes) is likely to be more than enough for any real industrial application, and most custom solutions are likely to require Intel-grade CPU power—which is the space the Mu is squarely targeting.

Choosing the N305 does come with a trade-off: you really must have active cooling, so DFRobot provided me with a nice little active cooler to keep it in check.

The active cooler, which fastens onto the compute module
The active cooler, which fastens onto the compute module

Intel Niceties

Compared to the multiple RK3588 ARM boards I’ve been testing recently, the LattePanda Mu comes with a lot of extra “baggage” from its Intel chipset, and this is where the Mu shines. The bare module breaks out:

  • Up to 9× PCIe 3.0 lanes
  • Up to 4× USB 3.2 and 8× USB 2.0
  • Up to 2× SATA 6Gb/s
  • Three independent displays (HDMI 2.0/DP 1.4 up to 4K60) plus eDP 1.4
  • Multiple UART/I2C, plus a big set of GPIO pins (with some caveats)

So that PCIe 3.0 x4 slot on the Lite Carrier can be put to good use, and it won’t even begin to tax the N305’s PCIe budget.

The Lite Carrier Board. Note the PCIe slot.
The Lite Carrier Board. Note the PCIe slot.

The Full-Function Evaluation Carrier exposes even more PCIe lanes, which are routed to the dual 2.5GbE, the SATA, an extra PCIe 3.0x1 slot, and more USB ports. The entire point of the Mu is that you can build exactly what you need, and I expect we’ll be seeing a few enterprising souls designing their own custom carrier boards. There are open KiCAD reference designs and even 3D STEP files available on GitHub, so I expect it to be only a matter of time.

There are also a few industrial-grade niceties: yes, you get LPDDR5 and built-in eMMC (which provides sufficient boot storage), but there is also in-band ECC (IBECC) support. Rare at this size/price, great for reliability.

GPIOs

On paper, the headers expose a lot of pins, but I don’t see general-purpose GPIO fully wired up in firmware yet. UART/I2C seem to work based on what I can see on GitHub, so basic serial/sensor stuff should be fine. But if your design hinges on bit-banging or tight GPIO loops, you’ll probably want to watch firmware releases (or plan around a small MCU on a custom carrier for now, which is exactly what the did).

Software

What I see as the key advantage of the Mu is the software support—you get proper UEFI BIOS and normal OS installs. No vendor kernels, no odd flashing tools, no weirdness. Just plug in and go.

Or you can always take a side trip through the BIOS settings (hit Del during startup) to tweak things to your liking:

The BIOS is one of the most complete I've seen in recent N-series machines

I installed the same 2230 NVMe SSD I used on the (and a Wi-Fi card), but the Mu will boot just fine from the eMMC if you don’t have a drive installed, and mine shipped with Windows 11 LTSC:

After a full Windows Upgrade cycle, you get almost 23GB free on the eMMC

Proxmox 9.0

support is what you’d expect from modern Intel: Ubuntu/Debian/Fedora boot cleanly, NVMe, Ethernet, Wi-Fi (via M.2 card), displays, and audio all show up without drama. and TrueNAS are supported too if you’re building a home lab, and since the NVMe I was using already had 8.0 installed, I upgraded it to 9.0 and used that for most of my testing.

Which was when I found there is a Thunderbolt 4 USB controller (I had read the specs for the USB ports, but this drove it home):

# lspci
00:00.0 Host bridge: Intel Corporation Device 4617
00:02.0 VGA compatible controller: Intel Corporation Alder Lake-N [UHD Graphics]
00:0a.0 Signal processing controller: Intel Corporation Platform Monitoring Technology (rev 01)
00:0d.0 USB controller: Intel Corporation Alder Lake-N Thunderbolt 4 USB Controller
00:14.0 USB controller: Intel Corporation Alder Lake-N PCH USB 3.2 xHCI Host Controller
00:14.2 RAM memory: Intel Corporation Alder Lake-N PCH Shared SRAM
00:15.0 Serial bus controller: Intel Corporation Device 54e8
00:15.1 Serial bus controller: Intel Corporation Device 54e9
00:15.2 Serial bus controller: Intel Corporation Device 54ea
00:15.3 Serial bus controller: Intel Corporation Device 54eb
00:16.0 Communication controller: Intel Corporation Alder Lake-N PCH HECI Controller
00:19.0 Serial bus controller: Intel Corporation Device 54c5
00:19.1 Serial bus controller: Intel Corporation Device 54c6
00:1a.0 SD Host controller: Intel Corporation Device 54c4
00:1c.0 PCI bridge: Intel Corporation Alder Lake-N PCI Express Root Port #3
00:1c.3 PCI bridge: Intel Corporation Alder Lake-N PCI Express Root Port #4
00:1c.6 PCI bridge: Intel Corporation Alder Lake-N PCI Express Root Port #7
00:1f.0 ISA bridge: Intel Corporation Alder Lake-N PCH eSPI Controller
00:1f.3 Audio device: Intel Corporation Alder Lake-N PCH High Definition Audio Controller
00:1f.4 SMBus: Intel Corporation Alder Lake-N SMBus
00:1f.5 Serial bus controller: Intel Corporation Alder Lake-N SPI (flash) Controller
01:00.0 Non-Volatile memory controller: Silicon Motion, Inc. SM2269XT (DRAM-less) NVMe SSD Controller (rev 03)
02:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8852BE PCIe 802.11ax Wireless Network Controller
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet Controller (rev 15)

And yes, one of those Realtek chips is the Wi-Fi card I dropped in, which also has a Bluetooth radio—sadly, the Lite Carrier does not come with 2.5GbE, which is the only real downside for me:

# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 003 Device 003: ID 3346:1009 sipeed NanoKVM
Bus 003 Device 004: ID 04d9:0006 Holtek Semiconductor, Inc. Wired Keyboard (78/79 key) [RPI Wired Keyboard 5]
Bus 003 Device 005: ID 0bda:b85b Realtek Semiconductor Corp. Bluetooth Radio
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Note: I did try the and it worked fine (as did the USB version), so the lack of 2.5GbE is fixable, but something that I personally found a bit disappointing.

Performance

Since the NVMe SSD still had a bunch of test data, it was trivial to use the exact same version of ollama I had been using previously and compare the N305 to an N100.

Overall, the full eight cores nearly doubled the performance in most scenarios (like compiling software), but there were a few edge cases where the N100 still held its own.

Ollama

For instance, ollama performed slightly worse on the N305 with one model. Having seen that before, I ascribe it to inference only really using a portion of the cores, and more cores end up leading to less efficient scheduling. Also, differences in RAM bandwidth and clocking will skew the results, so take this with a grain of salt, especially since these models are very small and the differences are negligible in real-world terms.

for run in {1..10}; do echo "Why is the sky blue?" | ollama run tinyllama --verbose 2>&1 >/dev/null | grep "eval rate:" | grep -v prompt; done | awk '{total+=$3;count++} END {print total/count}'

Machine Model Eval Tokens/s

LattePanda Mu (N305)

dolphin-phi 5.258
tinyllama 13.895

GMKtec G2 (N100)

dolphin-phi 8.01
tinyllama 21.13

Intel i7-6700

dolphin-phi 7.57
tinyllama 16.61

Radxa X4 (N100)

dolphin-phi 4.407
tinyllama 14.826

Power and Thermals

Measured at the wall using a 12V/3A barrel jack adapter, the power envelope was very consistent across operating systems:

  • Windows Update/Ollama: 12–23W
  • Idle: ~9W

Thermals while running ollama were… Great, thanks to the active cooler:

# sensors
coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +75.0°C  (high = +105.0°C, crit = +105.0°C)
Core 0:        +75.0°C  (high = +105.0°C, crit = +105.0°C)
Core 1:        +75.0°C  (high = +105.0°C, crit = +105.0°C)
Core 2:        +75.0°C  (high = +105.0°C, crit = +105.0°C)
Core 3:        +75.0°C  (high = +105.0°C, crit = +105.0°C)
Core 4:        +75.0°C  (high = +105.0°C, crit = +105.0°C)
Core 5:        +75.0°C  (high = +105.0°C, crit = +105.0°C)
Core 6:        +75.0°C  (high = +105.0°C, crit = +105.0°C)
Core 7:        +75.0°C  (high = +105.0°C, crit = +105.0°C)

acpitz-acpi-0
Adapter: ACPI interface
temp1:        +27.8°C

nvme-pci-0100
Adapter: PCI adapter
Composite:    +42.9°C  (low  = -273.1°C, high = +85.8°C)
                       (crit = +92.8°C)
Sensor 1:     +42.9°C  (low  = -273.1°C, high = +65261.8°C)
Sensor 2:     +48.9°C  (low  = -273.1°C, high = +65261.8°C)

There is a little bit of heat soaking, but the cooler works very well indeed:

Thermals running ollama, with a nice cooldown cliff
Thermals running ollama, with a nice cliff cooldown

…the only drawback is that the fan is pretty audible, so for completely silent builds with the Mu, either set a <=10W cap or go N100 with a passive cooler…

That lines up with the platform’s adjustable TDP (6-35W in BIOS). The active cooler keeps the N305 in check at “sensible” TDPs; it’s audible under sustained load but not obnoxious.

And, as is typical in N-series CPUs, clock speeds are “spiky” when not under load, with cores dropping to lower frequencies to save power as soon as possible but also spiking up to take on load:

Average clock speed across all 8 cores
Average clock speed across all 8 cores

Side Quests

Since I like my machines nice and tidy, after most of the testing was done I 3D printed this pretty nice case from MakerWorld, which takes advantage of the acrylic plates DFRobot supplies to go under the Lite Carrier and keeps everything dust-free.

I’ve had it running for five or six days now, and it’s been a very nice and snappy experience. The Intel UHD Graphics 600 gives a good account of itself—it’s the only part of the Alder Lake chips that feels dated, but is still serviceable.

Conclusion

The LattePanda Mu is a very nice compute module. And as the first x86 one I tried, it is very compelling indeed if only due to the ease with which you can install and run anything on it.

I think we’ll see a lot of interesting projects around it, particularly for those who need a compact form factor without sacrificing performance. One of its key strengths is the open approach that has contributed to the popularity of the LattePanda brand for developers and hobbyists alike.

As to the N305 itself, subjectively, it feels like a very capable chip. I was surprised that Windows 11 was significantly snappier than on an N100, and the Linux experience has been very nice, to the point where I am starting to consider getting the larger carrier board to turn my Mu into a portable server.

Little Things to Improve

There are a few areas where the LattePanda Mu could be improved, though:

  • A 2.5GbE version of the Lite Carrier would be great.
  • Fan curve tuning on the active cooler would be nice; load transients can ramp audibly.

Typical Use Cases

But even if you go with the N100, the Mu is a great choice for:

  • Home lab node (, a couple of VMs, Docker/LXC)
  • Compact firewall/router (dual 2.5GbE on the eval carrier), or a small NAS (NVMe + SATA)
  • Kiosk/signage boxes (eDP touch, quiet TDP cap)

And since it’s x86, software availability, installation and drivers are non-issues compared to most ARM boards. You can absolutely get cheaper N100 mini-PCs, but the open hardware story and PCIe budget make it feel like a grown-up SoM you can bet a product on, and I think it is going to be wildly successful.

This page is referenced in: