SBUS2-Telemetry icon indicating copy to clipboard operation
SBUS2-Telemetry copied to clipboard

Telemetry not working with 3 sensor

Open magnum3131 opened this issue 3 years ago • 50 comments

Hi,

I use your library to make some sensor ( Temperature, GPS,...). if i plug only 2 sensors on the receiver with different slot everything is working perfectly.

But if i plug 3 sensors the telemetry on esp32 stop working, i have to stop one oh the three sensor to make it working again

Is there a limitation or something wich can explain these issue ?

Thanks Julien

magnum3131 avatar Jun 20 '21 21:06 magnum3131

Hi Julien,

interesting issue. Never thought about using multiple ESP32 (or Atmega) Sensors.

i have an idea whats causing the issue: the Sensors (the third) could trigger the Start/End of a SBUS(2) Frame in the other Sensors. That would cause many problems.

If i'am right the same should happen with a original Futaba Sensor. i have to check the code and try to get the same behavior.

Could yo tell me with Sensors you use on which slot and which ESP? Example: ESP32 No.1 -> temp sensor Slot2, Voltage Sensor Slot3 ESP32 No.2 -> GPS Slot 8 ESP32 No3. -> .....

Do the ESP32 anything? Are they crashing? Error Messages?

BrushlessPower avatar Jun 21 '21 07:06 BrushlessPower

Hi, Thanks a lot for your answer ESP32 1 => Slot 1 rpm sensor ESP32 2 => Slot 3 rpm sensor ESP32 3 => Slot 5 rpm sensor

I made a loop wich increase the RPM, i can see when the telemetry stop working. When i plug the third sensor the telemetry stop working immediatly. there is no message or crach on ESP32.

I'll test this evening ig i have the same problem if i plug a futaba sensor

Thanks Julien

magnum3131 avatar Jun 21 '21 16:06 magnum3131

I did more test The configuration is the following Powerbox Spark Switch pro => slot 1 to 5 Powerbox Mercury => slot 8 to 23 ESP32-1 RPM => slot 6 ESP32-2 RPM => slot 7

Case 1 Powerbox Spark Switch pro + Mercury + ESP32-1 => Working

Case 2 Powerbox Spark Switch pro + Mercury + ESP32-2 => Working

Case 3 Powerbox Spark Switch pro + Mercury + ESP32-2 + ESP32-2 => Powerbox Sensor working but not the ESP32.

With other telemetry sensor i can only plug one ESP32

Thanks Julien

magnum3131 avatar Jun 21 '21 19:06 magnum3131

Dear Julien,

thank you for testing. I have 3 ESP32 and i will build up the same test an try to find the problem.

I think it could be a Problem with the 1k resistor between RX and TX of every ESP32 on the SBUS. But i can only check it with an oscilloscope.

Cold you try another test (before i finish my test build)? ESP32-1 with 2,3,4,5 RPM Sensors on SLOT 1 to 6 ESP32-2 with just one RPM Sensor on SLOT 7

You said "the Telemetry stop working". So my understanding is, that all three RPM Sensors stop working? This would really point to a problem with the 1k resistor.

BrushlessPower avatar Jun 22 '21 06:06 BrushlessPower

Hi, I'll test the new case this evening I don't know if it could affect the SBUS2 Library but i have a 2.4 resistor between the TX/RX Pin

Thanks Julien

magnum3131 avatar Jun 22 '21 07:06 magnum3131

hi, 2k4 Resistor is ok. I had problems with a R7003SB. This one only worked with 1k. Thats why i recommend 1k.

Maybe its better to use a diode.

BrushlessPower avatar Jun 22 '21 07:06 BrushlessPower

This is strange, the test with powerbox and esp32 has been done with a 7003sb on my plane

I'll try with a 7008 Julien

magnum3131 avatar Jun 22 '21 08:06 magnum3131

Hi, I do your test ESP32-1 with 2,3,4,5 RPM Sensors on SLOT 1 to 6 ESP32-2 with just one RPM Sensor on SLOT 7

It's working with the 7008sb but not with the 7003sb, only one sensor work with the 7003

You said "the Telemetry stop working". So my understanding is, that all three RPM Sensors stop working? This would really point to a problem with the 1k resistor. => Yes all three RPM stop working

Do you think we need to lower the value of the resistor ?

Thanks Julien

magnum3131 avatar Jun 22 '21 16:06 magnum3131

Ok

i really think it's the value of the Resistor. You could try to increase it when using multiple ESP32 Today i will have a look on the scope.

The perfect solution would be a one wire Serial with switching RX/TX on one Pin.

BrushlessPower avatar Jun 23 '21 06:06 BrushlessPower

So i got a View on the Scope and got back to the old Problem with 1k on R7003

  1. The Resistor Value has to be small enough that the TX Pin can Pull High Signal on the SBUS (when transmitting Telemetry)
  2. The Resistor Value should be as big as possible that the Servo Data is not pulled down to much (when receiving SBUS Frame and other telemetry)

for the R7008 4k7 and 1k was ok on my test for the R7003 1k was ok on my test

But, when we connect multiple ESP32 on the same SBUS the Resistor Values are not valid any more

with three ESP32 (each with 1k) the Pull Down Resitance is 1k/3 = 333R -> thats much to low and the pull up resistance i still 1k for each ESP32 to transmit his slot. But it has to work against the other 2 ESP32 with 500R

so at the End: The resistor Solution is not the Best Did you have some diodes there? You should add a diode between TX and the 1k. Anode to TX, Cathode to Resistor.

TX------>|----1k-----SBUS

RX-------------------SBUS

The Diode should have a low Forward Voltage Drop. I have tested it with a BAV21 and a high Drop (1V Voltage Drop) and it's working. SBUS

BrushlessPower avatar Jun 23 '21 09:06 BrushlessPower

Hi,

Thanks a lot for your expertise, for resuming i have to change my 2.4k resistor for a 1k and i have to add a diode. I need to place an order to test all this.

For the diode i found the 1N4148 which have a drop down of 0.7 or maybe a schottky diode with a lower drop down, I need to check a reference for a schottky.

Thanks a lot, I'll let you know when i'll have everything for testing

Other question what kind of oscilloscope do you use ?

Thanks Julien

magnum3131 avatar Jun 23 '21 17:06 magnum3131

The 1N4148 should be fine

Maybe you can also order a Schottkey with a high reverse Voltage (more than 10V). But this is something about try an error.

I use a PicoScope 2405A. But the cheap PicoScope 2204A is also fine. But 2 Channel are not enough for my tasks.

Did you notice Issue #34 ?

BrushlessPower avatar Jun 24 '21 06:06 BrushlessPower

Hi,

I order all the stuff, i hope i'll receive next week. I had to find a solution because in my club we try to do ESP32 hardware which can work with Futaba (1k on TX) and Jeti (Jeti need a 2.4k resistor on the RX pin)

For the arduino core I am in 1.0.4, the 1.0.6 is available i hope the bug is not present in this version

Thanks a lot Julien

magnum3131 avatar Jun 24 '21 19:06 magnum3131

The solution with diode should also work with with 2k4.

i have the feeling that the 1.0.6 is more stable. I had a lot of issues with 1.0.5 and the are fixed with 1.0.6

p.s. withe Jeti Telemetry you mean EXBUS? Not EX? until now, i cant find a good solution for ESP32 with EX Telemetry because the ESP32 cant handle 9 Data Bits

BrushlessPower avatar Jun 25 '21 06:06 BrushlessPower

Yes ex bus I use this library https://github.com/Sepp62/JetiExBus Julien

magnum3131 avatar Jun 25 '21 12:06 magnum3131

any news here?

BrushlessPower avatar Jul 19 '21 06:07 BrushlessPower

Hi,Not yet, i'am in HallydayI'll let you KnowlesThanksJulien

magnum3131 avatar Jul 22 '21 08:07 magnum3131

@magnum3131

could you try the new Version of the library? Some issues are solved (nothing real important) and a new Feature is coded: reading Sensor Values of all SBUS Sensors on the Bus

and you have some ESP32 on the SBUS and a Powerbox Spark Switch pro and Powerbox Mercury

ericlangel avatar Jul 23 '21 12:07 ericlangel

Hi Éric,Of course i can, What kind of informations do you need ? Thanks JulienLe 23 juil. 2021 14:56, ericlangel @.***> a écrit : @magnum3131 could you try the new Version of my library? Some issues are solved (nothing real important) and a new Feature is coded: reading Sensor Values of all SBUS Sensors on the Bus and you have some ESP32 on the SBUS and a Powerbox Spark Switch pro and Powerbox Mercury

—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or unsubscribe.

magnum3131 avatar Jul 28 '21 08:07 magnum3131

i have attached the new library and an Example sketch.

please change the SBUS2 Pins to your used SBUS2 Pins. leave Pin 16 and 17 unconnected -> that is another topic

Now use my SBUS2 Library as usual. You will get some prints for Sensor Slot 0 to 7. You can extend it to Slot31 The Output on console should show the value used for the emulated RPM Sensor And Slot0 (RX Voltage) and your other Sensors with their Slot Number

If that is working, we can go to the next Topic.

SBUS2.zip

ericlangel avatar Jul 28 '21 08:07 ericlangel

@magnum3131

i have a new Library Version which should work with 1k resistor and multiple Sensors (without diode or Voltage loss) the TX Pin is just active (OUTPUT) when sending Telemetry Data. After that its disabled (INPUT/Floating).

It's not fully tested, but the first Test looks good

Please tell me if you want to test?

ericlangel avatar Aug 03 '21 08:08 ericlangel

Hi Eric, Yes i want to test, if it's working i don't need to change my hardware i have already done I'll be able to test it this weekend Thanks a lot Julien Le mardi 3 août 2021, 10:50:01 UTC+2, ericlangel @.***> a écrit :

@magnum3131

i have a new Library Version which should work with 1k resistor and multiple Sensors (without diode or Voltage loss) the TX Pin is just active (OUTPUT) when sending Telemetry Data. After that its disabled (INPUT/Floating).

It's not fully tested, but the first Test looks good

Please tell me if you want to test?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.

magnum3131 avatar Aug 03 '21 13:08 magnum3131

[edit] File removed

here the update for explanation: the example sketch also sends sbus2 Frames on Serial2 -> so leave Pin 16 and 17 unconnected or use your sketch and just update the sources

ericlangel avatar Aug 03 '21 13:08 ericlangel

Thanks a lot, I have to modify it because i use Pin 16&17 on my ESP32  Julien Le mardi 3 août 2021, 15:48:19 UTC+2, ericlangel @.***> a écrit :

SBUS2.zip

here the update for explanation: the example sketch also sends sbus2 Frames on Serial2 -> so leave Pin 16 and 17 unconnected or use your sketch and just update the sources

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.

magnum3131 avatar Aug 03 '21 13:08 magnum3131

ok, you could erase all Serial2 code in the example sketch

or use your old sketch and just update the library sources

ericlangel avatar Aug 03 '21 14:08 ericlangel

tonight i realized that the zip file i gave you wont work.

because Change TX to Float and back to TX is hardcoded to GPIO 26 i will change it and upload again

ericlangel avatar Aug 04 '21 06:08 ericlangel

OK thanksJulien Le 4 août 2021 08:33, ericlangel @.***> a écrit : tonight i realized that the zip file i gave you wont work. because Change TX to Float and back to TX is hardcoded to GPIO 26 i will change it and upload again

—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or unsubscribe.Triage notifications on the go with GitHub Mobile for iOS or Android.

magnum3131 avatar Aug 07 '21 13:08 magnum3131

Hi Eric, I found the line with pinMatrixOutDetach and pinMatrixOutAttach, i adapted it to my pin. I have the same problem with your library, it's only working with 2 ESP32 and some time with only one The error are : Error! -> rx_fifo_len = 128 Value = F, 0, 4, 60, 58, F8, 7, 96, BC, 1, 10, 80, 0, 4, 20, 0, 1, 8, 40, 0, 2, 10, 80, 0, 34, 0, 0, 0, 0, 0, 0, 4, 0, 4, 61, 1, FC, 3, 60, 1, 79, 3, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, A4, 3, 40, 3F, 0, 0, 0, 0, 6C, 3, 40, 3F, 0, 0, 0, 0, E8, 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6C, 3, 40, 3F, 0, 0, 0, 0, E8, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,  [HEX]Error! -> rx_fifo_len = 128 Value = F, 0, 4, 60, 58, F8, 7, 96, BC, 1, 10, 80, 0, 4, 20, 0, 1, 8, 40, 0, 2, 10, 80, 0, 34, 0, 0, 0, 0, 0, 0, 4, 0, 4, 61, 1, FC, 3, 60, 1, 79, 3, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, A4, 3, 40, 3F, 0, 0, 0, 0, 6C, 3, 40, 3F, 0, 0, 0, 0, E8, 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6C, 3, 40, 3F, 0, 0, 0, 0, E8, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,  [HEX]Error! -> rx_fifo_len = 128 Value = F, 0, 4, 60, 58, F8, 7, 96, BC, 1, 10, 80, 0, 4, 20, 0, 1, 8, 40, 0, 2, 10, 80, 0, 34, 0, 0, 0, 0, 0, 0, 4, 0, 4, 61, 1, FC, 3, 60, 1, 79, 3, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, A4, 3, 40, 3F, 0, 0, 0, 0, 6C, 3, 40, 3F, 0, 0, 0, 0, E8, 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6C, 3, 40, 3F, 0, 0, 0, 0, E8, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,  [HEX]Error! -> rx_fifo_len = 128 Value = F, 0, 4, 60, 58, F8, 7, 96, BC, 1, 10, 80, 0, 4, 20, 0, 1, 8, 40, 0, 2, 10, 80, 0, 34, 0, 0, 0, 0, 0, 0, 4, 0, 4, 61, 1, FC, 3, 60, 1, 79, 3, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, A4, 3, 40, 3F, 0, 0, 0, 0, 6C, 3, 40, 3F, 0, 0, 0, 0, E8, 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6C, 3, 40, 3F, 0, 0, 0, 0, E8, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,  [HEX]Error! -> rx_fifo_len = 128 Value = F, 0, 4, 60, 58, F8, 7, 96, BC, 1, 10, 80, 0, 4, 20, 0, 1, 8, 40, 0, 2, 10, 80, 0, 34, 0, 0, 0, 0, 0, 0, 4, 0, 4, 61, 1, FC, 3, 60, 1, 79, 3, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, A4, 3, 40, 3F, 0, 0, 0, 0, 6C, 3, 40, 3F, 0, 0, 0, 0, E8, 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6C, 3, 40, 3F, 0, 0, 0, 0, E8, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,  [HEX]Error! -> rx_fifo_len = 128 Value = F, 0, 4, 60, 58, F8, 7, 96, BC, 1, 10, 80, 0, 4, 20, 0, 1, 8, 40, 0, 2, 10, 80, 0, 34, 0, 0, 0, 0, 0, 0, 4, 0, 4, 61, 1, FC, 3, 60, 1, 79, 3, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, A4, 3, 40, 3F, 0, 0, 0, 0, 6C, 3, 40, 3F, 0, 0, 0, 0, E8, 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6C, 3, 40, 3F, 0, 0, 0, 0, E8, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,  [HEX] ThanksJulien Le mercredi 4 août 2021, 08:33:27 UTC+2, ericlangel @.***> a écrit :

tonight i realized that the zip file i gave you wont work.

because Change TX to Float and back to TX is hardcoded to GPIO 26 i will change it and upload again

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.

magnum3131 avatar Aug 08 '21 13:08 magnum3131

hi julien,

i forgot to upload the new version. There are so many changes the last weeks.

I have no plan which version u are using

i upload as soon as possible

BrushlessPower avatar Aug 09 '21 13:08 BrushlessPower

Hi,Thanks a lot. I'll wait the new version for testing with multiple esp32JulienLe 9 août 2021 15:47, BrushlessPower @.***> a écrit : hi julien, i forgot to upload the new version. There are so many changes the last weeks. I have no plan which version u are using i upload as soon as possible

—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or unsubscribe.Triage notifications on the go with GitHub Mobile for iOS or Android.

magnum3131 avatar Aug 11 '21 11:08 magnum3131