Main or expansion - pseudo step / dir
-
I know there is the 1xd board available for external stepper drivers, but we are looking at an unconventional system that already has the Duet 3 main, 2 3HC expansion boards, and several other boards all communicating. We just need 3.3v pins anywhere on the Duet system that can flicker a logic 1/0 and be configured like a stepper.
Can any developers explain why none of the I/Os can be configured as a step/dir with M590? We are also trying to communicate directly with the external Odrive controller by CAN, but the CAN FD is different and it's slowing us down.
We can make low level pin changes to the firmware if necessary.
-
We looked into controlling ODrives and we determined that the best approach would be to use the second CAN port on the Duet 3 to talk CAN (non-FD) protocol to them. There is some core work that needs to be done in the 6HC firmware before we can do this, which involves a significant amount of work. We are not aware of any other demand for using the second CAN port at present, so it's not likely to happen very soon unless an OEM customer helps to fund it.
The step generation code is highly optimised, in particular all step pins are allocated on the same port group so that steps pulses can be generated quickly. The I/O ports are spread across several different port groups.
A small number of users have tapped into the step and direction outputs of the internal drivers via the test pads on the underside of the 6HC, although doing so voids the warranty.
HTH David
-
@dc42 We are currently communicating with the Odrive by UART through an intermediary Arduino Due. The data rate is slow and inconsistent; we are trying to read incremental encoder data (angle) from the Odrive by sending the string back to the Arduino from the ODrive, and then from the Arduino to the Duet 3.
We also have everything connected and working with a USB hub.
I wasn't aware if a second CAN on the Duet, we were studying the CAN FD to see if it can read data from a standard CAN 2.0.
We have also made significant changes the DWC to allow for 10 axis control, where you can drag a simulated machine axis on the screen and the real machine will move to that position.
I think if we are not able to get the CAN or an I/O to work for step/dir, we may just void the warranty on one of the expansion boards that is connected (which gives A/B/C steppers) and read those stepper signals while turning off the drivers, such that the step/dir signal will control the Odrive servo, but the actual stepper motors connected to A/B/C will not move.
I'll try to get a video or pictures of our system and modified DWC to post here later.