Issue Calibrating - "Pull chain tight and measure" doesn't stop pulling


I’m in my first week of trying to setup the maslow cnc. Amongst the many issues i’m having… the biggest is that I can’t measure the chain from motor to motor.

When I get to the step where i am ready to “pull chain tight and measure”… I click on the button only for the motors to pull the chain from both sides until the chain gets ripped off. The motors don’t stop… and they dont’ measure. What the fuck.

Has anyone else had this issue?

I tried to enter in the measurement manually, but when I enter “measure chain manually”, i click on the button and it says “chain measured successfully”.

Not too happy with this setup. But if anyone can help me get through this part I’d greatly appreciate it.

Welcome to the Forum!
Sorry to read about your issues. To narrow this down, it needs to be taken step by step.

  • First, what GroundControl version are you using and on what operating system?
  • Second, is this your first calibration attempt or one of several?
    Errors like this i’ve seen in the past from incorrect entering of measurements and confusing ‘top-feed’ with ‘bottom-feed’. More information of your setup is required. A copy of your groundcontrol.ini from your ‘user-folder’ could also help.

Regards, Gero


Hi Gero,

Thank you for the assist.

My GroundControl version is 1.25. I know there’s a 1.26 out there, but not yet for windows.

For the attempts, I’ve attempted many. I think I’ve run through the calibrated process nearly 10 times now, all failing to calibrate.

Here’s the Groundcontrol.ini data…

[Computed Settings]
distperrot = 63.5
kpposmain = 1300
kiposmain = 0
kdposmain = 34
propweightmain = 1
kpposz = 1300
kiposz = 0
kdposz = 34
propweightz = 1
kpvmain = 5
kivmain = 0
kdvmain = 0.28
kpvz = 5
kivz = 0
kdvz = 0.28
chainoversprocketcomputed = 1
fpwmcomputed = 3
kinematicstypecomputed = 2

[Maslow Settings]
bedheight = 1219.2
openfile = C:\Users\User\Desktop\Maker\Project Files\Maslow-Logo-master\Maslow-Logo-master\gcode\Maslow
motoroffsety = 368.2
sledwidth = 310
zaxissafeheight = 5
bufferon = 0
bedwidth = 2438.4
comport = COM3
macro1_title = Macro 1
sledheight = 139
macro2 =
macro1 =
zaxis = 1
sledcg = 79
macro2_title = Macro 2
colorscheme = Light
zdistperrot = 3.17
motorspacingx = 2937.05

[Advanced Settings]
rotationradius = 152.4
chainextendlength = 1650
kiv = 0
gearteeth = 10
spindleautomate = None
kdvz = 0.28
chainsagcorrection = 0
chainpitch = 6.35
chainlength = 3360
propweightz = 1
zencodersteps = 7560.0
maxfeedrate = 800
enablepospidvalues = 0
rightchaintolerance = 0
enablevpidvalues = 0
maxtouchprobeplungedistance = 0.0
kpvz = 5
kdposz = 34
chainoversprocket = Top
kpposz = 1300
fpwm = 490Hz
kdpos = 34
encodersteps = 8113.73
truncate = 0
homex = 0.0
homey = 0.0
kinematicstype = Triangular
kipos = 0
kdv = 0.28
kiposz = 0
digits = 4
kppos = 1300
kpv = 5
propweight = 1
positionerrorlimit = 2.0
kivz = 0
leftchaintolerance = 0

[Ground Control Settings]
zoomout = pagedown
centercanvasonresize = 0
viewscale = .45
zoomin = pageup
validextensions = .nc, .ngc, .text, .gcode

[Background Settings]
backgroundfile =
manualreg = []

1 Like

bedheight = 1219.2
bedwidth = 2438.4
motoroffsety = 368.2
motorspacingx = 2937.05
rotationradius = 152.4

Looks normal for me. Your slack chains are on the sides and you have the ‘ring-kit’ to mount the chains?

Did you do the ‘Test motors and encoders’ test and does that pass?
A ‘semi-connected’ plug can also cause strange behaviour.
The Arduino can also get in some ‘strange state’ where nothing else helps then to do a ‘clean start’.
Clean start: Use the ‘Wipe Eeprom’ from the ->Actions ->Advanced, close GC, unplug and replug everything and start over. Deleting or renaming the GC.ini is even cleaner, but i can’t see any fault in the one you posted.


I think this is an excellent suggestion (much like all of @Gero’s suggestions) and that is where I would start.


Hi all. Thank you for the help. I’ve been slammed with accounting homeowrk and haven’t had a chance to use your feedback. I appreciate you both and will give it a shot asap.

Thank you again for the help.


I’m having issue now with the firmware not loading.

Since my last thread post, I’ve used that computer for work and am using a new computer now to keep permanently with the cnc. So now I have new issues.

When loading the firmware, this is the error message I am getting.

Arduino: 1.8.9 (Windows 7), Board: “Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)”

Sketch uses 56864 bytes (22%) of program storage space. Maximum is 253952 bytes.
Global variables use 2009 bytes (24%) of dynamic memory, leaving 6183 bytes for local variables. Maximum is 8192 bytes.
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
An error occurred while uploading the sketch

This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.

I’ve figured it out.

While trying to compile in Arduino, i was getting the error message (above) of

avrdude: stk500v2_getsync(): timeout communicating with programmer

For anyone that is having this issue!!!
There is a good chance that your usb chord is not connecting properly. This is how you check…

The arduino board should have two cables connected to it. One is power and one is USB. When the power chord is plugged in properly a light will turn on. When the USB chord is plugged in properly, another light will turn on confirming the connection… BUT!!. there is a third light that you need to check in order to verify that the USB chord is not only plugged all the way in, but is also communicating with the computer. The third light is located on the bottom circuit board, so you have to look through the circuit boards to see if a light is flashing. The light needs to be flashing! A flashing light will tell you that the computer is able to communicate with the board.

Now… if the third light is not flashing then most likely your ‘upload’ on arduino won’t compile, and you’ll keep getting the error. What I did was simply unplug and replug the USB cable in until I got the flashing light… and then it worked.

So there you go.


Cnewton, unfortunately I can relate and this was frustrating me as well. Thanks for posting what fixed this for you.
I am a newbie with arduino so this is probably common sense for everyone else, but maybe this will help at least one other person. When I checked my “3rd light”, it was actually blinking but it was still failing to upload. Turns out it was all user error/inexperience because I had Ground Control running when trying to do the upload.
Sooo…if anyone else is experiencing this issue, and cnewton’s post did not help, make sure Ground Control is NOT running when you try to upload the latest firmware. :crazy_face:



I am going through calibration with Holey GUI (with v1.26 merged in) and have the exact issue as the topic subject. Unlike other posters, I have all lights on/flashing normally. Arduino is connected, motor tests passed, setting 12 o’clock in the calibration process went fine. Extending chain for pull-tight went fine.

When I press “Pull Chain Tight and Measure” the left motor sounds different, which is concerning (I’m avoiding removing the motor and inspecting the gears). What I don’t understand is, @Joshua what prompts GC to stop the motor, measure and then retract a little bit? Since this isn’t happening, I’m not getting the “Next” button on the screen. If I have a motor issue, is the fw or gc looking for some specific current threshold that represents “stalled”?

1 Like

I haven’t looked into it to much, but I believe GC just pushes a chain retract command to 100%. When it stalls, it reads the chain length.

I am not sure I am answering your question.

When I had one motor sound different, it was a loose connection between the Arduino and the motor. I wiggled the wire, and it went away.

1 Like

As far as i remember it gives max power for 3 seconds on the ‘Pull Tight’. There is no power measurement or stall recognition.

1 Like

Okay, that makes sense. I skipped the step and it used the number I already had in there, so I wonder if the 3 seconds is not being counted? I say this because I could still hear the motor making noises.
Can anyone point me to the part of the GC code that does this?

I’ve experienced the ~30kg not stopping myself with a past release and it did not end well for my self made motor mounts. I tried but could not replicate it. From my memory, you are the first to report the same after me. Wondering if you could extract that part of the log. Since we neither create a new log each time we start GC and we don’t have ‘time stamps’ in the log, this might be difficult, depending on how long after you still run GC.

I will take a look. Actually I’ve never looked for it. Is it in the GC folder somewhere or same folder as the ini file?

In the GC folder, log.txt

Hope i did my edit fast enough :grin:

1 Like

Maslow/fw-test/GroundControl-master1.27/CalibrationWidgets/ #pull the left chain tight

Line 106 to 110.

def pullChainTightAndMeasure(self):
    #pull the left chain tight"B11 S255 T3 L ")
    #request a measurement"B10 L")

From the little i know the S255 is full power and the T3 is 3 seconds. B10 L seems to request the length of the left chain. All without guaranties :slight_smile:

Edit: On linux i use the following command to search for text within a file. Excellent documentation within the code has given me good result, even without knowing the names of the variables.

grep -rnw ~/Maslow/fw-test/GroundControl-master1.27 -e ‘pull’ > pull.txt

The result:

The .txt file in this example will be written in the folder you start it from a terminal.


log.txt (973.6 KB)
I have not looked at it yet. Time to help the Mrs unload groceries and make dinner. Maybe tonight.


5 more days to stay alive at work ahead and late tonight +booze. Will be back for for it!

1 Like

Still not in sleeping mode…:beers:
Lines 12167 - 12208 are of high interest! Thanks!
Seems to be the last ‘pull’ in your log from my side.
There are a couple of “B11 S255 T3 L” in the log and many have a error message behind, that is not conclusive (just for me in this case).