RoadTest: NXP Layerscape® LS1046A Freeway Board
Author: Attila Tőkés
Creation date:
Evaluation Type: Development Boards & Tools
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: Raspberry Pi 4 (2/4 GB)
What were the biggest problems encountered?: Wifi performance, figuring out the login credentials, missing modules for the custom built Linux kernel
Detailed Review:
Hi Element14 Comunity!
Here is my Road Test of the NXP Layerscape® LS1046A Freeway Board board:
The FRWY-LS1046A-AC comes in a fairly big box, which includes a plenty of stuff in it:
{gallery} Unboxing |
---|
Packaging List |
Demo Sheet |
Brick Power Supply & Cable |
The device itself and power plug adapter kit |
Quick Reference Card |
Universal Power Plug Adaptor Kit |
Universal Power Plug Adaptor Kit |
FRWY-LS1046A-AC |
FRWY-LS1046A-AC |
Front |
Back |
Accessories |
FRWY-LS1046A Assembled |
The build quality of the device looks pretty solid.
The unit comes with a 60W (5A @12V) brick style power supply. The package includes a standard 3-pin power cord with US plug, and a nice mains power adapter (usable in most of the countries). However, I decided to just grab a EU plug power cord and put that nice power adapter away for travels .
To get started, we just need to insert the pre-loaded MicroSD card in the slot at the back of the device, mount the Wifi Antennas and plug in the power supply.
After about a minute the device should be booted, and we should see a Wifi network with SSID: FRWY-LS1046A-XX:XX:
We can connect to it with the password "frwyls1046a".
Then, if we access 192.168.99.1 from a browser a graphical interface should come up:
The pre-loaded MicroSD card comes with a Demo Software showcasing different use cases for the device.
The 1st demo comes with two CPU performance tests and some graphics showing the power consumption, CPU temperature and CPU usage.
I ran the tests and got the following results:
{gallery} Demo 1: CPU Performance |
---|
CPU Performance demo page |
CoreMark test running (unfortunately the graphics are not real time) |
CoreMark test results |
Dhrystone test running |
Dhrystone test results |
The 2nd demo, I think, is meant to demonstrate the data processing capabilities of the device.
It consists of two demo applications:
{gallery} Demo 2: Data Analytics |
---|
Cold Storage Data Analytics |
Cold Storage Data Analytics running |
Cold Storage Data Analytics running (2) |
Cold Storage Data Analytics running (3) |
Sensor Data Analytics |
Sensor Data Analytics (2) |
The 3rd demo is a little bit more interesting, as it demonstrates real-time video processing using AI.
We need an USB webcam to run it. I used a Logitech C920:
There are two demo apps:
{gallery} Demo 3: Video Analytics |
---|
Machine Learning / Video Analytics |
People Counting Demo starting up |
Object detection / People Counting Demo running. |
Industrial Safety Demo starting up |
Industrial Safety demo - no safety google (normal glasses) |
Industrial Safety demo - safety googles detected |
The 4th demo page is a collection of 6 videos. I think, they are also available somewhere on the NXP website.
I had a little bit of trouble with this page. When I tried to play the first video it was really slow / laggy.
It turned out that the Wifi performance although the signal was full was just crap. If I tried to download the video manually, I got a speed of 153 Kb / sec.
To fix it, I decided to move on to Ethernet. So, I ended up setting up a router with the 192.168.99.* subnet, and connected both the FRWY-LS1046A and my laptop.
Next, I tried to play the again video and it just worked fine. Looks like there is some problem with the Wifi networking, but I did not had the time to check it yet.
{gallery} Demo 4: |
---|
Video Vault |
Playing Video - it can be seen that the pre-buffering is really slow |
Trying to download the video manually. The speed over Wifi is 153 KB/s |
In the header of the demo pages there is Detailed CPU Analytics button. If we click on it a page with a bunch of real-time metrics about the system are shown. I found this page very interesting, as it has a lot of useful data on it.
It looks like it is netdata install:
https://github.com/netdata/netdata
{gallery} Demo 5: System Metrics |
---|
System Metrics |
System Metrics (2) |
System Metrics (3) |
Next I wanted to check a couple of things in the console.
I tried to SSH into the machine. Initially, I had some trouble figuring out the credentials, as they does not seems to appear in any user guide or documentation. So, I ended up removing the microSD card and manually adding my SSH public to /home/user/.ssh/authorized_keys.
Later, I figured out that the password is just user for user, and root for root.
A first look on the SSH shows that the device runs Ubuntu 18.04.3 LTS with the Linux Kernel 4.14.83. This is nice as we can use apt-get to easily install new stuff on it.
$ ssh user@192.168.0.116
Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 4.14.83 aarch64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
* Overheard at KubeCon: "microk8s.status just blew my mind".
https://microk8s.io/docs/commands#microk8s.status
Last login: Sat Dec 28 11:03:54 2019 from 192.168.0.109
user@localhost:~$ uname -a
Linux localhost 4.14.83 #1 SMP PREEMPT Wed May 8 09:33:44 CDT 2019 aarch64 aarch64 aarch64 GNU/Linux
One thing I wanted to check is the networking performance. So, I installed iperf3 both on the device and on my laptop and run a quick test:
$ sudo apt-get install iperf3
$ iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.0.117, port 52606
[ 5] local 192.168.0.116 port 5201 connected to 192.168.0.117 port 52608
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 109 MBytes 913 Mbits/sec
[ 5] 1.00-2.00 sec 112 MBytes 942 Mbits/sec
[ 5] 2.00-3.00 sec 112 MBytes 942 Mbits/sec
[ 5] 3.00-4.00 sec 112 MBytes 942 Mbits/sec
[ 5] 4.00-5.00 sec 112 MBytes 942 Mbits/sec
[ 5] 5.00-6.00 sec 112 MBytes 942 Mbits/sec
[ 5] 6.00-7.00 sec 112 MBytes 942 Mbits/sec
[ 5] 7.00-8.00 sec 112 MBytes 942 Mbits/sec
[ 5] 8.00-9.00 sec 111 MBytes 932 Mbits/sec
[ 5] 9.00-10.00 sec 112 MBytes 942 Mbits/sec
[ 5] 10.00-10.03 sec 3.09 MBytes 940 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-10.03 sec 0.00 Bytes 0.00 bits/sec sender
[ 5] 0.00-10.03 sec 1.09 GBytes 938 Mbits/sec receiver
-----------------------------------------------------------
# from my laptop: iperf3 -c 192.168.0.116
It looks like we have Gigabit speed, as promised .
Next, I thought it would be fun to open up the case and see what's inside.
{gallery} Open it up |
---|
The case can be opened by just unscrewing a few screws. |
On the top part of the board we have: Wifi / BT module (WNFQ-255ACm, 802.11/ac dual band), CPU, Memory, Ethernet PHY, and a bunch of other components |
On the bottom we got: the 2nd M.2 slot, a 4 Gb NAND Flash chip (S34MS04G200BHI000), and some other small components |
The case has a removable cover for the 2nd M.2 port. Nice detail: it means we don't need take apart the device to install a M.2 device. |
For at least on the CPU side, the FRWY-LS1046A and the new Raspberry Pi 4 are pretty similar. So, I thought it would be a good idea to compare them.
Here is a comparison between the specs of the two devices:
Header 1 | FRWY-LS1046A | Raspberry Pi 4 |
---|---|---|
Price | FRWY-LS1046A-AC - $495 FRWY-LS1046A-PA - $395 | 1 GB model - $35 2 GB model - $45 3 GB model - $55 |
CPU | LS1046A 4 x ARM A72 cores @ 1.6Ghz 32 KB data + 48 KB instruction L1 cache 2 MB L2 cache 10G / 2.5G / 1G Ethernet controllers 3 x PCIe 3.0 (x4, x2, x1) 1 x SATA 3.0 | BMC2711 4 x ARM A72 cores @ 1.5 GHz 32 KB data + 48 KB instruction L1 cache 1 MB L2 cache
extra features: 1G Ethernet controller H.265 (4Kp60 decode), H.264 (1080p60 decode, 1080p30 encode) support |
RAM | 4 GB DDR4 with ECC | 1 / 2 / 4 GB LPDDR4-3200 |
USB | 2 x USB 3.0 | 2 x USB 3.0, 2 x USB 2.0 |
Networking | 4 x Gigabit Ethernet 802.11 ac, dual band Wifi Bluetooth 5 | 1 x Gigabit Ethernet 802.11 ac, dual band Wifi Bluetooth 5 |
Other | 2 x M.2, PCIe slots mikroBUS™ socket 4 GB NAND Flash | 2 x Micro HDMI Audio Output CSI Camera connector DSI Display connector |
From the performance point of view, the SoC-s of the FRWY-LS1046A (LS1046A) and the Raspberry Pi 4 (BMC2711) should be about the same. The LS1046A may have a small advantage because of the +0.1GHz clock speed and +1M L2 cache.
On the other hand, with the Raspberry Pi 4 and its BMC2711 SoC we get pretty good display, recording and graphics capabilities. These are unfortunately missing from the FRWY-LS1046A (LS1046A).
The main selling point of the LS1046A looks to be its powerful networking interfaces. It the SoC supports 2 x 10G, 1 X 2G and 4 x 1G connections, from which the four 1 Gigabit one are exposed on the FRWY-LS1046A board.
From the price point of view the FRWY-LS1046A is probably a little too expensive for hobbyists. If you don't need four 1G Ethernet ports, or PCIe, the Raspberry Pi is probably a better option.
One of the most promoted features of the FRWY-LS1046A board / the LS1046A were the powerful CPU core.
I thought it would be fun to run some benchmarks on both on the Raspberry Pi 4 and the FRWY-LS1046A. I wanted a Raspberry Pi 4 anyway, so this was a good excuse to buy one . So, I got a Raspberry Pi 4 (2GB). The benchmarks selected were the CoreMark and Dhrystone, which are also featured in the demo software.
To have a fair comparison, I decided to compile and run the tests in the same way on both board. For FRWY-LS1046A we could have used the results from the demo software, but that probably would not be same version / settings for the benchmarks.
The tests were run on both the boards without special cooling setup.
# clone repo
$ git clone https://github.com/eembc/coremark.git
$ cd coremark
# single threaded run
$ make XCFLAGS="-DPERFORMANCE_RUN=1" REBUILD=1 run1.log
# multi threaded run$ make XCFLAGS="-DPERFORMANCE_RUN=1 -DMULTITHREAD=4 -DUSE_FORK=1" REBUILD=1 run1.log
FRWY-LS1046A:
CoreMark 1.0 : 8880.277711 / GCC7.4.0 -O2 -DPERFORMANCE_RUN=1 -lrt / Heap
CoreMark 1.0 : 35743.298132 / GCC7.4.0 -O2 -DPERFORMANCE_RUN=1 -DMULTITHREAD=4 -DUSE_FORK=1 -lrt / Heap / 4:Fork
Raspberry Pi 4 (2GB):
CoreMark 1.0 : 8289.999246 / GCC8.3.0 -O2 -DPERFORMANCE_RUN=1 -lrt / Heap
CoreMark 1.0 : 33100.127887 / GCC8.3.0 -O2 -DPERFORMANCE_RUN=1 -DMULTITHREAD=4 -DUSE_FORK=1 -lrt / Heap / 4:Fork
The CoreMark score for the FRWY-LS1046A is about 7% higher than the Raspberry Pi 4. That's about we could expect from the 0.1GHz difference in the clock speeds.
# clone repo
$ git clone https://github.com/Keith-S-Thompson/dhrystone.git$ cd dhrystone/v2.2
# run, and collect the results from the last run
$ CFLAGS=-O3 sh dry.c
FRWY-LS1046A:
Microseconds for one run through Dhrystone: 0.1
Dhrystones per Second: 15625000
Raspberry Pi 4 (2GB):
Microseconds for one run through Dhrystone: 0.1
Dhrystones per Second: 9025271
In the Dhrystone the FRWY-LS1046A gets a little bit better results, about ~40% better then Raspberry Pi 4. I'm not really sure what causing this, maybe the +1 Mb L2 cache or maybe the RPi is just thermal throttling.
My initial plan was to build a NAS and Media Server using FRWY-LS1046A. I got some progress here, but is not yet quite done. Lets see what we got.
There are multiple options to build a NAS with the FRWY-LS1046A, but for the first iteration I wanted to go simple. For this reason, I went with an Inateck SATA to USB 3.0 adapter and a 500 GB HDD from an old laptop:
For further versions, I plan to use more disks to have redundancy and it would be also useful to NVMe SSD for caching.
The disk was plugged in to one of the USB ports, and it was correctly detected:
$ sudo fdisk -l
Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6641b647
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 976773119 976771072 465.8G 83 Linux
Quick check on the disk speed:
$ sudo hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 4086 MB in 2.00 seconds = 2044.55 MB/sec
Timing buffered disk reads: 314 MB in 3.00 seconds = 104.51 MB/sec
We got 104.51 MB / sec. This is about what it should be. It's about the same result I got on my laptop.
Next we can mount the ext4 partition from the disk:
$ sudo mkdir /media/usbdisk
$ sudo chmod a+rw /media/usbdisk
$ sudo mount /dev/sda1 /media/usbdisk
user@localhost:~$ ls -ahl /media/usbdisk/
total 1.5G
drwxrwxrwx 3 root root 4.0K Dec 28 12:09 .
drwxr-xr-x 3 root root 4.0K Dec 26 14:43 ..
-rw-r--r-- 1 user user 1.5G Jul 28 18:30 archive.tar.gz
drwx------ 2 root root 16K Dec 22 15:58 lost+found
Performance over SSH?
$ scp user@192.168.0.116:/media/usbdisk/archive.tar.gz /tmp/
archive.tar.gz 100% 1451MB 68.7MB/s 00:21
Pretty good.
Next, I wanted to do make the mount available over the network.
This can be done in multiple ways:
Setting up a Samba share is pretty straight forward.
First we need to install Samba using apt-get, and we need to enable it in the firewall:
$ sudo apt install samba
$ sudo ufw allow 'Samba'
Then we can share our /media/usbdisk folder by adding the following into the /etc/samba/smb.conf:
[usbdisk]
path = /media/usbdisk
comment = USB Disk
browseable = yes
read only = no
writable = yes
guest ok = yes
Next, if we restart the smbd and nmbd services:
$ sudo systemctl restart smbd
$ sudo systemctl restart nmbd
we should be able to access the share:
As a media server I chose KODI.
First I tried installing KODI using apt-get, which did not worked as apparently KODI does not supports running from without a display.
Then, after a little bit of googling, I found a headless version of KODI for aarch64 available as a Docker image:
$ mkdir /home/user/kodi-headless
$ docker create --name=kodi-headless -v /home/user/kodi-data:/config/.kodi -e PGID=gid -e PUID=uid -e TZ=timezone -p 8080:8080 -p 9090:9090 -p 9777:9777/udp lsioarmhf/kodi-headless
...
0e502324b7d2e1faf796a0afd62e2cb236bc37fd4a6bb8f46be81be7ed8ca227
$ docker start 0e502324b7d2e1faf796a0afd62e2cb236bc37fd4a6bb8f46be81be7ed8ca227
Now we should be able to access the KODI web interface at: http://frwy-1046a-ip:8080/
I works, but I did not managed yet to get the Samba mount recognized.
The FRWY-LS1046A board with the LS1046A SoC has definitely a lot of potential.
The SoC has four powerful ARM A72 CPU cores, which makes it suitable applications involving real-time video or data processing, machine learning and artificial intelligence.
The 2 x 10G, 1 x 2.5G and 4 x 1G networking interfaces, combined the powerful CPU can be used to build capable networking devices like routers, switches and firewalls.
The FRWY-LS1046A board itself also have some interesting features that may worth trying: PCIe M.2 ports, the mikroBUS socket, 4 GB flash storage.
Some thinks I plan to do with the device are:
Top Comments
Thanks for a thorough reviewAttila Tőkés . After some thoughts, a Raspberry Pi 4 would compare well as a NAS machine. Add a switch to that for a few dollars and you can have 4 ports as well. Barring price…
I think, just the NVMe SSD would work, but not the SATA ones. The LS1046A SoC from the board has a SATA interface, but I'm not sure if that is routed or not to any of the M.2 ports.
For a NAS, I would use the Raspberry Pi 4 too. The FRWY-LS1046A offers little advantage for its significantly higher price. One thing you we could do with the FRWY-LS1046A is to bond its four 1Gbps interfaces…