The Robot Thread

I knew I had read this but could not find it again. Right in the documentation
You can use any RC transmitter/receiver system, provided it has a minimum of four channels.
That is my problem. My Surface Transmitter DX2.0 only has 2 channels.
Using wrong hardware.

ELRS is cheap.
The Transmitter, built into the RC controller is the same price.
Radiomaster 8T would probably do just fine for ELRS rover. Gamepad sytle for $50 new just add receiver for $25. RB3

So advantages of ELRS over DSMx Serial Adapter = Range, Channels and probably battery life.

In the same vein you have to consider "Crossfire" systems. More and more features.. Some I really don't need.

I have a HobbyTown store in the area and I almost went and bought a SPM4651T from. In stock.
But when I looked at controllers the SLT3 Spektrum Car Style controller has its own protocol. SLT. There is an upgrade to DSMR.
I might go browse actual product.
 
Last edited:
I don't think the two-channel transmitter itself is what caused the "Bad channel 1 input" error. For Rover, the default mapping is basically:
Code:
CH1 = Steering
CH3 = Throttle
CH8 = Mode switch
MODE_CH can be changed, so you do not actually need a physical channel 8 just to get RC input working. I think the bigger problem was the type of receiver/output. The SR3000 has normal individual servo outputs for Steering, Throttle and AUX. That is different from feeding a serial RC protocol into an ArduPilot UART. The BAT/TEL connector also should not automatically be assumed to be a DSM serial RC output just because it says TEL or DATA.
The SPM4650 you found looks much more appropriate because it is explicitly an SRXL2 serial receiver. ArduPilot's SRXL2 documentation says to connect it to a UART like this:
Code:
GND -> GND
VCC -> 5V
Signal -> UART TX
Then configure that UART, for example:
Code:
SERIAL1_PROTOCOL = 23
SERIAL1_OPTIONS = 4
Option 4 enables half-duplex operation on the TX pin. SRXL2 is a single-wire half-duplex protocol, which is why the signal goes to TX rather than the usual RX pin. I would leave RC_PROTOCOLS on auto-detection initially instead of forcing only DSM while testing SRXL2.
Once the SPM4650 is connected, I would first check Mission Planner Status and watch ch1in, ch2in, ch3in etc. If those values move when you move the transmitter controls, then the receiver-to-ArduPilot link is working. Only after that would I worry about RCMAP.
mceclip0.png


So I think you were right in your latest post: the missing piece was probably a serial receiver/interface rather than simply needing more RC channels.
Also, RC_OPTIONS=48 should still be useful because it enables logging of the raw serial RC input bytes along with your existing option. That could be useful if SRXL2 still does not decode. Spektrum explicitly warns that Surface and Air are incompatible, even within their ecosystem
 
The BAT/TEL connector also should not automatically be assumed to be a DSM serial RC output just because it says TEL or DATA.
Yes that is my fault. I assumed wrong. Wasted much time on a bad assumption.
Truthfully I don't see much literature about it.
Luckily I found a SpeedyBee F405 diagram with the SPM4648 module and I found the part number from label name.
Then I found the other serial boards:
SPM4648
SPM4649T
SPM4650
SRM4651T

They also have a serial board for satellites that maybe compatible. Serial Extender as well.

So I went to HobbyTown and bought Spektrum DX3 Transmitter For Surface Car and SPM4651T serial receiver. This one has telemetry that I don't need. But was in stock.

Gratefully I now have working RC Control via RC Channel 3 in Ardupilot. I need to work out controls and channels and adjust.
I was just so happy to see Green Bars from UART1 on the Flight Controller. I did have to make a custom cable for it. Like all things.
Hooray for another item on the checklist I can checkoff I hope.
Maybe last step before wheels on ground.

Upgrading Spektrum Transmitter DX2.0 to DX3 was not a big stepup. In reality it is Gen2 DX3 and very plain.
No LED Screen but plenty of LEDs. DX3 is included as a basic controller with many RC models at the store.

It only has 3 Channels so I hope it does work for my Rover.
 
CoreWing has some really good instructions for Flight Controllers

I am having trouble getting skid steering working. Part of the problem is RC controller. I am only getting 'Channel 3' during Radio Calibration.
With 3 Channels on the transmitter it does not meet hardware requirements.
I am also unsure how to calibrate skid steering with RC Transmitter. Throttle is steering.

So I fell back to 2018 project. Autonomous BOAT. I had it roughed out but ran into the software problem.

It will be a better way to learn flight controllers for me. Steering and Throttle separate. Then move back to skid steering.

It is a continuation of learning from 2018 so I don't feel bad switching Rover to Boat. Firmware wise nothing changes. BOAT uses ROVER firmware.

It has been suggested that "Boaty McBoatface" would make a good Vessel name. Maybe I shorten it to Boaty

Picture of boat before upgrade. Very nice vacuum forming. Motor had a gearbox. The Nicad battery 7.2V is still holding a charge.
BSA Bob Shattan Black Phantom 28" circa 1990
 

Attachments

  • boat.jpg
    boat.jpg
    484.6 KB · Views: 8
Switching to the boat actually sounds like a good way to simplify the learning process. One thing still bothers me about the Rover setup, though. I don't think the DX3 having only three channels is the immediate problem.
If Radio Calibration only shows movement on Channel 3, ArduPilot is effectively receiving only one usable control input from your transmitter. For skid steering you need two independent inputs: steering and throttle. ArduPilot then mixes those two inputs into the left and right motor outputs.
So before blaming the three-channel limit, I would check what the SPM4651T is actually sending when you operate:

Steering wheel
Throttle trigger
Channel 3 button/switch

If all three controls are working through SRXL2, you should see at least two different RC input channels moving in Mission Planner. If only CH3 moves, something is still wrong before the skid-steering mixer — transmitter configuration, binding/channel mapping, or the way ArduPilot is interpreting the SRXL2 channels. The boat should make this much easier to diagnose. Start with the simplest possible arrangement:

Steering control -> rudder servo
Throttle control -> motor ESC

No skid-steering mixing is needed. Once you can move the rudder and throttle independently and see both corresponding RC inputs in Mission Planner, you will know the complete Spektrum -> SRXL2 -> UART -> ArduPilot input chain is correct. Then going back to skid steering should mostly be an output/mixer configuration problem rather than an RC receiver problem. And yes, using Rover firmware for the boat means the work is not wasted at all. It is probably an easier test platform for learning the ArduPilot input/output chain.
 
If all three controls are working through SRXL2, you should see at least two different RC input channels moving in Mission Planner.
All three inputs are coming over Channel 3 in Radio Calibration.
Steering, Throttle and Aux switch

I have moved on to the SPM4650. Essentially the same without some SMART features.
 
I have multi-channel DSM2 controllers arriving over the next week. Almost bit the bullet on RadioMaster MT8/ELRS but I want to explore DSM2/DSMX.

I decided to get something newer with 6 channels for RC Transmitter.

The ParkZone controller I bought is only 4 channels so I want minimum 6. Same with DX4e. Only 4 channels.
2 Channels needed for ARM switch and Mode.
 
I am still trying to figure out how to use all the UARTS of F405.

if I understand concepts correctly with multiple VTX units I could broadcast separate video streams over allowed channels?

The JHEMCU-F405-WING has two connectors for CAMERA and uses GPIO for relay to switch between the two sources. So VTX can only see one camera at a time.
 
Yes, with two completely independent camera/VTX chains you could have two separate video transmissions on two different RF channels. But the UARTs themselves do not carry the analog video. Think of it as two separate paths:

Camera -> Video signal -> VTX -> RF
Flight Controller UART -> VTX control

The UART can be used for things such as SmartAudio/Tramp VTX control, but the actual camera video travels over the video input/output connections. The two CAMERA inputs on the JHEMCU-F405-WING are different. As I understand that design, the flight controller uses a GPIO-controlled video switch:

Camera 1 -> Video Switch -> one VTX
Video Switch Camera 2 -----^

So both cameras are connected, but only one is selected and sent to the VTX at a time. If you wanted two simultaneous video feeds, it would instead need to look something like:

Camera 1 -> VTX 1 -> RF channel A
Camera 2 -> VTX 2 -> RF channel B

Then two receivers/VRX channels could receive them independently, assuming suitable frequency separation and legal operation. Also, I am still suspicious of the RC issue. A three-channel transmitter should still provide three independent channels. If steering, throttle and AUX all appear as RC Channel 3 in Radio Calibration, simply moving to a six-channel transmitter may not fix the underlying mapping/decoding problem. I would check that before buying too much more hardware.
 
I also see some VTX operate without flight controller.

I guess the problem there is display. No On Screen Display if you don't run through the flight controller.

And with the HD VTX you also can attach camera to module.
Couldn't you stack a few of these modules? No OSD/VTX but UARTs used.
 
There is a problem between my RC Controller DX3 and the Serial Receivers. On the controller the SmartBattery Lights all flash and alarm tones upon startup.

If I pair it with Receiver that came with the kit, SR315, it works fine. RC Controller has no flashing lights or alarms.

I just got an older module to test.
SPM4648 - FPV Racing Serial Receiver.
This was the module that I saw on SpeedyBee F405Wing diagram.
Drawbacks= 3.3V
Protocol= SRXL v1

I thought perhaps AVC is the problem with SPM4651T but it seems SPM4650 acts the same. I don't think it supports AVC...
Why does it go into alarm but not with SR315 is confusing...
I could not seem to get the "Two Taps" of button then Long tap to disable AVC on SPM4651T
 

Attachments

  • spektrum-dx3-strange-melody.jpg
    spektrum-dx3-strange-melody.jpg
    879.6 KB · Views: 7
Back
Top