Maslow Home Maslow Community Garden

Optical Calibration Demo and Three Hours Working on a Bug


When that’s sent, it tells the firmware to write the matrix to eeprom. Something happens and it chokes on it and the arduino resets… but seemingly after the eeprom is saved. I don’t readily see anything unique about what is being done in the firmware, other than a much larger amount of data is saved.

We can test things out by having the eeprom save differently. Right now, the routine saves the entire structure, but we may be able to change it to save the actual values, one at a time, to the eeprom. It will be slower, but maybe more reliable.

What caused ground control to crash? Was there an error? Was this during the calibration?


“O” for "O"ptical :eyeglasses:


I think that’s true when looking at the x-error where lines are columns and when looking at the y-error when lines are rows. I don’t think it’s true however when looking at the x-error where lines are rows (my first graph). I think linear slope there represents a difference in the spacing of the test pattern and what the machine thinks the spacing of the test pattern should be. We can validate this very easily by changing the scale value and running through a single line of calibration.


‘Froze’ would have been the more accurate term. I got the macOS beach ball spinner. So I killed the app. The sled was continuing to move. I think it probably would have been fine if I had waited for the move to complete before re-opening ground control. I think the Arduino reconnecting mid-move causes the position to not get saved to eeprom. Now I know


I think both of the y-error charts show a consistent 1-2mm clockwise tilt. Very small, but visible. Values on the right of those graph are lower than the left


No, but watching with great interest. It’s exciting to watch, thanks for letting us follow along.


I’ll have to think about it a lot to figure it out, but with the slope in my data, it’s hard to imagine the pattern is off by so much to cause that if we are actually fixing the x-scale with the x-scale value.


Actually, I think this might be part of the problem. What are you entering as your scale values?

Edit: Nm that question… I was look at it wrong.

I wonder if I have a chain issue. All my attempts at previous calibration using chain tolerance suggested one chain was longer than the other. I might switch the chains and see if I get the same results.


Your pattern isn’t necessarily off/wrong, but the machine’s view of the pattern is. If your machine moves 2.9 inches when told to move 3 inches, it would cause this kind of slope.

I think this could be from mismatched chain length as you mentioned. Or possibly from not having the sprocket vertical when extending the chain. Possible chain sag compensation could be affecting this as well.


I ran the measurement routine with calibratation+interpolation turned on to see where I’m at. There were two points near the middle where the Y value was terribly wrong. I reran calibration in that spot and the problem went away, but I’m not sure what caused it to start with (bugs flying around perhaps… I did see one within the camera at a point). X is very good, Y is pretty good (much better than uncalibrated). This was all done with horizontal scanning. I can see if the results differ tomorrow with vertical scanning. And then I’ll see if I can get my HDPE sheet cut out and installed to see its effect.


I’m going to try a cut! Do you recommend trying curve fit or interpolation?


If you have no irregularities in data, I’d use interpolation.


I enabled interpolation and did a cut for a friend who is building a table that folds into a wall.

Overall it came out great. The y dimension was spot on to within my ability to measure (whereas my previous cuts were off 3-6mm in the y dimension). The width at the top of the work piece was also spot on to within my ability to measure. The bottom width came up 1/16" short of the expected 29.5". I’m wondering if this could be related to chain sag since more chain is fed out at the bottom. My camera holder has been way lighter than the router, so it’s possible that has an effect. Overall, though, it’s the most accurate cut I’ve made on my maslow :tada:

My BBs came in the mail today, so I can add weight my camera holder. I wasn’t able to get it exactly the weight of the router (~5.9lb) but much much closer than it was. I’ll run another calibration with this heavier camera mount and see if I get any difference.

Does the PWM frequency affect the heat of the motor chips?

That’s awesome results. As you know, the extremes of the board are the most problematic. I suspect a skirt might improve the situation for the bottom.

But yes, having a good analogue for the router will help.


Definitely. It’s not pictured well here but I slid over the work piece so that I would be cutting near the center of the machine (the plywood hung off the left of the machine). But yeah it was still pretty near the bottom


I found 10 pounds (call it 4+ kg) of (lead) reloading shot on eBay for around $30 - half of that shipping. You might be able to find a better deal at a local sporting goods supply. A couple or three pounds added to all those BBs should bring you up to the router’s weight.

Back when my girls were still home the oldest decided she wanted to shoot sporting clays. After a couple visits to the shotgun shell store I became a reloader. If you were closer I could loan you some #8 (I think…) shot, still have half a bag left over. If you have a friend that’s into reloading they might be a good source.


Cool, yeah i’ll either move to lead, or make my model a little bit bigger to hold a bit of extra weight. Good idea


@madgrizzle I ran another two calibrations today. On the second one, on the very last calibration point, the sled undershot the square by a couple of inches and GroundControl froze. I killed the app then reopened and it didn’t look like it saved my values from that run unfortunately. Have you seen that before? I’m running the calibration again as we speak. I’ve run this enough and feel confident enough my machine isn’t going to destroy itself, so I’ve just taken to running calibrations while doing other things. Values look similar to the other night though i’m interested in why my x-error seems to be more varied than it was two days ago.


Hmm this time it got about halfway through the calibration then I got a Killed 9 error and kivy closed :confused:

 Analyzing Images
Sending: G90
Sending: G0 X8.9955 Y0.0972
Killed: 9

Before this happened I noticed that the UI locked up – though the calibration still kept running for at least another 15 minutes after the UI locked up. Perhaps the OS killed the app when it wasn’t responsive for too long. This makes me think we need to move some of the image processing to a separate thread or greenlet. This should also get rid of the hiccups in the video that happen while images are processing.

I’m going to restart my computer and give it another go.


Dang, I take it for granted that it’s normal for people to buy things that I sometimes find in the trash… I once found a huge autoclave (or similar) in a dumpster, the door lifted vertically like a sash window, the counter-weight for the huge door was a ~26"x5"x5" rectangular stainless steel box that I would estimate weighed around 100 pounds. I was intrigued and for some reason I find a use for heavy weights all the time…so I scavenged it. When I got it home I opened the lid and found it was about 60% full of solid lead and the rest was filled with lead shot (presumably so they could balance the weight of the door accurately). So that’s where I got my ~30 pounds of lead shot, that’s probably not very helpful for anyone, but it’s a fun story! :slight_smile: