How to use 4ch Receiver?

Hi,
I want to use FUTABA R314SBE,4ch SBUS2 Receiver with Pixhawk1 and Rover 3.5.
This Receiver outputs 1ch as Steering, 2ch as Throttle, and 3ch as switch.

I set RC_MAP to set 1ch as Roll, 2ch as throttle, 3ch as pitch, also 1ch as Yaw.
It works well that I can do Arm/Disarm.
But, mode channel is not set. Because, mode channel is limit as 5,6,7,8ch.

So, I changed the code of RC_Channel *RC_Channels::flight_mode_channel() to return 2 to set 3ch as mode switch. And I set Fight mode 6 as Auto. It works well.

I think this method is not smart and there may be some problems.
Is there any other way to use the 4ch receiver in software?

Hi miwa-san,

I guess the mode_ch parameter cannot be set to 2?
In general I think AP requires a 6 channel transmitter so I’m actually pleasantly surprised that 4ch worked at all. I think we should support as low as 2 or 3 to rover but we haven’t looked into it much yet.

Hi Randy-san,

I am making a boat with ArduRover on request.
At the request of the client, I decided to use a cheap car transmitter.
Therefore, I chose a set of 4ch SBUS2 receivers.
And this receiver sends 14ch signals but 5-14ch values are fixed.
So, I think this limited 14ch signals can be received by rc input of pixhawk.

Here, there was a restriction.

APMrover2\config.h(72):
//////////////////////////////////////////////////////////////////////////////
// MODE
// MODE_CHANNEL
//
#ifndef MODE_CHANNEL
#define MODE_CHANNEL 8
#endif
#if (MODE_CHANNEL != 5) && (MODE_CHANNEL != 6) && (MODE_CHANNEL != 7) && (MODE_CHANNEL != 8)
#error XXX
#error XXX You must set MODE_CHANNEL to 5, 6, 7 or 8
#error XXX
#endif

So, I think that the limit code is implemented somewhere in the program.
Perhaps there is a limitation in receiving parameter data from Mission Planner.
I do not yet know which source code include them.

I hope you can tell me something.

Miwa-san,

I tried manually setting MODE_CH to “1” from the full parameter tree, rebooted the flight controller and it seemed to work. My test wasn’t great because steering and mode are tied together but I think it should work if MODE_CH = 3 as well.

Hi, Randy-san,

Oh, is that right?
I may have forgotten to reset.
I will check later.
Thank you very much.

Hi, Randy-san,

I tried.

First, I upload Rover3.5 to Pixhawk2 by MissionPlanner.
The mode channel was 8ch, and I changed it by Full-Parameter-List to 5ch.
Only I wrote to flash without reboot, 5ch acts as mode switch.

Next, I set RC_MAP_THROTTLE as 2, and RC_MAP_PITCH as 4,
and set mode_ch as 3, and wrote.
After that, 3ch did not move cursol in Flight mode setting screen.
Then I rebooted it and tried again, it did not move.

Why?

I think there is a mission planner issue where it won’t move the cursor in the flight mode screen but the modes do actually change. In my test I didn’t change the RC_MAP parameters… so the first channel was controlling both the vehicle’s roll and the flight mode… which is not good of course but that’s how I tested. Basically I don’t think the RCMAP and MODE_CH values affect each other…

In my case, I used wheel type 4ch sbus transmitter.
The channles are:
Wheel : 1ch
Trriger : 2ch
2Position switch:3ch
4ch:Sub steering. same as 1ch
So, I select 3ch as mode switch.

I tried to set mode ch to 3ch, but there are no sound of mode change.

Miwa-san,

Could you send me a parameter file? I’ll see if I can reproduce the issue…