What it is
The Raspberry Pi Compute Module 4 (CM4) is an embedded computing platform based on the Broadcom BCM2711 SoC, with four ARM Cortex-A72 cores at 1.5 GHz and up to 8 GB of LPDDR4X RAM. Unlike the full-board Raspberry Pi versions, the CM4 adopts a compact module form factor (55 × 40 mm) that eases its integration into custom industrial hardware.
It includes integrated 802.11ac wireless connectivity and Bluetooth 5.0, soldered eMMC storage (up to 32 GB) and a high-density expansion interface with 28 GPIO pins and I²C, SPI and UART buses. Its full-load consumption is around 5 W, which makes it viable for installation in railway environments where power is limited.
Role in IN-SIGHT
Each IN-SIGHT IoT Pod incorporates a CM4 that acts as the edge processing unit. By running the analysis logic directly on board the vehicle, the system eliminates the dependency on real-time connectivity and radically reduces the volume of data transmitted to the cloud.
- Acquisition: Direct interface with the MEMS sensors via SPI at frequencies up to 6,667 Hz. Reading of accelerometer, gyroscope and MEMS microphone on each cycle.
- DSP preprocessing: Application of Hann windows, 1024-point FFT and band-pass IIR filters to extract the characteristic frequencies of each subsystem (bearings, wheels, door mechanism).
- Primary detection: Execution of the local Extended Kalman Filter that compares the current state against the Golden Run baseline stored in eMMC.
- Packaging and encryption: Serialisation of metrics into compact JSON and transmission via MQTT over TLS 1.3 to Azure IoT Hub.
- Device Twin: Bidirectional synchronisation of the configuration state with the cloud, including adaptive thresholds and firmware version.
Edge latency: The CM4 completes the acquisition → DSP → detection cycle in under 5 ms, enabling real-time response without the need for cloud connectivity.
Processing pipeline
The CM4's embedded software is written in Python 3.11 with critical modules accelerated via numba JIT. The pipeline follows this flow:
MEMS sensor (SPI @6667 Hz)
│
▼
Circular buffer (2048 samples)
│
▼
Hann window → 1024pt FFT → IIR filter
│
▼
Feature extraction
(RMS, percentiles, peak frequencies)
│
▼
Extended Kalman Filter (EKF)
│
├─ No anomaly → aggregate and send (30 s)
└─ Anomaly → send immediately + alert