blob: cabfd202dad74423691cfc3a36460b10658763ba [file] [log] [blame]
# Copyright 2025 CogniPilot Foundation
# SPDX-License-Identifier: Apache-2.0
description: |
Axis alignment specification for sensors
that require orientation. This can be used for
sensors that have more than one axis. It is used by
assigning the hardware's internal axes to an external
reference frame axes of choice (IE, orientation of sensor
on a board or overall system mounting).
Consider a sensor (sensor-top-90) that follows right hand rule,
and when mounted to the board was rotated clockwise around it's Z axis
90 degrees from another identical directional sensor (sensor-bottom)
that was mounted on the bottom side of the board.
To have the sensors all in the same board reference frame a simple
axis change can be performed by changing the axis output of
sensor-top-90 as follows:
x -> +y
y -> -x
z -> +z
To align the sensor that is on the bottom side of the board an
axis output change for sensor-bottom would be as followed:
x -> +x
y -> -y
z -> -z
Example of how to encode that into DTS:
#include <zephyr/dt-bindings/sensor/sensor_axis_align.h>
sensor-top-90: sensor-top-90@0 {
...
axis-align-x = <SENSOR_AXIS_ALIGN_DT_Y>
axis-align-y = <SENSOR_AXIS_ALIGN_DT_X>
axis-align-y-sign = <SENSOR_AXIS_ALIGN_DT_NEG>
axis-align-z = <SENSOR_AXIS_ALIGN_DT_Z>
};
sensor-bottom: sensor-bottom@1 {
...
axis-align-x = <SENSOR_AXIS_ALIGN_DT_X>
axis-align-y = <SENSOR_AXIS_ALIGN_DT_Y>
axis-align-y-sign = <SENSOR_AXIS_ALIGN_DT_NEG>
axis-align-z = <SENSOR_AXIS_ALIGN_DT_Z>
axis-align-z-sign = <SENSOR_AXIS_ALIGN_DT_NEG>
};
include: base.yaml
properties:
axis-align-x:
type: int
default: 0
description: |
Align sensor chanel x output with hardware orientation axis.
Defaults to x.
enum:
- 0 # SENSOR_AXIS_ALIGN_DT_X
- 1 # SENSOR_AXIS_ALIGN_DT_Y
- 2 # SENSOR_AXIS_ALIGN_DT_Z
axis-align-x-sign:
type: int
default: 2
description: |
Align sensor chanel x output with hardware orientation axis sign component.
Defaults to positive.
enum:
- 0 # SENSOR_AXIS_ALIGN_DT_NEG
- 2 # SENSOR_AXIS_ALIGN_DT_POS
axis-align-y:
type: int
default: 1
description: |
Align sensor chanel y output with hardware orientation axis.
Defaults to y.
enum:
- 0 # SENSOR_AXIS_ALIGN_DT_X
- 1 # SENSOR_AXIS_ALIGN_DT_Y
- 2 # SENSOR_AXIS_ALIGN_DT_Z
axis-align-y-sign:
type: int
default: 2
description: |
Align sensor chanel y output with hardware orientation axis sign component.
Defaults to positive.
enum:
- 0 # SENSOR_AXIS_ALIGN_DT_NEG
- 2 # SENSOR_AXIS_ALIGN_DT_POS
axis-align-z:
type: int
default: 2
description: |
Align sensor chanel z output with hardware orientation axis.
Defaults to z.
enum:
- 0 # SENSOR_AXIS_ALIGN_DT_X
- 1 # SENSOR_AXIS_ALIGN_DT_Y
- 2 # SENSOR_AXIS_ALIGN_DT_Z
axis-align-z-sign:
type: int
default: 2
description: |
Align sensor chanel z output with hardware orientation axis sign component.
Defaults to positive.
enum:
- 0 # SENSOR_AXIS_ALIGN_DT_NEG
- 2 # SENSOR_AXIS_ALIGN_DT_POS