We are trying to to connect a 6X to the GigaBlox Nano. We suspect the issue is our pinout, though we have tried every combination we can think of.
We have created an adapter to connect the stock Pixhawk side ETH port connector to the stock GigaBlox PicoConn adapter hat connector.
I will attach the photos of cable here.
Other notes:
- We have other devices connected to the switch that are working.
- Connecting the Pixhawk to other devices using the ETH port directly works (different cable obviously).
- We’re fairly certain the Pixhawk is on the same ground as everything else. They all run from the same battery power supply and we don’t believe there are any optical isolators in our DC-DC convertors or anything like that.
- We’re currently working under the assumption that pin1 on the Pixhawk ETH connector is the black wire, though we have tried the other direction as well.
Pixhawk 6X ETH Port Pinout
Pixhawk 6X ETH connector end
Cable adapter
GigiaBlox PicoConn connector end
Thanks for any help!
Let’s trace this out…
GigaBlox Pinout
We want to use the right-most four pins, which carry the 100BASE-T signals (TX/RX). Based on the colours of a GigaBlox cable in your image, that is…
Red = TX-
Orange = TX+
Green = RX+
Yellow = RX-
For Pixhawk, using the pinout from SwitchBlox Cable Adapter for Ardupilot…
For the pixhawk cable…
Black = RX-
Red = RX+
Yellow = TX-
Green = TX+
Thus, I would posit that the connection (in terms of wire colours in your photo) should be…
Straight Cable |
|
|
|
Pixhawk Connection |
Pixhawk |
GigaBlox cable |
GigaBlox Connection |
TX- |
Yellow |
Red |
TX- |
TX+ |
Green |
Orange |
TX+ |
RX+ |
Red |
Green |
RX+ |
RX- |
Black |
Yellow |
RX- |
GigaBlox supports Auto-MDIX, so you could also use a crossover connection and it should work fine.
In your connection, it looks like you have:
Yours |
|
|
|
Pixhawk Connection |
Pixhawk |
GigaBlox cable |
GigaBlox Connection |
TX+ |
Green |
Orange |
TX+ |
TX- |
Yellow |
Red |
TX- |
RX+ |
Red |
Yellow |
RX- |
RX- |
Black |
Green |
RX+ |
So it does look like you mixed up the RX + and -. However, GigaBlox supports automatic polarity detect, so I’d expect it to be correcting for that.
I’d suggest try the two pinouts I’ve suggested above, and then if that doesn’t work, we’re dealing with either a signal integrity issue, or an autonegotiation fail between the two ethernet PHYs.
Thanks Josh! Unfortunately neither pin setup is working. Anything else we could try?
How long is the cable?
Have you checked for electrical connectivity on either side of the cable?
Does the GigaBlox Port work normally when connected to a PC using a gigabit connection?
Can you try the GigaBlox port using a 4 way picoblade to RJ-45 cable to see if 100M is working?
Can you verify the holybro pixhawk connection is working?
Do you have a SwitchBlox (of any variant) you can test the Pixhawk with?
Cable is 15 inches.
Electrical connectivity is good, just rechecked.
The GigaBlox port works normally when connected to a Jetson using a gigabit connection and a MacBook Pro on a gigabit connection.
It also works on a 100M connection. (4-wire)
The pixhawk works fine in other switches (Netgear). And connected directly to Jetson.
Unfortunately we only have the GigaBlox.
Is your other switch a gigabit or 100Mbit only?
Hmm, very odd. And I presume you’ve tried other ports on GigaBlox?
Assuming the electrical connection is good, everything about that connection should work, and I’ve never see an issue with a GigaBlox not connecting to another device at 100M.
Do you see any LED activity on GigaBlox at all?
Further, can you share a photo of your full setup so I can get an idea of how everything’s connected, including power?
Yes, definitely tried other ports.
There is LED activity when other devices are connected.
We currently have Port 4 connected to my Mac laptop with the 4 wire and the LED D7 is solid red, though I can sing around no problem.
We have a Jetson connected to Port 3 and D6 is blinking green.
We have the Pixhawk on Port 2 and there is no light for D5.
We have another device on Port 1 and D4 is blinking green.
Moving around the connections, everything works and the lights move around, except for the Pixhawk of course.
It’s a very complicated setup in the vehicle at the moment but I will try to get you a photo.
I don’t know if these will be helpful. Especially the power supply which is hard to get an angle on.
Power supply
Connection to the pixhawk
The current pixhawk wiring
Connection to Jetson
Gigablox
Ah, GigaBlox Nano. For some reason I didn’t consider this in my assessment.
The fact that it’s GigaBlox Nano may be the cause of the issue.
GigaBlox Nano is transformerless and thus it does require some extra considerations when connecting to other devices. Here’s what I suspect is happening…
Most devices have transformers on their ethernet port. When you connect GigaBlox Nano + PicoConn (which is transformerless) to them, it works just fine because the transformer prevents any of the PHYs actually seeing each other electrically.
However if the connected device does not have transformers, it’s at that point we need to be more careful. PHYs can interplace with each other (specifically if one PHY is a current mode PHY, and the other is a voltage mode PHY). What I suspect is the Pixhawk does not have transformers on its ethernet port. I don’t have any substantial proof on that (I will post in the Ardupilot discord server to ask about this), but I supect this is the cause of the issue.
If this is the issue, there are two workarounds:
- Use GigaBlox Nano RJ-Conn (it has transformers)… Not really a good solution in your setup since it’s already mounted.
- Use an off-the-shelf ethernet isolator to put transformers on that one connection… Something like below… The price is a little crazy given that it’s litereally just some connectors and transformers in a plastic shell.
Do you happen to have a normal GigaBlox around (that has transformers) that you can test this with? If it works with GigaBlox, we know it is a transformer issue.
I bet this has never come up before, because there are very few devices that are transformerless. I believe our switch is the only one on the market that is transformerless. Lovely and compact, but does require a bit more care when integrating.
Gotcha, Sorry I didn’t make that clear.
I did check the HolyBro page for the Pixhawk that claims the ETH port is transformer less:
We don’t have any other Giga switches to try unfortunately, but we could order some. Unfortunately though we are on a bit of a deadline, so we will have to maybe shove in a larger switch for now if we can’t figure it out.
I agree that other product is outrageous! wow
That’s gotta be the issue then.
Send your address to me at josh@botblox.org. I’ll get a GigaBlox shipped over to you if you post the results here.
1 Like
Email sent.
Which switch do you think would make the most sense?
The Gigablox or the SwitchBlox for ArduPilot?
Well, that depends. Swapping it out for SwitchBlox will work (it’s been tested), but won’t teach us anything. Also SwitchBlox is a 10/100M switch only.
I assume you went with GigaBlox because you need gigabit speeds?
Actually that was the idea with the Giga, but technically we don’t really need it, as two of our devices are 10/100 only anyway. For us smallest form factor is most ideal, additionally we will actually probably need a 5th port.
Well, the offer for the free GigaBlox is there if you can test it with your Pixhawk 6X. I didn’t get your email with your address, did you send it to josh@botblox.org
I did send it to that email address. I will resend. It will be from nunderwood@blueflite.com
And yes we will gladly test the Gigablox!
Actually I did not send it to that address
Got it, I’ll get one out to you today.
Don’t expect our usual nice packaging on this as it is a lab unit