Interstitial Firmware Releases

I created a self contained web page that implements the new calibration algorithm Maslow Levenberg-Marquardt Calibrator

@bar @ian_ab please look at this and play around with it

besides the basic calculation, it:

  1. gives you accuracy estimates of the points
  2. lets you change the initial conditions (to see how much having the wrong info to start with causes problems)
  3. lets you set a threshold to throw out points that are too far from fitting
2 Likes

Ran it with the yaml file which was consistently failing before. Fast and no errors.
Maslow-serial - 2026-05-14T150735.783.log (14.7 KB)
Before and after comparison of yaml file. Left before, Belt extn updated prior to running.

2 Likes

Very exciting! I will do some more testing today too!

Here is a slightly updated version which will recover from the case where the solver doesn’t converge more gracefully.

firmware.bin (1.9 MB)
index.html.gz (140.7 KB)

I did have this version crash on me once probably due to watchdog issues, but those are hard to debug so it will take more testing to see if I can figure out what is actually happening

1 Like

maslow.yaml file as supplied in V1.21 appears corupt and ??Z values are all set to 100

1 Like

This ran with maslow.yaml file supplied with V1.20 No Problems. This had previously not been able to get past the 1st 6 waypoints without erroring out.

1 Like

Great catch!

Screen dump of warning messages from Z home Z stop changes

1 Like

@bar as discussed #977 does a path trace when running Find Anchors


1 Like

That looks awesome! Great work!

Thanks. One thing I am having trouble with, I want it to always start on a 2D flat layout looking down, but it goes to the perspective display initially. Any ideas?
Anyone wants to give it a try, Built on the pre-release firmware.
index.html.gz (141.5 KB)
firmware.bin (1.9 MB)

1 Like

Worked it out.
Dropped the WiFi to see what would happen while running Find Anchors


Could be useful to identify WiFi problems.
index.html.gz (141.5 KB)
firmware.bin (1.9 MB)

1 Like

Only problem, the new version of Find Anchors doesn’t produce an array of points, but it definitely works better.

1 Like

It doesn’t produce an array of points?

Ian Abbott wrote:

Only problem, the new version of Find Anchors doesn’t produce an array of points, but it definitely works better.

for ongoing research and debugging, we do need to be able to see what it is
finding as it attempts to calibrate.

Based on the tinkering that I’ve done with the web page that simulates the new
calibration, I think that setting a threshold for outliers (or generating a
histogram and throwing out the outliers from that) will help quite a bit.

I am also not happy with how it can be sensitive to the starting dimensions.

David Lang

Not in the form that the old version did,
CLBM:[{bl:1778.06, br:1811.10, tr:1975.99, tl:1989.71},{bl:1891.77, br:1690.92, tr:1866.53, tl:2101.80},{bl:1979.30, br:1776.17, tr:1766.99, tl:2030.45},{bl:1866.17, …]

I have been testing the new version with a variety of starting points. What I have found is even with values that are nowhere near correct, It has got fairly close on the initial run, and on a subsequent run it produced acceptable results. We need people to test it on a variety of layouts to prove the accuracy. Even values that could not get past the initial 6 points proved acceptable results.
With the points plotting, occasionally, it has stopped drawing to the canvas, refreshing the browser and it continues drawing. Anything previous is lost.

Ian Abbott wrote:

I have been testing the new version with a variety of starting points. What I have found is even with values that are nowhere near correct, It has got fairly close on the initial run, and on a subsequent run it produced acceptable results. We need people to test it on a variety of layouts to prove the accuracy. Even values that could not get past the initial 6 points proved acceptable results.
With the points plotting, occasionally, it has stopped drawing to the canvas, refreshing the browser and it continues drawing. Anything previous is lost.

If you can find the points, please experiment with
Maslow Levenberg-Marquardt Calibrator to see how
different starting dimensions and outlier criterial affect the results.

David Lang

I don’t get what is needed to test on that site. Do you need real data from a working machine? If so, what do I input? Would it be useful just to try numbers and keep a log? If so what inputs should I change?

wouldchuck wrote:

I don’t get what is needed to test on that site. Do you need real data from a
working machine? If so, what do I input? Would it be useful just to try
numbers and keep a log? If so what inputs should I change?

yes, you grab the CLBM line from a find anchors on a working machine (I created
a thread with details of how to do so without disrupting your current config)
and paste them into that top box and hit calculate

you can then change the starting conditions, outlier threshold, and iteration
count and hit calculate again to see if/how the results change

compare these results with your existing anchor coordinates and see how close
they are.

this thread talked about how you can do new calibrations without changing your
existing config (it’s after a more ambitious goal, but the same meachainims
work)

David Lang

1 Like