Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
input_crsf.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2026 CogniPilot Foundation
3 * Copyright (c) 2026 NXP Semiconductors
4 *
5 * SPDX-License-Identifier: Apache-2.0
6 */
7
21
22#ifndef ZEPHYR_INCLUDE_DRIVERS_INPUT_INPUT_CRSF_H_
23#define ZEPHYR_INCLUDE_DRIVERS_INPUT_INPUT_CRSF_H_
24
25#include <zephyr/types.h>
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
74
99
116
151
157
164#define CRSF_TICKS_TO_US(x) (((x) - 992) * 5 / 8 + 1500)
165
172#define CRSF_US_TO_TICKS(x) (((x) - 1500) * 8 / 5 + 992)
173
175
189
200int input_crsf_send_telemetry(const struct device *dev, uint8_t type, uint8_t *payload,
201 size_t payload_len);
202
211
212#ifdef __cplusplus
213}
214#endif
215
217
218#endif /* ZEPHYR_INCLUDE_DRIVERS_INPUT_INPUT_CRSF_H_ */
crsf_packet_type
CRSF packet (frame) types.
Definition input_crsf.h:34
@ CRSF_TYPE_DEVICE_INFO
Device information.
Definition input_crsf.h:60
@ CRSF_TYPE_LINK_TX_ID
Transmitter link identifier.
Definition input_crsf.h:42
@ CRSF_TYPE_GPS
GPS telemetry data.
Definition input_crsf.h:36
@ CRSF_TYPE_FLIGHT_MODE
Flight mode string.
Definition input_crsf.h:54
@ CRSF_TYPE_LINK_STATS
Link statistics.
Definition input_crsf.h:45
@ CRSF_TYPE_RADIO_ID
Radio identifier.
Definition input_crsf.h:69
@ CRSF_TYPE_PING_DEVICES
Device discovery / ping.
Definition input_crsf.h:57
@ CRSF_TYPE_ATTITUDE
Attitude telemetry.
Definition input_crsf.h:51
@ CRSF_TYPE_PARAMETER_SETTINGS
Parameter read/write.
Definition input_crsf.h:63
@ CRSF_TYPE_COMMAND
Command frame.
Definition input_crsf.h:66
@ CRSF_TYPE_BATTERY
Battery telemetry data.
Definition input_crsf.h:39
@ CRSF_TYPE_AP_CUSTOM_TELEM
ArduPilot custom telemetry.
Definition input_crsf.h:72
@ CRSF_TYPE_RC_CHANNELS
RC channel data.
Definition input_crsf.h:48
int input_crsf_send_telemetry(const struct device *dev, uint8_t type, uint8_t *payload, size_t payload_len)
Send a generic CRSF telemetry frame.
struct crsf_link_stats input_crsf_get_link_stats(const struct device *dev)
Retrieve the latest CRSF link statistics.
__INT32_TYPE__ int32_t
Definition stdint.h:74
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
__INT8_TYPE__ int8_t
Definition stdint.h:72
__INT16_TYPE__ int16_t
Definition stdint.h:73
Attitude telemetry payload (Type 0x1E).
Definition input_crsf.h:179
int16_t pitch_rad
Pitch angle in radians × 10,000.
Definition input_crsf.h:181
int16_t yaw_rad
Yaw angle in radians × 10,000.
Definition input_crsf.h:187
int16_t roll_rad
Roll angle in radians × 10,000.
Definition input_crsf.h:184
Battery telemetry payload (Type 0x08).
Definition input_crsf.h:103
uint16_t current_dA
Battery current in amps × 10.
Definition input_crsf.h:108
uint8_t remaining_pct
Remaining battery percentage (0–100).
Definition input_crsf.h:114
uint16_t voltage_dV
Battery voltage in volts × 10.
Definition input_crsf.h:105
uint8_t capacity_mah[3]
Consumed capacity in milliamp-hours (24-bit, big-endian).
Definition input_crsf.h:111
GPS telemetry payload (Type 0x02).
Definition input_crsf.h:80
uint16_t altitude
Altitude in meters with +1000 m offset.
Definition input_crsf.h:94
int32_t lat
Latitude in degrees × 10,000,000.
Definition input_crsf.h:82
uint16_t heading
Heading in degrees × 100.
Definition input_crsf.h:91
uint8_t satellites
Number of visible satellites.
Definition input_crsf.h:97
int32_t lon
Longitude in degrees × 10,000,000.
Definition input_crsf.h:85
uint16_t speed
Ground speed in km/h × 10.
Definition input_crsf.h:88
Runtime device structure (in ROM) per driver instance.
Definition device.h:513