Dell Gateway port access

I’m using a Dell Gateway 3000 series box and attempting to access the serial ports via RS-485 but it doesnt appear to ever respond how I’d expect. I’ve got modpoll running on the device and a modbus rtu thermometer connected, but all requests are timing out. Wondering if anyone has got this setup working or if theres a technical guide to configuring the ports on the device. I’ve been through the online technical guide, but that doesnt seem to provide the necessary detail.

@dbr

The RS-485 has Full Duplex(FD) and Half Duplex(HD) mode for RS-485/RS-422. Which mode is for your modbus rtu themometer?

Before you try to access the modbus, you can try RS-485 between two IOIOI1/IOIOI2 ports.

1. Connect TX/RX pins between two ports
The pins definition:



a. FD mode

  • Port1 pin1 to Port2 pin4
  • Port1 pin2 to Port2 pin3
  • Port1 pin3 to Port2 pin2
  • Port1 pin4 to Port2 pin1

b. HD mode

  • Port1 pin1 to Port2 pin1
  • Port1 pin2 to Port2 pin2

2. Setup RS-485/RS-422 mode by dcc snap.
a. FD mode

$ dcc.cctk --serial1=rs422
$ dcc.cctk --serial2=rs422

b. HD mode

$ dcc.cctk --serial1=rs485
$ dcc.cctk --serial2=rs485

Check the serial port mode has been set by command:

$ dcc.cctk --serial1
$ dcc.cctk --serial2

3. Reboot system if you change the mode

$ sudo reboot

4. Test Transfer/Receive data between two port by miniterm snap.
(Currently, the IOIOI1 device node is /dev/ttyXRUSB1, IOIOI2 device node is /dev/ttyXRUSB0.)
Install the miniterm-joc snap by command:

$ snap install miniterm-joc

Connect serial port interface for miniterm-joc snap

$ snap connect miniterm-joc:serial-port caracalla:ttyxrusb0
$ snap connect miniterm-joc:serial-port caracalla:ttyxrusb1

Please access two terminals for RS-485 data transfer testing. One for Tx, another for Rx.
Execute miniterm in 115200 baudrate from terminal 1:

$ sudo miniterm-joc.open /dev/ttyXRUSB0 115200

Execute miniterm in 115200 baudrate from terminal 2:

$ sudo miniterm-joc.open /dev/ttyXRUSB1 115200

You should see the data can transfer/receive by miniterm snap

If you are using modpoll to access, please make the the pin connection is correct, and set to correct FD/HD mode before data transfer.

Thanks for the information Darren. I’ve connected up the device as suggested and tried to use the minterm snap but I don’t get the responses mirrored on the second terminal. Putting it into debug mode I see it trying to transmit, but nothing is received on the second window.

The thermometer is HD so would only use pins 1 and 2. I’ll try out some configuration options on that and see if I get any joy.

Would be nice to see the miniterm working though.

Thanks again for your help - any further information you have you be gratefully received.

@dbr
Oops, I provided wrong pins connection for HD mode.

HD mode should be( I had corrected the wrong information in post #2) :

  • Port1 pin1 to Port2 pin1
  • Port1 pin2 to Port2 pin2

Can you please try again?

If it still not works, please provide your steps and command responds.
Let me help to analyze it.

Darren

Darren,

Thanks again. I tried it with the wiring as suggested, but its still not echoing the input. The attached image shows screenshots of the terminal windows running in parallel.

I’ve confirmed the cables I’m using are OK as well using a simple battery - led circuit.

@dbr,

Hmm… Looks fine.

Let’s try another way to test it.

  1. Set to correct rs422 mode
  2. Set serial port badrate

$ sudo stty -F /dev/ttyXRUSB0 ispeed 115200 ospeed 115200 -echo -onlcr -ixon -ixoff
$ sudo stty -F /dev/ttyXRUSB1 ispeed 115200 ospeed 115200 -echo -onlcr -ixon -ixoff

  1. Transmit data from one terminal:

$ sudo su
$ echo abcdefg > /dev/ttyXRUSB0
(Keep repeating this command to send data)

  1. Receive data from another terminal.

$ sudo su
$ cat /dev/ttyXRUSB1
(Check the string be received correctly. i.e.: “abcdefg” )

If it still not works, can you please try RS486 FD mode, even the RS232?

Initially no joy, but when I put the serial ports into RS422 mode, rebooted and used the baud rate commands above it started working with the 4 wires connected following the FD wiring. I tried miniterm after that and that worked as well.

So success with the FD mode, but I’m not sure why when the port is set to RS422 mode which from your initial response is HD?

Following on from that, I put the port into RS485 mode and connected the modbus thermometer. After running the baud rate command the thermometer started responding as well. The mod poll command overrides the baud rate, stop bits and parity so it must be one of the other options on that line thats making it work.

Many thanks for your help and patience in getting this setup. Now to look into I2C :slight_smile:

@dbr

Ah…oops, sorry.
I double checked the RS422 mode is FD mode, RS485 mode is HD mode.
It’s my mistake for wrong information.

I’d corrected the typo in comment #2.

Thanks for your clarification.

Good to know the RS485 is working for you.
Hope you get good result on I2C, and feel free to discuss it in forum.

Darren