I see the same behavior - the motors whine but do not move. - Cancel that, the motors move, but by a very small amount.
Something left in the eeprom?
Same thing here, motors wouldnt move⌠just had another gc open and when I closed, it worked.
Are you saying that a different release of GC worked with the PID_Tuning firmware?
Well I apologize everyone. Not sure why things are so different, thank you so many people for trying.
Is it possible there is some distinction with the pcb versions? I have the first release, not a beta. Anyone else also on a non-beta board?
Kinda grasping at straws here.
No just saw that the old gc was still open after installing firmware and gc, making pid changes then running(trying w motors barely moving.)
One weird thing though, I went back in settings in new gc and top pid was switched to off. Switched back on and motors moved normally.
My GC version is reported as .91 and the Firmware reports .90. Still trying to figure out what this could be.
I have 3 pcbs all bought from maslow store in past 2 months
I found what I was doing wrong - the âEnable Custom PIDâŚâ switches were off. Once turned on, the sled moves as expected in response to the arrows. Havenât run any test files yet, but the movement issue was âoperator headspace errorâ im my case
Phew, well that is a relief at least something happens for someone.
I have also discovered an error in the delay time calculation for straight line moves. It was contributing to some of the vibrations and was causing a slow down of about 50%. With that fix, I am able to use the regular P_on_E setting without any KI at all with some really good results and no sign of Iterm windup. So apologies, I may have better settings yet to come.
Even better settings yet to come sounds exciting!
Iâm still seeing the same issue I was before where the machine doesnât want to move.
Iâve got my settings set up to match yours
And I can see that they are actually getting pushed to the machine, but no movement.
Iâm sure the issue is
in my case as well, but Iâm not sure what the error is.
Using the PID_Tuning firmware, if I use an arrow to move the sled as soon as communication is established, thereâs time for one movement before getting a âConnection Timed Outâ. After the connection is re-established, the firmware has lost itâs location and sends the wrong position data in the chatter with GC.
I donât know what is going on, I kinda suspect there is some other issue with pushing settings to the machine.
But in order to try and limit this down, I broke up a number of my commits that shouldnât cause issues into small topics that can be merged into master and submitted pull requests for those branches.
One other thing that people may want to try, is to set the new tunings, and then restart GC. It might be an issue with needing to flush the Iterm when updating the tunings and a restart will do this.
I agree that it feels like a separate issue with how settings are pushed to the machine. Breaking it into multiple pull requests is a great idea. We can go through and find which one is giving us trouble and hopefully find out why the settings arenât pushing
Not sure I understand, but I created a macro to print the motorGearboxEncoder.getPIDString values and they seem to change to follow the Custom PID Values toggles.
Well that is half of it. If you can figure out a way to print out axis.getPIDString() that would give us the other PID values.
If those are both correct, I am really stumped
I probably misspoke; Iâm printing axis->getPIDString for each axis. Iâll look into getting the motorGearboxEncoder values. Sorry for the confusionâŚ
â
if(gcodeLine.substring(0, 3) == âB15â){
//print PID values
Axis* axis = &rightAxis;
// Serial.println(F("âPID Position Test Startâ"));
Serial.println(âAxis=â + axis->motorGearboxEncoder.name());
Serial.println(axis->getPIDString());
axis = &leftAxis;
// Serial.println(F("âPID Position Test Startâ"));
Serial.println(âAxis=â + axis->motorGearboxEncoder.name());
Serial.println(axis->getPIDString());
axis = &zAxis;
// Serial.println(F("âPID Position Test Startâ"));
Serial.println(âAxis=â + axis->motorGearboxEncoder.name());
Serial.println(axis->getPIDString());
}
â
It is entirely possible that this isnât an issue, but this code should work
if(gcodeLine.substring(0, 3) == âB15â){
//print PID values
Axis* axis = &rightAxis;
// Serial.println(F("âPID Position Test Startâ"));
Serial.println(âAxis=â + axis->motorGearboxEncoder.name());
Serial.println(axis->getPIDString());
Serial.println(axis->motorGearboxEncoder.getPIDString());
axis = &leftAxis;
// Serial.println(F("âPID Position Test Startâ"));
Serial.println(âAxis=â + axis->motorGearboxEncoder.name());
Serial.println(axis->getPIDString());
Serial.println(axis->motorGearboxEncoder.getPIDString());
axis = &zAxis;
// Serial.println(F("âPID Position Test Startâ"));
Serial.println(âAxis=â + axis->motorGearboxEncoder.name());
Serial.println(axis->getPIDString());
Serial.println(axis->motorGearboxEncoder.getPIDString());
}