I set the sprockets vertical with a small level sitting on top of a chain on the sprocket. There is a little bit of play in the gear, so then I set it level with some pressure on the chain towards the sled (sled is removed, counterweights are attached) . I set to zero a few times, and then rotated 360 degrees. It wasn’t coming out perfectly vertical, so then I removed the tension (manually pulling towards the sled) and set it again.
The directions say “If the 'Extend Chain Distance is a multiple of 6.35 mm, there should be a tooth perfectly vertical after extending the chains.”
The left one is coming out as in the picture. The right is almost that far off.
The chain pitch is set to 6.35, the advanced settings are set to default except for extend chain distance which because it is a 12 foot beam is set to 2032 (My beam is raised and after extending x shows a small negative value and y value is coming out at 150 should I lengthen?) Chain length is at 3360 (about 11 feet although my chain is longer, should I change this?)
I would guess that the corrections for chain sag/stretch are happening at the
wrong point in the calculation and that’s what’s throwing off the sprocket
positioning.
This probably is an accuracy issue, but it may require a re-think of the
firmware core to correct. I think that such a re-think is probably a good idea
to deal ith the floating point precision issue as well.
This is just before calibration. Web control .927, holey firmware. Just upgraded to .932 web control.
Edit: I had clicked on triangular calibration and accepted the default values, so I could move the sled around to check for interference and to check counterweights a few days ago without actually calibrating. I just wiped the controller eprom and the settings and position. Could that have done it?
How do I reset the Arduino and web control (on rpi) to default? Erase controller eprom, erase controller settings, erase controller settings and position, and delete webcontrol.json file?
That’s very odd, but chain tolerance would affect it… but it would need to be really, really high to cause that much of a change over a single 360-degree rotation. If you rotate CW 360 and then rotate CCW 360, does it return back to zero?
Ok… yes chain tolerance might cause that. I think I can adjust for that in webcontrol when you do a chain reset (it only becomes an issue if you have to reset your chain lengths and you do it by resetting the marked links)
OK, I erased the webcontrol.json file to see if I did anything bad by accepting the default calibration to get the sled to move in playing with it, before I actually calibrated.
Came up as new installation, just reset chain length to 2032. Set vertical and rotated right sprocket 50 times. Came up vertical, by eye. Extended chain to to 2032mm, right sprocket turned just over 32 times. 32 X 6.35mm = 203.2mm. X10 = 2032.
OK, good to go. Guess I could actually rotate it back in increments to find out how many fractions of a degree it went past, in case I ever have to do a manual chain reset, and rotate it back by the same amount.
Make sure I understand… chain tolerances for both left and right was 0 and when you extended 2032, the right turned a little more past vertical but left was spot on?
Chain tolerance are set to zero. Right turned a little past vertical when extended to 2032. I didn’t try the left sprocket today at all.
Just assumed today that revolving 360 degrees, actually causes a 360 degree revolution, and assuming something is compensating for chain sag when extend out to 2032.
Webcontrol 0.932, and upgraded Arduino via webcontrol to Holey firmware. Although the Arduino may have been upgraded to Holey firmware via webcontrol 0.927.
The function to rotate 360 degrees uses the same commands (in essence) as the extend 2032 mm. For the 360 degree rotate, it calculates the distance to turn the motor (10 * 6.35 mm = 63.5mm) and sends a command to do a ‘singleAxisMove’ of that distance. The command does not use the kinematics so things like chain tolerance is not a factor. The extend 2032 mm command uses the same ‘singleAxisMove’ command but uses the 2032 mm value from the Settings. I would think you’d be more likely to see an error if you did the 360 rotation 32 times versus a single 2032 mm extend command (maybe due to rounding, etc.) Can you download the diagnostics file from Actions and email it to me? madgrizzlemaslow at gmail dot com.
I think you might be running into a firmware issue but what is interesting is that after you did the last extend and pressed stop, the controller thought the right chain was 2032.35 mm long… which is about 2 degrees past vertical. You picture suggests maybe 5 degrees. It’s odd its coming up long…
I’m not sure what the problem is. I don’t think its webcontrol though.
I went through the code and put a simplified representation of singleAxisMove into SMath Studio, a mathematical spreadsheet kind of thing, and played around with it, don’t see anything to give me the variance it is getting.
Hooked up a spare arduino to my laptop running webcontrol with faker servo on, and wiped out the eprom on the arduino, deleted the webcontrol.json file, using default settings zeroed the chains, and extended the fake chains (1651 mm) and get (extraneous lines removed):
239.01: Setting Chain Lengths To:
239.02: Left: 0.00mm
239.03: Right: 0.00mm
239.07: ok
247.04: Sent: B02 L0 R1
247.05: B02 L0 R1
247.06: Measuring out right chain
384.57: 1649.90mm I expect to get 1651 here, a difference of 1.1mm
(I did this on my real Maslow with default values and it returned 1649.92mm
and setting extend chains to 2032 on Fake Maslow:
787.04: Setting Chain Lengths To:
787.05: Left: 0.00mm
787.06: Right: 0.00mm
787.10: ok
802.09: Sent: B02 L0 R1
802.10: B02 L0 R1
802.11: Measuring out right chain
971.36: 2030.88mm a difference of 1.12
(real Maslow gives 2030.90mm)
So I’m getting similar results on two different setups, real Maslow is running an raspberry pi 3b+, . WebControl 0.932, with Holey Firmware. Also used default firmware, same thing. Fake Maslow laptop running Windows 10, WebControl 0.932, Holey Firmware.
Don’t think it is WebControl either. Not even sure if it is significant, but wanted to go through the WebControl and Arduino firmware, to see if I could follow what it was doing. Interesting it shows in simulation with FakeServo on.
Yeah, this is something I looked at quite a bit sometime ago and couldn’t figure out why it does what it does. It’s definitely something in the firmware though.