Regression with 4.2.1 FW?

General discussion of using Roboclaw motor controllers
Post Reply
ronstory
Posts: 11
Joined: Fri Apr 01, 2022 1:30 pm
Regression with 4.2.1 FW?

Post by ronstory »

I'm using a RC 2x7A.

Since updating to the 4.2x the I'm seeing different behavior with the same stable code that works on 4.1x versions. I'm moving a telescope so I do two buffered moves for each position. When I check the command buffer I can see the value changes from 0x80 to 0x01 which means two commands are in the buffer. As I check the command buffer, I can see it drop to 0 (last command) and then 0x80 which means it completed both move commands.

What I now seeing is after the first telescope move (same 2 buffered commands) and wait for the command buffer to return to empty (0x80), the *sometimes* the second telescope move seems to fail and the scope does not move. All return codes are correct and roboclaw seems happy, except when I check the command buffer it returns 2 (which mean three buffered commands), and I only sent two commands... like I always have.
The command buffer will never decrement and it stuck with command buffer of 2 forever. I can write an unbuffered command to "clear it out", but this code was working and I don't want to add another workaround to weird roboclaw behavior.

Unfortunately, it's random... having three command in the command buffer when I only wrote two happens maybe one out of 3 or 4 times... and never on the first move after initializing the roboclaw problem.

This code has been working flawlessly for last 6 weeks but with the latest FW it's now hiccuping. Has anyone else seen anything like this?

Thanks,
Ron
Thanks,
Ron 2x7A
ronstory
Posts: 11
Joined: Fri Apr 01, 2022 1:30 pm
Re: Regression with 4.2.1 FW?

Post by ronstory »

Well, with no feedback received, I implemented a workaround.

When I send a batch of buffered commands, the first command is unbuffered to clear out any remaining commands executing on the motor. Then I write my buffered commands to the RC and then immediately check the command buffer to make sure it's the same number of commands I sent. If there is an extra one (I send two, but buffer depth shows three) I resend the command.

Sometime in the next 2-3 tries it accepts it and works as before.

HAS ANYONE ELSE SEEN THIS? I can't be the only one. ;^)

Thanks,
Ron
Thanks,
Ron 2x7A

Post Reply