I had my Maslow working alright last year, but replaced the Z axis with the Meticulous Z axis over a couple months and then could no longer get Groundcontrol to build and run (mostly related to January’s py2 deprecation.) I got WebControl working on a RPi Zero W, but got OOM killed with my gcode probably being too big. I swapped out an RPi 4 and WebControl is now behaving pretty well.
Unfortunately, now my X and Y motors are not behaving. I’ve tried 1.26, 1.27 firmware (which appear the same save for some EoF newlines) as well as the Holey firmware. I’ve cleared the EEPROM and re-uploaded quite a few times with the same behavior. I’ve checked all the pins on the motor control shield and they look sound.
The behavior with no load or chain is to turn a ~3 degrees the correct way or ~15 degrees the incorrect way when trying to turn 1 degree. Also, when I press stop in the sprocket interface both motors will turn a small amount. This seems counter-intuitive to me, but I suspect is a problem with the closed loop behavior trying to stabilize on a false target.
Before getting to the sprocket interface the behavior when trying to move 25.4 MM in any direction seemed arbitrary between moving that way, moving that way in only one axis, moving the opposite way, or most often not moving at all but making the motor pid whine noise.
I’m a bit at a loss now. There is no apparent damage to the shield and the same shield power supply was working fine before. What other information would be helpful to troubleshoot this, and/or what investigation have I missed? I have not found an identical set of symptoms after lurking these forums for a few hours.
362.19: 1
362.21: ok
362.27: ALARM: The sled is not keeping up with its expected position and has halted. Click the 'Stop' button to clear the alarm. More information at: https://github.com/MaslowCNC/Firmware/wiki/Keeping-Up
364.75: Message: Unable to find valid machine position for chain lengths 202.51, 200.93 . Please set the chains to a known length (Actions -> Set Chain Lengths)
However when I attempt to set chain lengths it is blocked by the alert.
In the “Set Sprockets” dialog, four clicks on the left motor 1 degree CW results in this gcode in the “Controller Messages” window:
I’m a bit confused by what you are seeing in the “Controller Messages” window. I’m not sure why they would be reporting as W91/W90. What firmware is loaded on the controller? If you are using webcontrol, upgrade to the holey firmware that’s built-in (use Actions->Upgrade Holey Firmware).
I think something is still off in the calibration settings. Basically it is thinking something silly like that the motors are 0mm apart which is leading to unpredictable behavior. At least that’s my hunch.
I didn’t noticed anything odd in the settings and the set sprockets routine calls singleAxisMove which doesn’t involve kinematics/calibration. I think its something really odd with the connection between the RPI and the controller… The W should be a G and the R should be a B and \ should be L. Probably not coincidentally, the ASCII code for W and G differ by only one-bit and same with R and B and \ and L… and its the same bit that differs (5th bit). But I’ve never seen this behavior with webcontrol and an arduino mega… It’s always connected fine. Maybe something to do with parity or stop bits??
The tty connected to the maslow is /dev/ttyACM0. EMF should be of minimal concern on the usb line, its only 1ft long, and the environment has not been noisy during these tests aside from some 802.11 traffic on 2.4Ghz.
I can swap in another rpi4 board and see if the same behavior presents to rule out hardware fault on that side.
That seems to have done the trick, actually. Not sure what’s wrong with the first rpi4 but the replacement behaves correctly. Thanks very much for the help everyone!