[vtx] Add VTX driver with Tramp and SmartAudio support

This commit is contained in:
Niklas Hauser
2026-01-23 13:34:04 +01:00
committed by Niklas Hauser
parent fad4450d7d
commit c0c265cd1f
28 changed files with 3397 additions and 1 deletions
+1
View File
@@ -240,6 +240,7 @@ set(msg_files
VehicleThrustSetpoint.msg
VehicleTorqueSetpoint.msg
VelocityLimits.msg
Vtx.msg
WheelEncoders.msg
YawEstimatorStatus.msg
versioned/ActuatorMotors.msg
+32
View File
@@ -0,0 +1,32 @@
uint64 timestamp # time since system start (microseconds)
uint8 BAND_NAME_LENGTH = 12
uint8 POWER_LABEL_LENGTH = 4
uint8 PROTOCOL_NONE = 0 # No protocol is detected, usually an error
uint8 PROTOCOL_SMART_AUDIO_V1 = 10
uint8 PROTOCOL_SMART_AUDIO_V2 = 20
uint8 PROTOCOL_SMART_AUDIO_V2_1 = 21
uint8 PROTOCOL_TRAMP = 100
uint8 protocol
uint8 DEVICE_UNKNOWN = 0
uint8 DEVICE_PEAK_THOR_T67 = 20
uint8 DEVICE_RUSH_MAX_SOLO = 40
uint8 device
uint8 MODE_NORMAL = 0
uint8 MODE_PIT = 1
uint8 mode
# Band and Channel are 0-indexed! But the user expects a 1-indexed display!
int8 band # Band number (0-23), negative values indicate frequency mode
int8 channel # Channel number (0-15), negative values indicate frequency mode
uint16 frequency # Frequency in MHz, zero indicates unknown
uint8 band_letter # Band letter as ASCII
uint8[12] band_name # Band name in ASCII without null termination
# Also 0-indexed, but the user expects a 1-indexed display!
int8 power_level # Current power level (0-15), negative values indicate unknown
uint8[4] power_label # Current power label in ASCII without null termination
+13
View File
@@ -0,0 +1,13 @@
uint64 timestamp # time since system start (microseconds)
# See https://betaflight.com/docs/wiki/guides/current/VTX-CLI-Settings#change-vtx-power-level-using-aux-channel
uint8 MAX_LENGTH = 160
uint8 length
int8[160] aux_channel
int8[160] band
int8[160] channel
int8[160] power_level
int16[160] start_range
int16[160] end_range
+35
View File
@@ -0,0 +1,35 @@
uint64 timestamp # time since system start (microseconds)
uint8 NAME_LENGTH = 16
uint8 BAND_NAME_LENGTH = 12
uint8 POWER_LABEL_LENGTH = 4
uint8 CHANNELS = 16
uint8 BANDS = 24
uint8 POWER_LEVELS = 16
# Configuration name in ASCII without null termination
uint8[16] name
uint8 bands
uint8 channels
# Frequency is in MHz
# Invalid frequencies are set to 0
uint16[384] frequency # 24*16 = 384
# Band names in ASCII without null termination
uint8[288] band_name # 24*12 = 288
# Band letters in ASCII
uint8[24] letter
# Band attributes
uint8 ATTRIBUTE_FACTORY = 0
uint8 ATTRIBUTE_CUSTOM = 1
uint8[24] attribute
uint8 power_levels
# Positive values are the exact value the VTX protocol expects to set the power level
# Negative values are alternative values depending on the VTX protocol and device
int16[16] power_value
# The power labels as ASCII without null termination
uint8[64] power_label # 4*16 = 64