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: 76
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: 73
I found some time to look into Spektrum's own documentation. The DX3 and SR315 combination is a radio system designed for surface models. The DX3 is a DSMR transmitter for surface models, while the SR315 is a DSMR/DSM2 receiver for surface models. This explains why the DX3 works properly with the SR315. However, the serial receivers you tested belong to the Spektrum Air series (for aircraft models):
SPM4648 = DSM2/DSMX Air serial receiver, SRXL
SPM4650 = DSMX/DSM2 Air serial receiver, SRXL2
SPM4651T = DSMX/DSM2 Air serial receiver, SRXL2 + telemetry
Spektrum clearly states that Air and Surface series transmitters and receivers are not interchangeable because their RF protocols use different encoding. Therefore, I do not believe the alarm signal on the DX3 when using the SPM4650/SPM4651T is caused by the AVC system. In reality, two completely separate protocol connections are at play here:
DX3 -- DSMR/Surface RF link --> receiver

receiver -- SRXL/SRXL2 serial interface --> ArduPilot
SRXL2 might be the exact protocol ArduPilot needs for the wired connection, but the receiver must still be compatible with the transmitter at the radio communication level. This also explains the odd result where the steering, throttle, and AUX control signals all appeared as Channel 3. I wouldn't consider this proof that the DX3/SPM4651T combination is working correctly. The SPM4648 model likely won't solve the issue with the DX3 either; the Spektrum manual clearly states that the SPM4648 is compatible with DSM2/DSMX aircraft transmitters. Also, be careful with this receiver, as it is designed to operate exclusively at 3.3V. The "Air" series transmitter you are expecting to receive might prove more useful for testing. Try binding the DSM2/DSMX Air transmitter to the SPM4650 or SPM4651T receiver, then re-check the radio calibration in Mission Planner. If the steering, throttle, and other signals finally show up as separate channels, we will have a pretty convincing explanation for everything that was happening with the DX3.
 
I will probably trade that DX3 Transmitter for something. 3 Channels was not enough.

I got my Spektrum MLP6DSM from amazon and it works good. So now I have 6 channels working in radio calibration. Working on the switches for arming and flight mode.
So basically for $100 you can have remote control of robots.

$60 RC controller
$40 Serial receiver
$ 50 CoreSolo F405Wing Flight Controller
$30 GPSCompass

Radio5 = 3 Position Switch
1101,1499,1896
Auto/Manual/

Radio6 is momentary contact switch I want to use for ARM. It seems pretty staraight-forward. Two different ARM modes to try.

I have declared my RC Boat obsolete vintage POS after watching some videos. Looking at Traxxas Spartan 36" or Maybe Villian 24". They seem like thicker plastic than what I have.
Less toy and more sport.
I did consider better old school model. Japanese made real RC boats in the '80s
Nikko made some nice RC Boats. Less racing and more pleasure craft. I like that.
Brutal view on why it is a stupid idea.
Get Traxxas instead.
 
I bought a Traxxas Rustler 2WD Buggy. Ready to Run including batteries and charger.
I am mounting an F405-Wing inside along with Spektrum Serial Receiver and/or RadioMaster RP3.
The chassis has a battery bay for standard RC batteries.
I decided to use 18650's and made a 16 cell block for mounting in the buggy. Extended run.
Bought spring kits for the battery box bottoms and will make bus bar for the tops..

The buggy will be my first autonomous project. Several boats in the dock awaiting upgrades.
 

Attachments

  • battery-box2.jpg
    battery-box2.jpg
    1.6 MB · Views: 75
  • battery-box1.jpg
    battery-box1.jpg
    908 KB · Views: 65
I have my Traxxas Buggy built out. SoloGood F405 with GPS/Compass and Spektrum SPM4651T
Steering Working and Throttle with ArduPilot. No reverse but I can figure that out.
Next up tidy the build and go outdoors with it. Mission Planner.
 

Attachments

  • controller.jpg
    controller.jpg
    1 MB · Views: 78
  • buggy3.jpg
    buggy3.jpg
    1.2 MB · Views: 54
  • buggy2.jpg
    buggy2.jpg
    1 MB · Views: 55
Well I almost shed a tear. I have finished an autonomous vehicle.
I still need to tweak radio calibration but it works.
My Robot has a pulse.
Made a bracket for 3-Cell Holder 18650 and a Taller ESC bracket for Main Batteries.
Currently using Traxxas NiMH battery pack for ESC.
Thanks resora it has been a bumpy ride. I don't think it would be possible without your help.

I bought and wired a RP3v2 Radiomaster and made a bracket for it.
I have yet to setup T8 and T12 controllers. ELRS next chapter. Spektrum now.

I bought a wireless module for testing MAVLink2 over Wifi connection.
I am interested in 900MHz Telemetry too.

Boats waiting in the wings.
 

Attachments

  • buggy1.jpg
    buggy1.jpg
    1.2 MB · Views: 46
  • buggy4.jpg
    buggy4.jpg
    1.1 MB · Views: 50
  • buggy5.jpg
    buggy5.jpg
    1,015.3 KB · Views: 47
Spektrum clearly states that Air and Surface series transmitters and receivers are not interchangeable because their RF protocols use different encoding. Therefore, I do not believe the alarm signal on the DX3 when using the SPM4650/SPM4651T is caused by the AVC system. In reality, two completely separate protocol connections are at play here:
It took me a while to comprehend this. I assumed DSMX was for everything.
I sat down with all my Spektrum receivers and transmitters and got a handle on everything.
Everything you say is correct,
It seems the DX3 is different in that it allows binding Surface Controller DSMR with an Air Receiver DSMX.

I bought a RadioMaster MT12 4-in-1 transmitter. After upgrading I have DSMX, DSM2 and DSMR profiles.
That allowed me to work with the SPM4650 and SPM4651.

Grew bored with Spektrum and moved on to ELRS.
I thought the MT12 with 4-in-1 would allow ELRS but it does not.
So I bought another MT12 for ELRS. Costly but the backback for ELRS are half the price of new radio. Plus bulky.
That made an easy choice for buying another MT12. It is a great surface radio.

In the future I may add the Nomad Backpack for 915 and 2.4ghz. for RM DBR4 module on drone..

I now have LORA Radio working on FreeBSD via MicoAir Module.

Code:
Oct 28 14:31:22 E6420 kernel: ugen1.4: <Silicon Labs CP2102 USB to UART Bridge Controller> at usbus1
Oct 28 14:31:22 E6420 kernel: uslcom0 on uhub3
Oct 28 14:31:22 E6420 kernel: uslcom0: <Silicon Labs CP2102 USB to UART Bridge Controller, class 0/0, rev 1.10/1.00, addr 4> on usbus1
Oct 28 14:31:37 E6420 kernel: ugen1.4: <Silicon Labs CP2102 USB to UART Bridge Controller> at usbus1 (disconnected)

Uses ttyU0 for Mavlink2 in MissionPlanner

I also got a DroneLink module from Amazon for 20 bucks. It has a Wireless Access Point for setup.
Getting a DHCP address from my drones WAP is cool....

 
Phishfry
That’s great! Could you describe the tests involving ArduPilot running on FreeBSD—how it’s controlled, and whether it operates without any issues?
 
The MicoAir Lora modules required no real setup on FreeBSD.
Mission Planner it shows up as ttyU0 like a connected UART would.

The LORA connection is transparent. Linking is achieved by blinking green LED.
Plug in drone. <Lora module connected via CRSF UART6.
<(4 wire 1.25 JST-SH converted from 4 wire JST-GH)>
Green light blinks on transceiver.
Plug in USB module to FreeBSD Xorg ground station with MissionPlanner.
Green light blinks and then both transceivers go solid Green LED.
Auto binding.
Then I use like a connected USB UART. Look in /dev/ for new device.

I was worried about USB UART working because I had trouble with the CP2102 in the past.
At $60USD it is 3X expensive as the ESP32 Wifi Module but more range. I have not testing that yet.
2.4 Wifi Telemetry speed versus Lora speed and range tests.

I took the plunge on a bigger RC Boat bare hull. M41 in some flashy paint scheme with hatch.
I want to use the FlipSky Controller on this build. It might be overkill but I want ESC control.
How did they test out for you? Some software I need to build correct?
Programmable ESC is what I need for my first Brushless Build.

Can I use SDR for VTX receiving? Anything out there with regards to SDR software?
 
Robots also interest me. In particular, home made humanoid robots and robots designed to do household and service job tasks that don't depend on a network connection or send all data they're gathering back to some third party server I don't control.

I've been following this guy for years who owns a maid cafe in Japan. He has a channel called the MaSiRoProject on youtube where he posts regular updates about his progress on building robots to work in his cafe and shows off how they work. They are all self contained robots that do not require a network connection/server to function. They can do basic tasks like wait tables, "walk" with a person (they're really on wheels) when you take them by the hand, they can track people/objects thanks to camera sensors (among others) and they are designed to look humanoid but avoid the uncanny valley effect a lot of humanoid robots have due to being designed to look like anime/manga characters. Currently, all three he's built roll around on wheels and have all the computer hardware stored on a shelf under them. But the chassis to support holding all that stuff is well hidden because he dresses them up in long dresses.

He's currently got three working full time in his cafe and is in the process of building a fourth. He regularly takes them to trade shows and other places to promote his cafe business. They're very popular and watching him progress over the past decade or so has been really fun to watch. I like the guy because in addition to robots we also share an interest clock making. He has many mechanical clocks in his cafe decorating the walls of his business.

Here is a video showing off the first robot he built working inside of the cafe. It shows it greeting customers, responding to a customer ringing a bell for service, taking orders through an electronic tablet/PoS system and serving the customer using a tray. As well as some other basic functions like it being able to track a customer and being programmed to walk with whomever takes it by the hand.

View: https://www.youtube.com/watch?v=0LNthFGX4aM


Here is a recent upload where he's giving a presentation about the three robots he's built to a class of middle school students.

View: https://www.youtube.com/watch?v=cgdZyrxxAu0


If you go through the videos on the channel there are several more where he goes into detail about how they work. They're all in Japanese of course but the auto-translation given through youtube's auto dubbing system is probably decent enough to get a basic understanding.

All three are built with off the shelf parts and run on free/open source software. He's made the most progress over the past 5-10 years that I've seen out of everyone that's been attempting to build similar robots (there are a lot of people interested in having a "waifu bot" to do basic household chores like serving guests, fetching food/drinks, making tea, washing dishes/clothes and for general companionship).

If you get a chance to visit his cafe I highly recommend it. The coffee is really good and he's always eager to talk to fellow robotics enthusiasts.
 
Як вони показали себе у вас? Чи потрібно для цього встановлювати якесь спеціальне програмне забезпечення?
Для моєї першої збірки з безколекторним двигуном мені потрібен саме програмований регулятор швидкості (ESC).
There is a program called ESC Configurator: https://esc-configurator.com/

It all depends on which electronic speed controller (ESC) you are going to use.
Can I use SDR for VTX receiving? Anything out there with regards to SDR software?
Yes, I’ve intercepted video using SDRangel—analog video, though. I like this application because it has a lot of plugins.
 

Attachments

  • sdrangel.png
    sdrangel.png
    31.6 KB · Views: 17
I found the perfect power backup splitter for XT60 power systems.

I was afraid of losing my autonomous boats to outgoing tides if the battery conks out.
So I wanted a backup battery for RTL.
I have XT60 adapters for 2S and 2P battery packs and that makes the ATS above really ideal for me.
The 2S 7.4v battery type has been my starting baseline. Four of those. Ovonic 6500mah.

I am finally getting further down the Ardupilot checklist. No planned missions yet. Still debugging.
Trying to fine tune my controller the RadioMaster MT12 ELRS version.
ELRS triple 'on-off' power cycle to bind is inconvenient on some of my machines..
RM Model Match I am trying to learn and setup.. Using different models bindings from one controller.

Pondering sensored brushless Motors and ESC versus bare.
I started my M41 build sensor-less with Rocket-RC 3670 motor 1200kv with cooling jacket.
Quite alot of torque for a 5mm output shaft running off batteries.
I would like motor stats but I figured KISS on first build.

Perhaps the Motor I use for programmable ESC will use sensors. I bought some Flipsky ESC to checkout.
 
Back
Top