Using firmware 2.2.1 with pyuarm 220.127.116.11 and I’m finding some strange behaviours that I thought would be useful to document.
- Using set_position(x,y,z,speed,relative) with the relative=True is currently always returning False.
I’ve found that the only way to avoid this and actually control the robot in relative terms is to set speed=0. If speed is not zero, the uArm returns error “E10”; which is undocumented in the new protocol pdf.
- get_analog and get_digital do not appear to be parsing the uarm response correctly.
Outputting the raw response from the uarm reveals that the uarm is reading the analog pin correctly: “$4 OK V473”; however the value returned from get_analog is always None. This is the same for get_digital().
Looking at uarm.py, this appears to be due to these functions parsing the data using the method for the old communication protocol?
To others, if you’re trying to use the new pyuarm and finding issues with non-functioning read functions, check the raw response in uarm.py and check this matches with the parsing method. If you find non-functioning command functions, try experiment with parameters…