FrSky S.Port (Smart.Port) data transfer with Beetle ATMEGA23u4 via softwareserial

Go To Last Post
7 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0
I have developed a telemetry module for FrSky Smart.Port that works
without any problems. As shown in the attachment I use an ATMEGA Beetle
for the telemetry data transmission which is connected to the port D11
and the S.Port on the RX8R.

The serial data transfer on the Beetle is done with the SoftwareSerial
library with signal inversion.

Operating voltage of the ATMEGA32U4 is 5V!

What I cannot explain is why the TTL levels of the two communication
partners are so different. The TTL level from the receiver has a little
over 3V peak and the Beetle is also coming in at 1.67V.

I have no clue why that is so!

What can I do about it, for example, use a transceiver ...?

 

Die Video (here Graupner HoTT protocol is implemented) show the module in operation

https://www.youtube.com/watch?v=MVdIpeg13Ac&t=231s

 

Video

 

 

Attachment(s): 

Last Edited: Sun. Feb 16, 2020 - 03:11 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Welcome to the Forum.

 

More information is needed.

 

A quick web search didn't turn up a TECHNICAL document on the RX8R Pro.

 

If you have a link with a schematic and  a technical description of the S-Bus then please post it.

 

Is the Rx8R Pro only outputting info on the S-Bus, or is the S-Bus bi-directional?

(Does the Mega transmit data to the RX8R or only receive data from it, or both?)

 

What is the voltage level on the RX8R S-Bus pin with incoming data but without the Mega attached to it?

 

What is the voltage on the Mega's 5V pin when the RX8R Pro it attached to the Mega?

 

Often when one sees a low voltage like you displayed it is because BOTH devices are trying to control the signal at the same time, (both are driving the bus),

one is trying to drive it high, the other is trying to drive it low at the same time.

 

JC

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

see enclosed the schematic of the S.Port. S.Port communicate with my ATMEGA32u4 bidiectional (send and receive).

The RX8R operate in 3.3V. The S.Port is directly connected to the D11 Port of ATMEGA32u4.

Attachment(s): 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

SoftwareSerial
 

So you need to make sure that the Mega's RxData pin is correctly configured as an Input pin.

You also need to make sure that when you wish to receive data from the Pro that the OE signal is set so as to disable the Tx output, (and essentially disconnect it from the smartPort input).

 

JC  

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi  DocJC ,

You're absolutely right and you've put me on the right track. I found the error! The error was not in the circuitry but in the code.

I forgot the (you can't believe it) ATMEGA32u4 board identification!

 

"|| defined(__AVR_ATmega32U4__)"

 

Oh man! I was wondering why only I have this problem :-(

 

#elif defined(__AVR_ATmega328P__) || defined(__AVR_ATmega32U4__)
  if (port != NULL) {
    if (mode == TX) {
      pinMode(softSerialId, OUTPUT);
    } else if (mode == RX) {
      pinMode(softSerialId, INPUT);
    }
  }

#endif

 

Thanks a lot for your hint! Thanks!

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Here the result:

 

Attachment(s): 

Last Edited: Mon. Feb 17, 2020 - 07:49 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Glad you have it working!

 

JC