We have been working on our independent Reachy build and have run into some problems with the Luos system.
First issue, after re-routing some power our head gate is completely unresponsive. It doesn't show up in our pyluos-usb-gate discover command at all. I've ensured I am using the correct Luos USB micro port and several different USB cords. It was previously responsive and was driving the DXL board for the antennas just fine.
Second issue is we are adding the Left arm to our Reachy and we are trying to set up that from scratch. I uploaded the latest firmware to the new boards (what I thought was successfully receiving only this error but a successful file download msg:
$bash luos-flash.sh ./GateArm.bin
dfu-util 0.9
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to [<http://sourceforge.net/p/dfu-util/tickets/>](<http://sourceforge.net/p/dfu-util/tickets/>)
dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device...
ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuERROR, status = 10
dfuERROR, clearing status
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 2048
DfuSe interface name: "Internal Flash "
Downloading to address = 0x08000000, size = 88054
Download [=========================] 100% 88054 bytes
Download done.
File downloaded successfully
Transitioning to dfuMANIFEST state
The gate is discoverable using our pyluos-usb-gate discover command. However python hangs and never never returns a new >>>> prompt after the command:
python3
from pyluos import Device
device = Device('/dev/ttyUSB1')
When I Cntrl-C:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/pi/venvs/reachy-env/lib/python3.7/site-packages/pyluos/device.py", line 96, in __init__
self._setup()
File "/home/pi/venvs/reachy-env/lib/python3.7/site-packages/pyluos/device.py", line 150, in _setup
state = self._poll_once()
File "/home/pi/venvs/reachy-env/lib/python3.7/site-packages/pyluos/device.py", line 206, in _poll_once
self._state = self._io.read()
File "/home/pi/venvs/reachy-env/lib/python3.7/site-packages/pyluos/io/__init__.py", line 18, in read
data = self.recv()
File "/home/pi/venvs/reachy-env/lib/python3.7/site-packages/pyluos/io/serial_io.py", line 60, in recv
return self._msg.get()
File "/usr/lib/python3.7/queue.py", line 170, in get
self.not_empty.wait()
File "/usr/lib/python3.7/threading.py", line 296, in wait
waiter.acquire()
Any troubleshooting advice would be greatly appreciated.
Wrong firmware version. See Setting up Luos + Dynamixels
<aside> ⚠️ Also we fried a gate and a DXL board. Be sure never to Loop the power!
</aside>
Problem summary
One Dynamixel motor in the arm chain does not appear when instantiating the arm in PYLUOS. PyLuos only returns "void_dxl" when just this motor is connected. This motor was previously configured successfully, but disappeared for unknown reasons. All other motors in the chain still identify and can be controlled successfully.
Where is the problem seen?