Zephyr API Documentation 4.5.0-rc1
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_INPUT_INPUT_CRSF_H_
23#define ZEPHYR_INCLUDE_INPUT_INPUT_CRSF_H_
24
25#include <zephyr/device.h>
26#include <zephyr/types.h>
27
28#ifdef __cplusplus
29extern "C" {
30#endif
31
75
100
117
152
158
165#define CRSF_TICKS_TO_US(x) (((x) - 992) * 5 / 8 + 1500)
166
173#define CRSF_US_TO_TICKS(x) (((x) - 1500) * 8 / 5 + 992)
174
176
190
201int input_crsf_send_telemetry(const struct device *dev, uint8_t type, uint8_t *payload,
202 size_t payload_len);
203
212
213#ifdef __cplusplus
214}
215#endif
216
218
219#endif /* ZEPHYR_INCLUDE_INPUT_INPUT_CRSF_H_ */
APIs and macros for the Zephyr device model.
crsf_packet_type
CRSF packet (frame) types.
Definition input_crsf.h:35
@ CRSF_TYPE_DEVICE_INFO
Device information.
Definition input_crsf.h:61
@ CRSF_TYPE_LINK_TX_ID
Transmitter link identifier.
Definition input_crsf.h:43
@ CRSF_TYPE_GPS
GPS telemetry data.
Definition input_crsf.h:37
@ CRSF_TYPE_FLIGHT_MODE
Flight mode string.
Definition input_crsf.h:55
@ CRSF_TYPE_LINK_STATS
Link statistics.
Definition input_crsf.h:46
@ CRSF_TYPE_RADIO_ID
Radio identifier.
Definition input_crsf.h:70
@ CRSF_TYPE_PING_DEVICES
Device discovery / ping.
Definition input_crsf.h:58
@ CRSF_TYPE_ATTITUDE
Attitude telemetry.
Definition input_crsf.h:52
@ CRSF_TYPE_PARAMETER_SETTINGS
Parameter read/write.
Definition input_crsf.h:64
@ CRSF_TYPE_COMMAND
Command frame.
Definition input_crsf.h:67
@ CRSF_TYPE_BATTERY
Battery telemetry data.
Definition input_crsf.h:40
@ CRSF_TYPE_AP_CUSTOM_TELEM
ArduPilot custom telemetry.
Definition input_crsf.h:73
@ CRSF_TYPE_RC_CHANNELS
RC channel data.
Definition input_crsf.h:49
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:180
int16_t pitch_rad
Pitch angle in radians × 10,000.
Definition input_crsf.h:182
int16_t yaw_rad
Yaw angle in radians × 10,000.
Definition input_crsf.h:188
int16_t roll_rad
Roll angle in radians × 10,000.
Definition input_crsf.h:185
Battery telemetry payload (Type 0x08).
Definition input_crsf.h:104
uint16_t current_dA
Battery current in amps × 10.
Definition input_crsf.h:109
uint8_t remaining_pct
Remaining battery percentage (0–100).
Definition input_crsf.h:115
uint16_t voltage_dV
Battery voltage in volts × 10.
Definition input_crsf.h:106
uint8_t capacity_mah[3]
Consumed capacity in milliamp-hours (24-bit, big-endian).
Definition input_crsf.h:112
GPS telemetry payload (Type 0x02).
Definition input_crsf.h:81
uint16_t altitude
Altitude in meters with +1000 m offset.
Definition input_crsf.h:95
int32_t lat
Latitude in degrees × 10,000,000.
Definition input_crsf.h:83
uint16_t heading
Heading in degrees × 100.
Definition input_crsf.h:92
uint8_t satellites
Number of visible satellites.
Definition input_crsf.h:98
int32_t lon
Longitude in degrees × 10,000,000.
Definition input_crsf.h:86
uint16_t speed
Ground speed in km/h × 10.
Definition input_crsf.h:89
Runtime device structure (in ROM) per driver instance.
Definition device.h:543