RS485 PiZero addon

(5 Reviews)
Price:
Sale price £14.40
incl. VAT
excl. VAT
Stock:
Only 7 units left
Quantity:

Compatible with:

Awesome Extras

Save 10%
RS422 / RS485 Serial HAT by Zihatec - The Pi HutRS422 / RS485 Serial HAT by Zihatec - The Pi Hut
(10 Reviews)
ZihatecRS422 / RS485 Serial HAT
Sale priceFrom £30.42 Regular price £33.80 incl. VAT excl. VAT
RS485 CAN HAT for Raspberry Pi by Waveshare - The Pi HutRS485 CAN HAT for Raspberry Pi by Waveshare - The Pi Hut
(9 Reviews)
WaveshareRS485 CAN HAT for Raspberry Pi
Sale price £15.10 incl. VAT excl. VAT
RS485 Shield for Arduino by DFRobot - The Pi HutRS485 Shield for Arduino by DFRobot - The Pi Hut
(3 Reviews)
DFRobotRS485 Shield for Arduino
Sale price £9.50 incl. VAT excl. VAT
  • RS-485 Half Duplex Port.
  • Up to 250 kbps transfer rate.
  • Use the Raspberry Pi to control external RS-485 devices.
  • Stackable with other Raspberry Pi accessory boards.
  • Mounting holes for use with the AB Electronics UK mounting kits (sold separately)

The RS485 Pi is a communication board supporting the RS-485 serial protocol.

Introduction:

The RS-485 port is connected to the UART port on the Raspberry Pi using a SN65HVD72 interface. The SN65HVD72 IC converts the 3.3V UART signals to RS-485 voltages allowing communication with RS-485 compatible devices over a DB9 serial cable or twisted pair cable. The RS-485 port can be accessed through the DB9 port or the solder points on the PCB.

The RS485 Pi contains protection against voltage spikes in the form of a TVS Diode and two 10-?, Pulse-Proof Thick-Film Resistors.

Please note that you can only use one RS485 Pi board on a Raspberry Pi. if stacking with other boards we recommend putting the RS485 Pi at the top of the stack due to the height of the DB9 connector.

Specifications

Supply Voltage 3.3V
Logic Voltage at GPIO Port 3.3V
Differential Input Voltage at A & B -12V to +12V
High-level input voltage 2V
Low-level input voltage 0.4V
Signalling Data Rate 250 kbps

 

Compatibility Chart

 

Raspberry Pi Model A / B (Rev 1 original) No
Raspberry Pi 1 Model A+ Yes
Raspberry Pi 1 Model B+ Yes
Raspberry Pi 2 Model B Yes
Raspberry Pi 3 Model B * Yes
Raspberry Pi 4 Model B Yes
Raspberry Pi Zero / W / 2W Yes

*You need to use the latest Raspbian Jessie release and disable the built in Bluetooth to use the RS485 Pi on the Raspberry Pi 3, see ourKB page for the config changes needed.

Using RS-485

RS-485, also known as ANSI/TIA/EIA-485, TIA/EIA-485 or EIA-485 is a standard used in serial communication systems. Equipment using the RS-485 standard can be used over long distances in noisy environments. Unlike RS232, the RS-485 standard allows for multiple devices to be connected on the same network. The recommended arrangement for connecting devices to an RS-485 network is to use a series on nodes connected along a line or bus with terminating resistors used at either end of the bus to reduce reflections.

A 120-? resistor is included with the RS485 Pi which will need to be fitted if the board is connected to the end of the RS-485 bus. The diagram below shows a typical network of RS-485 devices.

Connecting to the RS-485 Port

The RS-485 port on the RS485 Pi can be accessed through the male DB9 socket or the solder points on the PCB. The DB9 socket uses three wires as shown on the diagram below.

Pin Usage
1 N/C
2 N/C
3 B
4 A
5 Ground
6 N/C
7 N/C
8 N/C
9 N/C

DB9 connector as viewed from the front of the RS485 Pi

 

 

Schematic

Click to download
Click to download schematic PDF.

Mechanical Drawings

Mechanical Drawing

Click image to enlarge

Assembly Instructions

The RS485 Pi is supplied with the 40 pin GPIO connector and the DB9 connector unsoldered.

A 120R terminator resistor is included in the kit. This will be required if the RS485 Pi is used as an end node within an RS485 network.

Before using the RS485 Pi you will need to solder both connectors onto the PCB. We suggest soldering the 40 pin GPIO connector first and then the DB9 connector.

To make assembly easier we have designed a PCB header assembly jig which you can download and print.

PCB Header Assembly Jig

Download and print our PCB Header Assembly Jig to hold your circuit board when soldering the header pins.

Use

Payment & Accreditations

Payment methods
Visa Mastercard Maestro PayPal Amazon Klarna

Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.

Accreditations
Overall product rating out of 5: 5.00
Based on 5 reviews
Write Review
Clear Filters
Order By
Newest First
Oldest First
Most Popular
Highest Rating
Breakdown
5
0
0
0
0
Verified Customer
Kim-André K
Son, Norway
RS485 PiZero addon
Reviewer didn't leave any comments
Was this review helpful?
Yes
Report
Share
5 months ago
Verified Customer
James H
Hatfield, United Kingdom
RS485 PiZero addon
I bought this as a means to control a traditional (so not networked) PTZ camera (the Hikvision HiLook PTZ-T4255I-D) - I was able to write my own API to control the camera using Pelco-D, although I would caution that there isn't actually a need to use the RS485 class in the PySerial library - my example of the control script is below: import serial import sys # This function takes a command string and sends individual bytes. def switch_cmd(argument): switcher = { "stop": (0,0), "up": (0,8), "ul": (0,12), "ur": (0,10), "down": (0,16), "dl": (0,20), "dr": (0,18), "left": (0,4), "right": (0,2), "zoomout": (0,64), "zoomin": (0,32), "focusout": (0,128), "focusin": (1,1), "setpreset": (0,3), "clearpreset": (0,5), "callpreset": (0,7) } return switcher.get(argument, (0,0)) def do_hex(hexlist): out_hex="" for eachitem in hexlist: out_hex=out_hex+("{0:#04x}".format(int(eachitem))[2:]) return out_hex def assemble_cmd(cmd,val1,val2): header=0xff channel=0x01 byte1,byte2=switch_cmd(cmd) checksum=(header+channel+byte1+byte2+val1+val2)%256 return do_hex([header,channel,byte1,byte2,val1,val2,checksum]) def stop(): return bytearray.fromhex(assemble_cmd(switch_cmd("stop"),0,0)) def send_cmd(cmd,val1,val2,duration): cmd_string=assemble_cmd(cmd,val1,val2) ser=serial.Serial(port='/dev/serial0',baudrate=2400,parity=serial.PARITY_NONE,stopbits=serial.STOPBITS_ONE,bytesize=serial.EIGHTBITS) print (cmd," ",str(val1),".",str(val2),": ",cmd_string,"for ",duration," ms") cmd_bytes = bytearray.fromhex(cmd_string) ser.write(cmd_bytes) time.sleep(duration/1000) ser.write(stop())
Was this review helpful?
Yes
Report
Share
4 years ago
Verified Customer
Magnus L
RS485 PiZero addon
Workshop perfect!
Was this review helpful?
Yes
Report
Share
5 years ago
Verified Customer
Fredrik A
RS485 PiZero addon
Works flawless
Was this review helpful?
Yes
Report
Share
6 years ago
Verified Customer
Colin W
RS485 PiZero addon
I cant get a pi zero to test it with
Was this review helpful?
Yes
Report
Share
9 years ago

New content loaded