When checking out the hardware of the Lichee Console 4A portable RISC-V development terminal in the first part of the review, I noted that I had some troubles with the display that did not work properly. I did a little massage to “fix” the display, but unsurprisingly it ended up not being a long-term solution.
So I had to open a case a few times and ended up breaking the wires to the fan…
Each time I reassembled the device, the display only worked for a few seconds or minutes if at all. So I decided to test the system by keeping it open, as the display is working reliably that way. So I won’t be able to do a proper review testing the device on the go, but I still tested all features and benchmarked the T-Head TH1520 mini laptop with Debian 12, and will report my findings in this post.
Note the display issue appears to be specific to my sample and others don’t seem to have the same issue. It looks to be a manufacturing defect or the device got damaged during transport.
Lichee Console 4A benchmarks
We had already checked system information in the first part of the review, so let’s now run some benchmarks on the Lichee Console 4A starting with the sbc-bench script:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
debian@lpi4a14a2:~$ sudo ./sbc-bench.sh -r Starting to examine hardware/software for review purposes... Average load and/or CPU utilization too high (too much background activity). Waiting... sbc-bench v0.9.61 Installing needed tools: apt -f -qq -y install curl sysstat lshw mmc-utils smartmontools p7zip, tinymembench, ramlat, mhz, cpufetch (can't build 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...stress-ng: info: [6783] setting to a 300 second (5 mins, 0.00 secs) run per stressor stress-ng: info: [6783] dispatching hogs: 4 matrix stress-ng: info: [6783] passed: 4: matrix (4) stress-ng: info: [6783] failed: 0 stress-ng: info: [6783] skipped: 0 stress-ng: info: [6783] successful run completed in 300.01s (5 mins, 0.01 secs) Done. Checking cpufreq OPP again. Done (16 minutes elapsed). ./sbc-bench.sh: line 8693: 209 - 113+ : syntax error: operand expected (error token is "+ ") Results validation: * Measured clockspeed not lower than advertised max CPU clockspeed * Background activity (%system) OK * No throttling Full results uploaded to http://sprunge.us/mZ0SZF # T-HEAD Light Lichee Pi 4A configuration for LicheeConsole4A Tested with sbc-bench v0.9.61 on Sat, 27 Jan 2024 02:32:50 +0000. Full info: [http://sprunge.us/mZ0SZF](http://sprunge.us/mZ0SZF) ### General information: T-Head TH1520, Kernel: riscv64, Userland: riscv64 CPU sysfs topology (clusters, cpufreq members, clockspeeds) cpufreq min max CPU cluster policy speed speed core type 0 -1 0 300 1500 rv64imafdcvsu 1 -1 0 300 1500 rv64imafdcvsu 2 -1 0 300 1500 rv64imafdcvsu 3 -1 0 300 1500 rv64imafdcvsu 15613 KB available RAM ### Governors/policies (performance vs. idle consumption): Original governor settings: cpufreq-policy0: ondemand / 800 MHz (conservative ondemand userspace powersave performance schedutil / 300 800 1500) Tuned governor settings: cpufreq-policy0: performance / 1500 MHz ### Clockspeeds (idle vs. heated up): Before at 60.9°C: cpu0 (rv64imafdcvsu): OPP: 1500, Measured: 1485 After at 75.6°C: cpu0 (rv64imafdcvsu): OPP: 1500, Measured: 1484 (-1.1%) ### Performance baseline * memcpy: 3432.1 MB/s, memchr: 2824.4 MB/s, memset: 11221.2 MB/s * 16M latency: 164.9 162.9 164.8 164.9 164.8 165.9 169.3 192.5 * 128M latency: 195.6 193.6 195.6 198.0 198.9 209.9 201.9 217.1 * 7-zip MIPS (3 consecutive runs): 3823, 3868, 3869 (3850 avg), single-threaded: 1087 * `aes-256-cbc 24041.33k 30368.30k 32490.50k 33069.40k 33243.14k 33210.37k` * `aes-256-cbc 24217.19k 30448.73k 32599.81k 33139.71k 33330.52k 33341.44k` ### Storage devices: * 116.5GB "Y2P128" HS400 eMMC 5.1 card as /dev/mmcblk0: date 02/2022, manfid/oemid: 0x00009b/0x0100, hw/fw rev: 0x0/0x0c0d000000000000 ### Software versions: * Debian GNU/Linux 12 (bookworm) * Compiler: /usr/bin/gcc (Debian 13.2.0-4revyos1) 13.2.0 / riscv64-linux-gnu * OpenSSL 3.0.9, built on 30 May 2023 (Library: OpenSSL 3.0.9 30 May 2023) ### Kernel info: * `/proc/cmdline: root=/dev/mmcblk0p3 console=tty1 console=ttyS0,115200 usbcore.autosuspend=-1 rootwait rw earlycon clk_ignore_unused loglevel=7 eth= rootrwoptions=rw,noatime rootrwreset=yes crashkernel=256M-:128M` * Kernel 5.10.113+ / CONFIG_HZ=250 All known settings adjusted for performance. Device now ready for benchmarking. Once finished stop with [ctrl]-[c] to get info about throttling, frequency cap and too high background activity all potentially invalidating benchmark scores. All changes with storage and PCIe devices as well as suspicious dmesg contents will be reported too. Time CPU load %cpu %sys %usr %nice %io %irq Temp 02:32:51: 1500MHz 3.74 29% 1% 27% 0% 0% 0% 72.1°C |
While the fan is broken, the Console 4A did not experience throttling with the CPU temperature staying within a 67.5°C to 80.9°C range and the frequency at 1.5 GHz during the full duration of the test.
Let’s compare memset, memcpy, and 7-zip benchmarks by pitting the Lichee Console 4A against other recent Arm SBCs.
Memory bandwidth is comparable to several other Arm boards, but the Lichee Console 4A (and TH1520 quad-core RISC-V CPU) is the weakest of the lot in 7-zip and the closest competitor is the Raspberry Pi 4. But that’s still 40% faster.
Another thing the Raspberry Pi 4 and Lichee Console 4A have in common is the lack of hardware AES crypto support. One difference though is that the TH1520 block diagram shows a security block with AES support so it might just be a lack of software support unless that block (Arm SC300) is only used for secure boot.
Speedometer 2.0 benchmark was used to evaluate web browsing performance.
9.35 runs/minute in Chromium is fairly weak for a recent system but Tom’s Hardware measured only 16.91 runs/minute for the Raspberry Pi 4 @ 1.5 GHz in 2020. For reference, the Raspberry Pi 5 achieved 63.5 runs/minute with a recent version of Chromium.
There was some variability too during the test with results ranging from 8.0 to 10.04 runs per minute.
The good news is that 3D graphics acceleration is working as confirmed with glmark2-es2.
Terminal output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
sipeed@lpi4a14a2:~$ glmark2-es2 ======================================================= glmark2 2021.12 ======================================================= OpenGL Information GL_VENDOR: Imagination Technologies GL_RENDERER: PowerVR B-Series BXM-4-64 GL_VERSION: OpenGL ES 3.2 build 1.17@6210866 Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=8 Surface Size: 800x600 windowed ======================================================= [build] use-vbo=false: FPS: 352 FrameTime: 2.841 ms [build] use-vbo=true: FPS: 889 FrameTime: 1.125 ms [texture] texture-filter=nearest: FPS: 918 FrameTime: 1.089 ms [texture] texture-filter=linear: FPS: 993 FrameTime: 1.007 ms [texture] texture-filter=mipmap: FPS: 945 FrameTime: 1.058 ms [shading] shading=gouraud: FPS: 496 FrameTime: 2.016 ms [shading] shading=blinn-phong-inf: FPS: 369 FrameTime: 2.710 ms [shading] shading=phong: FPS: 595 FrameTime: 1.681 ms [shading] shading=cel: FPS: 720 FrameTime: 1.389 ms [bump] bump-render=high-poly: FPS: 468 FrameTime: 2.137 ms [bump] bump-render=normals: FPS: 935 FrameTime: 1.070 ms [bump] bump-render=height: FPS: 966 FrameTime: 1.035 ms [effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 746 FrameTime: 1.340 ms [effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 258 FrameTime: 3.876 ms [pulsar] light=false:quads=5:texture=false: FPS: 509 FrameTime: 1.965 ms [desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 210 FrameTime: 4.762 ms [desktop] effect=shadow:windows=4: FPS: 310 FrameTime: 3.226 ms [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 144 FrameTime: 6.944 ms [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 143 FrameTime: 6.993 ms [buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 209 FrameTime: 4.785 ms [ideas] speed=duration: FPS: 436 FrameTime: 2.294 ms [jellyfish] <default>: FPS: 413 FrameTime: 2.421 ms [terrain] <default>: FPS: 41 FrameTime: 24.390 ms [shadow] <default>: FPS: 437 FrameTime: 2.288 ms [refract] <default>: FPS: 67 FrameTime: 14.925 ms [conditionals] fragment-steps=0:vertex-steps=0: FPS: 982 FrameTime: 1.018 ms [conditionals] fragment-steps=5:vertex-steps=0: FPS: 832 FrameTime: 1.202 ms [conditionals] fragment-steps=0:vertex-steps=5: FPS: 960 FrameTime: 1.042 ms [function] fragment-complexity=low:fragment-steps=5: FPS: 896 FrameTime: 1.116 ms [function] fragment-complexity=medium:fragment-steps=5: FPS: 714 FrameTime: 1.401 ms [loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 910 FrameTime: 1.099 ms [loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 903 FrameTime: 1.107 ms [loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 897 FrameTime: 1.115 ms ======================================================= glmark2 Score: 595 ======================================================= sipeed@lpi4a14a2:~$ |
Note that glmark2-es2-wayland benchmarks won’t work here as the Debian image is not using Wayland.
1 2 |
debian@lpi4a14a2:~$ glmark2-es2-wayland Error: main: Could not initialize canvas |
What’s more surprising is that WebGL works fine in Chromium too at 21 FPS with 500 fish.
Storage and USB performance
I then tested the eMMC flash performance with iozone
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
debian@lpi4a14a2:~$ sudo iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 Iozone: Performance Test of File I/O Version $Revision: 3.506 $ Compiled for 64 bit mode. Build: linux-arm random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 102400 4 19844 31871 36388 35755 21968 31110 102400 16 64886 88814 101208 101963 46342 90684 102400 512 218380 228983 283476 283611 236573 226636 102400 1024 229525 236301 293135 293813 244701 230640 102400 16384 203545 208842 236699 237514 234788 205375 iozone test complete. |
Results are pretty good for an eMMC flash with 236 MB/s sequential read speed and 208 MB/s sequential write speed, and random I/Os look fine too.
The Lichee Console 4A comes with a microSD card slot which I tested with a 32GB Class A1 card:
1 2 3 4 5 6 7 8 |
debian@lpi4a14a2:/media/mmcblk1p2$ sudo 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 2146 2327 6474 6454 5642 2170 102400 16 6153 6522 10055 10066 9521 6513 102400 512 13824 13958 14911 14931 14855 14012 102400 1024 13945 14039 15033 15040 15016 14000 102400 16384 14221 14110 15299 15298 15281 14098 |
About 15MB/s reads and 14MB/s writes look slow. The exact microSD card I used is the Cytron MAKERDISK with a sequential write speed of at least 28MB/S, random IOPS writes over 800 IOPS, and reads over 2800 IOPS. I skipped the NVMe SSD test because I don’t have a small NVMe SSD with me right now. I’ll update this part in a week or so.
I also tested the USB 3.0 port on the rear panel with an ORICO enclosure fitted with an Apacer NVMe SSD formatted with EXT-4.
1 2 3 4 5 6 |
debian@lpi4a14a2:/media/sda1$ lsusb -t | grep storage |__ Port 2: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 5000M debian@lpi4a14a2:/media/sda1$ sudo iozone -e -I -a -s 1000M -r 16384k -i 0 -i 1 random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 1024000 16384 257770 268028 250132 254420 |
The port is rated 5 Gbps, but the read speed is only 268 MB/s (or about 2,144 Mbps) possibly because UAS is not enabled by default.
The USB port on the side is blue, but it’s actually a USB 2.0 port as per the specs, so I switched to a USB HDD drive since the ORICO enclosure is not backward compatible:
1 2 3 4 5 6 |
debian@lpi4a14a2:/media/sdb2$ lsusb -t | grep storage |__ Port 3: Dev 9, If 0, Class=Mass Storage, Driver=usb-storage, 480M debian@lpi4a14a2:/media/sdb2$ sudo iozone -e -I -a -s 100M -r 16384k -i 0 -i 1 random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 102400 16384 27553 31943 33034 33159 |
Gigabit Ethernet, WiFi, and Bluetooth
I was not able to access my usual testbed with a Xiaomi AX6000 router and UP Xtreme i11 mini PC, and instead, I used GL.iNet Flint 2 WiFi 6 router to test both gigabit Ethernet and WiFi 6 connectivity between the Console Pi 4A and my Ubuntu laptop connected to the router via a gigabit Ethernet on a USB-C dock.
Let’s start with gigabit Ethernet
- Upload:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
debian@lpi4a14a2:~$ iperf3 -t 60 -c 192.168.8.249 -i 10 Connecting to host 192.168.8.249, port 5201 [ 5] local 192.168.8.245 port 48092 connected to 192.168.8.249 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-10.01 sec 1.06 GBytes 909 Mbits/sec 0 520 KBytes [ 5] 10.01-20.01 sec 1.05 GBytes 901 Mbits/sec 0 520 KBytes [ 5] 20.01-30.00 sec 998 MBytes 837 Mbits/sec 0 520 KBytes [ 5] 30.00-40.01 sec 852 MBytes 715 Mbits/sec 0 700 KBytes [ 5] 40.01-50.01 sec 820 MBytes 688 Mbits/sec 0 700 KBytes [ 5] 50.01-60.00 sec 842 MBytes 708 Mbits/sec 0 1.96 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.00 sec 5.54 GBytes 793 Mbits/sec 0 sender [ 5] 0.00-60.00 sec 5.54 GBytes 793 Mbits/sec receiver iperf Done. |
- Download:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
debian@lpi4a14a2:~$ iperf3 -t 60 -c 192.168.8.249 -i 10 -R Connecting to host 192.168.8.249, port 5201 Reverse mode, remote host 192.168.8.249 is sending [ 5] local 192.168.8.245 port 48096 connected to 192.168.8.249 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-10.00 sec 1.09 GBytes 940 Mbits/sec [ 5] 10.00-20.00 sec 1.03 GBytes 888 Mbits/sec [ 5] 20.00-30.00 sec 1.03 GBytes 886 Mbits/sec [ 5] 30.00-40.00 sec 1.05 GBytes 905 Mbits/sec [ 5] 40.00-50.00 sec 956 MBytes 802 Mbits/sec [ 5] 50.00-60.00 sec 894 MBytes 750 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.00 sec 6.02 GBytes 862 Mbits/sec 608 sender [ 5] 0.00-60.00 sec 6.02 GBytes 862 Mbits/sec receiver iperf Done. |
- Full duplex:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
debian@lpi4a14a2:~$ iperf3 -t 60 -c 192.168.8.249 -i 10 --bidir Connecting to host 192.168.8.249, port 5201 [ 5] local 192.168.8.245 port 48106 connected to 192.168.8.249 port 5201 [ 7] local 192.168.8.245 port 48108 connected to 192.168.8.249 port 5201 [ ID][Role] Interval Transfer Bitrate Retr Cwnd [ 5][TX-C] 0.00-10.00 sec 749 MBytes 628 Mbits/sec 0 1.44 MBytes [ 7][RX-C] 0.00-10.00 sec 505 MBytes 424 Mbits/sec [ 5][TX-C] 10.00-20.00 sec 625 MBytes 524 Mbits/sec 0 2.02 MBytes [ 7][RX-C] 10.00-20.00 sec 309 MBytes 259 Mbits/sec [ 5][TX-C] 20.00-30.04 sec 616 MBytes 515 Mbits/sec 0 3.44 MBytes [ 7][RX-C] 20.00-30.04 sec 104 MBytes 86.6 Mbits/sec [ 5][TX-C] 30.04-40.00 sec 534 MBytes 449 Mbits/sec 0 3.44 MBytes [ 7][RX-C] 30.04-40.00 sec 118 MBytes 99.2 Mbits/sec [ 5][TX-C] 40.00-50.01 sec 545 MBytes 457 Mbits/sec 0 3.44 MBytes [ 7][RX-C] 40.00-50.01 sec 97.4 MBytes 81.7 Mbits/sec [ 5][TX-C] 50.01-60.00 sec 529 MBytes 444 Mbits/sec 0 3.44 MBytes [ 7][RX-C] 50.01-60.00 sec 110 MBytes 92.0 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID][Role] Interval Transfer Bitrate Retr [ 5][TX-C] 0.00-60.00 sec 3.51 GBytes 503 Mbits/sec 0 sender [ 5][TX-C] 0.00-60.01 sec 3.51 GBytes 502 Mbits/sec receiver [ 7][RX-C] 0.00-60.00 sec 1.22 GBytes 174 Mbits/sec 76 sender [ 7][RX-C] 0.00-60.01 sec 1.21 GBytes 174 Mbits/sec receiver iperf Done. |
Performance was not optimal although still acceptable until we tested bidirectional transfers and performance collapsed. The latter is probably only relevant if you are running a server out of the Lichee Console 4A though.
Let’s move to WiFi 6.
- Upload:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
debian@lpi4a14a2:~$ iperf3 -t 60 -c 192.168.8.249 -i 10 Connecting to host 192.168.8.249, port 5201 [ 5] local 192.168.8.202 port 37078 connected to 192.168.8.249 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-10.00 sec 79.0 MBytes 66.2 Mbits/sec 0 372 KBytes [ 5] 10.00-20.00 sec 78.0 MBytes 65.4 Mbits/sec 0 372 KBytes [ 5] 20.00-30.00 sec 79.5 MBytes 66.7 Mbits/sec 0 595 KBytes [ 5] 30.00-40.00 sec 77.1 MBytes 64.6 Mbits/sec 0 595 KBytes [ 5] 40.00-50.00 sec 78.1 MBytes 65.5 Mbits/sec 0 595 KBytes [ 5] 50.00-60.00 sec 75.5 MBytes 63.3 Mbits/sec 0 595 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.00 sec 467 MBytes 65.3 Mbits/sec 0 sender [ 5] 0.00-60.07 sec 465 MBytes 64.9 Mbits/sec receiver iperf Done. |
- Download:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
debian@lpi4a14a2:~$ iperf3 -t 60 -c 192.168.8.249 -i 10 -R Connecting to host 192.168.8.249, port 5201 Reverse mode, remote host 192.168.8.249 is sending [ 5] local 192.168.8.202 port 37082 connected to 192.168.8.249 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-10.00 sec 76.9 MBytes 64.5 Mbits/sec [ 5] 10.00-20.00 sec 77.7 MBytes 65.2 Mbits/sec [ 5] 20.00-30.00 sec 76.6 MBytes 64.3 Mbits/sec [ 5] 30.00-40.00 sec 77.2 MBytes 64.8 Mbits/sec [ 5] 40.00-50.00 sec 75.6 MBytes 63.4 Mbits/sec [ 5] 50.00-60.00 sec 77.2 MBytes 64.7 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.39 sec 464 MBytes 64.5 Mbits/sec 0 sender [ 5] 0.00-60.00 sec 461 MBytes 64.5 Mbits/sec receiver iperf Done. |
That’s quite disappointing. The router is about one meter from the Lichee Console 4A RISC-V devkit, and I previously tested this router with a high-end mini PC with transfer rates around 900 Mbps. I clearly did not expect this kind of performance here, but at least around 200 Mbps would have been nice.
Bluetooth did not work at all for me. First, I have no Bluetooth icon in the tray. The menu in the desktop environment wouldn’t load.
I checked in the command line:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
debian@lpi4a14a2:~$ sudo service bluetooth status ● bluetooth.service - Bluetooth service Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; preset: enabled) Active: active (running) since Sun 2024-01-28 12:42:56 UTC; 35min ago Docs: man:bluetoothd(8) Main PID: 804 (bluetoothd) Status: "Running" Tasks: 1 (limit: 18481) Memory: 2.0M CPU: 1.426s CGroup: /system.slice/bluetooth.service └─804 /usr/libexec/bluetooth/bluetoothd Jan 28 12:42:56 lpi4a14a2 bluetoothd[804]: Starting SDP server Jan 28 12:42:56 lpi4a14a2 bluetoothd[804]: profiles/audio/vcp.c:vcp_init() D-Bus experimental not enabled Jan 28 12:42:56 lpi4a14a2 bluetoothd[804]: src/plugin.c:plugin_init() Failed to init vcp plugin Jan 28 12:42:56 lpi4a14a2 bluetoothd[804]: profiles/audio/mcp.c:mcp_init() D-Bus experimental not enabled Jan 28 12:42:56 lpi4a14a2 bluetoothd[804]: src/plugin.c:plugin_init() Failed to init mcp plugin Jan 28 12:42:56 lpi4a14a2 bluetoothd[804]: profiles/audio/bap.c:bap_init() D-Bus experimental not enabled Jan 28 12:42:56 lpi4a14a2 bluetoothd[804]: src/plugin.c:plugin_init() Failed to init bap plugin Jan 28 12:42:56 lpi4a14a2 bluetoothd[804]: Bluetooth management interface 1.18 initialized Jan 28 13:13:23 lpi4a14a2 bluetoothd[804]: src/profile.c:register_profile() :1.54 tried to register 00001108-0000-1000-8000-00805f9b34fb which is already registered Jan 28 13:13:23 lpi4a14a2 bluetoothd[804]: src/profile.c:register_profile() :1.54 tried to register 0000111f-0000-1000-8000-00805f9b34fb which is already registered |
I also installed a few packages as recommended in the wiki:
1 |
sudo apt install bluetooth rfkill blueman bluez bluez-tools pulseaudio-module-bluetooth |
But each time I tried to access Bluetooth the system would power off automatically.
1 2 3 4 5 6 7 8 9 10 11 |
debian@lpi4a14a2:~$ bluetoothctl Agent registered [bluetooth]# scan on No default controller available [bluetooth]# Broadcast message from root@lpi4a14a2 (Sun 2024-01-28 13:45:16 UTC): The system will power off now! Connection to 192.168.8.202 closed by remote host. Connection to 192.168.8.202 closed. |
Even the command inxi -Fc0
won’t work anymore and lead the system to power off.
HDMI output, audio testing, and video playback
The Lichee Console 4A comes with a micro HDMI port, so I connected it to a 4K television. Please ignore the vertical lines on my 4K LG TV as that’s a known issue…
I first went with Full HD (1080p60) and it worked just fine using the “extended display” configuration. I could move windows from one screen to the other.
But then I noticed the Lichee Console 4A also supports video output up to 4K at 30 Hz. So I changed to that mode and it looks to be working as shown in the photo below.
But while 4K (3840×2160) video output works fine at 30 Hz, the system is really sluggish probably because of memory bandwidth limitation. The extended display function does not work properly either. By default, the 800×600 display will be placed behind the 4K display and mirror that part, or if I move it to the right as above, the display is unreachable with the mouse, and it’s unclear what it is showing…
I removed the HDMI cable and tested audio playing a “4K” YouTube video. The resolution varied between 144p and 240p with many frames dropped but audio output worked (through the speakers) although there were crackling noises (not audio cuts) accompanying the soundtrack from the video. I connected headphones to the 3.5mm audio and it “worked” but with the same audio distortions. I reconned the HDMI cable and tried to play the video, but I had no audio. The system had a CPU load of 8 and was hardly responsive.
The Debian 12 image comes with a 4K_example.mp4 file that will play somewhat smoothly and with good audio in the Parole media player, so hardware video decoding and audio are working with that specific program. Here are the technical details for the video for reference:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
debian@lpi4a14a2:~$ mediainfo /home/sipeed/Desktop/4k_example.mp4 General Complete name : /home/sipeed/Desktop/4k_example.mp4 Format : MPEG-4 Format profile : Base Media Codec ID : isom (isom/iso2/avc1/mp41) File size : 203 MiB Duration : 2 min 51 s Overall bit rate : 9 919 kb/s Frame rate : 24.000 FPS Writing application : Lavf55.37.100 Video ID : 1 Format : AVC Format/Info : Advanced Video Codec Format profile : High@L5.1 Format settings : 3 Ref Frames Format settings, CABAC : No Format settings, Reference frames : 3 frames Codec ID : avc1 Codec ID/Info : Advanced Video Coding Duration : 2 min 51 s Bit rate : 9 664 kb/s Width : 3 996 pixels Height : 2 160 pixels Display aspect ratio : 1.85:1 Frame rate mode : Variable Frame rate : 24.000 FPS Minimum frame rate : 24.000 FPS Maximum frame rate : 3 000.000 FPS Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Scan type : Progressive Bits/(Pixel*Frame) : 0.047 Stream size : 198 MiB (97%) Codec configuration box : avcC Audio ID : 2 Format : AAC LC Format/Info : Advanced Audio Codec Low Complexity Codec ID : mp4a-40-2 Duration : 2 min 51 s Bit rate mode : Constant Bit rate : 254 kb/s Channel(s) : 2 channels Channel layout : L R Sampling rate : 44.1 kHz Frame rate : 43.066 FPS (1024 SPF) Compression mode : Lossy Stream size : 5.20 MiB (3%) Default : Yes Alternate group : 1 |
Misc
I haven’t spent a lot of time using the touchscreen display and built-in keyboard and mouse with a “RedPoint” pointing stick and two mouse buttons, but they all worked fine when I tried them. Battery life was about three hours as listed in the specifications.
Conclusion
Sipeed Lichee Console 4A RISC-V development terminal is certainly not designed for the typical end user as there are still many issues with the software, and in my case, I had a hardware issue with the display which should not impact most people. Performance-wise, benchmarks reveal that the Lichee Console 4A is fairly slower than a Raspberry Pi 4. Normally usage like browsing will feel sluggish most of the time.
But it can be a useful RISC-V development platform with a wide range of features (many needed improvements), and it’s the first RISC-V hardware I have tested with working 3D graphics acceleration (glmark2-es2 and WebGL) and hardware video decoding. The latter only works in the Parole media player, not in YouTube where the video did not play smoothly at 240p using Chromium.
I’d like to thank Sipeed for sending a sample of the Lichee Console 4A for review and evaluation. If you are a developer interested in contributing to the RISC-V ecosystem, you can purchase the system reviewed here with 16GB RAM and a 128GB eMMC flash for $429 plus shipping (and taxes if you are based in Europe)
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
the gpu works, with the closed drivers ?
It’s my understanding based on the output from the inxi command in the first part of the review
3D graphics: pvrsrvkm driver (closed source)
2D graphics: Etnaviv driver (open source).
Good thing I didn’t open mine. My red track pointer was a bit stiff at first, but it feels a lot smoother now. Mine stopped booting properly (perhaps it ran out of disk space?), so I went through the process of writing the factory image on it.
Unfortunately they didn’t include the fix for rotating the touch screen on the current image (december 2023). You can rotate the display in the Settings, but for now I had to rotate the touch screen with a shell script.
Can anyone confirm the contents of the shell script (touch.sh?) on the Lichee Console?
xinput set-prop “pointer:Goodix Capacitive TouchScreen” –type=float “Coordinate Transformation Matrix” 0 1 0 -1 0 1 0 0 1
But it is a fun little machine. I even managed to run Stable Diffusion XL Turbo on it with OnnxStream.
You can find it here: https://github.com/vitoplantamura/OnnxStream
The only thing I had to change was the architecture string in CMakeLists.txt.
Change -march from native to rv64gcv0p7_zfh.
It’s actually designed to be opened (instructions from the Wiki show how to install the SoM and cooling solution). Mine just has a manufacturing defect or something that went wrong during transport. So I had to take out the mainboard as well (which most people don’t need to do).
What?! No power usage measurements?!
I hope this oversight is corrected soon, that’s what I’m most curious about.
It’s a battery-powered device, so it’s more tricky. I guess I could always try to remove the battery, but my device has no working fan, so the results would be different.
I’m not sure power consumption numbers are that important considering the status of the software.
Very quality device for $400, I see… Read elsewhere there’s not even a lid close sensor, or it’s not wired into the software.