Creative Commons images are CC BY-NC-SA 3.0

Description: Our friends over at LinkSprite have made this nifty little RS485 Shield, now you will be able to have a communication port for your field bus directly connected to your Arduino! Even though the RS485 is sometimes thought as an “archaic” protocol, it will allow up to 32 devices to communicate through the same data line over a cable length of up to 4000ft with a maximum data rate of 10Mbit/s. Those aren’t bad numbers!

This version of the RS485 shield removes the optional DB9 connector bay and adds a second 2-pin screw terminal and the ability to choose two pins from your Arduino’s D0 to D7 as Software Serial Ports to communicate with the shield.

This shield does come without its headers separate so a small amount of soldering will be required before attaching it to your Arduino device.

Documents:

Recommended Products

Customer Comments

  • bboyho / last month * / 1

    ——————– Tech Support Tips/Troubleshooting/Common Issues ——————–

    UART Pin Selection

    The image shows a row of male header pins to select the UART pins. By comparing our product picture [ https://cdn.sparkfun.com//assets/parts/9/9/0/6/12965-02.jpg ] against the LinkSprite tutorial [ https://www.sparkfun.com/products/12965 ], the pins along the P4 should be connected to the Rx while P8 should be connected to Tx. You would just need to select the UART pin by moving the jumper on one side for both Rx and Tx.

    Arduino Yun w/ RS485 Shield

    Shields are usually designed for the Arduino Uno R3 with Atmega328P. There can be compatibility issues if you use a shield [like the RS485 V2] on a different Arduino. You would need to see if the code can compile with the board, the reserved pins the board uses, and logic levels.

    Looking at the example code to use the RS485-to-serial UART converter, it is basically a serial pass through example. The code takes the converted signal and outputs it to the serial monitor. Any input received from the serial monitor will be sent back to the other side of the converter. The RS485 shield lets you choose the software serial UART or the hardware UART depending on the location of the jumper. Unfortunately, not all the pins provided on the RS485 Shield’s UART selection are compatible with the Atmega32U4 on the Arduino Yun [ https://www.arduino.cc/en/Reference/SoftwareSerial ] due to its limitations:

    Not all pins on the Leonardo and Micro support change interrupts, so only the following can be used for RX: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).
    

    Additionally, the hardware UART pins (pin 0 and 1) are used to communicate between the Atmega32U4 and the AR9331 [ https://www.arduino.cc/en/Main/ArduinoBoardYun ]. The logic level looks to be 5V from the Arduino Yun’s specs.

    Rerouting

    Based on the information above, you would not be able to directly stack the RS485 V2 Shield with the Arduino Yun. However, you could reroute pins and define the software serial UART pins that are compatible for the Arduino Yun’s Atmega32U4. There are many ways to reroute pins from a shield. Try looking at this Arduino.cc forum post for an example [ http://forum.arduino.cc/index.php?topic=190709.msg1461275#msg1461275 ]. The person was using a different shield but they were running into the same issue due to Atmega32U4’s software serial limitation. User skr1’s solution was to bend the shield pin out of place and reroute Tx and Rx to compatible software serial pins. One problem that I see is that you might not be able to stack multiple shields on the Arduino Yun if the RS485 pin is stacked in the middle level. You would probably want to have the RS485 pin stacked on the top level or use the “Go-Between Shield” [ https://www.sparkfun.com/products/11002 ].

    Timing and Improvements with AltSoftSerial

    User skr1 also decided to use the AltSoftSerial library [ https://www.pjrc.com/teensy/td_libs_AltSoftSerial.html ] due to some timing issues. It seems like AltSoftSerial handled serial data more efficiently with the Arduino Yun.

  • I’m having trouble getting this board to work for my Arduino Uno doing modbus RS485 to a water sampler, I keep getting the result code E2 (which is the timeout code I think)

  • i don’t like this board the idea is great and RS-485 rocks. The termination resistor should have a jumper as well as the pull up and down resistor for the A and B. If you want to have 2 Arduinos talking this board would work fine as is. If you want to add more than two devices the resistors not having jumpers will cause you trouble as you add more devices. I guess you could always remove those resistors.

  • I’ve used a MAX485 chip to talk to a Mindstorm NXT before over its high speed serial line. This shield looks easier to use since there is no custom code that needs to be written (just use SoftwareSerial) and you can set what your TX/RX pins are with jumpers.

Customer Reviews

3.5 out of 5

Based on 4 ratings:

5 star
1
4 star
2
3 star
0
2 star
0
1 star
1

Didn't Work

I wanted to use this to make a Modbus RTU RS485 network so I bought two of them. I tried every possible jumper combination on this shield and it doesn’t work. Every Modbus read (function 3) command gets check sum errors. I removed the shield and wired my Arduinio Uno TX/RX (and transmit pin 9) to a bread board with a Maxim MAX485-CPA IC and the communications work perfectly. Waste of money.

Hi, Please contact us about your issue. We may be able to help you with a return. https://www.sparkfun.com/returns


Up and running for ModBus to a temperature controller

I bought this to connect to a Love Controls temperature controller ModBus interface and had it up and running within less than an hour. The documentation on their website (linksprite’s) leaves a little to be desired though. Lackluster documentation is the only reason I’m not giving it a five. The board is beautiful and the quality is top notch.


works great,

It works great and does exactly as i expected.


Did the Job with Mimimum Effort

I had to connect two Arduinos to two legacy motor controllers that used MODBUS protocol on RS485. This worked well only after a few learning pains on getting the serial settings correct (this was the fault of the motor controller not this great device). I have two of these running in the field. Using these saved me $280. over buying special RS485 to RS232 converters for the legacy motor controllers.