{"id":737,"date":"2025-05-19T14:05:23","date_gmt":"2025-05-19T18:05:23","guid":{"rendered":"https:\/\/karjama.com\/brad\/?page_id=737"},"modified":"2025-11-29T10:40:57","modified_gmt":"2025-11-29T15:40:57","slug":"how-to-bind-betafpv-pavo-femto-with-dji-o4-to-dji-goggles-3-and-dji-fpv-remote-controller-3","status":"publish","type":"page","link":"https:\/\/karjama.com\/brad\/drones\/how-to-bind-betafpv-pavo-femto-with-dji-o4-to-dji-goggles-3-and-dji-fpv-remote-controller-3\/","title":{"rendered":"How to Bind BETAFPV Pavo Femto with DJI O4 to DJI Goggles 3 and DJI FPV Remote Controller 3"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/karjama.com\/brad\/wp-content\/uploads\/2025\/05\/Pavo_Femto_DJI_Goggles_3_Controller_3.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/karjama.com\/brad\/wp-content\/uploads\/2025\/05\/Pavo_Femto_DJI_Goggles_3_Controller_3.jpg\" alt=\"\" class=\"wp-image-742\" srcset=\"https:\/\/karjama.com\/brad\/wp-content\/uploads\/2025\/05\/Pavo_Femto_DJI_Goggles_3_Controller_3.jpg 1024w, https:\/\/karjama.com\/brad\/wp-content\/uploads\/2025\/05\/Pavo_Femto_DJI_Goggles_3_Controller_3-300x169.jpg 300w, https:\/\/karjama.com\/brad\/wp-content\/uploads\/2025\/05\/Pavo_Femto_DJI_Goggles_3_Controller_3-768x432.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">DJI Goggles 3, DJI FPV Controller 3, and Pavo Femto O4 Drone<\/figcaption><\/figure>\n\n\n\n<p>My son and I started our Remotely Piloted Aircraft System (RPAS) education by buying a DJI Avata 2 First Person View (FPV) drone, which is a technological marvel but extremely difficult to repair after a crash. When my son ventured into freestyle FPV flight (he flies, I fix), we continued to use the DJI Goggles 3 that came with the Avata 2, but we bought a DJI FPV Remote Controller 3 and transitioned to BETAFPV micro drones that came pre-built with DJI 04 video transmitter air units. Replacement frames for BETAFPV micro drones typically cost less than $15 USD and can be swapped-out in just a few minutes, which I can&#8217;t say is true of the Avata 2!<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/karjama.com\/brad\/wp-content\/uploads\/2025\/05\/Pavo_Femto_with_DJI_O4_Air_Unit.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/karjama.com\/brad\/wp-content\/uploads\/2025\/05\/Pavo_Femto_with_DJI_O4_Air_Unit.jpg\" alt=\"\" class=\"wp-image-743\" srcset=\"https:\/\/karjama.com\/brad\/wp-content\/uploads\/2025\/05\/Pavo_Femto_with_DJI_O4_Air_Unit.jpg 1024w, https:\/\/karjama.com\/brad\/wp-content\/uploads\/2025\/05\/Pavo_Femto_with_DJI_O4_Air_Unit-300x169.jpg 300w, https:\/\/karjama.com\/brad\/wp-content\/uploads\/2025\/05\/Pavo_Femto_with_DJI_O4_Air_Unit-768x432.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">BetaFlight Pavo Femto with DJI 04 Air Unit circa April 2025<\/figcaption><\/figure>\n\n\n\n<p>Our previous BETA FPV Meteor74 Pro O4 bound to our DJI controllers with minimal configuration, but this wasn&#8217;t the case with the Pavo Femto DJI O4 drone that we purchased in April, 2025. After an afternoon of fiddling with BETAFLIGHT settings, we finally managed to get the DJI Googles 3,  DJI Controller 3, and Pavo Femto to bind properly, the On Screen Diagnostics (OSD) to work the way my son likes, and for the drone to arm and fly. I thought I would share the most difficult part of the configuration process so that others can learn from our toil.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Prerequisites <\/h2>\n\n\n\n<p>There are plenty of high quality videos and tutorials elsewhere on the internet that explain how to complete the following prerequisite steps.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Configure the throttle on your DJI FPV Controller 3 to be dead-stick<\/li>\n\n\n\n<li>Bind your DJI FPV Remote Controller 3 to your DJI Googles 3<\/li>\n\n\n\n<li>Ensure that the firmware for the DJI Googles 3 and DJI FPV Controller 3 are up to date<\/li>\n\n\n\n<li>Configure your DJI Googles 3 to connect to DJI 04 Air Unit<\/li>\n\n\n\n<li>In DJI Googles 3 menu select <code>Settings --&gt; Control --&gt; Protocol<\/code> and change to <code>SBus Baud Fast<\/code><\/li>\n\n\n\n<li>Connect the Pavo Femto to a laptop using a USB C cable and the USB adaptor<\/li>\n\n\n\n<li>Use a fan to cool the Pavo Femto, otherwise it may overheat.<\/li>\n\n\n\n<li>Using a Chromium-based browser, visit <a href=\"https:\/\/app.betaflight.com\/\">BETAFLIGHT<\/a> and connect to your Pavo Femto<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Beta Flight CLI Configuration for Pavo Femto with DJI Googles 3<\/h2>\n\n\n\n<p>In BetaFlight, at the bottom of the menu on the left side, select CLI (Command Line Interface). In the textbox labelled &#8220;Write your command here. Press Tab for AutoComplete&#8221;, cut-and-paste all of the commands, below. <\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># version<br># Betaflight \/ STM32F405 (S405) 4.5.0 Dec 25 2024 \/ 08:01:31 (c155f5830) MSP API: 1.46<br># config rev: 16ac022<br><br># start the command batch<br>batch start<br><br># reset configuration to default settings<br>defaults nosave<br><br>board_name BETAFPVF405<br>manufacturer_id BEFH<br>mcu_id 002600423134501920343842<br>signature <br><br># name: Pavo Femto<br><br># feature<br>feature TELEMETRY<br>feature LED_STRIP<br>feature OSD<br><br>#################################<br># Serial configuration for BetaFPV Pavo Femto when used with<br># DJI Googles 3 and DJI FPV Controller 3.<br># <br># Your DJI Googles 3 must also have Sbus Baud Fast enabled<br>set sbus_baud_fast = on<br># By default, Pavo Femto is setup for CRSF. DJI only<br># supports SBUS<br>set serialrx_provider = SBUS<br><br>serial 20 1 115200 57600 0 115200<br>serial 0 0 115200 57600 0 115200<br>serial 2 0 115200 57600 0 115200<br>serial 3 131073 115200 57600 0 115200<br>serial 4 64 115200 57600 0 115200<br>serial 5 0 115200 57600 0 115200<br>#################################<br><br># beeper<br>beeper -GYRO_CALIBRATED<br>beeper -RX_LOST<br>beeper -RX_LOST_LANDING<br>beeper -DISARMING<br>beeper -ARMING<br>beeper -ARMING_GPS_FIX<br>beeper -BAT_CRIT_LOW<br>beeper -BAT_LOW<br>beeper -GPS_STATUS<br>beeper -RX_SET<br>beeper -ACC_CALIBRATION<br>beeper -ACC_CALIBRATION_FAIL<br>beeper -READY_BEEP<br>beeper -DISARM_REPEAT<br>beeper -ARMED<br>beeper -SYSTEM_INIT<br>beeper -ON_USB<br>beeper -BLACKBOX_ERASE<br>beeper -CRASH_FLIP<br>beeper -CAM_CONNECTION_OPEN<br>beeper -CAM_CONNECTION_CLOSE<br>beeper -RC_SMOOTHING_INIT_FAIL<br><br># beacon<br>beacon RX_LOST<br>beacon RX_SET<br><br># led<br>led 0 0,0::CO:10<br>led 1 1,0::CO:10<br><br># aux<br>aux 0 0 0 900 1600 0 0<br>aux 1 1 1 900 1300 0 0<br>aux 2 2 1 1300 1700 0 0<br>aux 3 13 2 1700 2100 0 0<br>aux 4 35 3 1650 2100 0 0<br><br># master<br>set gyro_lpf1_static_hz = 0<br>set gyro_lpf2_static_hz = 550<br>set dyn_notch_count = 0<br>set dyn_notch_q = 500<br>set gyro_lpf1_dyn_min_hz = 0<br>set acc_calibration = -7,18,-15,1<br>set baro_hardware = AUTO<br>set dshot_idle_value = 1300<br>set dshot_bidir = ON<br>set motor_pwm_protocol = DSHOT300<br>set motor_poles = 12<br>set motor_output_reordering = 2,3,0,1,4,5,6,7<br>set align_board_roll = 180<br>set vbat_min_cell_voltage = 335<br>set vbat_warning_cell_voltage = 345<br>set ibata_scale = 510<br>set ibata_offset = -300<br>set small_angle = 180<br>set pid_process_denom = 2<br>set simplified_gyro_filter_multiplier = 110<br>set osd_rssi_dbm_alarm = -100<br>set osd_vbat_pos = 2561<br>set osd_rssi_pos = 192<br>set osd_link_quality_pos = 2496<br>set osd_rssi_dbm_pos = 2464<br>set osd_rsnr_pos = 160<br>set osd_tim_2_pos = 3629<br>set osd_flymode_pos = 3598<br>set osd_throttle_pos = 3566<br>set osd_crosshairs_pos = 2361<br>set osd_current_pos = 2592<br>set osd_craft_name_pos = 2646<br>set osd_warnings_pos = 14837<br>set osd_disarmed_pos = 2103<br>set osd_esc_tmp_pos = 129<br>set osd_core_temp_pos = 225<br>set debug_mode = GYRO_SCALED<br>set craft_name = Pavo Femto<br><br>profile 0<br><br># profile 0<br>set dterm_lpf1_dyn_min_hz = 78<br>set dterm_lpf1_dyn_max_hz = 157<br>set dterm_lpf1_static_hz = 78<br>set dterm_lpf2_static_hz = 157<br>set p_pitch = 59<br>set i_pitch = 96<br>set d_pitch = 62<br>set f_pitch = 57<br>set p_roll = 51<br>set i_roll = 83<br>set d_roll = 44<br>set f_roll = 50<br>set p_yaw = 51<br>set i_yaw = 83<br>set f_yaw = 50<br>set d_min_roll = 44<br>set d_min_pitch = 62<br>set feedforward_averaging = 2_POINT<br>set feedforward_smooth_factor = 60<br>set feedforward_jitter_factor = 10<br>set simplified_master_multiplier = 105<br>set simplified_i_gain = 90<br>set simplified_d_gain = 140<br>set simplified_pi_gain = 110<br>set simplified_dmax_gain = 0<br>set simplified_feedforward_gain = 40<br>set simplified_pitch_d_gain = 125<br>set simplified_pitch_pi_gain = 110<br>set simplified_dterm_filter_multiplier = 105<br>set tpa_breakpoint = 1320<br><br>profile 1<br><br>profile 2<br><br>profile 3<br><br># restore original profile selection<br>profile 0<br><br>rateprofile 0<br><br># rateprofile 0<br>set roll_rc_rate = 5<br>set pitch_rc_rate = 5<br>set yaw_rc_rate = 5<br>set roll_expo = 45<br>set pitch_expo = 45<br>set yaw_expo = 45<br>set roll_srate = 72<br>set pitch_srate = 72<br>set yaw_srate = 54<br><br>rateprofile 1<br><br>rateprofile 2<br><br>rateprofile 3<br><br># restore original rateprofile selection<br>rateprofile 0<br><br># Don't forget to save configuration<br>save <\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">In Case You&#8217;re Interested: How does the config, above, differ from the default settings?<\/h2>\n\n\n\n<p>The Serial Rx Channel must be set to UART 5, not UART 3, to communicate with the DJI O4<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/karjama.com\/brad\/wp-content\/uploads\/2025\/05\/image-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"639\" src=\"https:\/\/karjama.com\/brad\/wp-content\/uploads\/2025\/05\/image-1-1024x639.png\" alt=\"\" class=\"wp-image-739\" srcset=\"https:\/\/karjama.com\/brad\/wp-content\/uploads\/2025\/05\/image-1-1024x639.png 1024w, https:\/\/karjama.com\/brad\/wp-content\/uploads\/2025\/05\/image-1-300x187.png 300w, https:\/\/karjama.com\/brad\/wp-content\/uploads\/2025\/05\/image-1-768x479.png 768w, https:\/\/karjama.com\/brad\/wp-content\/uploads\/2025\/05\/image-1.png 1229w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>The protocol must be set to SBUS, not the default of CRSF.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/karjama.com\/brad\/wp-content\/uploads\/2025\/05\/image-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"634\" src=\"https:\/\/karjama.com\/brad\/wp-content\/uploads\/2025\/05\/image-2-1024x634.png\" alt=\"\" class=\"wp-image-740\" srcset=\"https:\/\/karjama.com\/brad\/wp-content\/uploads\/2025\/05\/image-2-1024x634.png 1024w, https:\/\/karjama.com\/brad\/wp-content\/uploads\/2025\/05\/image-2-300x186.png 300w, https:\/\/karjama.com\/brad\/wp-content\/uploads\/2025\/05\/image-2-768x475.png 768w, https:\/\/karjama.com\/brad\/wp-content\/uploads\/2025\/05\/image-2.png 1231w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>(Optional) Enable the DISARM message to be displayed in the OSD (On Screen Diagnostics), making it easier to diagnose arming configuration issues.<br><br>The SBUS BAUD FAST must be enabled (verify that it is also enabled in your Goggles 3), which is done by executing code on the command line: <code>set sbus_baud_fast = on<\/code><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How Do I Arm My Pavo Femto for Flight Using Googles 3 and Controller 3?<\/h2>\n\n\n\n<p>After you use BETAFLIGHT to program the flight controller, simply disconnecting the USB cable may not be sufficient for arming the drone for launch. If you see &#8220;MSP&#8221; in the goggles display, the flight controller believes that it is still connected to USB and will not allow the drone to arm. This can be rectified by disconnecting the drone battery and re-connecting.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Don&#8217;t Be Dumb Like Me<\/h2>\n\n\n\n<p>If the DJI Goggles 3 prompt you to calibrate the position of the DJI Controller 3, the first step will ask you to &#8220;Center the Sticks&#8221;. I did this by <em>letting go of the sticks<\/em>. As the left throttle stick is now configured for dead stick, I made the mistake of letting it sit at the bottom of the gimbal. Later, this caused the flight controller to believe that the stick was not sufficiently lowered when I attempted to arm the drone, and I wasn&#8217;t able to take off. <strong>When the Goggles 3 ask you to calibrate your Controller 3, you need to place the left stick as close to the center of the gimbal as possible during the first step of configuration<\/strong>, and then verify in BETAFLIGHT that the throttle range smoothly swings from 1000 to 2000 without any glitches. Drone arming is not permitted unless the flight controller sees that the throttle is below 1050.<\/p>\n\n\n\n<p>On the Controller 3, flip the MSN toggle switch on the upper left of the controller to the N position. The drone should now be armed and ready to fly. Have a happy flight!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Appendix<\/h2>\n\n\n\n<p>How to convert your DJI Controller 3 to Be Dead Stick Configuration <\/p>\n\n\n\n<p>Peel back the rubber on the back of the controller and use the provided hex key to tighten the 2 bolts to add some throttle drag to the left stick. Do not over-tighten: the goal is to use the minimum amount of tension necessary such that you can push the stick all the way down, release your finger, and have it remain in position at the very bottom of its throw.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>My son and I started our Remotely Piloted Aircraft System (RPAS) education by buying a DJI Avata 2 First Person View (FPV) drone, which is a technological marvel but extremely difficult to repair after a crash. When my son ventured &hellip; <a href=\"https:\/\/karjama.com\/brad\/drones\/how-to-bind-betafpv-pavo-femto-with-dji-o4-to-dji-goggles-3-and-dji-fpv-remote-controller-3\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":742,"parent":733,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"onecolumn-page.php","meta":{"footnotes":""},"class_list":["post-737","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/karjama.com\/brad\/wp-json\/wp\/v2\/pages\/737","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/karjama.com\/brad\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/karjama.com\/brad\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/karjama.com\/brad\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/karjama.com\/brad\/wp-json\/wp\/v2\/comments?post=737"}],"version-history":[{"count":4,"href":"https:\/\/karjama.com\/brad\/wp-json\/wp\/v2\/pages\/737\/revisions"}],"predecessor-version":[{"id":767,"href":"https:\/\/karjama.com\/brad\/wp-json\/wp\/v2\/pages\/737\/revisions\/767"}],"up":[{"embeddable":true,"href":"https:\/\/karjama.com\/brad\/wp-json\/wp\/v2\/pages\/733"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/karjama.com\/brad\/wp-json\/wp\/v2\/media\/742"}],"wp:attachment":[{"href":"https:\/\/karjama.com\/brad\/wp-json\/wp\/v2\/media?parent=737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}