Hi there! Back in January I bought an actuator from RobotShop, and have had some luck getting it to work. The model number is strange: RMD12025 which isn’t listed anywhere on their website, and I had to email them to get any documentation at all. What I got were the RMD-L Series Servo Actuator User Manual, and references for RDM servo motor control protocol (CAN BUS)V1.64, and (RS485)V1.64.
I have successfully gotten it to work with the RMD.exe app included in the package, and have also managed to read data over the CAN bus from the actuator. However, none of the motion control commands seem to work: torque current, speed, or position (multi-turn or single).
My questions are: Does anyone here have any experience getting these actuators to work? Is there some configuration I need to perform to put it into an appropriate mode before sending it any motion commands?
I am communicating with the actuator from an Adafruit Feather M4 CAN Express.
Hi tigakub,
I am attempting to use an Adafruit Feather M4 CAN Express to control a RMD-L-7015 23T, which is a smaller version of the RMD12025 that you used. To no avail. What did you do to get it to work? I checked the feather CAN output as I was driving them and they seem alive. But I get no response from the RMD-L-7015. THe RMD does work with the MyActuator Assistant 3.0 program, so it seems to be alive.
ANy pointers would be greatly appreciated.
Thank you. Your comment caused me to look at the problem on a lower level, i.e. only using the CANSAME5x.h driver, instead of the intermediate driver(s).
Snippet(s): #include <CANSAME5x.h>
CANSAME5x CAN;
…
pinMode(PIN_CAN_STANDBY, OUTPUT);
digitalWrite(PIN_CAN_STANDBY, false); // turn off STANDBY
pinMode(PIN_CAN_BOOSTEN, OUTPUT);
digitalWrite(PIN_CAN_BOOSTEN, true); // turn on booster
// start the CAN bus at 250 kbps
if (!CAN.begin(250000)) {
Serial.println(“Starting CAN failed!”);
while (1) delay(10);
}
…
uint8_t dataByte = 0;
CAN.beginPacket(0x141);
CAN.write(0x9C);
CAN.write(dataByte);
CAN.write(dataByte);
CAN.write(dataByte);
CAN.write(dataByte);
CAN.write(dataByte);
CAN.write(dataByte);
CAN.write(dataByte);
CAN.endPacket();
This worked and I got the expected reply from the motor.