EVAL-ADXL367Z no-OS Example Project
See projects/eval-adxl367z (doxygen) for the Doxygen documentation.
Supported Evaluation Boards
Overview
The ADXL367 is an ultralow power, 3-axis MEMS accelerometer that consumes only 0.89 uA at a 100 Hz output data rate and 180 nA in motion-triggered wake-up mode. Unlike accelerometers that use power duty cycling to achieve low power consumption, the ADXL367 does not alias input signals by undersampling, but samples the full bandwidth of the sensor at all data rates.
The device provides 14-bit output resolution with selectable measurement ranges of +/-2 g, +/-4 g, and +/-8 g (0.25 mg/LSB on the +/-2 g range). It features a deep 512-sample FIFO, built-in temperature sensor, single-tap and double-tap detection, and supports both SPI (4-wire) and I2C digital interfaces. The ADXL367 operates on a 1.1 V to 3.6 V supply range.
The EVAL-ADXL367Z evaluation board provides a simple platform for evaluating the ADXL367 accelerometer.
Applications
24/7 sensing
Hearing aids
Vital signs monitoring devices
Motion-enabled power save switches
Motion-enabled metering devices
Smart watch with single-cell operation
Smart home
Hardware Specifications
Power Supply Requirements
The ADXL367 operates on a supply voltage range of 1.1 V to 3.6 V (VDD), with a separate digital interface supply (VDDIO). Current consumption is 0.89 uA at 100 Hz ODR (2.0 V supply), 180 nA in motion-activated wake-up mode, and 40 nA in standby.
No-OS Supported Examples
This project is organized around the no-OS variant based build flow.
Selecting a variant at build time (--variant <name>) chooses which
application is compiled. The platform main() is a thin dispatcher that
calls example_main(), provided by the selected example. Shared
initialization data is defined in
src/common,
and platform-specific macros and extra init parameters are in
src/platform.
Dummy Example
The dummy example initializes the ADXL367 accelerometer, performs a self-test, enables temperature reading, sets the output data rate to 200 Hz, and configures the FIFO for data collection. The device is then switched to measurement mode, and acceleration data along the x, y, and z axes along with temperature data is read from the FIFO buffer and printed to the console.
This example is built by selecting the dummy variant (see the Build Command
sections below).
IIO Example
The IIO example initializes the ADXL367 accelerometer and sets up an IIO device server that allows users to interact with the sensor via an IIO client such as IIO Oscilloscope.
If you are not familiar with ADI IIO Application, please take a look at: IIO No-OS
If you are not familiar with ADI IIO-Oscilloscope Client, please take a look at: IIO Oscilloscope
This example is built by selecting the iio_example variant (see the Build
Command sections below).
No-OS Supported Platforms
Xilinx
Used Hardware
Connections
Connect the EVAL-ADXL367Z to the ZedBoard via the SPI interface. The
ADXL367 communicates over SPI using device ID 0 as configured in
src/platform/xilinx/parameters.h. The UART console appears on the
ZedBoard USB-UART adapter at 115200 baud, 8N1.
Build Command
The Xilinx platform uses the CMake/Ninja build system via the
no_os_build.py helper script. Available variants: dummy,
iio_example. Available boards: zed.
For toolchain setup and prerequisites, see the Xilinx CMake build guide.
# source the Vitis environment (adjust path to your Vitis install)
source /path/to/Vitis/2025.1/settings64.sh
# PowerShell (Windows) equivalent:
# & "<path\to\Vitis\2025.1\settings64.bat"
cd no-OS
# build the dummy example on the ZedBoard (requires a .xsa hardware file)
python tools/scripts/no_os_build.py build \
--project eval-adxl367z --variant dummy --board zed \
--hardware /path/to/system_top.xsa
# build and flash (requires a connected debug probe)
python tools/scripts/no_os_build.py build \
--project eval-adxl367z --variant dummy --board zed \
--hardware /path/to/system_top.xsa \
--probe openocd --flash