HOWTO Testing Arduino Portenta X8

Press coverage

Documentation

First experiences with Portenta X8

  • Connect the patch antenna to the Portenta X8 uFL connector

  • Connect the Portenta X8 to a laptop using a USB-A to USB-C cable

  • Wait until the upper LED turns green

Browse http://192.168.7.1/

Welcome to the Arduino Portenta X8

Setup your board to get started

  • Configure Wi-Fi

  • Register Factory name

GO TO DOCUMENTATION

BOARD INFO

Click on “BOARD INFO”

BOARD INFO

  • Hostname: PORTENTA-X8-A13B209DAB6FAD9

  • Wi-Fi: AROLIOT

  • Ethernet: USBRNDIS

  • Factory: ->

LAUNCH SHELL

GO TO ARDUINO CLOUD

Expand “AROLIOT”

  • Hostname: portenta-x8-a13b209dab6fad9

  • IPv4: 172.30.48.28/24

  • MAC: 74:7A:90:CE:F3:94

Expand “USBRNDIS”

  • Hostname: portenta-x8-a13b209dab6fad9

  • IPv4: 192.168.7.1/24

  • MAC: 32:2E:E3:05:3D:31

Click on “LAUNCH SHELL”

To list installed python packages
pip3 list

To add a package
apk add <packagename>

To explore list of available packages
https://pkgs.alpinelinux.org/packages

Arduino Portenta-X8 documentation under
https://docs.arduino.cc/hardware/portenta-x8


portenta-x8:~#

Clone ARNEIS sources from GitHub

Logged in as root@portenta-x8 from the shell accessible from the web interface

apk add git
git clone https://github.com/B-AROL-O/ARNEIS

Build ARNEIS documentation

Build ARNEIS documentation from sources in docs/:

cd ~/ARNEIS/docs
pip install -r requirements.txt
apk add make
make html

Result: TODO

Inspect the host OS on the Portenta X8

From a laptop connected on the same network (172.30.48.0/24)

gpmacario@HW2457 MINGW64 ~
$ ssh fio@172.30.48.28
fio@172.30.48.28's password:
fio@portenta-x8-a13b209dab6fad9:~$

Inspect the host OS

Logged in as fio@portenta-x8-xxxx, type the following commands to inspect the host OS

uname -a
cat /etc/os-release
cat /proc/cpuinfo
free -h

Result:

fio@portenta-x8-a13b209dab6fad9:~$ uname -a
Linux portenta-x8-a13b209dab6fad9 5.4.134-lmp-standard #1 SMP PREEMPT Tue Jul 20 21:09:28 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux
fio@portenta-x8-a13b209dab6fad9:~$ cat /etc/os-release
ID=lmp-xwayland
NAME="Linux-microPlatform XWayland"
VERSION="3.3.2-391-83-21-g3ad61e0"
VERSION_ID=3.3.2-391-83-21-g3ad61e0
PRETTY_NAME="Linux-microPlatform XWayland 3.3.2-391-83-21-g3ad61e0"
HOME_URL="https://foundries.io/"
SUPPORT_URL="https://support.foundries.io/"
LMP_MACHINE="portenta-x8"
LMP_FACTORY="arduino"
LMP_FACTORY_TAG="devel"
fio@portenta-x8-a13b209dab6fad9:~$ cat /proc/cpuinfo
processor       : 0
BogoMIPS        : 16.00
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

processor       : 1
BogoMIPS        : 16.00
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

processor       : 2
BogoMIPS        : 16.00
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

processor       : 3
BogoMIPS        : 16.00
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

fio@portenta-x8-a13b209dab6fad9:~$ free -h
               total        used        free      shared  buff/cache   available
Mem:           1.9Gi       308Mi       1.3Gi        26Mi       343Mi       1.6Gi
Swap:          1.9Gi          0B       1.9Gi
fio@portenta-x8-a13b209dab6fad9:~$

Inspect disk utilization

Logged in as fio@portenta-x8-xxxx, type the following commands:

df -h

Result:

fio@portenta-x8-a13b209dab6fad9:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           976M   26M  950M   3% /run
devtmpfs        651M     0  651M   0% /dev
/dev/mmcblk2p2   14G  2.1G   11G  16% /sysroot
tmpfs           976M     0  976M   0% /dev/shm
tmpfs           4.0M     0  4.0M   0% /sys/fs/cgroup
tmpfs           976M     0  976M   0% /tmp
tmpfs           976M   12K  976M   1% /var/volatile
/dev/mmcblk2p1   84M   28K   83M   1% /var/rootdirs/mnt/boot
tmpfs           196M     0  196M   0% /run/user/63
overlay          14G  2.1G   11G  16% /var/lib/docker/overlay2/71bfdab5583038b5068957a0ac6808c843636759bd1e8e23610686a294748ec5/merged
overlay          14G  2.1G   11G  16% /var/lib/docker/overlay2/ebf99a4712b01bd0d3e6a27f6c4f7b1dda3c1018f4abe2598b083240d29b9875/merged
fio@portenta-x8-a13b209dab6fad9:~$

Inspect the network interfaces

Logged in as fio@portenta-x8-xxxx, type the following command:

ip addr

Result:

fio@portenta-x8-a13b209dab6fad9:~$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/sit 0.0.0.0 brd 0.0.0.0
3: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 6e:4f:24:e2:aa:4b brd ff:ff:ff:ff:ff:ff
4: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 74:7a:90:ce:f3:94 brd ff:ff:ff:ff:ff:ff
    inet 172.30.48.28/24 brd 172.30.48.255 scope global dynamic noprefixroute wlan0
       valid_lft 598757sec preferred_lft 598757sec
    inet6 fe80::d422:768c:a623:311d/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
5: can0: <NOARP,ECHO> mtu 16 qdisc noop state DOWN group default qlen 10
    link/can
6: can1: <NOARP,ECHO> mtu 16 qdisc noop state DOWN group default qlen 10
    link/can
7: usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 46:f2:7f:29:29:18 brd ff:ff:ff:ff:ff:ff
    inet 192.168.7.1/24 brd 192.168.7.255 scope global noprefixroute usb0
       valid_lft forever preferred_lft forever
    inet6 fe80::67f4:afe1:2c7d:abe8/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
8: usb1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 32:f2:98:46:1b:c2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.8.1/24 brd 192.168.8.255 scope global noprefixroute usb1
       valid_lft forever preferred_lft forever
    inet6 fe80::f0db:a7c1:d850:58d8/64 scope link tentative noprefixroute
       valid_lft forever preferred_lft forever
9: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:b0:7b:86:28 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
10: br-9a0e17781cd2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:59:99:dc:7b brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.1/16 brd 172.18.255.255 scope global br-9a0e17781cd2
       valid_lft forever preferred_lft forever
    inet6 fe80::42:59ff:fe99:dc7b/64 scope link
       valid_lft forever preferred_lft forever
12: veth7267f54@if11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-9a0e17781cd2 state UP group default
    link/ether 9a:a2:8f:91:28:58 brd ff:ff:ff:ff:ff:ff link-netnsid 1
    inet6 fe80::98a2:8fff:fe91:2858/64 scope link
       valid_lft forever preferred_lft forever
14: veth68241db@if13: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-9a0e17781cd2 state UP group default
    link/ether 5a:a7:6c:72:19:e6 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fe80::58a7:6cff:fe72:19e6/64 scope link
       valid_lft forever preferred_lft forever
fio@portenta-x8-a13b209dab6fad9:~$

Inspect Docker configuration

Logged in as fio@portenta-x8-xxxx, type the following commands:

docker version
docker info
docker images
docker ps -a

Result:

fio@portenta-x8-a13b209dab6fad9:~$ docker version
Client:
 Version:           20.10.7
 API version:       1.41
 Go version:        go1.16.7
 Git commit:        e9b8231d6a
 Built:             Tue Feb 15 18:02:50 2022
 OS/Arch:           linux/arm64
 Context:           default
 Experimental:      true

Server:
 Engine:
  Version:          20.10.7
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.7
  Git commit:       013d6655bb0f4c86bcd9d48372ef67afd0ded65e
  Built:            Tue Feb 15 18:01:38 2022
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          v1.5.4-12-g1c13c54ca.m
  GitCommit:        1c13c54cae4f53510a7a45ae3e4af49030a76193.m
 runc:
  Version:          1.0.0-rc95+dev
  GitCommit:        bfcbc947d5d11327f2680047e2e6e94f4ee93d2a-dirty
 docker-init:
  Version:          0.19.0
  GitCommit:        b9f42a0-dirty
fio@portenta-x8-a13b209dab6fad9:~$ docker info
Client:
 Context:    default
 Debug Mode: false

Server:
 Containers: 2
  Running: 2
  Paused: 0
  Stopped: 0
 Images: 2
 Server Version: 20.10.7
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: journald
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc io.containerd.runc.v2 io.containerd.runtime.v1.linux
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 1c13c54cae4f53510a7a45ae3e4af49030a76193.m
 runc version: bfcbc947d5d11327f2680047e2e6e94f4ee93d2a-dirty
 init version: b9f42a0-dirty (expected: de40ad007797e)
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 5.4.134-lmp-standard
 Operating System: Linux-microPlatform XWayland 3.3.2-391-83-21-g3ad61e0
 OSType: linux
 Architecture: aarch64
 CPUs: 4
 Total Memory: 1.905GiB
 Name: portenta-x8-a13b209dab6fad9
 ID: 6YE7:I5FE:OINP:4YR2:ZMSQ:CC24:GZVF:QRDX:PB3V:KDQO:XMDL:OQFJ
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

fio@portenta-x8-a13b209dab6fad9:~$ docker images
REPOSITORY                                      TAG       IMAGE ID       CREATED       SIZE
hub.foundries.io/arduino/python-devel-arduino   <none>    60de54fcb301   2 weeks ago   268MB
hub.foundries.io/arduino/go-webapp-arduino      <none>    495e2e950a62   2 weeks ago   127MB
fio@portenta-x8-a13b209dab6fad9:~$ docker ps -a
CONTAINER ID   IMAGE                                           COMMAND            CREATED         STATUS      PORTS                                   NAMES
49c117163405   hub.foundries.io/arduino/go-webapp-arduino      "/entrypoint.sh"   13 months ago   Up 5 days   0.0.0.0:80->1323/tcp, :::80->1323/tcp   x8-setup
782933c5d575   hub.foundries.io/arduino/python-devel-arduino   "/entrypoint.sh"   13 months ago   Up 5 days                                           x8-devel
fio@portenta-x8-a13b209dab6fad9:~$

Verify Bluetooth subsystem of the Portenta X8

Logged in as fio@portenta-x8-xxxx, type the following commands:

hciconfig

Result:

fio@portenta-x8-a13b209dab6fad9:~$ hciconfig
hci0:   Type: Primary  Bus: UART
        BD Address: 43:43:A1:12:1F:AC  ACL MTU: 1021:8  SCO MTU: 64:1
        DOWN
        RX bytes:2045 acl:0 sco:0 events:190 errors:0
        TX bytes:37360 acl:0 sco:0 commands:190 errors:0

fio@portenta-x8-a13b209dab6fad9:~$

Bring up the Bluetooth interface, then scan nearby BLE devices

sudo hciconfig hci0 up
hcitool dev
sudo hcitool lescan

Result:

fio@portenta-x8-a13b209dab6fad9:~$ sudo hciconfig hci0 up
fio@portenta-x8-a13b209dab6fad9:~$ hcitool dev
Devices:
        hci0    43:43:A1:12:1F:AC
fio@portenta-x8-a13b209dab6fad9:~$ sudo hcitool lescan
LE Scan ...
2E:75:1E:87:EB:CF (unknown)
7C:64:56:88:EF:A7 (unknown)
2F:ED:4A:2E:A5:B5 (unknown)
72:D4:7E:59:0D:F8 (unknown)
65:4E:A0:F6:BE:B4 (unknown)
65:4E:A0:F6:BE:B4 (unknown)
1F:F2:44:20:1A:28 (unknown)
2C:9B:97:13:4A:9B (unknown)
28:C4:3F:11:AB:CE (unknown)
02:93:45:6B:9E:AB (unknown)
CD:1B:AC:76:93:BF (unknown)
6E:E5:2C:AB:EB:DD (unknown)
6E:E5:2C:AB:EB:DD (unknown)
1B:9E:4C:3A:9B:B1 (unknown)
55:37:EF:1F:3B:86 (unknown)
7C:81:F0:23:19:98 (unknown)
07:DD:3B:78:21:46 (unknown)
62:27:88:AC:C0:F0 (unknown)
62:A4:EB:0B:D6:AE (unknown)
5C:1B:DB:65:60:57 (unknown)
7C:49:DF:24:CE:3B (unknown)
37:9F:05:BE:F8:E9 (unknown)
F5:83:BC:3A:7B:93 (unknown)
62:A4:EB:0B:D6:AE (unknown)
62:27:88:AC:C0:F0 (unknown)
44:E8:BB:5E:76:AB (unknown)
D9:04:87:92:BE:06 (unknown)
D9:04:87:92:BE:06 BT510
44:E8:BB:5E:76:AB (unknown)
E3:A2:5D:E5:24:9C (unknown)
^Cfio@portenta-x8-a13b209dab6fad9:~$