Mavlink to FrSky S.Port Passthru Converter for LRS or PX4 Pro

I am trying to compile for the TXMOD, but I run into some errors with the SoftwareSerial library:

Arduino: 1.8.10 (Windows 10), TD: 1.48, Board: “NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Legacy (new can return nullptr), All SSL ciphers (most compatible), 4MB (FS:2MB OTA:~1019KB), 2, v2 Lower Memory, Disabled, None, Only Sketch, 115200”

In file included from Z:\Kopter\TX\Mav2PT\Mav2PT_v2.54b\Mav2PT_v2.54b.ino:166:0:

config.h:557:18: error: no matching function for call to ‘SoftwareSerial::SoftwareSerial()’

SoftwareSerial frSerial;

              ^

sketch\config.h:557:18: note: candidate is:

In file included from sketch\config.h:556:0,

             from Z:\Kopter\TX\Mav2PT\Mav2PT_v2.54b\Mav2PT_v2.54b.ino:166:

C:\Users\David\Documents\Arduino\libraries\SoftwareSerial\src/SoftwareSerial.h:48:2: note: SoftwareSerial::SoftwareSerial(int, int, bool, int, int)

SoftwareSerial(int receivePin, int transmitPin, bool inverse_logic = false, int bufSize = 64, int isrBufSize = 0);

^

C:\Users\David\Documents\Arduino\libraries\SoftwareSerial\src/SoftwareSerial.h:48:2: note: candidate expects 5 arguments, 0 provided

Z:\Kopter\TX\Mav2PT\Mav2PT_v2.54b\FrSkySPortPT.ino: In function ‘void FrSkySPort_Init()’:

FrSkySPortPT:87:60: error: no matching function for call to ‘SoftwareSerial::begin(int, SoftwareSerialConfig, int8_t&, int8_t&, bool&)’

frSerial.begin(frBaud, SWSERIAL_8N1, frRx, frTx, frInvert);

                                                        ^

Z:\Kopter\TX\Mav2PT\Mav2PT_v2.54b\FrSkySPortPT.ino:87:60: note: candidates are:

In file included from sketch\config.h:556:0,

             from Z:\Kopter\TX\Mav2PT\Mav2PT_v2.54b\Mav2PT_v2.54b.ino:166:

C:\Users\David\Documents\Arduino\libraries\SoftwareSerial\src/SoftwareSerial.h:52:7: note: bool SoftwareSerial::begin(int32_t)

bool begin(int32_t baud) {

   ^

C:\Users\David\Documents\Arduino\libraries\SoftwareSerial\src/SoftwareSerial.h:52:7: note: candidate expects 1 argument, 5 provided

C:\Users\David\Documents\Arduino\libraries\SoftwareSerial\src/SoftwareSerial.h:55:7: note: bool SoftwareSerial::begin(int32_t, SoftwareSerialConfig)

bool begin(int32_t baud, SoftwareSerialConfig config);

   ^

C:\Users\David\Documents\Arduino\libraries\SoftwareSerial\src/SoftwareSerial.h:55:7: note: candidate expects 2 arguments, 5 provided

Multiple libraries were found for “Adafruit_GFX.h”
Used: C:\Users\David
Multiple libraries were found for “SoftwareSerial.h”
Used: C:\Users\David
Not used: C:\Users\David
Multiple libraries were found for “CircularBuffer.h”
Used: C:\Users\David
Multiple libraries were found for “SPI.h”
Used: C:\Users\David
Multiple libraries were found for “Wire.h”
Used: C:\Users\David
Multiple libraries were found for “Adafruit_SSD1306.h”
Used: C:\Users\David
Multiple libraries were found for “EEPROM.h”
Used: C:\Users\David
Multiple libraries were found for “ESP8266WiFi.h”
Used: C:\Users\David
Multiple libraries were found for “ESP8266WebServer.h”
Used: C:\Users\David
Multiple libraries were found for “mavlink_types.h”
Used: C:\Users\David
exit status 1
no matching function for call to ‘SoftwareSerial::SoftwareSerial()’

In the Arduino IDE, File/Preferences, tick Verbose compilation, then compile. Look carefully where the Softwareserial libraries are being found and delete them all. Then copy this library into your library folder.

I will add it into my GiHub library folder with the next update.

I still get the same error with this library. I checked with verbose compilation and the correct one is being used.

My apologies David. :frowning:

https://github.com/plerup/espsoftwareserial/

Thanks. I was able to compile the code and upload it to the TXMOD via the original OTA, but something went wrong. It appeard to flash normally, but now I cannot connect to the esp8266. The SSID correctly changed to Mav2Passthru, but my laptop seems to connect/disconnect rapidly without being able to open the web interface. My Android device wont even connect to it. Also Yaapu telemetry displays nothing. I connected the S.PORT to D6 according to this diagram:

Do you have any ideas what´s wrong?

David, I just published V2.55, with the best pins to use. As per my discussion with yak-man above, the s.port pins must be selected according to the TX-Mod’s capability. It has an ESP-F board in it. D6 is GPIO12 I believe, which is taken out and exposed on the double row of pins connecting to the radio modem. I don’t know what they do with it.

I also added a folder onto GitHub with information about our mod of the tx-mod.

If OTA is no longer working for you, you simply flash the ESP-F on the TX-Mod board using a USB/TTL converter and a couple of push buttons.

Yay! I flashed it with a TTL converter and finally everything works as expected. The RSSI is reported and the flight mode is also displayed. Thank you for your support!

YaY! Well done David.

Great project! Much thanks for all the hard work!

I may have found a bug in 2.55. It seams it’s not possible to rename the access point.

I don’t have any problems doing so in 2.54b.

Thank you for the feedback Shane. I’ll check it out. :+1:

Shane, it looks ok here. I changed to testing123. See below. Am I missing something?

image

Looks like it renames it on the display / serial out as you are showing but the access point name (that you see on your computer) stays the same.

Nope

image

Remember, it takes a while for your phone/tablet to forget the old SSID, and find the new one. Disable/re-enable the WiFi.

It might be my fault some how but I powered it up this morning and the display still shows Volocom2 while the access point is Volocom.

I’m experiencing the same thing on 3 different modules.

HiLetgo ESP-WROOM-32 ESP32

HiLetgo ESP32 OLED WiFi Kit

MELIFE 2 Pack ESP32-DevKitC

I did several flashes with 2.55 before trying 2.54b…

As soon as I reverted to 2.54b it updates the access point name in a minute or so while the name never changes on 2.55 so I would think there would be a bug.

Maybe it is specific to my config?config.h (33.4 KB)

So I have a little more to add to the story…

Once I got the WiFi access point to rename with 2.54b I found I wasn’t getting S-Port data. I flashed with 2.55 and still nothing so I dropped backed to 2.54 then the S-Port started working.

If I start with a brand new ESP32 NodeMCU Dev Board from Amazon first I flash 2.54b then I flash 2.54 and things work pretty well (occasional hangs on power up, sometimes announces flight mode randomly)

I updated my Arduino IDE from 1.8.10 to 1.8.12 then reinstalled all the libraries and things are still the same.

Here are some pics of the module I’m using.

Any ideas what i’m doing wrong?

-Shane

PS Just noticed 2.55 outputs S-Port data if I select Ground Mode.

Hi Shane, sorry I couldn’t get back to you sooner. I think your issue is related to the ESP32 variant you are selecting in the config.h file. I don’t recognise any of the boards you listed, and they are not listed in the config. You would need to do some research and try to match the board pinout with the configuration. Perhaps create a new named variant for us.

At the same time you also need to select a suitable board in the arduino ide. That choice selects an arduino.h with pin mapping for the board.

Hi,
My Project is it use RFD MOD with teensy32 as a ground side linked with an Frsky XSR receiver for ppm control and telemetry to X12S .Can anybody post the latest link to the firmware for teensy 32 and also any instructions how to flash it? Thanks.

Hi Loris

The project is here

Have a read through and then let me know where you get stuck. The TXMOD has an embedded ESP8266 module, so I’m a bit confused. Maybe you could draw a rough diagram of what you believe you need. :slightly_smiling_face:

Regards
Erc

Hi Eric,
I just need the link to the firmware for the Teensy 32 and how to upload it.
Here is my project.