PixRacer is notoriously short on PWM outputs - I´m using ArduRover 4.4 to output SBUS on serial 4 according to the wiki (SBus Servos — Copter documentation) to generate additional PWM outputs on the FrSky SBUS to PWM decoder (https://www.frsky-rc.com/product/sbus/) - SBUS signal is sharp on the scope - signal level (357 mV max) and amplitude (59 mV max) are surprisingly low - the signal converter (MAK RC Signal Inverter – MAK Corner) that is required to generate the inverted (FrSky) SBUS signal requires at least 1,65 V min input.
How could I shift the SBUS signal amplitude on serial 4 from 350 mV to 3.3V? Should I try a pull-up resistor to connect VCC to signal?
Are you sure that the oscilloscope probe is not dividing by 10, as is common?
Observe first with that output unconnected. If you attach a DC voltmeter you should see an intermediate value from 0V to 3.3V, but probably quite above 0.357V.
The SPort inverter on the Pixracer UART4 was targeted for SPort not SBUS and it depends on the load presented to it, I would expect…its possible that the Frsky converter is presenting a TTL load vs a CMOS input load…I dont know of anyone with experience with this autopilot in that setup…I would suggest you contact mRo directly with a question…
The Pixracer should be actively driving 3.3V logic levels through a 1K resistor on the FrSky output port. If it isn’t, it may be damaged, or your wiring is bad.
You could instead try using Telem2 as I did in this blog post:
@ Webillo - you were right - the switch on the probe was set to a divider of “10” - I set it to “1”… Measurements: Vhigh 3.01V - Vlow 2.63V. Thanks for putting me on back on track.
Hi Mark - thanka a lot for your reply.
Wiring of serial 4 (FrSky) checked and ok - I will check the 1K resistor.
The pics show SBUS signal on telemetry2 - not FrSky port. V high @ 3.01 V - V low @ 2.63 V. Signal is sharp and stable. Now I just need to invert the signal. But…
I´m using a signal inverter based on the schmitt trigger inverter TISN74LVC1G14DBVRE4 - specs say that at VCC of 3.0V the positive treshold is between 1.55V - 1.87V and the negative treshold between 0.84 - 1.14 V. At VCC 5V values are VTH 2.66 - 3.33V and VTL 1.9 - 2.3V. The measured V low of the SBUS signal (2.6 V) is too high.
Should I try to adjust the hysteresis of the trigger - or simply decrease V low from 2.6V to something like 2.2V?
Would a pulldown resistor on signal and gnd on the telemetry2 port be a simple soulution?
You should be seeing a valid TTL signal on Telem2. If not, there is a problem with your wiring or the Pixracer is damaged. There’s also a one-transistor inverter schematic in the blog post I linked above.
@U-Boat is the measurment shown above with something external connected to the port or just on the output pin of an open port?
If something is connected, than disconnect this all and make the same measurement.
If nothing connected than connect a 1k resistor just between the output pin and GND and make the same measurement.
@ Jürgen I appreciate your advice - signal was obtained with nothing attached to the UART port - I will put a 1K resistor between signal and gnd as you suggest - and let you know what the SBUS signal looks thereafter - greetings from lower franconia…
@ Jürgen - I followed yor suggestions - a 0.5K pulldown resistor increased SBUS signal amplitude at the UART port from 0.4V to 1.6 V - the Schmitt trigger inverted the SBUS signal correctly - but the amplitude of the inverted (FrSky) signal (40 mV) is way too low for detection by the SBUS decoder. Should I decrease the pulldown resitor value even further?
@Theo does your measurement mean:
high output of the port is now with 0.5k resistor == 3V
low output of the port is now with 0.5k resistor == 3V - 1,6V = 1,4V
If so the 1,4V input to the Schmitt Trigger is still above the threshold.
You are using a original Pixracer from mRobotics?
I only know what I can read here in the documentation. This shows that the FrShy output has 74LVC2G86 output gate. This gate has a push-pull output. So normally this has to switch between Vcc and GND. Is any thing else connected to the output. Are you able to measure directly on the Pixracer board itself.
A little reducing the resistor would be possible as the 74LVC2G86 can drive upto max 24mA which mean a load down to around 0.15k.
How far you are from Hanau?
Greetings across the border
Jürgen
@ Jürgen I appreciate your efforts to help me out - SBUS out should go to telemetry 2 and not FrSky port on the original mRo PixRacer - sorry if I didnt make that sufficiently clear - I get a perfect Futaba type SBUS signal from telemetry1 (3.1 V HIGH and 0.2 V low) - on telemetry 2 meassured values are 3.1 V HIGH and 2.6 V low - I switched the port protocoll to MAVLlink2 on both ports - I got 3.1V signal amplitude on telemetry1 and 400 mV amplitude on telemetry2. I´m also not able to establish MAVlink telemetry telemetry2. I contacted mRo yesterday. We are 68.1 mls apart. Take care.
@ Theo, ok, this was a misunderstanding off used port on myside. And I think this are not so good news. I just checked the schematic of the Pixracer. The TX output of the telemetry2 port is directly driven by the CPU via a 220 Ohm resistor.
These CPU pin can have multiple function based on the software but the hardware behind is either a push.pull driver or only an open drain driver. Additional internal pullup or pulldown can be programmed.
As i assume the arudupilot is using this port correct and if your settings according to the ardupilot documentation than the CPU port itself has a problem. Most likely in your case the positive protection diode can be shorted maybe by an ESD shock.
@ Jürgen - although I’m by no means an expert (!), that was already on my mind…
Last chance, as I see it, would be to output SBUS via the ESP-01 / serial5 / USART1 port - its a unique pixracer feature and implemented for WIFI telemetry. Which I dont need. Would you concur that its worth a try? Or do you see obvious technical obstacles? Otherwise the FCs would be pretty much useless, at least for my current project. Theo
@U-Boat Theo, the schematics shows a small difference of the USART1 port to the other ports as there is no additional resistor inline with the output pin. So the CPU pin is directly connected to the connector pin. By this the pin is little more sensitiv and i recommend to use also an external 220 Ohm resistor in line.
If it is possible to root your SBUS signal to this port i can’t say. I am very new with ardupilot and just on a theoratical base. So I don’t know all possible functions and parameters to root signals and switch ports. Just from HW side I give it a chance.
But on the other hand this also mean that the module might be predamaged and also if it works there is still a last risk.
Unfortunately no SBUS output on the UART1. But the can bus is fully operational. I’ll try the Matek periphal can node to generate additional PWM outputs.