0.86 Unable to Calibrate

I installed 0.86 today and tried to run a calibration since my last calibration was on 0.85. Everything runs good until shortly after the last point in the 3x3 grid is measured. The calibration values are saved, but the machine then does an emergency stop without even moving.

After reboot, the belts won’t extend until I put the old config back. It happened 3 times in a row before I just went back to 0.85.

Has anyone else run into this?

Log attached
Maslow-serial-3.log (4.8 KB)

From the log, I appears to be a 9 by 9 grid with dimensions of 2000mm by 1000mm. I would change the calibration grid size to something like 3x3 or 5x5 and run a calibration (the calibration grid dimensions will have to be reduced too). After running that calibration, the newly-calibrated dimensions will get saved into the yaml file. At that point, you can increase the grid dimensions and just run calibration again using numbers that it came up with in the calibration right before. The more points in the calibration grid the more finicky it can also be and the more accurate you need your inputted frame dimensions to be.

1 Like

One thing I forgot to mention was that for 1 of those runs, I re-entered a measurement of my frame, but for the other two I used the values from the last calibration.

I just noticed that the new config file with 0.86 has a default of 7x7 and a smaller calibration area. So, I tried again with the new firmware and the config file provided in the release and got the same error.

Maslow-serial-5.log (4.6 KB)

Interestingly, I mistakenly ran it in horizontal mode even though my frame is vertical and it failed in the exact same manner.

I’ll try again with a 5x5 this time, but it never gets past the 3x3 grid in my runs, very consistently fails.

1 Like

Can you try tweaking the initial values for the frame a bit and see if that changes anything? There seems to be something about the initial guess for the frame size that it’s choking on.

look at the log messages posted, it looks like it’s another case of a 0 size
frame happening.

David Lang

2 Likes

Absolutely, give me a bit to run that.

Here is the config after this happened again on the 5x5 attempt

1 Like

Ok, here are the results of an updated measurement of my frame.

I had been using 2970x2440 and this time I used 2950x2420.

Maslow-serial-6.log (5.0 KB)
maslow-4.yaml (5.3 KB)

Same result

1 Like

Having the same issue. I think the 0 x 0 frame size is because the frame config settings are reset at the beginning of the calibration and it fails after the first 3x3 measurement. Going to try running the 3x3 first and see if that helps.

1 Like

In another thread

The theory is that the file system is full and that is why it does not save correctly.

1 Like

This got me past the 3x3 grid, thanks!

One note, when it would fail the fitness on the 3x3 was around 3.5 or something and now it finished the 3x3 at 2.3 which is odd.

2 Likes

I’ve generated an updated index.html file which should fix the issue: Interstitial Firmware Releases - #323 by bar

Excellent catch! Sorry for the trouble!

1 Like

Wonderful, I won’t be able to try again for a few days, but I look forward to giving it a try!

1 Like

Well, I was able to find some time today to give it a shot and unfortunately, I had the same result :frowning_face:

This is the config afterwards
maslow-4.yaml (5.3 KB)
And the log from the calibration (default 7x7)
Maslow-serial 2.log (5.6 KB)
and a screenshot showing that I do indeed have more space now,

2 Likes

Interesting…hmmm

Let me dive into it today and see what I can figure out.

I don’t know if it’s significant, but I noticed that in the serial log, right before the machine emergency stopped, it output X and Y coordinates for the TL, TR, BL, and BR. The values (x, y) are TL (-2.3, 2420), TR (2933.8, 2416.9), BL (-2.3, 2420), and BR (2933.8, 2416.9). The (i) TL and BL and (ii) TR and BR are identical points, respectively.

1 Like

That for sure seems significant. I’m not replicating the exact same behavior, but I am seeing something going wrong with the way calibration messages are being sent and I’m digging into it.

2 Likes

@md8n Do you have any thoughts on this? It seems like the calibration data is not being relayed to the firmware successfully, but I’m having a hard time understand why. It seems to me like sendCalibrationEvent() is being called with valid data, but it’s throwing the error:

Parsing error: TypeError: can't convert undefined to object
    build_HTML_setting_list http://maslow.local/:62
    process_settings_answer http://maslow.local/:62
    getESPsettingsSuccess http://maslow.local/:62
    http_resultfn http://maslow.local/:56
    onreadystatechange http://maslow.local/:56
    ProcessGetHttp http://maslow.local/:56
    process_cmd http://maslow.local/:56
    http_resultfn http://maslow.local/:56
    onreadystatechange http://maslow.local/:56
    ProcessGetHttp http://maslow.local/:56
    process_cmd http://maslow.local/:56
    http_resultfn http://maslow.local/:56
    onreadystatechange http://maslow.local/:56
    ProcessGetHttp http://maslow.local/:56
    process_cmd http://maslow.local/:56
    http_resultfn http://maslow.local/:56
    onreadystatechange http://maslow.local/:56
    ProcessGetHttp http://maslow.local/:56
    process_cmd http://maslow.local/:56
    http_resultfn http://maslow.local/:56
    onreadystatechange http://maslow.local/:56
    ProcessGetHttp http://maslow.local/:56
    process_cmd http://maslow.local/:56
    http_resultfn http://maslow.local/:56
    onreadystatechange http://maslow.local/:56
    ProcessGetHttp http://maslow.local/:56
    process_cmd http://maslow.local/:56
    http_resultfn http://maslow.local/:56
    onreadystatechange http://maslow.local/:56
    ProcessGetHttp http://maslow.local/:56
    process_cmd http://maslow.local/:56
    http_resultfn http://maslow.local/:56
    onreadystatechange http://maslow.local/:56
    ProcessGetHttp http://maslow.local/:56
    process_cmd http://maslow.local/:56
    http_resultfn http://maslow.local/:56
    onreadystatechange http://maslow.local/:56
    ProcessGetHttp http://maslow.local/:56
    process_cmd http://maslow.local/:56
    SendGetHttp http://maslow.local/:56
    SendPrinterCommand http://maslow.local/:56
    sendCommand http://maslow.local/:56
    e http://maslow.local/:56
    setTimeout handler*e http://maslow.local/:56
    setTimeout handler*e http://maslow.local/:56
    setTimeout handler*e http://maslow.local/:56
    setTimeout handler*e http://maslow.local/:56
    setTimeout handler*e http://maslow.local/:56
    setTimeout handler*e http://maslow.local/:56
    setTimeout handler*e http://maslow.local/:56
    setTimeout handler*e http://maslow.local/:56
    setTimeout handler*e http://maslow.local/:56
    setTimeout handler*e http://maslow.local/:56
    setTimeout handler*e http://maslow.local/:56
    setTimeout handler*e http://maslow.local/:56
    setTimeout handler*e http://maslow.local/:56
    setTimeout handler*e http://maslow.local/:56
    setTimeout handler*e http://maslow.local/:56
    setTimeout handler*e http://maslow.local/:56
maslow.local:62:2102
    process_settings_answer http://maslow.local/:62
    getESPsettingsSuccess http://maslow.local/:62
    http_resultfn http://maslow.local/:56
    onreadystatechange http://maslow.local/:56
    (Async: EventHandlerNonNull)
    ProcessGetHttp http://maslow.local/:56
    process_cmd http://maslow.local/:56
    http_resultfn http://maslow.local/:56
    onreadystatechange http://maslow.local/:56
    (Async: EventHandlerNonNull)
    ProcessGetHttp http://maslow.local/:56
    process_cmd http://maslow.local/:56
    http_resultfn http://maslow.local/:56
    onreadystatechange http://maslow.local/:56
    (Async: EventHandlerNonNull)
    ProcessGetHttp http://maslow.local/:56
    process_cmd http://maslow.local/:56
    http_resultfn http://maslow.local/:56
    onreadystatechange http://maslow.local/:56
    (Async: EventHandlerNonNull)
    ProcessGetHttp http://maslow.local/:56
    process_cmd http://maslow.local/:56
    http_resultfn http://maslow.local/:56
    onreadystatechange http://maslow.local/:56
    (Async: EventHandlerNonNull)
    ProcessGetHttp http://maslow.local/:56
    process_cmd http://maslow.local/:56
    http_resultfn http://maslow.local/:56
    onreadystatechange http://maslow.local/:56
    (Async: EventHandlerNonNull)
    ProcessGetHttp http://maslow.local/:56
    process_cmd http://maslow.local/:56
    http_resultfn http://maslow.local/:56
    onreadystatechange http://maslow.local/:56
    (Async: EventHandlerNonNull)
    ProcessGetHttp http://maslow.local/:56
    process_cmd http://maslow.local/:56
    http_resultfn http://maslow.local/:56
    onreadystatechange http://maslow.local/:56
    (Async: EventHandlerNonNull)
    ProcessGetHttp http://maslow.local/:56
    process_cmd http://maslow.local/:56
    http_resultfn http://maslow.local/:56
    onreadystatechange http://maslow.local/:56
    (Async: EventHandlerNonNull)
    ProcessGetHttp http://maslow.local/:56
    process_cmd http://maslow.local/:56
    SendGetHttp http://maslow.local/:56
    SendPrinterCommand http://maslow.local/:56
    sendCommand http://maslow.local/:56
    e http://maslow.local/:56
    (Async: setTimeout handler)
    e http://maslow.local/:56
    (Async: setTimeout handler)
    e http://maslow.local/:56
    (Async: setTimeout handler)
    e http://maslow.local/:56
    (Async: setTimeout handler)
    e http://maslow.local/:56
    (Async: setTimeout handler)
    e http://maslow.local/:56
    (Async: setTimeout handler)
    e http://maslow.local/:56
    (Async: setTimeout handler)
    e http://maslow.local/:56
    (Async: setTimeout handler)
    e http://maslow.local/:56
    (Async: setTimeout handler)
    e http://maslow.local/:56
    (Async: setTimeout handler)
    e http://maslow.local/:56
    (Async: setTimeout handler)
    e http://maslow.local/:56
    (Async: setTimeout handler)
    e http://maslow.local/:56
    (Async: setTimeout handler)
    e http://maslow.local/:56
    (Async: setTimeout handler)
    e http://maslow.local/:56
    (Async: setTimeout handler)
    e http://maslow.local/:56
    (Async: setTimeout handler)
    e http://maslow.local/:56

I’m still trying to get up to speed on how this new system is working. Does anything jump out to you about where that could be going wrong?

I haven’t fixed the core issue, but I did at least find and fix this bug here: Fix incorrect string generation · BarbourSmith/ESP3D-WEBUI@9df523d · GitHub

That func declaration is:

function sendCalibrationEvent(dataToSend, log = false)

The default for log if it is not supplied is false. However, if log is true then it will do this:

console.log(JSON.stringify(dataToSend, null, 2));

So if logging is on, but dataToSend is not valid JSON then you will definitely get a “parsing error”

JSON has specific requirements that are tighter than Javascript, for example JSON requires double quotes (") around strings and field names, not single quotes ('). There are JSON validators online to check things.

1 Like

I think I got this figured out, but github seems to be down :astonished: so I can’t make a pull request for it

Edit: GitHub is back Fix calibration communication by BarbourSmith · Pull Request #64 · BarbourSmith/ESP3D-WEBUI · GitHub