Page 1 of 1

Home switch State

Posted: Wed Jun 12, 2019 5:56 pm
by ejunkins
Hi,

I am having issues with being able to query the state of my home switch using the python software given in roboclaw.py . Reading the user manual on page 74 it says that the error code for the home switches is 0x4000 and 0x8000. When I use the function Read Status (from the python library ReadError() ) I get 0 as the returned error code. At the same time I have the Basic Motion GUI open and see both of the limit switches tripped. The motor controllers respond to all other commands as expected, and I am running the latest firmware on the RoboClaws.

Re: Home switch State

Posted: Thu Jun 13, 2019 10:41 am
by Basicmicro Support
1. Make sure you have the latest software(Basicmicro Motion Studio, not older Ion Motion/Studio software).
2. Make sure your firmware is up to date(should already be if you are using Basicmicro Studio)

Make sure you are using the latest version of the Python Library. It was updated with the last release to work with the new Read Status/Error command.

The new manual is still in revision but should be released in the next week or so. Until then here is the updated table for the Read Status/Error command.

Code: Select all

Normal					0x000000
ESTOP					0x000001
temperature Error			0x000002
Temperature 2 Error			0x000004
Main Voltage High Error			0x000008
Logic Voltage High Error		0x000010
Logic Voltage Low Error			0x000020
M1 Driver Fault Error			0x000040
M2 Driver Fault Error			0x000080
M1 Speed Error				0x000100
M2 Speed Error				0x000200
M1 Position Error			0x000400
M2 Position Error			0x000800
M1 Current Error			0x001000
M2 Current Error			0x002000
M1 Over Current Warning			0x010000
M2 Over Current Warning			0x020000
Main Voltage High Warning		0x040000
Main Voltage Low Warning		0x080000
Temperature Warning			0x100000
Temperature2 Warning			0x200000
S4 Signal Triggered			0x400000
S5 Signal Triggered			0x800000
NOte we are currently only using 24 bits of the 32 bits. The unused bits are reserved for future use.

Re: Home switch State

Posted: Thu Jun 13, 2019 5:06 pm
by ejunkins
I am using Basicmicro Motion Stuido, using firmware version 4.1.33. The python library was downloaded on Tuesday 6/11/2019.

Re: Home switch State

Posted: Fri Jun 14, 2019 9:41 am
by Basicmicro Support
The python command to read status returnsxz a 32bit value. Post your code or email support@basicmicro.com and I'll take a look at it.

Re: Home switch State

Posted: Fri Jun 14, 2019 11:30 am
by ejunkins
The function I'm using is:


def _get_Errors(self):
' ''
Gets the error status of the motor controllers

return:
list [2] (int): Error code per motor controller

' ''
errors = [0] * 2
for i in range(2):
errors = self.rc.ReadError(self.address)[1]
return errors

self.address = [0x80, 0x81]

The element [1] of this should be the error code according to the source code,

def ReadError(self,address):
return self._read2(address,self.Cmd.GETERROR)

However even when my limit switches are tripped this value is 0. In fact both values in this are 0 always. But all other roboclaw functions work as expected

Re: Home switch State

Posted: Mon Jun 17, 2019 9:57 am
by Basicmicro Support
Thanks that was the information I needed. Please download the python library from the server again. I've updated it. Apparently, the change was only in the development copy and not put in the release directory yet. It has been now.

Re: Home switch State

Posted: Tue Jun 18, 2019 8:37 am
by ejunkins
Great, all working now, thanks!