I’m building a Rover using a Pixhawk 6x and need to control 4 relays. I have everything set up in the config correctly, installed a BEC on the servo rail and when I press the button on the controller the signal outputs about ~3.3v on the line. The relays are 3.0 / 3.3V activating, which should work with the Pixhawk.
The relay has an optocoupler and I have isolated the power so all the Pixhawk needs to do is light up a few mA IR LED inside the optocoupler to trigger the relay.
When triggered via the controller, an indicator LED on the relay lights up. The relay however does not trip. Does the Pixhawk not have enough current? This should be less than 10 mA of current and the STM documentation says the IO pins should be capable of sinking and sourcing 20 mA.
I have tested the relays with an external power supply set to 3.3v and it triggers without issue. The current draw also doesn’t seem to be very high on the trigger signal, again a few mA.
Here is a photo from before I isolated the power. The relay itself is powered from a separate supply so it does not depend on the Pixhawk servo rail to provide the ~80 mA required to drive the relay magnet.
If there’s no common ground, there’s no way for it to work. Check that there’s continuity between the autopilot ground and the ground pin on the logic side. If it’s open, you need to fix that, first.
I use relay boards similar to this one often. They work well.
I believe you are correct. I tried tying the grounds together and it didn’t change anything. I used my multimeter to test continuity and that joined the grounds and they triggered. It may have been a break in the connection. I’m now rebuilding the relays into a new case and will report back.
Built a new set of 4 relays. Made sure the grounds were connected. Isolated the coil power supply. Tested with the FC. Nothing.
Voltage still reads 3.2v and 0.02v when button is pressed and released.
Tested with a 3.3v power supply on the trigger line (no FC connected) and it works as expected. Grounds have continuity.
No idea.
I would swap everything over for 5V, but while the Pixhawk 6X from Holybro says it’s just an easy resistor change there is zero documentation for it. I should have gone with an Orange Cube+ with the built in voltage select in the software.
FC servo output signal pin is connected to the relay module optocoupler input?
FC servo output GND pin is connected to the relay module optocoupler GND pin?
Both connections have been tested with an ohmmeter and are low-resistance (milliohm range)?
The relay module itself is supplied with its own voltage greater than 3.3V?
The voltage 3.2V or 0.2V is measured directly at the optocoupler input, optocoupler input against the common GND of FC and optocoupler?
Do you have an adjustable DC power supply that you can connect to the optocoupler instead of the FC? If so, slowly increase the voltage there from 0V to 3.2V, at what input voltage does the relay switch?
0.1 Ohm / 100 mΩ. That’s as low as the multimeter I have handy will go.
It has a variable power supply that is currently set around 3.3-3.4V. The relays are 3.3V rated.
Yes.
Yes. The trigger is at ~2.7V.
I can’t get too far into it without disassembling everything. The jumpers on the relay boards were soldered from behind to ensure the grounds are connected on both sides of the optocouplers. Then I ran jumpers between each relay board for redundancy. The grounds are connected in multiple places just to make sure. The 3.3V external power supply is only on the coil side, there is a separate 3.3V supply at the Servo rail.
That is actually a bit mystical. Based on the electrical connections and measurements alone, I can’t see any reason why it wouldn’t work.
Can you measure the input current at the control input if you
control the relay module with your controllable power supply at 3.2V input voltage
and the same measurement if the relay module is controlled by the FC.
I’m taking everything apart and under no load, the Pixhawk is putting out 3.2-3.22V. When connected to the relay, it must be drawing so much current that it only measures 2.69V… and ~2.70V is needed to trigger the relay.
This kind of makes sense since there is a 100ohm resistor in line with the optocoupler, limiting current to 30mA, where the Pixhawk can supply 20mA. That resistor should probably be 200 or 300 ohm instead.
I’ll be getting the new 4ch relay board in a few days and will completely rebuild it and then try again. My guess is these relay modules are just bad.