RS-485 and MODBUS RTU sadface.

I searched some on the forum and I’am trying to update which black hole I should jump into. It looks like alot of people were messing around with the now discontinued logic supply cape to try to get their modbus rtu projects running. The other board was the rs232 cape which is also dis continued. The only board I saw when doing a quick search for this capability now is the waveshare rs-485/can cape. I ordered one but now see I need two to get my tx/rx on track. For anyone who already has gone down this black hole is this the only current viable option left? I just also bought a suptronics x205 board for my pi3 to compare…I’d gladly choose modbus tcp but there is just too much legacy gear still in use my hand is being forced. Python libs and the waveshare the way forward for anyone that has been successful with this?

Thanks in advance.

Hi Treverl

We’re working with a custom PCBA based on the BB-X15, and are running images. We’re running an image with u-boot 2017.01, kernel 4.4.110-ti-r142, and Debian 8.10.

Our PCBA has a number of RS232<->RS485 converter chips for MODBUS/SCADA. The board side is connected to the UARTs on the am5728, while the RS485 differential signals go out on the MODBUS/SCADA network.

For now, we’ve re-built the kernel following the instructions on eewiki.
to ‘swap out’ the newer 8250 serial drivers with the older OMAP serial drivers, because the latter has a 485 mode which automatically senses UART activity and toggles a GPIO line (serving as the RTS line) which typically gets connected to a 485 chip’s DE input signal.

One caveat on the OMAP serial driver is that it’s stock behavior is to toggle a dedicated GPIO signal for the RTS line. You cannot use the given UARTs RTS line (unless you hack the driver), as far as I could tell from looking at the code.

The OMAP serial driver 485 mode does indeed work

There are a number of very long posts on on the subject. Some of which contain the device tree bindings for 485 mode.

Someone indicated that RS485 capability has been incorporated into the 8250 serial driver, I THINK, post kernel version 4.6. I’ve been meaning to test this, but haven’t yet gotten to that. I also haven’t yet seen anyone report the status of that fix to that driver… But we’re very curious to try it, especially if it handles toggling of UART’s RTS lines in addition to or in lieu of a GPIO line.

Thanks and FYI,


Oops, sorry!

You’re looking for a ready-made cape for the BBB which already has 2-wire or 4-wire RS485 signals at the appropriate voltages levels… I don’t know of anything like that, but maybe there are some 485 transceiver chips out there which come with an evaluation board…

No, no I was very interested to hear how you were approaching this. I just am sort of in shock that this is a problem. Old serial comm totally sinking ships. I only have time to do so much so I might have to just go mini pc with a comm port and ditch dev if this is so far behind. Have you tried any ‘dumber’ solutions like usb to rs 232/485 or ip to rs 232/485? I havn’t tried these through linux os but have on windows before… The sadface was my feeling that I would have to move away from the beagle for this application. Modbus tcp works great! :stuck_out_tongue: