I recently bought a Raspberry Pi 400 and took care of installing LinuxCNC.
First I noticed that the revision was new (c03131), not yet reported on the site :
www.raspberrypi.com/documentation/comput...ry-pi-revision-codes
It was therefore necessary to modify the cpuinfo.c and hal_pi_gpio.c
cpuinfo.c
hal_pi_gpio.c
Also since Linux kernel 5.15 has been released, and is now the default branch of raspberrypi/linux, I prepared Raspberry Pi OS (bullseye 64-bit) with Preempt_RT kernel
(
github.com/kdoren/linux/releases/tag/rpi_5.15.27-rt35
)
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 5.15.27-rt35-v8+ #1 SMP PREEMPT_RT Fri Mar 11 16:34:20 GMT 2022 aarch64 GNU/Linux
I then compiled and installed the latest version of LinuxCNC (linuxcnc-uspace_2.9.0~pre0_arm64).
The files .deb (installable with gdebi) are available at this link:
linuxcnc-uspace_2.9.0~pre0_arm64_deb.zip
If you want to avoid the whole installation procedure of the various elements, the microSD image of this installation is available at this link
linucnc-2.9.0pre-bullseye_arm64rt.zip
I then mounted the SD on three raspberry Pi models, whose characteristics (obtained with the 'pinout' command) are as follows:
a) Raspberry Pi 4 Model B Rev 1.1 2GB
Revision : b03111
SoC : BCM2711
RAM : 2GB
Storage : MicroSD
USB ports : 4 (of which 2 USB3)
Ethernet ports : 1 (1000Mbps max. speed)
Wi-fi : True
Bluetooth : True
Camera ports (CSI) : 1
Display ports (DSI): 1
b) Raspberry Pi 4 Model B Rev 1.1 4GB
Revision : c03111
SoC : BCM2711
RAM : 4GB
Storage : MicroSD
USB ports : 4 (of which 2 USB3)
Ethernet ports : 1 (1000Mbps max. speed)
Wi-fi : True
Bluetooth : True
Camera ports (CSI) : 1
Display ports (DSI): 1
c) Raspberry Pi 400 Rev 1.1 4GB
Revision : c03131
SoC : BCM2711
RAM : 4GB
Storage : MicroSD
USB ports : 3 (of which 2 USB3)
Ethernet ports : 1 (1000Mbps max. speed)
Wi-fi : True
Bluetooth : True
Camera ports (CSI) : 0
Display ports (DSI): 0
The first tests of operation gave good results.
In particular, these are the graphs obtained through the
latency-histogram --nobase --sbinsize 1000 --show
a)
b)
c)
Also in the case of the Pi 400 it is possible to reduce the servo cycle up to 35us without generating the 'Unexpected realtime delay' error.