Industrial 101: Ethernet wiring guide wrong?

On arduino.org, I found: How to realize an Ethernet connection using an Arduino Industrial 101

According to that guide, one needs to connect the pins of a female RJ45 connector as follows:

  • 1: TD+
  • 2: TD-
  • 3: VCC
  • 4: RD+
  • 5: RD-
  • 6: GND

That's what I did, with a milled PCB, and it doesn't work. I connected the board to my laptop's Ethernet port. The status lights on my laptop's connector don't turn on. When my laptop is connected e.g. to the switch in a DSL router, Ethernet works fine. So there seems to be something wrong with the board built around the Industrial 101.

Now in other locations on the Internet, e.g. in the Wikipedia article on TIA/EIA-568, I find a different pinout for the RJ45 connector:

  • 1: TX+ (TD+?)
  • 2: TX- (TD-?)
  • 3: RX+ (RD+?)
  • 4: -
  • 5: RX- (RD-?)
  • 6: -

How do I connect the RJ45 connector for Ethernet?

Full disclosure: I have no direct experience with the Industrial 101, but I have worked on a number of Ethernet interfaces.

feklee:
According to that guide, one needs to connect the pins of a female RJ45 connector as follows:

  • 1: TD+
  • 2: TD-
  • 3: VCC
  • 4: RD+
  • 5: RD-
  • 6: GND

Looks reasonable - the Tx/Rx direction is reversed from the labels on the connector's data sheet, but that's not unusual: it all depends on your point of view, because what one side considers Tx and Rx has the opposite meaning on the other end of the cable.

Now in other locations on the Internet, e.g. in the Wikipedia article on TIA/EIA-568, I find a different pinout for the RJ45 connector:

  • 1: TX+ (TD+?)
  • 2: TX- (TD-?)
  • 3: RX+ (RD+?)
  • 4: -
  • 5: RX- (RD-?)
  • 6: -

That also looks reasonable. But why are the connections so different? Did you look at the datasheet for the connector used in the original guide you referenced?

It sounds like you might be using a plain old 8P8C RJ-45 jack: it's probably a chunk of plastic with a some wires that go directly from the socket contacts to the board. The hookup guide you are referencing using a socket that is very different: it has a series of integrated transformers that are wired between the socket contacts and the board contacts. This type of socket is said to have "integrated magnetics."

Open the data sheet for the specified socket, and look at page 6. You can see the transformers that are inside the connector, and you can see how there isn't a direct mapping between the input pins on the left that connect to your board, and the output pins on the right that make up the socket connection. A tip-off that this requires a socket with integrated magnetics is that there are connections for Vcc and Ground - these are not connections that appear on the output side of the socket, but they are connections needed by the transformers within the socket.

You must use a socket with the proper integrated magnetics. You cannot use a plain RJ-45 socket, unless you are going to manually add the required transformers and interconnections to your adapter board. That would be a lot of work, it is much easier to use the integrated magnetics. A quick search found the required connector for less than US $3

Thank you very much for this thorough and instructive explanation!

ShapeShifter:
It sounds like you might be using a plain old 8P8C RJ-45 jack: it's probably a chunk of plastic with a some wires that go directly from the socket contacts to the board.

Indeed. I am using an 8P8C RJ45 jack by Würth Elektronik. It didn’t cross my mind that there are jacks that include additional electronics, i.e. other than for the status LEDs.

Guess I have to redo the board…

I am so disappointed in Arduino regarding the support for this product. There are not basic tutorials to get you up and going quickly regarding simple things like opening TCP connections, Setting up the wifi module to run as an AP instead of a client, etc...

It IS hard to find good documentation or even what other people have done. Found this post after trying to troubleshoot why a straight ethernet cable with pins didn't work on the industrial 101. Thought I might as well post what I did to make it work.

I used a RJ45 jack with magnetics (RB1-125BAG1A). You can find it on both Mouser and Digikey. Datasheet here: https://www.mouser.com/ds/2/443/RB1-125BAG1A(111-00)-1211926.pdf

Pinout
Industrial 101: RJ45 jack with magnetics

RD+ : R1 (TX+)
RD- : R2 (TX-)
TD+ : R7 (RX+)
TD- : R8 (RX-)
GND : Shield
2V  : R3 (CT)

Essentially, the RJ45 jack needs power (2V) on the center tap (CT) to make the transformers/magnetics work properly.

Good luck everyone

[EDIT] The system makes intermittent connection. Will figure out why...
[EDIT] See second post below!

We bought one RJ45 jack with magnetics LMJ3628844TA753

ip gets the device, but ping it packet loss 20%.....

Dako2nafish did you figure out why it was?

I did! I had some time to test it yesterday as well.

The Arduino Industrial 101, like the Yun uses the Linino ARM board. The headers turn out to be a direct port from the Linino One which needs their DogRJ45 add-on board to get ethernet.

I've followed the schematic for their DogRJ45 and added 4x 47ohm resistors (that's all i had) and 3x 0.1 uF caps to the circuit and it worked wonderfully. I'm now able to get full connection and ssh into the system. You can find the DogRJ45 schematic in the link below.

hope that helps!

I managed to figure this out this morning!!

The solution is the same thing you did :slight_smile:

But I bought 51ohm resistors and work perferct, no packet loss :slight_smile: :slight_smile:

thanks anyway!
I've added some pictures.

image1.jpg

Awesome! high five :slight_smile: