You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The AnninRobotics v4 stepper motor kit comes with encoders attached to each of the 6 motors for closed loop control. These encoders weren't being used in the original set up (Duet 3 6XD and the 6 external drivers provided with the kit). Closed loop control allows for a world of new possibilities so we need to integrate the encoders somehow!
The solution
Duet3D sells an expansion board that supports closed loop control (the 1HCL). We ordered 6 of them and swapped out the original external drivers for these boards. Not only do these boards allow for monitoring the encoders, but they also provide us with a host of other capabilities, such as...
dynamically setting the motors amperage ⚡️
dynamically setting the microstep value ⏱️
open or closed loop operating mode ♻️
no fiddling with dip switches 🎛️
The process
1. Remove the original external drivers
Remove all wires from each driver
Remove each driver by unscrewing the base from the junction box
2. Prepare the new 1HCL Drivers
Connect each driver, one at a time, to the 6XD main board.
Using DWC's console, issue a M115 B123 command and check for the appropriate response from the 1HCL
Next, update the firmware by issuing the M997 B123 command (the board should restart and send a success message to the console).
Assign the 1HCL a new address by issuing the M952 B123 A50 where the value A is the desired new address (I've mapped joints 1-6 to addresses 50-55).
Cycle the power on the main board and confirm the 1HCL is available / responding at the new address by sending M122 B##. The response will also include the current firmware version the board is running, check to make sure it matches that of the main board.
Mount each 1HCL to a bracket using the included washers and M3 machine screws.
Prepare (6) ~2 inch long segments of power cable for the power bus.
Prepare (6) ~2 inch long segments of 2 or 4 wire telephone cable for the CAN bus (make sure the polarity is correct. When looking at the cable, lying flat on a table, one ends jack should face up while the other ends jack should face down).
Assemble the 1HCL Daisy chain by connecting the power and CAN bus cables to the underside of each board.
Install the drivers onto the junction box mounting panel.
3. Wire It Up
The original external drivers used screw terminals, the 1HCL uses JST connectors.
Crimp the stepper motor cables and install the wires in the JST plug in the correct orientation.
Attach each joints' motor wires to it's respective 1HCL (top center of the board)
Crimp and install each joints encoder cables to a 5 pin JST plug (because we're using a differential encoder, we only need the A+ and B+ signals, if you followed the wiring guide in the AR4 manual then the following applies).
Encoders 1-3 are on the top most ethernet cable
Joint 1 = orange twisted pair
Joint 2 = blue twisted pair
Joint 3 = green twisted pair
Encoders 4-6 are on the middle ethernet cable
Joint 4 = orange twisted pair
Joint 5 = blue twisted pair
Joint 6 = green twisted pair
Plug each encoder into the respective 1HCL
Attached the top most 1HCL's CAN In to the main boards CAN bus
Attach power to bottom most 1HCL (or wherever is convenient from a cable routing perspective).
4. Power It Up
Check wiring continuity and check for potential shorts! ⚡️💨
Plug in and turn on 🤞
The 1HCLs red lights should all sync up and start flashing at a slow steady pace of once per second.
Using DWC, ensure you can communicate with each board by issuing the M115 B## command to each board at its respective address (50-55, in my example).
5. Updating The Config File
For each Joint follow the example config below and tune to your specific set up!
Note: I'll be uploading a complete Config.g file for the AR4 once I get everything tuned / set up properly.
M569.1 P50.0 T2 C5 R100 I0 D0 ; Configure the 1HCL board at CAN address 50 with a quadrature encoder on the motor shaft that has 5 steps per motor full step.
M569 P50.0 D4 S1 ; Configure the motor on the 1HCL at can address 50 as being in closed-loop drive mode (D4) and not reversed (S1)
M584 X50.0 ; Map 50.0 to the X Axis...
M917 X0 ; Set the closed loop axes to have a holding current of zero
M350 X32 ; Set microstepping to 32 to make full use of the encoder resolution
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
The problem
The AnninRobotics v4 stepper motor kit comes with encoders attached to each of the 6 motors for closed loop control. These encoders weren't being used in the original set up (Duet 3 6XD and the 6 external drivers provided with the kit). Closed loop control allows for a world of new possibilities so we need to integrate the encoders somehow!
The solution
Duet3D sells an expansion board that supports closed loop control (the 1HCL). We ordered 6 of them and swapped out the original external drivers for these boards. Not only do these boards allow for monitoring the encoders, but they also provide us with a host of other capabilities, such as...
The process
1. Remove the original external drivers
2. Prepare the new 1HCL Drivers
M115 B123
command and check for the appropriate response from the 1HCLM997 B123
command (the board should restart and send a success message to the console).M952 B123 A50
where the value A is the desired new address (I've mapped joints 1-6 to addresses 50-55).M122 B##
. The response will also include the current firmware version the board is running, check to make sure it matches that of the main board.3. Assemble the 1HCL Driver Daisy Chain
3. Wire It Up
4. Power It Up
M115 B##
command to each board at its respective address (50-55, in my example).5. Updating The Config File
Beta Was this translation helpful? Give feedback.
All reactions