FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

[vtx] Add support for VTX control via Tramp and SmartAudio protocols by niklaut · Pull Request #25694 · PX4/PX4-Autopilot · GitHub

[vtx] Add support for VTX control via Tramp and SmartAudio protocols - #25694

Merged
niklaut merged 1 commit into
mainfrom
pr-vtx-support
Jan 26, 2026
Merged

niklaut merged 1 commit into
mainfrom
pr-vtx-support

Conversation

niklaut commented Oct 1, 2025 •
edited
Loading

Copy link
Copy Markdown
Contributor

Solved Problem

  • VTX protocols and robust round-robin scheduler
    • Tramp protocol
    • SmartAudio v1, v2, v2.1 protocol
  • Control of band, channel, frequency, power, pit mode.
    • CRSF MSP message parser for setting
    • RC input via aux map table
    • Parameters via Mavlink or QGC/AMC
  • RC aux map table and VTX table support saved/restored from file
  • Receiving VTX table and RX AUX map table via uORB/DDS
  • Sending VTX settings and state via uORB/DDS
  • CLI interface similar to betaflight
  • "Expensive" features guarded behind KConfig options
    • CRSF MSP message support
    • Saving the VTX config to a file
  • Documentation

Depends on #25693. merged.

Changelog Entry

For release notes:

Feature: Add VTX support with Tramp and SmartAudio protocols

Alternatives

The uORB messages are quite large, but I didn't come up with anything better. They are guarded behind a KConfig option. I didn't add them to the DDS bridge, since that's not really useful for upstream. It would be great to guard that yaml file with the KConfig options.

Test coverage

  • Testing in hardware with various Tramp and SA VTXes

github-actions Bot commented Oct 1, 2025 •
edited
Loading

Copy link
Copy Markdown
Contributor

🔎 FLASH Analysis

px4_fmu-v5x [Total VM Diff: 192 byte (0.01 %)]
    FILE SIZE        VM SIZE    
--------------  -------------- 
+0.0%    +192  +0.0%    +192    .text
  +0.5%    +100  +0.5%    +100    uORB::compressed_fields
  +0.0%     +48  +0.0%     +48    g_cromfs_image
  +0.6%     +20  +0.6%     +20    px4::logger::LoggedTopics::add_default_topics()
  [NEW]     +16  [NEW]     +16    __orb_vtx
  +3.1%      +4  +3.1%      +4    uORB::Manager::orb_device_node_exists()
  +3.0%      +4  +3.0%      +4    uORB::Manager::orb_exists()
  +0.3%      +4  +0.3%      +4    uorb_topics_list
  -0.8%      -4  -0.8%      -4    ModuleBase<>::unlock_module()
+0.3% +5.36Ki  [ = ]       0    .debug_abbrev
+0.0%     +32  [ = ]       0    .debug_aranges
+0.0%     +48  [ = ]       0    .debug_frame
+0.0% +13.6Ki  [ = ]       0    .debug_info
+0.0% +1.41Ki  [ = ]       0    .debug_line
  +100%      +2  [ = ]       0    [Unmapped]
  +0.0% +1.41Ki  [ = ]       0    [section .debug_line]
+0.0%    +132  [ = ]       0    .debug_loclists
+0.0%     +20  [ = ]       0    .debug_rnglists
+0.0%    +760  [ = ]       0    .debug_str
+0.8%      +2  [ = ]       0    .shstrtab
+0.0%     +18  [ = ]       0    .strtab
  +0.0%      +8  [ = ]       0    [section .strtab]
 -33.3%     -16  [ = ]       0    __nxsched_add_readytorun_veneer
  [NEW]     +10  [ = ]       0    __orb_vtx
   +80%     +16  [ = ]       0    __sq_addlast_veneer
+0.0%     +48  [ = ]       0    .symtab
 -40.0%     -32  [ = ]       0    __nxsched_add_readytorun_veneer
  [NEW]     +48  [ = ]       0    __orb_vtx
   +67%     +32  [ = ]       0    __sq_addlast_veneer
-1.9%    -192  [ = ]       0    [Unmapped]
+0.0% +21.4Ki  +0.0%    +192    TOTAL

px4_fmu-v6x [Total VM Diff: 192 byte (0.01 %)]
    FILE SIZE        VM SIZE    
--------------  -------------- 
+0.0%    +192  +0.0%    +192    .text
  +0.5%    +100  +0.5%    +100    uORB::compressed_fields
  +0.0%     +44  +0.0%     +44    g_cromfs_image
  +0.6%     +20  +0.6%     +20    px4::logger::LoggedTopics::add_default_topics()
  [NEW]     +16  [NEW]     +16    __orb_vtx
  +0.0%     +12  +0.0%     +12    [section .text]
   +20%      +4   +20%      +4    get_orb_meta()
  +3.1%      +4  +3.1%      +4    uORB::Manager::orb_device_node_exists()
  +3.0%      +4  +3.0%      +4    uORB::Manager::orb_exists()
  +0.3%      +4  +0.3%      +4    uorb_topics_list
  -4.5%      -4  -4.5%      -4    FlightTask
  -0.8%      -4  -0.8%      -4    ModuleBase<>::unlock_module()
  -1.0%      -4  -1.0%      -4    atanf
 -30.8%      -4 -30.8%      -4    g_nullstring
+0.3% +5.22Ki  [ = ]       0    .debug_abbrev
+0.0%     +32  [ = ]       0    .debug_aranges
+0.0%     +48  [ = ]       0    .debug_frame
+0.0% +13.5Ki  [ = ]       0    .debug_info
+0.0% +1.41Ki  [ = ]       0    .debug_line
 -66.7%      -4  [ = ]       0    [Unmapped]
  +0.0% +1.41Ki  [ = ]       0    [section .debug_line]
+0.0%    +196  [ = ]       0    .debug_loclists
+0.0%     +20  [ = ]       0    .debug_rnglists
+0.0%    +760  [ = ]       0    .debug_str
-0.8%      -2  [ = ]       0    .shstrtab
+0.0%     +18  [ = ]       0    .strtab
  +0.0%      +8  [ = ]       0    [section .strtab]
  [NEW]     +10  [ = ]       0    __orb_vtx
+0.0%     +48  [ = ]       0    .symtab
  -0.3%     -32  [ = ]       0    [section .symtab]
  [NEW]     +48  [ = ]       0    __orb_vtx
   +50%     +16  [ = ]       0    atanf
   +33%     +16  [ = ]       0    atanlo
-2.4%    -192  [ = ]       0    [Unmapped]
+0.0% +21.2Ki  +0.0%    +192    TOTAL

Updated: 2026-01-26T09:44:27

Copy link
Copy Markdown
Member

Cool work, any chance to consolidate MSP VTX (HDZero, DJI etc) as well?
We do have MSP VTX support inside the OSD driver albeit by CLI,

int MspOsd::set_channel(char *new_channel)

niklaut commented Oct 1, 2025

Copy link
Copy Markdown
Contributor Author

Cool work, any chance to consolidate MSP VTX (HDZero, DJI etc) as well?

Eventually yes, but not in this PR. I see that the VTX table config is duplicated, but that can be shared later internally without impacting any public interfaces. Otherwise the OSD driver probably also wants to listen to the vtx message and relay that information later.

niklaut force-pushed the pr-crsf-status-messages branch from 66ed0e3 to f5a0664 Compare October 2, 2025 11:11

jsm09a commented Oct 2, 2025

Copy link
Copy Markdown

Does this address issue #24903 by any chance ?

niklaut commented Oct 2, 2025 •
edited
Loading

Copy link
Copy Markdown
Contributor Author

Does this address issue #24903 by any chance ?

Edit: No, not at all. Kinda.

I've implemented support for the CRSF MSP message MSP_SET_VTX_CONFIG (89=0x59) that allows setting band/channel/frequency/power/pitmode via CRSF.
But the rest of the protocol, ie. using MSP to write the VTX table is not implemented.

niklaut force-pushed the pr-crsf-status-messages branch from f5a0664 to 97de489 Compare October 3, 2025 10:32
niklaut force-pushed the pr-crsf-status-messages branch from 2191b5a to 7da583d Compare October 31, 2025 10:41
niklaut force-pushed the pr-crsf-status-messages branch from 7da583d to 8beb5db Compare November 24, 2025 16:47
niklaut force-pushed the pr-crsf-status-messages branch from 8beb5db to 55a76a4 Compare November 25, 2025 10:16
Base automatically changed from pr-crsf-status-messages to main November 25, 2025 12:15
niklaut force-pushed the pr-vtx-support branch 4 times, most recently from bed3e86 to 3dece59 Compare December 5, 2025 12:52
niklaut force-pushed the pr-vtx-support branch 8 times, most recently from 4f67e65 to dbfbd69 Compare December 17, 2025 12:09
niklaut force-pushed the pr-vtx-support branch 7 times, most recently from c2b05e7 to 94d9957 Compare December 18, 2025 17:01
niklaut marked this pull request as ready for review January 22, 2026 10:05
Comment thread docs/en/vtx/index.md Outdated
Comment thread docs/en/vtx/index.md
Comment thread docs/en/vtx/index.md
niklaut force-pushed the pr-vtx-support branch 2 times, most recently from c5de337 to 7c907ee Compare January 23, 2026 12:34
niklaut merged commit c0c265c into main Jan 26, 2026
76 of 77 checks passed
niklaut deleted the pr-vtx-support branch January 26, 2026 10:05

Copy link
Copy Markdown
Contributor

No flaws found

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants


Back | FazBrowse Home | New Git URL