System architecture
The three sensing subsystems, their interfaces and the common time base.
This chapter gives an overview of the platform before the subsystems are described in detail in Chapters 5 to 7.
4.1Overview
4.2Design principles
- One clock per subsystem, one time base overall. All induction channels are sampled by one codec with one master clock, so their relative phases are exact. The radar derives its time from the host computer, and the GNSS pulse ties both to GPS time.
- Calculate before building. Every component value is derived from a model, and each work package starts by checking one prediction against a measurement (Chapter 9).
- Physics before learning. Known relations such as the \(1/r^6\) distance law and tensor rotation are handled by an explicit model. Machine learning is applied only to the orientation-independent quantities that remain (Chapter 8).
- Open and reproducible. Designs, code, data and this report are published under open licences at the end of the project.
4.3Subsystems
Table 4.1.Subsystems, main hardware and procurement status.
| Subsystem | Function | Main hardware | Status |
|---|---|---|---|
| Induction | Multi-frequency, full-tensor measurement of the target response | CS42448 codec board, 3 TX and 3 RX coils, class-D drivers, ×33 preamplifiers | Codec owned; rest to build |
| Radar | Depth and shape by stepped-frequency GPR, 0.5 to 3 GHz | ADALM-Pluto (AD9363), RF amplifiers, two Vivaldi antennas | Pluto and amplifiers owned; antennas to build |
| Positioning | Sensor pose at every sample, centimetre level | 2 × RTK GNSS receivers, IMU, magnetometer, global-shutter camera, time-of-flight ranger | To buy |
| Host | Streams codec data to the PC | Teensy 4.1 (baseline) or Raspberry Pi | To decide in T1.2 |
| Processing | Demodulation, pose estimation, inversion, classification, fusion | Laptop PC, Python | Available |
4.4Interfaces and data rates
Table 4.2.Data interfaces.
| Link | Interface | Rate | Notes |
|---|---|---|---|
| Codec to host | TDM serial audio | 48 kHz × 6 ch | Master clock shared by all channels |
| Host to PC | USB | 9.2 Mbit/s | 6 channels × 32 bit × 48 kHz |
| Radar to PC | USB 2.0 (IIO) | up to about 4 MS/s IQ | One capture per frequency step |
| GNSS to PC | UART / USB (UBX) | 10 Hz fixes | PPS wired to codec input 5 |
| IMU to PC | I²C or SPI through host | 200 Hz | Accelerometer, gyroscope, magnetometer |
| Camera to PC | USB | 60 frames/s | PPS-driven LED in field of view |
4.5Host decision
Two hosts are possible for the codec board. A Teensy 4.1 drives the CS42448 over TDM with existing library support; because its standard USB audio class is limited to two channels, the six input channels are streamed as a raw serial stream at 9.2 Mbit/s, which is well within its USB 2.0 High Speed port. A Raspberry Pi supports the CS42448 in its mainline audio drivers and presents it as an ordinary multichannel sound card, which simplifies the software. The choice will be made in task T1.2, after both have been tested with the actual board. The rest of the design does not depend on it.