Switching from betaflight to ardupilot

Hi there,

I wanna try switching to ardupilot so I can use features like altitude hold and gps hold. However, I’m unable to setup the quad because I cannot find the settings I want and/or the software to set it up (apm planner) isn’t working as expected. I’m trying to follow the documentation but I’m already stuck at page one: selecting the frame type. This is because I’m unable to click on the radio button in the GUI.

After some struggling I ended up using some other software called qgroundcontrol, where I actually could select my frame type.

However, now I’m unable to set my radio type ANYWHERE. I simply cannot set my radio type to sbus so I cannot get my radio to work. Where can I do this?

I’m using an omnibus F4 pro v3.

Also I cannot find a way to setup the pins where the compass and gps is connected to.
And is there a way to verify the motor order and directions? Because I can neither find this anywhere in the GUI. Or a way to remap this.

You can set all the options if you go to full parameter list. This works in APM Planner, not sure about QGroundControl. If you are on windows then Mission Planner is probably easier to use.

Usually RC input is autodetected, although you might need to fiddle with SERIALx_* depending on your board/setup

Yea I think the serials are mixed up. I’m on linux, so mission planner is not an option for me. I just see there is a console option, let’s try if I can setup the correct configuration there.

Which doesn’t work in qgroundcontrol…

I’ve set Serial 3 to RCIN now (while the title says “GPS” for some reason)


However, when trying to calibrate the RC input I get an error “Radio Control is not active or turned on”
I think normally in betaflight the rc input from sbus should be set inverted, but can’t find an option?

Gps is working now when I corrected the serial port!

Inverted requires that you set SERIALx_OPTIONS

Yes, unfortunately this is not available for serial 6. I think I simply need to make pin C8 high, but don’t see how I can configure this.

It seems like I should have flashed the non-pro version. I think the listing on banggoods was wrong and this wasn’t a PRO board because it doesn’t have a current sensor. However, I’m unable to boot into DFU mode anymore (after the ardupilot flash it doesn’t work anymore :sob:) So I’m stuck with a non working version now :frowning:

If I could add these 2 rules as params:

PC8 SBUS_INVERT_RX OUTPUT LOW
PC9 SBUS_INVERT_TX OUTPUT LOW

it should be working. How can I do that?

Actually have to do the changes in this file:

Yes, you change it in hwdef.bat and rebuild (or just flash the non-pro firmware since it contains those changes). I have had problems going into DFU mode with peripherals attached, I suggest you try it with the bare board.

Thanks. So I didn’t did anything wrong while flashing ardupilot? I did it through betaflight with arducopter_with_bl.hex . It did go into dfu mode before without any problem, so I don’t understand why it doesn’t work now. When holding the button and connect the power I only get

[ 1870.154042] usb 1-3: new full-speed USB device number 42 using xhci_hcd
[ 1885.673457] usb 1-3: device descriptor read/64, error -110
[ 1901.249541] usb 1-3: device descriptor read/64, error -110
[ 1901.479509] usb 1-3: new full-speed USB device number 43 using xhci_hcd
[ 1917.032270] usb 1-3: device descriptor read/64, error -110
[ 1932.605004] usb 1-3: device descriptor read/64, error -110
[ 1932.711688] usb usb1-port3: attempt power cycle
[ 1933.354983] usb 1-3: new full-speed USB device number 44 using xhci_hcd
[ 1938.462005] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 1943.787945] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 1943.994584] usb 1-3: device not accepting address 44, error -62
[ 1944.117902] usb 1-3: new full-speed USB device number 45 using xhci_hcd
[ 1949.121081] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 1954.454220] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 1954.660812] usb 1-3: device not accepting address 45, error -62
[ 1954.660864] usb usb1-port3: unable to enumerate USB device

– edit
Just disconnected the gps and it went into DFU mode, yay! Thanks! Now what is the correct way of flashing now? Simply through betaflight again with arducopter_with_bl.hex again?

Actually on windows there is a bug in the latest version of betaflight configurator - I found it more reliable to use dfutil - especially if you are on linux

Thanks. The upgrade worked, great! Need to reconfigure it again tho, it seems that it didn’t hold the settings in the eeprom.

And still I get “Radio Control is not active or turned on” … Is there any thing I missed to configure sbus? Note that the hardware configuration did work in betaflight.

I don’t use SBUS, did you go through https://ardupilot.org/copter/docs/common-pixhawk-and-px4-compatible-rc-transmitter-and-receiver-systems.html ?

Yes I did. But I can’t find anything useful there.
This is my config:

SBUS is connected to the sbus/ppm pin on the board. I soldered the solder pad to ‘sbus’ (should be UART6)
Connected telemetry to the ‘ppm’ pad for soft serial for frsky telemetry
Connected GPS to TX/RX UART1

The reason that I want this specific configuration is that I can have a compass, gps AND telemetry connected. Which worked fine in betaflight, so this configuration must be possible.

After compiling it with PC8 SBUS_INVERT_RX OUTPUT HIGH
the green LED is on at the board and… my receiver is working. Great. I don’t understand why there is no option in the param list for this. But great that it works.

SERIAL6_OPTIONS should allow you to do this.