Iβve been asked to review three Intel-based UP AI development kits running Ubuntu 24.04 Pro. Last time, I tested the UP TWL SBC with Nx Meta and UP AI Toolkit, and most AI workloads would pass, but since these were running on the Intel N150 CPU or GPU, the performance was not optimal for most. Iβll now switch to the UP Squared Pro TWL βmid-rangeβ AI devkit review with another Intel Processor N150 SBC fitted with a 13 TOPS Hailo-8L M.2 AI accelerator.
Both the UP TWL and UP Squared Pro TWL come with a 64GB eMMβ¦
Iβve been asked to review three Intel-based UP AI development kits running Ubuntu 24.04 Pro. Last time, I tested the UP TWL SBC with Nx Meta and UP AI Toolkit, and most AI workloads would pass, but since these were running on the Intel N150 CPU or GPU, the performance was not optimal for most. Iβll now switch to the UP Squared Pro TWL βmid-rangeβ AI devkit review with another Intel Processor N150 SBC fitted with a 13 TOPS Hailo-8L M.2 AI accelerator.
Both the UP TWL and UP Squared Pro TWL come with a 64GB eMMC flash, and I found out it was rather tight since AI software and models can take a lot of space. The UP Squared Pro TWL has a few M.2 sockets, so Iβll install an NVMe SSD to expand storage before installing the UP AI toolkit. As usual, Iβll run a few benchmarks and test the boardβs key hardware features before focusing on the AI part.
UP Squared Pro TWL SBC system information
Like the UP TWL, the UP Squared Pro TWL Intel N150 SBC is preloaded with Ubuntu 24.04.3 LTS installed on a 64GB (62.6GB) eMMC flash, and ships with 8GB of RAM.
Letβs get more details with the inxi utility:
| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 | devkit@devkit-UPN-TWL01:~$ sudo inxi -Fc0System: Host: devkit-UPN-TWL01 Kernel: 6.14.0-32-generic arch: x86_64 bits: 64 Console: pty pts/1 Distro: Ubuntu 24.04.3 LTS (Noble Numbat)Machine: Type: Desktop Mobo: AAEON model: UPN-TWL01 v: V1.0 serial: 250162900 UEFI: American Megatrends LLC. v: UNTWAM10 date: 03/11/2025CPU: Info: quad core model: Intel N150 bits: 64 type: MCP cache: L2: 2 MiB Speed (MHz): avg: 700 min/max: 700/3600 cores: 1: 700 2: 700 3: 700 4: 700Graphics: Device-1: Intel Alder Lake-N [Intel Graphics] driver: i915 v: kernel Device-2: Sunplus Innovation FHD Camera driver: snd-usb-audio,uvcvideo type: USB Display: server: X.org v: 1.21.1.11 with: Xwayland v: 23.2.6 driver: gpu: i915 tty: 101x23 resolution: 1920x1080 API: EGL v: 1.5 drivers: iris,swrast platforms: gbm,surfaceless,device API: OpenGL v: 4.6 compat-v: 4.5 vendor: mesa v: 25.0.7-0ubuntu0.24.04.2 note: console (EGL sourced) renderer: Mesa Intel Graphics (ADL-N), llvmpipe (LLVM 20.1.2 256 bits)Audio: Device-1: Intel driver: intel-ipu6 Device-2: Intel Alder Lake-N PCH High Definition Audio driver: snd_hda_intel Device-3: Sunplus Innovation FHD Camera driver: snd-usb-audio,uvcvideo type: USB API: ALSA v: k6.14.0-32-generic status: kernel-apiNetwork: Device-1: Intel Ethernet I226-IT driver: igc IF: enp1s0 state: up speed: 2500 Mbps duplex: full mac: 00:07:32:c9:de:a0 Device-2: Intel Ethernet I226-IT driver: igc IF: enp2s0 state: down mac: 00:07:32:c9:de:a1 IF-ID-1: docker0 state: down mac: ca:0a:2f:54:5d:93Drives: Local Storage: total: 58.32 GiB used: 12.65 GiB (21.7%) ID-1: /dev/mmcblk0 model: TY2964 size: 58.32 GiB type: RemovablePartition: ID-1: / size: 56.07 GiB used: 12.64 GiB (22.5%) fs: ext4 dev: /dev/mmcblk0p2 ID-2: /boot/efi size: 1.05 GiB used: 6.1 MiB (0.6%) fs: vfat dev: /dev/mmcblk0p1Swap: ID-1: swap-1 type: file size: 4 GiB used: 0 KiB (0.0%) file: /swap.imgSensors: System Temperatures: cpu: 39.0 C mobo: N/A Fan Speeds (rpm): N/AInfo: Memory: total: 8 GiB available: 7.5 GiB used: 1.17 GiB (15.6%) igpu: 60 MiB Processes: 210 Uptime: 55m Init: systemd target: graphical (5) Shell: Sudo inxi: 3.3.34 |
Most main features seem to be detected properly, including the two 2.5GbE RJ45 ports (only one connected) and the UP USB camera connected to the board. The Hailo-8L module is not listed here, but we can locate it with lspci.
| 12 | devkit@devkit-UPN-TWL01:~$ lspci | grep -i Hailo03:00.0 Co-processor: Hailo Technologies Ltd. Hailo-8 AI Processor (rev 01) |
Benchmarks
Before I run any benchmark on the UP Squared Pro, Iβll check the power limits:
| 12345678910111213141516171819202122232425262728293031323334353637383940 | devkit@devkit-UPN-TWL01:$ sudo apt install powercap-infodevkit@devkit-UPN-TWL01:$ sudo powercap-info -p intel-raplenabled: 1Zone 0 name: package-0 enabled: 1 max_energy_range_uj: 262143328850 energy_uj: 8620533961 Constraint 0 name: long_term power_limit_uw: 6000000 time_window_us: 27983872 max_power_uw: 6000000 Constraint 1 name: short_term power_limit_uw: 25000000 time_window_us: 2440 max_power_uw: 0 Constraint 2 name: peak_power power_limit_uw: 78000000 max_power_uw: 0 Zone 0:0 name: core enabled: 0 max_energy_range_uj: 262143328850 energy_uj: 1227366303 Constraint 0 name: long_term power_limit_uw: 0 time_window_us: 976 Zone 0:1 name: uncore enabled: 0 max_energy_range_uj: 262143328850 energy_uj: 1736689 Constraint 0 name: long_term power_limit_uw: 0 time_window_us: 976 |
PL1 is set to 6W and PL2 to 25W by default. As weβve seen in the UP TWL review, this limits the performance in benchmarks like sbc-bench.sh. Since we are not talking about a consumer device here, it may make sense since the UP TWL and UP Squared Pro TWL SBCs are designed to operate in the -20Β°C to 70Β°C temperature range with their respective active coolers, and reliability may be more important than performance. Itβs up to the customer to decide whether increasing power limits is appropriate for their application.
For comparison purposes, I went to the BIOS to set PL1 to 12W since this value is used in other Intel Alder Lake-N/Twin Lake processors.
Time to run sbc-bench.sh:
| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | devkit@devkit-UPN-TWL01:~$ sudo ./sbc-bench.sh -rStarting to examine hardware/software for review purposes...sbc-bench v0.9.72Installing needed tools: apt-get -f -qq -y install links mmc-utils smartmontools stress-ng, p7zip 16.02, tinymembench, ramlat, mhz, cpufetch, cpuminer. Done.Checking cpufreq OPP. Done.Executing tinymembench. Done.Executing RAM latency tester. Done.Executing OpenSSL benchmark. Done.Executing 7-zip benchmark. Done.Throttling test: heating up the device, 5 more minutes to wait. Done.Checking cpufreq OPP again. Done (11 minutes elapsed).Results validation: * Measured clockspeed not lower than advertised max CPU clockspeed * No swapping * Background activity (%system) OK * Powercap detected. Details: "sudo powercap-info -p intel-rapl" -> https://tinyurl.com/4jh9nevj# AAEON UPN-TWL01 V1.0 / N150Tested with sbc-bench v0.9.72 on Thu, 20 Nov 2025 11:44:14 +0100.### General information: Information courtesy of cpufetch: Name: Intel(R) N150 Microarchitecture: Alder Lake Technology: 10nm Max Frequency: 3.600 GHz Cores: 4 cores AVX: AVX,AVX2 FMA: FMA3 L1i Size: 64KB (256KB Total) L1d Size: 32KB (128KB Total) L2 Size: 2MB L3 Size: 6MB N150, Kernel: x86_64, Userland: amd64 CPU sysfs topology (clusters, cpufreq members, clockspeeds) cpufreq min max CPU cluster policy speed speed core type 0 0 0 700 3600 - 1 0 1 700 3600 - 2 0 2 700 3600 - 3 0 3 700 3600 -7682 KB available RAM### Clockspeeds (idle vs. heated up):Before at 43.0Β°C: cpu0: OPP: 3600, Measured: 3582 After at 66.0Β°C: cpu0: OPP: 3600, Measured: 3584 ### Performance baseline * memcpy: 10235.4 MB/s, memchr: 15241.1 MB/s, memset: 10065.4 MB/s * 16M latency: 161.3 141.3 162.2 141.8 160.5 122.7 113.0 115.2 * 128M latency: 185.6 170.8 186.4 172.4 185.7 161.7 142.7 137.4 * 7-zip MIPS (3 consecutive runs): 12462, 10946, 10927 (11440 avg), single-threaded: 3679 * `aes-256-cbc 939480.61k 1245106.62k 1287293.78k 1296532.14k 1301331.97k 1299933.87k` * `aes-256-cbc 953569.31k 1239079.40k 1286866.86k 1298183.85k 1299472.38k 1301288.28k`### PCIe and storage devices: * Intel Ethernet I226-IT: Speed 5GT/s, Width x1, driver in use: igc, * Intel Ethernet I226-IT: Speed 5GT/s, Width x1, driver in use: igc, * 58.3GB "Kingston TY2964" HS400 Enhanced strobe eMMC 5.1 card as /dev/mmcblk0: date 05/2025, manfid/oemid: 0x000070/0x0100, hw/fw rev: 0x0/0x5b00000000000000 * Winbond W25Q256JW 32MB SPI NOR flash, drivers in use: spi-nor/intel-spi### Swap configuration: * /swap.img on /dev/mmcblk0p2: 4.0G (0K used) on MMC storage### Software versions: * Ubuntu 24.04.3 LTS (noble) * Compiler: /usr/bin/gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0 / x86_64-linux-gnu * OpenSSL 3.0.13, built on 30 Jan 2024 (Library: OpenSSL 3.0.13 30 Jan 2024) ### Kernel info: * `/proc/cmdline: BOOT_IMAGE=/boot/vmlinuz-6.14.0-35-generic root=UUID=622b74e1-28c3-43d7-bbda-67313e3e422b ro quiet splash vt.handoff=7` * Vulnerability Reg file data sampling: Mitigation; Clear Register File * Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl * Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization * Vulnerability Vmscape: Mitigation; IBPB before exit to userspace * Kernel 6.14.0-35-generic / CONFIG_HZ=1000Waiting for the device to cool down........................................................... 33.0Β°C^C |
Thereβs no thermal throttling here with the CPU temperature measured at 66.0Β°C after the benchmark. Performance is roughly in line with other Intel N100/N150 systems based on the average 7-zip score: 11,440 MIPS. For reference, the UP TWL achieved 11,690 MIPS in the same test. If you need to extract a bit more performance, switching to PL1=15W is also possible, and for reference, the GEEKOM Mini Air12 Lite mini PC reached 12750 MIPS with this power limit.
I switched back to PL1 = 6W for the rest of the test since it is the default value.
UP Squared Pro TWL SBC features testing
Iβve also checked most hardware features of the UP Squared Pro TWL SBC:
-
HDMI β Video OK, Audio OK
-
DisplayPort β Video OK, Audio OK (improvement over the UP 7100 SBC for which DisplayPort audio was not working for me)
-
eDP β Skipped, no hardware to test
-
Storage
-
eMMC flash β OK: 314 MB/s sequential reads, 230 MB/s sequential writes.
| 12345678 | devkit@devkit-UPN-TWL01:~$ iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 102400 4 55207 60063 39987 39734 36383 58683 102400 16 129433 132180 95092 94934 73105 126342 102400 512 201964 207886 251420 252583 248249 199515 102400 1024 219621 218312 280656 280788 280001 218985 102400 16384 230705 235964 314221 315697 315242 231700 |
- M.2 2280 PCIe socket tested with 2TB WD Black SN850X NVMe SSD β OK for PCIe Gen3 x2: 1,703 MB/s sequential reads, 1,700 MB/s sequential writes.
| 12345678 | devkit@devkit-UPN-TWL01:/media/nvme0n1p1$ iozone -e -I -a -s 1000M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 1024000 4 163308 263404 179035 180555 84427 240588 1024000 16 471697 634324 544889 545648 221468 646226 1024000 512 1530045 1553857 1524317 1525846 1320891 1552316 1024000 1024 1599613 1611895 1551181 1553878 1491969 1608990 1024000 16384 1700501 1699858 1703352 1704833 1700982 1700776 |
-
2.5 Gbps Gigabit Ethernet
-
LAN1 (top) β OK (iperf3 DL: 2.35 Gbps, UL: 2.35 Gbps, full-duplex: 2.35/2.35 Gbps)
-
LAN2 (bottom) β OK (iperf3 DL: 2.35 Gbps, UL: 2.35 Gbps, full-duplex: 2.35/2.35 Gbps)
-
USB ports tested with an ORICO NVMe SSD enclosure (EXT-4 partition), RF dongle for a wireless keyboard/mouse combo, and USB camera
-
Top β 10 Gbps; tested up to 1,0007 MB/s with iozone3
-
Bottom β 10 Gbps; tested up to 1,008 MB/s with iozone3
-
RTC β OK
| 1234567891011 | devkit@devkit-UPN-TWL01:$ sudo apt install util-linux-extradevkit@devkit-UPN-TWL01:$ timedatectl Local time: Mon 2025-11-24 04:54:18 CET Universal time: Mon 2025-11-24 03:54:18 UTC RTC time: Mon 2025-11-24 03:54:18 Time zone: Europe/Amsterdam (CET, +0100)System clock synchronized: yes NTP service: active RTC in local TZ: nodevkit@devkit-UPN-TWL01:~$ sudo hwclock -r2025-11-24 04:54:20.985502+01:00 |
- GPIOS β OK β Also see the 40-pin GPIO header layout for all UP boards.
| 123456789101112131415161718192021222324 | devkit@devkit-UPN-TWL01:$ ls /dev/gpiochip*/dev/gpiochip0 /dev/gpiochip1devkit@devkit-UPN-TWL01:$ sudo gpioinfo 0gpiochip0 - 360 lines: line 0: unnamed unused input active-high line 1: unnamed unused input active-high line 2: unnamed unused input active-high line 3: unnamed unused input active-high line 4: unnamed unused input active-high line 5: unnamed unused input active-high line 6: unnamed unused input active-high line 7: unnamed unused input active-high ...devkit@devkit-UPN-TWL01:~$ sudo gpioinfo 1gpiochip1 - 28 lines: line 0: unnamed unused input active-high line 1: unnamed unused input active-high line 2: unnamed unused input active-high line 3: unnamed unused input active-high line 4: unnamed unused input active-high line 5: unnamed unused input active-high line 6: unnamed unused input active-high line 7: unnamed unused input active-high ... |
I also tested a dual display setup using a portable HDMI full HD monitor (CrowView) and a 4K Google TV monitor (KTC A32Q8) with a DisplayPort input, and no problems here. It should even support up to three displays using the eDP connector.
I had no audio at first because the HDMI display lacks speakers, but I could switch to HDMI / DisplayPort 2 to get audio through the KTC monitorβs speakers.
Besides the two audio output devices, the microphone from the UP USB camera also showed up as a n audio input device.
So all features work to expectation, and no major issue here.
AI testing on the UP Squared Pro TWL Intel N150 SBC with Hailo-8 AI accelerator
I will now run several AI workloads on the system using Network Optix Nx Meta and the AAEON UP AI toolkit, as I did on the UP TWL, but leveraging the 13 TOPS Hailo-8L AI accelerator included in the kit.
Network Optix Nx Meta
For this test, Iβll use the UP Squared Pro TWLβs built-in eMMC flash and the Hailo-8L equipped with a heatsink for cooling.
Letβs install with Nx AI Certification Test:
| 123456789101112 | sudo apt dist-upgradesudo apt install python3-pip python3-venvmkdir nxai_testcd nxai_testwget https://artifactory.nxvms.dev/artifactory/nxai_open/NXAITest/nxai_test.tgztar -xvf nxai_test.tgzpython3 -m venv ./ source ./bin/activate # activate python venvpip3 install -r requirements.txt./Utilities/install_nxai_manager.shpython3 Utilities/install_acceleration_library.pypython3 Utilities/download_models.py |
Itβs basically the same process as for the UP TWL AI Dev Kit, except for the install_acceleration_library.py step, where I selected ONNX-HailoRT:
| 12345678 | (nxai_test) devkit@devkit-UPN-TWL01:~/nxai_test$ python3 Utilities/install_acceleration_library.py Detecting compatible acceleration hardware...ls: cannot access β/dev/memx*β: No such file or directoryls: cannot access β/dev/dxrt*β: No such file or directorySystem detected more than one compatible acceleration runtime for your device. Please choose one to install:1 : Nx CPU2 : ONNX-HailoRT3 : OpenVino |
Once the installation is complete, we can run the test with the following command:
| 1 | python3 all_suites.py |
Everything runs within the terminal as expected, but I got a lot of failed benchmarks:
| 1234 | Running test: Model-Yolo5su-[256x256]Error: Could not find compatible model: cd6c24d5-e1ae-4c87-a481-8ac9dd426efcLoading test settings...Failed to load test settings. Aborting test. |
Eventually, only 6 benchmarks would complete successfully against 46 when using the Nx CPU option:
| 12345678910 | ###################################################All model benchmarks completed.Benchmark results: 80-classes-object-detector[640x640]: 38.04 FPS 80-classes-object-detector[320x320]: 90.31 FPS postprocessor-python-example: 88.40 FPS postprocessor-python-image-example: 90.55 FPS postprocessor-c-image-example: 83.18 FPS postprocessor-c-example: 89.15 FPS################################################### |
Several stability tests could not run:
| 1234567891011121314151617181920212223242526272829 | ###################################################ββββββββββββββββββββββββββββRunning test suite: Stability-Test-SuiteββββββββββββββββββββββββββββRunning Stability Test SuiteβββββββββββββββββRunning test: multi_model_testCreating backup settings file...Error: Could not find compatible model: 5d321a44-1d21-11ec-88ac-9600004e79ccLoading test settings...Failed to load test settings. Aborting test.ββββββββββββββββββββββββββββββββββRunning test: overload_testCreating backup settings file...Loading test settings...Creating Unix socket server...Starting Edge AI ManagerSending socket inputWaiting for response from Edge AI Manager...Messages: 100534 Rate: 27.9 Transfer: 694.93MB/s Sclblmod Memory: 120.20 MB Relative to start: 104% Sclbld Memory: 79.20 MB Relative to start: 112%Stopping Edge AI ManagerTerminated AI Manager: 0Test completed succesfully.Restoring backup settings file...Test completed without unhandled exception. |
β¦ but the three that could, passed just fine:
| 1234 | βββββββββββββββββββTests passed: 3 / 3βββββββββββββββββββ |
See the full log on CNX Softwareβs pastebin.
I asked AAEON if it was normal, and hereβs their answer:
Certain AI accelerators have compatibility with only with some models so it is expected.
If CNX Software want to run the tests for Hailo, they have to select hailo and perform the tests.
Then they can do the same for openvino and select the specific compute unit (e.g. GPU) to run the tests on the Intel SoC), Nx CPU is generic and I would not do it.
I selected Nx CPU for the UP TWL AI Dev Kit, so I decided to try OpenVino accelerator libraries and models since the UP Squared Pro TWL is based on the same Intel N150 CPU:
| 12345678910 | (nxai_test) devkit@devkit-UPN-TWL01:~/nxai_test$ python3 Utilities/install_acceleration_library.py Detecting compatible acceleration hardware...ls: cannot access β/dev/memx*β: No such file or directoryls: cannot access β/dev/dxrt*β: No such file or directorySystem detected more than one compatible acceleration runtime for your device. Please choose one to install:1 : Nx CPU2 : ONNX-HailoRT3 : OpenVino...(nxai_test) python3 Utilities/download_models.py |
Results:
| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | ###################################################All model benchmarks completed.Benchmark results: Model-Yolov8s-[640x640]: 2.06 FPS Model-Clip: 6.07 FPS Pipeline-Conditional: 229.10 FPS Model-Yolov9-[640x640]: 0.59 FPS Model-Mobilenet-V3: 56.08 FPS Model-Yolov9-m-converted-[640x640]: 0.75 FPS Model-Yolov9-e-converted-[640x640]: 0.31 FPS Model-Yolo5su-[256x256]: 14.01 FPS Empty-Large: 108.94 FPS Model-Yolov7x-[640x640]: 0.20 FPS Model-Yolov9-m-[640x640]: 0.64 FPS 80-classes-object-detector[640x640]: 3.73 FPS Multi-Model: 19.48 FPS Model-Yolov9-c-[640x640]: 0.36 FPS Quantized-INT8: 10.66 FPS Model-Resnet-18: 18.72 FPS Model-Face-Locator: 97.93 FPS 80-classes-object-detector[320x320]: 14.73 FPS Pipeline-Feature-Extraction: 85.01 FPS Model-PPE: 9.20 FPS Model-Regnet-Y: 76.02 FPS Model-Emotion-Recognizer: 368.50 FPS Model-Yolo5su-[1280x1280]: 0.55 FPS Model-Densenet: 0.30 FPS Model-Yolov9-e-[640x640]: 0.59 FPS Model-Yolov4-[128x128]: 73.90 FPS Model-Yolov9-converted-[640x640]: 0.59 FPS Model-Yolo5su-[640x640]: 2.31 FPS Model-Resnet-50: 8.49 FPS Model-Yolov4-[1280x1280]: 0.94 FPS Model-Yolov8l-[640x640]: 0.42 FPS Model-Yolov4-[640x640]: 3.78 FPS Model-Yolov7-Tiny-[1280x1280]: 1.02 FPS Empty-Small: 1057.12 FPS Quantized-FP32: 8.88 FPS Model-Yolov7x-[1280x1280]: 0.09 FPS Model-Yolov7-Tiny-[640x640]: 4.01 FPS Quantized-FP16: 6.17 FPS Model-ViT-Tiny: 37.05 FPS Model-Yolov4-[320x320]: 14.68 FPS Pipeline-Direct: 14.60 FPS Postprocessor-Illegal-Dumping: 3.91 FPS postprocessor-python-example: 14.73 FPS postprocessor-python-image-example: 15.17 FPS postprocessor-c-image-example: 14.75 FPS postprocessor-c-example: 14.76 FPS###################################################ββββββββββββββββββββββββββββ |
See full output on pastebin.
We now have some data so we can compare Intel N150 with Nx CPU, OpenVino, and Hailo-8L AI accelerator.
UP TWL
UP Squared Pro TWL
Nx CPU
OpenVino
Hailo-8L
80-classes-object-detector[640x640]
3.91 FPS
3.73 FPS
38.04 FPS
80-classes-object-detector[320x320]
15.24 FPS
14.73 FPS
90.31 FPS
postprocessor-python-example
14.98 FPS
14.73 FPS
88.40 FPS
Postprocessor-python-image-example
15.73 FPS
15.17 FPS
90.55 FPS
postprocessor-c-image-example
14.77 FPS
14.75 FPS
83.18 FPS
postprocessor-c-example
14.75 FPS
14.76 FPS
89.15 FPS
Model-Yolov9-e-converted-[640x640]
0.32 FPS
0.59 FPS
Failed
Model-Yolov4-[320x320]
15.25 FPS
14.68 FPS
Failed
Model-Mobilenet-V3
48.45 FPS
56.08 FPS
Failed
The first remark is that thereβs little difference between Nx CPU and OpenVino in most cases. While Hailo-8L support is only implemented in a few tests in Nx Meta, it does offer significant benefits in the tests where it is, with 6 to 10+ times higher FPS.
Since Iβd like to have more storage for AI testing, I also installed a 2TB NVMe SSD. But the way the board has been designed, it also means I had to remove the Hailo-8L heatsink. So letβs run the Nx AI certification test one more time.
Note that I had issues executing commands on the NVMe SSD because, for whatever reason, it was mounted with the noexec tag. I had to remount it as follows:
| 1 | sudo mount -o remount,exec /media/nvme0n1p1 |
Alternatively, the following command does the trick:
| 1 | pmount -e /dev/nvme0n1p1 |
I ran the NX AI Benchmarks again with the same six successful tests:
| 1234567891011121314151617 | ...###################################################All model benchmarks completed.Benchmark results: 80-classes-object-detector[320x320]: 110.10 FPS 80-classes-object-detector[640x640]: 29.80 FPS postprocessor-c-example: 88.98 FPS postprocessor-python-example: 88.07 FPS postprocessor-c-image-example: 80.70 FPS postprocessor-python-image-example: 84.76 FPS###################################################ββββββββββββββββββββββββββββ...βββββββββββββββββββTests passed: 3 / 3βββββββββββββββββββ |
You can check the full log if you want. The postprocessor tests are not impacted, but the 80-classes-object-detector results vary quite a lot: 110.10 FPS with 320Γ320 images (instead of 90.31 FPS) and 29.80 FPS with 640Γ640 images (instead of 38.04 FPS).
AAEON UP AI toolkit demos
In the second part of the AI demos, I planned to use the UP AI toolkit examples available on GitHub.
Those are the steps to install and launch the AAEON UP AI toolkit on the NVMe SSD:
| 12345678 | cd /media/nvme0n1p1git clone https://github.com/up-division/up-ai/cd up-aichmod +x prepare.sh start_app.sh./prepare.shsudo rebootcd ~/up-ai ./start_app.sh |
Like in the UP TWL AI Dev Kit review, I had to run the prepare.sh script several times due to HTTP errors, maybe because Iβm based in Thailand.
| 12345678910111213141516 | Starting EAST application with PM2...pm2[ βstartβ, βnpmβ, ββnameβ, β"EAST"β, βββ, βstartβ ][PM2] Starting /usr/bin/npm in fork_mode (1 instance)[PM2] Done.ββββββ¬βββββββββββββββββββββ¬βββββββββββ¬βββββββ¬ββββββββββββ¬βββββββββββ¬ββββββββββββ id β name β mode β βΊ β status β cpu β memory βββββββΌβββββββββββββββββββββΌβββββββββββΌβββββββΌββββββββββββΌβββββββββββΌβββββββββββ€β 0 β "EAST" β fork β 0 β online β 0% β 38.4mb βββββββ΄βββββββββββββββββββββ΄βββββββββββ΄βββββββ΄ββββββββββββ΄βββββββββββ΄βββββββββββRunning driver installation script...[sudo] password for devkit: Find hailobash: /home/devkit/inst/linux/app/install_hailo.sh: No such file or directoryDriver is already installed !Enviroment Installation is Complete! Please Reboot! |
It looks like there was a hardcoded path in the script, so I ran it manually.
| 123456789101112131415161718 | (.venv) devkit@devkit-UPN-TWL01:/media/nvme0n1p1/up-ai$ chmod +x ./inst/linux/app/install_hailo.sh (.venv) devkit@devkit-UPN-TWL01:/media/nvme0n1p1/up-ai$ ./inst/linux/app/install_hailo.sh Reading package lists... DoneBuilding dependency tree... DoneReading state information... Donedkms is already the newest version (3.0.11-1ubuntu13).linux-headers-6.14.0-35-generic is already the newest version (6.14.0-35.35~24.04.1).linux-headers-6.14.0-35-generic set to manually installed.The following package was automatically installed and is no longer required: libllvm19Use βsudo apt autoremoveβ to remove it.0 upgraded, 0 newly installed, 0 to remove and 28 not upgraded.Install Hailo pcie driver now......ii hailort-pcie-driver 4.20.0 all Hailo PCIe driver and firmwareHailort-pcie-driver is already installed.Install HailoRT now......ii hailort 4.20.0 amd64 HailoRTHailoRT is already installed. |
At this point, I rebooted the system as recommended and started the script in a terminal on the Ubuntu desktop:
| 1234 | sudo rebootpmount -e /dev/nvme0n1p1cd /media/nvme0n1p1/up-ai ./start_app.sh |
The UP Edge Sizing Tool dashboard was opened in Firefox, as in our review of the UP TWL AI Dev Kit.
But thereβs just a little problemβ¦ The NPU is βnot availableβ. So I tried other options by launching the menu:
| 123456789101112131415 | ============================= Function Menu=============================1. Object detect β Video2. Object detect β Camera3. Chatbot0. Exit=============================Please input : 2Find hailo==================================================== Install Hailo Object Detect Packages====================================================Install Hailo tappas packages......... |
But I encountered issues due to a mismatch between the setuptools version and Python 3.12. I tried to install new Hailo-8/8L packages from the Hailo website, but it didnβt help. Eventually, I contacted AAEON, and they provided an updated script within 3 days. It still failed with the error:
| 123456 | Xlib: extension "DRI2" missing on display ":0"./GstPipeline:pipeline0/GstFPSDisplaySink:hailo_display/GstXvImageSink:xvimagesink0: sync = false[HailoRT] [error] HEF format is not compatible with device. Device arch: HAILO8L, HEF arch: HAILO8[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_HEF_NOT_COMPATIBLE_WITH_DEVICE(93)[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_HEF_NOT_COMPATIBLE_WITH_DEVICE(93)[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_HEF_NOT_COMPATIBLE_WITH_DEVICE(93) |
At this point, I was told that the UP AI toolkit only works with Hailo-8 and Hailo-10H AI accelerators, but not the Hailo-8L, which happens to be the default option (M.2 2230-Hailo 8L) when somebody purchases the kit. The Hailo-8L will be supported in an upcoming version of the toolkit, but it may take a while, especially since holidays are coming soon. So Iβll skip it in this reviewβ¦
Power Consumption
I also measured the power consumption of the Twin Lake + Hailo-8L AI development kit using a wall power meter:
-
Power off β 3.4 Watts
-
Idle β 9.6 β 10.3 Watts (fan active at all times) | with SSD: 11.5 β 12.0 Watts
-
Stress test (stress -c 4)
-
First few couple of seconds β 24.3 β 24.4 Watts | with SSD: 25.8 β 26.2 Watts
-
Longer runs β 15.1 β 15.3 Watts | with SSD: 16.5 β 16.7 Watts
-
Object detection β Camera + GPU β Not test (Hailo-8L not supported in UP AI Toolkit for now)
The board was connected to an HDMI monitor, 2.5GbE, a USB RF dongle for a wireless keyboard/mouse combo, and a USB camera.
Conclusion
The UP Squared Pro TWL AI Dev Kit is potentially a good platform for AI development thanks to the great price/performance ratio. All basic features work well, and compared to the UP TWL AI Dev Kit, it adds extra features like DisplayPort video output and M.2 expansion sockets. The AI performance is almost as good as on the Intel Core Ultra 5 225H-based UP Xtreme ARL (review published soon) for benchmarks that are supported. However, software support is not optimal, with only a few tests working in Nx Meta, and the UP AI Toolkit is not supported yet when combining the Intel N150 SBC with an Hailo-8L AI accelerator. Itβs also limited by the 64GB eMMC flash (like on the UP TWL AI Dev Kit), but you can also add an M.2 NVMe SSD for additional storage after removing the heatsink on the Hailo-8L M.2 module. So as things stand now, itβs less than ideal, but once software support improves, it might be an interesting mid-range platform.
Iβd like to thank AAEON for sending the UP Squared Pro TWL AI Dev Kit for review with an Hailo-8L AI accelerator. It can currently be purchased for $469.00 with the Hailo-8L AI accelerator, a Full HD USB camera, and a 12V/6A power supply. In the future, the company plans to offer other AI accelerators from DeepX and Axelera for up to 214 TOPS of AI performance.

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. We also use affiliate links in articles to earn commissions if you make a purchase after clicking on those links.