ReadBuffers(address,depth1,depth2) depth1 depth2 value always 0
ReadBuffers(address,depth1,depth2) depth1 depth2 value always 0
Hi,
I'm having trouble with Arduino sample PacketSerialEncoderSpeedDistance, the depth1 and depth2 values are always 0, but I can see the motor actually finished the command and stopped spinning.
If I connect the controller to ion studio via USB I can see the encoder and speed reading, what did I miss?
Thanks.
here is the output
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
I'm having trouble with Arduino sample PacketSerialEncoderSpeedDistance, the depth1 and depth2 values are always 0, but I can see the motor actually finished the command and stopped spinning.
If I connect the controller to ion studio via USB I can see the encoder and speed reading, what did I miss?
Thanks.
Code: Select all
#include <SoftwareSerial.h>
#include "RoboClaw.h"
//See limitations of Arduino SoftwareSerial
SoftwareSerial serial(10, 11);
RoboClaw roboclaw(&serial, 10000);
#define address 0x80
//Velocity PID coefficients
#define Kp 1.0
#define Ki 0.5
#define Kd 0.25
#define qpps 538000
void setup() {
//Open Serial and roboclaw serial ports
Serial.begin(57600);
roboclaw.begin(38400);
//Set PID Coefficients
roboclaw.SetM1VelocityPID(address, Kd, Kp, Ki, qpps);
roboclaw.SetM2VelocityPID(address, Kd, Kp, Ki, qpps);
}
void displayspeed(void)
{
uint8_t status1, status2, status3, status4;
bool valid1, valid2, valid3, valid4;
int32_t enc1 = roboclaw.ReadEncM1(address, &status1, &valid1);
int32_t enc2 = roboclaw.ReadEncM2(address, &status2, &valid2);
int32_t speed1 = roboclaw.ReadSpeedM1(address, &status3, &valid3);
int32_t speed2 = roboclaw.ReadSpeedM2(address, &status4, &valid4);
Serial.print("Encoder1:");
if (valid1) {
Serial.print(enc1, DEC);
Serial.print(" ");
Serial.print(status1, HEX);
Serial.print(" ");
}
else {
Serial.print("failed ");
}
Serial.print("Encoder2:");
if (valid2) {
Serial.print(enc2, DEC);
Serial.print(" ");
Serial.print(status2, HEX);
Serial.print(" ");
}
else {
Serial.print("failed ");
}
Serial.print("Speed1:");
if (valid3) {
Serial.print(speed1, DEC);
Serial.print(" ");
}
else {
Serial.print("failed ");
}
Serial.print("Speed2:");
if (valid4) {
Serial.print(speed2, DEC);
Serial.print(" ");
}
else {
Serial.print("failed ");
}
Serial.println();
}
void loop() {
uint8_t depth1,depth2;
roboclaw.SpeedDistanceM1(address,50000,236500,1);
roboclaw.SpeedDistanceM2(address,50000,236500,1);
do{
displayspeed();
roboclaw.ReadBuffers(address,depth1,depth2);
Serial.println(depth1,HEX);
}while(depth1!=0x80 && depth2!=0x80); //Loop until distance command has completed
delay(1000);
}
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
Encoder1:failed Encoder2:failed Speed1:failed Speed2:failed
0
- Basicmicro Support
- Posts: 1594
- Joined: Thu Feb 26, 2015 9:45 pm
Re: ReadBuffers(address,depth1,depth2) depth1 depth2 value always 0
WHat you have is no data being read back. You see the "failed Encoder" printouts. That means the readenc commands are not working which means your ReadBuffers command is probably also not working. You should check the return value from the ReadBuffers command. If will return false if that command is also not working. I would suspect your baudrate settings are wrong or you have wired the pins from the Arduino to the Roboclaw wrong.
Re: ReadBuffers(address,depth1,depth2) depth1 depth2 value always 0
Thanks for your reply, ReadBuffers command returns false. Baudrate settings I'm using for the controller is 38400, roboclaw.begin(38400); the pin connection from Arduino to controller is : tx to s1, rx to s2. I only connected s1 and s2 to Arduino, do I need to connect 5v and ground from Arduino to controller LB IN?
-------------------
Ok I connected Arduino 5v and ground to Controller LB IN the command seems working now. Is that correct to connect Arduino 5v and ground to Controller LB IN ?
Thanks.
-------------------
Ok I connected Arduino 5v and ground to Controller LB IN the command seems working now. Is that correct to connect Arduino 5v and ground to Controller LB IN ?
Thanks.
- Basicmicro Support
- Posts: 1594
- Joined: Thu Feb 26, 2015 9:45 pm
Re: ReadBuffers(address,depth1,depth2) depth1 depth2 value always 0
You need S1, S2 and GND. You do NOAT need LB+ to 5v ever. If you want to power the Arduino from the Roboclaw you do need 5v from Roboclaw to 5v on the Arduino. You also need main power to the Roboclaw.
Note LB+ requires 6v minimum if you also want to provide a seperate logic power input(otherwise logic power will come from the main battery terminals).
Note LB+ requires 6v minimum if you also want to provide a seperate logic power input(otherwise logic power will come from the main battery terminals).