Holey Webcontrol Testing

So as to not muddle up the Holey Calibration thread, I’m making this for those that want to test the holey calibration in webcontrol.

This is for ‘experienced’ users… like @dlang (needed to tag him to this thread)

First, please make a copy of your webcontrol.json file (it’s in .WebControl) as a backup (this is equivalent to groundcontrol.ini)

This doesn’t currently work with webmcp, so you will need to get to a terminal on your RPI and issue:

docker pull madgrizzle/holeywebcontrol

If all goes well, you should get a digest of:


to run it, you have to type in this command:

docker run -it -v $HOME/.WebControl:/root/.WebControl -p 5000:5000 --privileged madgrizzle/holeywebcontrol python main.py

You’ll get the normal warning about groundcontrol version being 101.25, just click close

You will need to update the firmware using Actions->Upgrade Holey Firmware. You will still get a warning about groundcontrol vs. firmware versions, just click close.

To calibrate, click Actions->Holey Calibration and then click “Cut Holey Calibration Pattern”. Feel free to close off the window at that point so you can see the sled move on the screen. Once done, do the measurements. I’ll update later to include the image file, but here it is:

After collecting measurements in millimeters only… MM ONLY!!!, enter them into the corresponding fields… in MM ONLY!. Click Calculate and wait a few seconds. If nothing bad happens, you’ll get optimized values for height of motors, distance between motors, and left & right chain tolerance. You’ll also get a meaningless calibration error value (I think I just hard coded a 1 at this point). The Accept Results button should become enabled. If good, click Accept Results and hopefully they will upload correctly to the controller.


Oh, and this firmware is incompatible with @joshua’s ground control branch. I had to move two firmware keys to different positions.

1 Like

One question. The optimization uses the kinematics equations from Ground Control (Web Control). Because of this, it has to be the exact same as what is in the firmware. Did you update the kinematics equations?

I didn’t change any equations… just changed the firmware keys of 45 and 46 to 75 and 76.

I believe you mean you didn’t change them from what they are in the holey
branch, correct?

David Lang

I might not be understanding the question. The only thing different between @joshua’s firmware and the one I made was in settings.cpp, I changed 45 and 46 to 75 and 76. None of the variable names changed. In webcontrol, it sends the sled weight and chain elasticity using $75 and $76. That’s the only difference.

In Ground Control, there is a file, kinematics.py. did you update that in Web Control?

Yes. webcontrol doesn’t have the simulator so I just used your branch to pull that in.

I get the same results as you do running that test file.

1 Like

So it looks like $45 (chain elasticity) and $46 (sled weight) were previously committed to stock firmware as hard coded values with firmware keys. I didn’t realize that to be the case since they aren’t in ground control. So it looks like I have to rework optical calibration. If you test this webcontrol version out, you might have to wipe the eeprom to get it to work. I’ll working on moving things around if you all want to wait (@dlang and @johnboiles)

I think I want to get in on this. Which firmware is needed and will the holey branch webcontrol send it to the arduino?

WebControl will flash the arduino for you, including fetching it.

David Lang

1 Like

what sort of ETA are you thinking for the update?

I’ll try to get it updated tonight, but regardless, what’s there will work… just might have to wipe eeprom at some point once the new firmware keys get incorporated into main branch. Nevertheless, I’ll try to rebuild it tonight.

To be technically correct (the best kind of correct*), webcontrol has it already compiled and embedded as a file in the docker. So there’s no “fetching” needed.

*See Futurama episode, S2E14, “Hermes Requisitions His Groove Back”

1 Like

@madgrizzle Just so I’m in the right place, I want to upload the “custom” firmware for WebControl w/holey, right? There are three firmware options.

Is there a “Upgrade Holey Firmware” option? if so, that’s the one.

Yes, but once the holey firmware is in place it triggers the firmware mismatch message. The “some functions will be disabled” part is why I’m double checking.


1 Like

Ideally, until holey calibration is incorporated into the stock firmware, it would present a version number different than the stock firmware… But this is for testing purposes… Since I forked the holey firmware repository, I probably will make that change on my own when this gets pushed as an official webcontrol release.

I just pushed an update version with firmware keys modified. Let me know if there are any issues.