@supertb1
it dawned on me that I probably would have to disconnect the encoder from the 1HCL board as well... you guys did a great job on these boards... very smart...lol
Hmm you should never need to disconnect the encoder from the board unless you want to - the board should work in open-loop mode without anything needing to be disconnected, and you shouldn't need to disconnect it to cycle power or anything.
That yes to the closed loop enable was there before I updated the 1HCL board to the latest firmware and now at power up it reports "no" to the close loop enable
Righty I'm just looking over your config.g
, it's been posted a few times, so let me just re-post here so that we're all looking at the same thing:
G4 S3 ;wait for expansion boards to start
M569.1 P50.0 S1 T2 C20 E20 R100 I0 D0 ; Configure the 1HCL board at CAN address 50 with a quadrature encoder on the motor shaft that has 20 steps per motor full step.
M569.1 P51.0 S1 T2 C20 E20 R100 I0 D0 ; Configure the 1HCL board at CAN address 51 with a quadrature encoder on the motor shaft that has 20 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), Open loop (D2) and not reversed (S1) X axis
M569 P51.0 D2 S1 ; Configure the motor on the 1HCL at can address 51 as being in closed-loop drive mode (D4), Open loop (D2) and not reversed (S1) Y axis
M569 P0.0 S1 ; physical drive 0.0 goes forwards Z 1-2 axis
M569 P0.4 S1 ; physical drive 0.4 goes forwards Extruder
M584 X50.0 Y51.0 Z0.0:0.1 E0.4 ; set drive mapping
M671 X-122.25:689.20 Y0:0 S3.0 ; leadscrews at left (connected to Z0) and right (connected to Z1) of X axis
M350 X32 Y32 Z32 E16 I1 ; configure microstepping with interpolation
M92 X106.5 Y257 Z795.00 E339.00 ; set steps per mm
M566 X900.00 Y900.00 Z60.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
M203 X6000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min)
M201 X500.00 Y500.00 Z20.00 E250.00 ; set accelerations (mm/s^2)
M906 X1000 Y3000 Z3000 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout
M917 X0 Y0 ; Set the closed loop axes to have a holding current of zero
The first thing that jumps out is line 5:
M569 P51.0 D2 S1 ; Configure the motor on the 1HCL at can address 51 as being in closed-loop drive mode (D4), Open loop (D2) and not reversed (S1) Y axis
Your comment says it's closed loop, but the actual command is using D2
, which is an open loop mode.
However, your line above using P50.0
is correct, and that seems to be the driver you have been using, so I assume you are aware of this and this is all fine.
It might be worth only having one closed loop board plugged in at a time whilst we're diagnosing this issue. Just to rule out issues like them accidentally sharing a CAN address or something like that.
I suspect the problem here is line 2:
M569.1 P50.0 S1 T2 C20 E20 R100 I0 D0
This might be our fault - that particular command has gone through a number of changes, and it should have been updated in all the docs - except we seem to have missed this section! So if you've copy-pasted from that, this may be where our issues are coming from - I'll update that page now.
The GCODE dictionary page for M569.1 is definitely correct though, so I'll re-write your M569.1 command from first principles:
- Your motor driver is 50.0 - so P50.0
- Your encoder is a quadrature on motor shaft - so T2
- From googling your motor serial number, you have this motor? That page gives a 'resolution' of 1000. No units though, how helpful. I'll assume that's CPR. That motor is also 200 step/rev, so we do 1000 รท 200 = 5 - so C5
- Sensible error thresholds are maybe 5 & 10 - so E5:10
- We'll leave R,I,D as default so you don't need to include them for now
Putting that all together:
M569.1 P50.0 T2 C5 E5:10
I suspect when your config.g file was running, it was erroring at your M569.1 command - so never getting to M569 to turn the 'no' to 'yes' in M122.
It might be worth running M98 P"config.g"
manually and seeing if any errors come back. Then, change your M569.1 command for my M569.1 command, run M98 P"config.g"
and hopefully no errors will come back.
Once that's done, turn it off and on again, and you should be good to go