This page describe steps absolutly required to proceed before first flight.
Once you download and install Betaflight configurator you need to change few options first. Open configurator and go to Options tab, and then
- Disable
Advanced CLI AutoComplete - Enable
Show all serial devices - Disable
Auto-Connect
Then select your device from list and click connect.
Note
Not all functions displayed in configurator are avalable in firmware. The rule of thumb is if you cannot change specific option in Betaflight Configurator, that means it is not supported. It usually rolls back to previous value after save.
Note
Leaving some tabs, especially CLI requires you to click "Disconnect" button twice, and then click "Connect" again.
Go to the CLI tab and type get pin. This command will show what pins are associated to specified functions. If you wiring is diferrent, you can make some adjustments here. For more details, see Pin Functions CLI Reference
Go to Setup tab, make sure that your model is in horizontal steady state position. Then click "Calibrate Accelerometer" button and wait two seconds.
Caution
Ensure that model in preview moves exactly in the same way as yours. If it is not the case, go to the Configuration tab, and configure Board orientation or Sensor Alignment
In Configuration tab set Pid loop frequency. Recomended values are 1kHz to 2kHz. Keep eye on CPU Load displayed in bottom, it shoudn't exceed 50%.
If you want to use Serial based receiver (SBUS,IBUS,CRSF), you need to allocate UART port for it. You can do it in Ports tab, by ticking switch in Serial Rx column.
Then go to the Receiver tab, and select Receiver mode and Serial Receiver Provider.
To use ESP-NOW receiver, choose "SPI Rx (e.g. built-in Rx)" receiver mode in Receiver tab. You need compatible transmitter module. Read more about ESP-FC Wireless Functions
ESP-FC supports u-blox M8, M9, F9, and M10 GPS modules via UART. M10 modules provide enhanced accuracy with dual-band L1+L5 GNSS support.
- Connect GPS TX to ESP32 RX pin (e.g., UART2 RX)
- Connect GPS RX to ESP32 TX pin (e.g., UART2 TX)
- Connect VCC (3.3V or 5V depending on module) and GND
In the Configuration tab, under Other Features, enable GPS or use CLI:
set feature_gps 1
save
In the Ports tab, enable GPS on the UART connected to your GPS module. Set baud rate to 115200 (recommended for M10) or 230400 for 25Hz update rate.
Alternatively, via CLI:
# For UART2 (common GPS port)
serial 1 1024 115200 115200 0 115200
save
Go to CLI tab and configure basic GPS settings:
# Minimum satellites required for valid fix
set gps_min_sats 8
# Set home only once (0 = update home on each arm)
set gps_set_home_once 1
save
M10 modules support multiple GNSS constellations and dual-band (L1+L5) for better accuracy. Configure via CLI:
# Mode 0: Auto (use individual constellation flags) - DEFAULT
set gps_gnss_mode 0
# Mode 1: GPS only (maximum compatibility, lowest power)
set gps_gnss_mode 1
# Mode 2: GPS + GLONASS (good for high latitudes)
set gps_gnss_mode 2
# Mode 3: GPS + Galileo (best accuracy in Europe)
set gps_gnss_mode 3
# Mode 4: GPS + BeiDou (optimized for Asia-Pacific)
set gps_gnss_mode 4
# Mode 5: All constellations (maximum satellites, best accuracy)
set gps_gnss_mode 5
save
reboot
# Enable L1+L5 dual-band on M10 (better multipath rejection)
set gps_enable_dual_band 1
# Disable dual-band (force L1 only for compatibility)
set gps_enable_dual_band 0
save
reboot
Note
M8/M9 modules always use L1 single-band. The gps_enable_dual_band setting only affects M10 modules.
When gps_gnss_mode 0, you can enable/disable each constellation individually:
set gps_enable_gps 1 # GPS (USA)
set gps_enable_glonass 1 # GLONASS (Russia)
set gps_enable_galileo 1 # Galileo (EU)
set gps_enable_beidou 1 # BeiDou (China)
set gps_enable_qzss 1 # QZSS (Japan/Asia-Pacific)
set gps_enable_sbas 1 # SBAS/WAAS/EGNOS augmentation
save
reboot
set gps_gnss_mode 5 # All constellations
set gps_enable_dual_band 1 # L1+L5 dual-band
save
reboot
Result: GPS+GLONASS+Galileo+BeiDou+QZSS+SBAS with L1+L5
Power: High
set gps_gnss_mode 3 # GPS + Galileo
set gps_enable_dual_band 1 # L1+L5 for multipath rejection
save
reboot
Result: GPS+Galileo with L1+L5
Power: Medium
set gps_gnss_mode 1 # GPS only
set gps_enable_dual_band 0 # L1 only
save
reboot
Result: GPS only, L1 band
Power: Low
set gps_gnss_mode 3 # GPS + Galileo
set gps_enable_dual_band 1 # L5 rejects building reflections
save
reboot
Result: GPS+Galileo with L1+L5
Power: Medium
set gps_gnss_mode 0 # Custom mode
set gps_enable_gps 1
set gps_enable_galileo 1
set gps_enable_beidou 1 # Strong in Asia
set gps_enable_qzss 1 # Regional augmentation
set gps_enable_glonass 0 # Disable to save power
set gps_enable_dual_band 1
save
reboot
Result: GPS+Galileo+BeiDou+QZSS with L1+L5
Power: Medium
After rebooting, check GPS status in CLI:
# View current GPS configuration
get gps
# Check GPS status (in another CLI session or via status command)
status
Look for initialization messages in the boot log:
GPS DET 115200 # Baud rate detected
GPS VER: 000A0000 # M10 module detected
GPS GNSS L1+L5 [GPS GLO GAL BDS QZSS SBAS] # Configuration applied
GPS RATE 40/1 # 25Hz update rate (M10 at 230400 baud)
GPS UBX # UBX protocol enabled
GPS NAV5 # Navigation mode: Airborne
- Check antenna has clear sky view (away from carbon fiber, metal)
- Enable more constellations:
set gps_gnss_mode 5 - Wait 2-3 minutes for initial fix (TTFF - Time To First Fix)
- Verify baud rate matches GPS module (115200 or 230400)
- Check wiring (TX/RX crossed between GPS and FC)
- Verify serial port configuration in
Portstab - Try different baud rates (9600, 38400, 57600, 115200, 230400)
- Check boot logs for
GPS ERRORorGPS DETmessages
- Move to open area with clear sky view
- Enable all constellations:
set gps_gnss_mode 5 - Check antenna connection
- Wait longer for satellites to be acquired
- Verify module is actually M10 (check boot log:
GPS VER: 000A0000) - Ensure
gps_enable_dual_band 1is set - Check log for
GPS GNSS L1+L5(not justL1) - Some M10 modules need firmware update for L5 support
- Enable more constellations:
set gps_gnss_mode 5 - Ensure SBAS is enabled:
set gps_enable_sbas 1 - Check for clear sky view (no buildings, trees blocking)
- First fix always takes longer (cold start), subsequent fixes are faster
In Motors tab you must configure
You can select mixer type here, this configuration depends on type of aircraft you are configuring.
Important! If you build multirotor, you must ensure that
- Specified motor number is connected to specified output and placed in specified position in your aircraft according to gyro orientation, presented on a picture.
- Specified motor is rotating in correct direction according to image.
Caution
If these conditions aren't met, your quad will go crazy on the first start and may cause damage or even injury.
To verify that you can enable test mode and spin each motor selectively. To do that,
- remove all propellers,
- connect batery,
- click "I understand the risk...",
- move specified slider to spin motor.
If you are using any analog protocol (PWM, OneShot, Multishot), you also need to calibrate your ESCs here. To do that
- click "I understand the risk...",
- move master sliders to highest value
- connect battery
- when escs plays calibration beeps, move master slider down to lowest value
- escs should play confirmation beeps
Note
Only Quad X supported at the moment. Motor direction wizard is not supported, you must configure your ESC separately. The easiest way to change direction is swapping motor wires.
This option informs FC that your motors rotating in reverse order. This option desn't reverse motor direction. It has to be configured with ESC configurator or by swapping motor wires.
You can select here protocol according to that you ESC can handle. For multirotor it is recommended to use DSHOT150 or DSHOT300. Older ESCs may not support digital protocols, in this case it is recommended to use OneShot125 at least. Brushed protocol is for driving brushed motors through FET drivers.
It is not recomended to use PWM for multirotors.
This option allows to separate PWM frequency. If your pid loop is set to 1k, but ESC can accept maximum 333Hz. PWM is limitted to 480Hz.
Flight modes can be configured in Modes tab
It is required to enable this mode to be able to fly. Armed quad cause that motors are spinning (unless Motor stop option is enabled).
By default ACRO mode is engaged if none of flying mode is active. This mode enables self-leveling. In this case you control titlt angle of multirotor instead of rotationg rate. It affects only Roll and Pitch axes. Yaw axis behave the same way as in Acro mode.
Increases the range of control at extreme throttle positions. Recommended to enable, can be controlled by the same RC channel as Arm to get permanent behaviour. Activates, when throttle achive about 40% remains active until disarmed.
Acitvates buzzer, for example to find lost model in high grass.
Triggers Failsafe procedure.
It is possible to collect flight data in two ways. Via serial port or with onboard flash
Onboard flash allows to store about 2.5MB of data. This is equivalent of 2-3 minutes of flight. It should be enough for tuning.
If you need more, choose Serial Port and serial device like D-ronin OpenLager or OpenLog. To configure it
- In
Portsselect uart to generate stream and in Peripherals column selectBlackbox loggingon free port - Then in
Blackboxtab selectSerial PortorOnboard flashaslogging device
Note
Port speed from column Configuration/MSP is used, and the same speed must be used in logging device, (this might be subject of change in a future versions).
Recommended settings
- To log with 1k rate, you need device that is capable to receive data with 500kbps.
- To log with 2k rate, you need 1Mbps
OpenLager can handle it easily. If you plan to use OpenLog, you might need to flash blackbox-firmware to be able to handle more than 115.2kbps. Either 250kbps and 500kbps works well with modern SD cards up to 32GB size.
In Other features you can enable only Dynamic Filter, GPS, and SoftSerial
AirMode is only available in modes tab. If you want to enable it permanently, use the same control channel as ARM.
Only "Drop" Stage 2 procedule is possible
GPS configuration is currently CLI-only. Use the commands documented in the GPS Setup section above. The GPS tab in Betaflight Configurator shows GPS status but cannot modify GNSS constellation settings.
Presets aren't supported, do not try to apply any of them.
- There is only one pid profile and one rate profile
- Feed-forward transition has no effect
- Iterm-rotation has no effect
- Dynamic damping has no effect
- Throttle boost has no effect
- Miscellaneous settings has no effect
- Dynamic Notch works from 1k pid loop, but is not displayed in configurator if this speed is configured, to reconfigure switch pid loop to 2k.
Besides that most of Betaflight principles can be applied here according to PID and Filter tuning. But keep in mind, very aggresive tunnig tips aren't recommended to apply and might lead to diferrent results.
- Not all protocols are implemented, currently only PPM, CRSF, SBUS, IBUS
- Only CRSF telemetry and rssi_adc
- RC deadband applies to RPY, no separate Yaw deadband
Add range works only, no add link
Not implemented, for replacement you can use pid scaler CLI
Not Implemented, for replacemnt you can use output cli to change output protocol and rate.
No 3D features, only Quad-X Mixer
Not yet implemented, work in progess
Not implemented, but MW_OSD should works via serial port and MSP protocol.


