Specification

My son wanted a high accuracy accelerometer board to characterize a vibrating pot.

Here is an accurate (but still cheap) measurement board. 

Specifications are :

Critical point of this specification is the requirement for synchronization of the 3 sensors. This forbids cheap accelerometers such as MPU6050... 

The selected chip was thus ADXL357. It exposes SYNC signal to trigger acquisition on several chips in parallel and can be intercaed with MPU with highspeed SPI bus.

Here are its main features :

it also offers 

Analog Device sells evaluations boards which are perfect to be integrated on the vibrating pot. We needed 50cm wires in "star configuration" from the ESP32 to the 3 sensors fixed on the pot

Full specification of this board is here

Note that Synchronized measurement is achievable only with EVAL-ADXL357Z board. The ADXL357 chip has a hardware SYNC pin which is exposed on this eval board.

The SPI bus allows to sustain the high rate of acquisition : 

Reading one ADXL357 sample means 3 axes × 20 bits, packed in 9 data bytes, plus an address byte — call it ~10 bytes per sensor. At 2 kHz × 4 sensors, that's 80 kB/s of payload on the bus, or ~640 kbit/s plus transaction overhead (CS toggling, register addressing). The ADXL357 accepts SPI clocks up to 10 MHz; even running conservatively at 4–5 MHz for cable-robustness , each read cycle of all 4 sensors takes roughly 100–150 µs. Sample period at 2 kHz is 500 µs, so the bus is busy well under a third of the time.

ESP32-S3 MPU

USB link. The spec's frame is ~38 bytes (magic + 32-bit counter + 4×3 packed 20-bit axes + CRC16) × 2 kHz ≈ 76 kB/s — well under the spec's own 200 kB/s ceiling, and the ESP32-S3's native USB CDC sustains around 1 MB/s in practice. Order of magnitude of headroom.

CPU. The S3 runs dual-core at 240 MHz. At 2 kHz we have 500 µs per cycle; the SPI reads plus packing plus CRC take a fraction of that in C/C++. The dual core is used in standard pattern — one core handles the SYNC timer ISR and SPI reads into a ring buffer, the other drains the buffer to USB — makes losing frames genuinely hard. 

Schematics

Apart from the ESP32-S3 and the connectors for the 3 ADXL537, this schematics show a buffer 74LVC125AD. This buffer (Low Voltage version) will clean up the high freqency signals DRDY, SCLK, MOSI produced by the ESP32-S3 and routed to the sensors via shielded wires.

PCB

The PCB was designed with Eagle software.

The ESP32 goes on the top side, while all the other components go to the bottom side.

PCB can be bought at PCBWay directly from this project page 

The PCB was kindly sponsored by PCBWay and is as usual of excellent quality.

and if you are new to PCBWay please use this affiliated link : https://pcbway.com/g/o35z4O

soldering is easy but special care is needed for shielded cables.

Use single core shielded cable for MOSI, MISO, SCLK, CS and DRDY. The core is soldered of the Eval board and on the ESP32 side.

the shield is only soldered on the ESP32 side (pins labeled shd)

note also that connectors P1 on eval board side must be shorted between pins 1 and 3

This is needed to connect VDDIO and VDD. On ESP32 side only VDDIO is connected to 3.3V

Note also that INT2 is left unsoldered on sensor side. 

INT1 is only soldered for sensor1 it will tell the ESP32 (via interrupt) that acquisition is finished for this sensor. And as all sensors are synchronized a single interrupt is enough for all of them.

Work in progres, Please stay tuned