RoboClaw Solo 300: issue with RS-485 control on S3

General discussion of using Roboclaw motor controllers
Post Reply
DosMan
Posts: 3
Joined: Wed Jul 07, 2021 2:30 pm

RoboClaw Solo 300: issue with RS-485 control on S3

Post by DosMan » Wed Jul 07, 2021 2:56 pm

Using Motion Studio I have set the S3 output on my RoboClaw Solo 300 to RS-485 direction. This sort of works, with S3 going high just as the RoboClaw begins to transmit a response. However, at 460800 baud, it goes low again before all the data is sent, typically losing the last three bytes. On a simple command like #15 Read Serial Timeout, S3 is active just long enough for the first start bit of the response to get out -- about 3us. So with the transmit driver turned off for the rest of the byte, it is interpreted as 0xFF. The CRC bytes are not seen at all. (The unit has firmware version 4.1.35.)

This looks a lot like S3 is being turned off when the last byte goes into the UART transmit queue, instead of after it has been sent.

User avatar
Basicmicro Support
Posts: 1555
Joined: Thu Feb 26, 2015 9:45 pm

Re: RoboClaw Solo 300: issue with RS-485 control on S3

Post by Basicmicro Support » Mon Jul 12, 2021 1:26 pm

RS-485 has a bug in the current firmware. We have been working with a few other people to fix the problem. We currently have a couple different RS-485 adapters we will be testing as soon as time permits. We made some modifications to the firmware so the pin does not change before it should be there is still something not working correctly and we wont be able to fix it until we wire up the adapters and run a full test.

DosMan
Posts: 3
Joined: Wed Jul 07, 2021 2:30 pm

Re: RoboClaw Solo 300: issue with RS-485 control on S3

Post by DosMan » Tue Jul 13, 2021 1:00 pm

You don't need RS-485 to test this. With any serial source, just connect a scope or logic analyzer probe to S3 (direction) and to S2 (TX data). Trigger on falling S3. Send a command that requires a response, and If data is still being sent on S2 after S3 fell, it failed.

(This is not really an RS-485 issue, it is a half-duplex issue. Someone could want half-duplex on a single wire, like a Dynamixel servo. RS-485 is often half-duplex, but can be run full duplex with two pairs.)

Post Reply