You are here

How to read COMM_ROTOR_POSITION through uart

3 posts / 0 new
Last post
Graham Bowen-Davies
Offline
Last seen: 1 year 8 months ago
Joined: 2021-04-13 19:58
Posts: 3
How to read COMM_ROTOR_POSITION through uart

Hi,

I'm setting to up communication to teh VESC through an Arduino. Using SolidGeek's libraries, I have been able to send position control commands. What I need, is to read in the current position of the motor.

In order to set position, I modified the existing "setRPM" to make a "setPOS" command.

To set position, I naively tired to convert "getVescValues" to a "getVescPos", with the command value of "COMM_ROTOR_POSITION". But this does not seem to be recognized (payload size is zero).

Any pointers on how I should be going this are appreciated. I'm very new to arduino, and I have very little comfort with "C" language.

 

Thanks

 

Graham Bowen-Davies
Offline
Last seen: 1 year 8 months ago
Joined: 2021-04-13 19:58
Posts: 3

Nothing doing here? The following is the bit code that I attempted, but lenPayload returns zero

bool VescUart::getVescPos(void) {

	uint8_t command[1] = { COMM_ROTOR_POSITION };
	uint8_t payload[256];

	int lenSent = packSendPayload(command, 1);

	int lenPayload = receiveUartMessage(payload);
	
	Serial.println(lenPayload);

}

 

Graham

Gloobox
Offline
Last seen: 2 months 1 week ago
VESC Free
Joined: 2019-09-22 14:42
Posts: 1

Hi Graham, 

I have the same question than you ;), but do not have done some tests for now.

do you have solved your problem?

do you have tried to insert a delay between PackSend and UART reception?

 

Have a good day

Bruno