# Interstitial Firmware Releases

**URL:** https://forums.maslowcnc.com/t/interstitial-firmware-releases/20215
**Category:** Maslow Firmware
**Created:** [March 15, 2024, 5:19pm UTC](https://forums.maslowcnc.com/t/interstitial-firmware-releases/20215 "2024-03-15T17:19:21Z")
**Posts on this page:** 20
**Page:** 17

<div class="post-metadata">

### Author: ![bar](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/bar/32/10_2.png) [@bar](https://forums.maslowcnc.com/u/bar)
#### Post date: [December 2, 2024, 10:17pm UTC](https://forums.maslowcnc.com/t/interstitial-firmware-releases/20215/323 "2024-12-02T22:17:18Z")

</div>

Some folks have noticed that we’re running out of memory to store the index.html file and that is leading to unexpected behavior so I’ve been working to compress the index.html file to be smaller.

I believe that the relievant threads are here:

> [@Incomplete & Weird Cuts - Wits End](https://forums.maslowcnc.com/t/incomplete-weird-cuts-wits-end/22854):
>
> I’m at my wits end. I’ve tried to identify where the error is an i’m at a loss. I haven’t had this problem before. I’m running v.84 The Problem : Maslow has incomplete lettering on this V pocket “S” and makes these pecks way below the “W” when running a Vpocket generated through KrabzCam. Observations: I understand these pecks to be the V pocket doing its thing to result in accuracy however they are WAY off the mark (see picture). Yet when pecking the UI shows them right on the money in …

and

> [@0.86 Unable to Calibrate](https://forums.maslowcnc.com/t/0-86-unable-to-calibrate/22851/11):
>
> 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.

I found that we were storing some unexpected and unnecessary language data in the final result which was making it bigger than it needed to be so I’ve removed that and now we should have quite a bit more free memory to play with.

 ![image](https://canada1.discourse-cdn.com/flex031/uploads/maslowcnc/original/3X/f/d/fd2505b0266eafb44e36be40de7708a5900a5c9b.png)

Any feedback and testing would be greatly appreciated. Here is the updated index.html.gz file:

[index.html.gz](https://forums.maslowcnc.com/uploads/short-url/5PEVHvf64dyk4asdzljFtC8oN53.gz) (110.7 KB)

---

<div class="post-metadata">

### Author: ![dlang](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/dlang/32/859_2.png) [@dlang](https://forums.maslowcnc.com/u/dlang)
#### Post date: [December 2, 2024, 10:40pm UTC](https://forums.maslowcnc.com/t/interstitial-firmware-releases/20215/324 "2024-12-02T22:40:35Z")

</div>

just a note that the big pile of commits that I have submitted will reduce the  
firmware size (by eliminating multiple versions of essentially identical  
functions).

I don’t know if it’s noticable overall, but it’s a bit.

David Lang

---

<div class="post-metadata">

### Author: ![bar](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/bar/32/10_2.png) [@bar](https://forums.maslowcnc.com/u/bar)
#### Post date: [December 2, 2024, 10:42pm UTC](https://forums.maslowcnc.com/t/interstitial-firmware-releases/20215/325 "2024-12-02T22:42:15Z")

</div>

Unfortunately I think that the firmware is a different memory pool, but also one that we want to reduce.

What is the status of those PRs? Are they ready to merge?

---

<div class="post-metadata">

### Author: ![kyleschoen](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/kyleschoen/32/26163_2.png) [@kyleschoen](https://forums.maslowcnc.com/u/kyleschoen)
#### Post date: [December 2, 2024, 11:00pm UTC](https://forums.maslowcnc.com/t/interstitial-firmware-releases/20215/326 "2024-12-02T23:00:43Z")

</div>

I’ll re-calibrate again soon now that this sheet/project is “finished” (didn’t turn out that well) and I can test the new version.

---

<div class="post-metadata">

### Author: ![dlang](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/dlang/32/859_2.png) [@dlang](https://forums.maslowcnc.com/u/dlang)
#### Post date: [December 2, 2024, 11:10pm UTC](https://forums.maslowcnc.com/t/interstitial-firmware-releases/20215/327 "2024-12-02T23:10:33Z")

</div>

Bar wrote:

> Unfortunately I think that the firmware is a different memory pool, but also one that we want to reduce.

I think it’s stored on the same storage.

> What is the status of those PRs? Are they ready to merge?

Yes, you were holding off to wait for the renaming work to settle, but each one  
is compile tested, so you can merge as many or as few as you want in any update.  
Each commit should provide som improvement (if only in code clarity)

David Lang

---

<div class="post-metadata">

### Author: ![md8n](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/md8n/32/28197_2.png) [@md8n](https://forums.maslowcnc.com/u/md8n)
#### Post date: [December 3, 2024, 11:21pm UTC](https://forums.maslowcnc.com/t/interstitial-firmware-releases/20215/328 "2024-12-03T23:21:48Z")

</div>

I’m still working on the ‘de-gulping’ PR for the front-end. It’s turned into a complete rewrite, but that was always a possibility. I’ve kept it up to date with Maslow-Main, so any updates to that will be straightforward for me to merge in.

Currently I’m getting the actual build process to work properly, the bit that specifically replaces gulp. This is the one area where bun is still a little immature. It is an area of focus for their devs right now. But I’ve got my head around the outline of it and I’m progressing through the work arounds.

A criticism that should be made about the front-end code base. Very, very, bad decisions were made in an effort to maintain backward compatibility with older browsers, eg. IE. The approach taken is one that experienced developers (at that time) simply would not have chosen.

Shuffle forward to today, and those past decisions should not, under any circumstance, be honoured. They significantly impact ongoing development. The path forward is to migrate away from those poor decisions as fast as is possible.

---

<div class="post-metadata">

### Author: ![bar](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/bar/32/10_2.png) [@bar](https://forums.maslowcnc.com/u/bar)
#### Post date: [December 3, 2024, 11:33pm UTC](https://forums.maslowcnc.com/t/interstitial-firmware-releases/20215/329 "2024-12-03T23:33:16Z")

</div>

That sounds like a good plan to me, what kinds of things did they do?

---

<div class="post-metadata">

### Author: ![bar](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/bar/32/10_2.png) [@bar](https://forums.maslowcnc.com/u/bar)
#### Post date: [December 3, 2024, 11:34pm UTC](https://forums.maslowcnc.com/t/interstitial-firmware-releases/20215/330 "2024-12-03T23:34:46Z")

</div>

Here is an updated index.html which should fix calibration on 0.86.

[index.html.gz](https://forums.maslowcnc.com/uploads/short-url/rZRgDpPb171HcCc4CfE8NecHpQ1.gz) (110.7 KB)

---

<div class="post-metadata">

### Author: ![md8n](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/md8n/32/28197_2.png) [@md8n](https://forums.maslowcnc.com/u/md8n)
#### Post date: [December 3, 2024, 11:46pm UTC](https://forums.maslowcnc.com/t/interstitial-firmware-releases/20215/331 "2024-12-03T23:46:25Z")

</div>

> [@bar](#):
>
> what kinds of things did they do?

This can best be seen from some of the files from other packages that were pulled into the code base, rather than referenced as dependencies in `package.json`.

This opening comment from `simple-toolpath.js` for example

```auto
// This file was translated from
// https://github.com/cncjs/gcode-toolpath/blob/master/src/Toolpath.js
// by Babel (http://babeljs.io/repl), with preset "stage-2"
// The import and export statements were first removed from Toolpath.js

```

And this from `simple-parser.js`

```auto
// This file was derived from
// https://github.com/cncjs/gcode-parser/blob/master/src/index.js
// by extracting just the parseLine() function and using Babel to
// translate that to older Javascript

```

At that time the best decisions would have been to go straight to TypeScript, because the TypeScript transpiler (even back then) would have allowed you to target any version of Javascript you wanted. And it would do all of this work reliably.

But perhaps the opening comment from `simple-interpreter.js` really spells it out

```auto
/* eslint no-continue: 0 */
// This file was derived from
// https://github.com/cncjs/gcode-interpreter/blob/master/src/Interpreter.js
// as follows:
// a) Removed the import and export sections, and manually translated from
// class syntax to prototype syntax, for compatibility with old browsers
// b) Removed all of the load* methods, replacing them with a single method
// loadFromLinesSync(). Since we know that the interpreter will be called
// twice, first to determine the bounding box (for sizing the canvas) and
// then to render onto the canvas, the gcode string can be broken into an
// array of lines once and that array reused for both passes. This also
// eliminates the need for a parseStringSync() function in simple-parser;
// the only necessary function is parseLine().
// c) Replaced const with var
// d) Replaced arrow functions with real functions
// e) Replaced let with var

```

Everything, apart from perhaps item ‘b’, was a bad decision.

How to support older browsers is an important question. And when that browser is too old, the correct decision is genuinely; “don’t support it”.

So what is too old? Does the browser have significant security issues? Can it meet what’s considered baseline as at about 2 years before now? Does it have its own way of doing things that no other browser does? Answer yes to any one of those questions, then it’s too old, and you need to specifically call it out for people. They need to be helped to upgrade, rather than everyone else be held back.

---

<div class="post-metadata">

### Author: ![dlang](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/dlang/32/859_2.png) [@dlang](https://forums.maslowcnc.com/u/dlang)
#### Post date: [December 11, 2024, 4:18pm UTC](https://forums.maslowcnc.com/t/interstitial-firmware-releases/20215/332 "2024-12-11T16:18:27Z")

</div>

I need to find someone to work with for testing patches. My maslow is a 30 mile drive away (plus setup/teardown time) across Los Angeles traffic, so it’s hard for me to do testing.

---

<div class="post-metadata">

### Author: ![bar](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/bar/32/10_2.png) [@bar](https://forums.maslowcnc.com/u/bar)
#### Post date: [December 30, 2024, 7:15pm UTC](https://forums.maslowcnc.com/t/interstitial-firmware-releases/20215/333 "2024-12-30T19:15:47Z")

</div>

Here is 0.87.1

[firmware.bin](https://forums.maslowcnc.com/uploads/short-url/5kfpe07YbJGDlD4hDP55YTwAJfo.bin) (1.9 MB)

0.87.1 adds an extra measurement at the beginning of the calibration process where the will take a second measurement in the same place as the first measurement but pulling harder the second time.

In theory if the frame has no flex we should see no difference between the two measurements. The result is presented like this:

`[MSG:INFO: Flex measurement: TLBR: 0.199 TRBL: 3.619]`

The TLBR is the amount of flex between the to left and bottom right anchor points and the TRBL is between the top right and bottom left anchor points.

I would love feedback on what kinds of numbers folks see so we can get a sense of what a “good” measurement is and how well the system works.

---

<div class="post-metadata">

### Author: ![tryon](https://avatars.discourse-cdn.com/v4/letter/t/57b2e6/32.png) [@tryon](https://forums.maslowcnc.com/u/tryon)
#### Post date: [December 31, 2024, 6:17pm UTC](https://forums.maslowcnc.com/t/interstitial-firmware-releases/20215/334 "2024-12-31T18:17:39Z")

</div>

[MSG:INFO: Flex measurement: TLBR: 5.331 TRBL: 5.281]  
The final calibration was 0.5313458448276723

I have been having minor issues with the bottom left arm not retracting all the way and have had to up the force on it. I am not sure if it has been the cold or the idler gear, I was doing some cuts in an uninsulated space in sub freezing temps.

It was fun watching the unit shift and hearing the creaking in the frame when the higher tension was applied. Note mine is a torsion box with two slide on wings for the anchor points, similar to the hour glass design.

---

<div class="post-metadata">

### Author: ![bar](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/bar/32/10_2.png) [@bar](https://forums.maslowcnc.com/u/bar)
#### Post date: [January 1, 2025, 10:03pm UTC](https://forums.maslowcnc.com/t/interstitial-firmware-releases/20215/335 "2025-01-01T22:03:03Z")

</div>

Excellent feedback! Thanks for the numbers 😃

---

<div class="post-metadata">

### Author: ![kyleschoen](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/kyleschoen/32/26163_2.png) [@kyleschoen](https://forums.maslowcnc.com/u/kyleschoen)
#### Post date: [January 8, 2025, 4:51am UTC](https://forums.maslowcnc.com/t/interstitial-firmware-releases/20215/336 "2025-01-08T04:51:31Z")

</div>

@bar TLBR: 1.144 TRBL 3.605  
First calibration failed, second gave me TLBR: 0.918 TRBL: 4.029

Going to test with a lower belt tension later and I’ll post here again with those numbers. This is with the stock 1300 retraction force.

---

<div class="post-metadata">

### Author: ![kyleschoen](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/kyleschoen/32/26163_2.png) [@kyleschoen](https://forums.maslowcnc.com/u/kyleschoen)
#### Post date: [January 8, 2025, 5:50am UTC](https://forums.maslowcnc.com/t/interstitial-firmware-releases/20215/337 "2025-01-08T05:50:00Z")

</div>

Roughly 0.5 and 3.1 with a retraction force of 1000 on a vertical frame.

---

<div class="post-metadata">

### Author: ![bar](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/bar/32/10_2.png) [@bar](https://forums.maslowcnc.com/u/bar)
#### Post date: [January 14, 2025, 1:12am UTC](https://forums.maslowcnc.com/t/interstitial-firmware-releases/20215/338 "2025-01-14T01:12:07Z")

</div>

Here is 0.87.2 which is a significant re-write of the calibration system. This removes the need to enter an initial guess for the frame dimensions you now just simply enter how long you want the belts to extend. As long as the belts are long enough to connect to your frame (no need to be centered or anything like that) the calibration process should be automatic from there.

 ![image](https://canada1.discourse-cdn.com/flex031/uploads/maslowcnc/original/3X/3/c/3c1fb57d5aa12a6a1157576b1a7831060ccf2955.png)

This update requires updating both the index.html file and the firmware.bin file

[index.html.gz](https://forums.maslowcnc.com/uploads/short-url/gUpS0kJiZiU5nXkqDAwfMKXw3J7.gz) (113.6 KB)  
[firmware.bin](https://forums.maslowcnc.com/uploads/short-url/aDI9SuVK9Us8AthTD19RDqBUaL5.bin) (1.9 MB)

It still doesn’t do a perfect job and occasionally won’t converge on the correct solution. I’m going to work on making it automatically try again if it fails, but hopefully this is a step towards making calibration more reliable.

As always I would love to hear feedback and thoughts!

---

<div class="post-metadata">

### Author: ![tryon](https://avatars.discourse-cdn.com/v4/letter/t/57b2e6/32.png) [@tryon](https://forums.maslowcnc.com/u/tryon)
#### Post date: [January 14, 2025, 10:26pm UTC](https://forums.maslowcnc.com/t/interstitial-firmware-releases/20215/339 "2025-01-14T22:26:46Z")

</div>

Initial feedback on the Extend Dist field. It took a few guesses of extend/retract to get enough belt length. It would be nice if you could start with an initial number and then hit a button for more belt length so you don’t need to retract and extend again.

Calibration went really weird, starting at y -100, I was not sure what pattern it was following for the first few locations and then failed after the first set of points with a 0.13. It is around 38f in the space where the machine is, which might be too cold. Will try again when it is warmer.

---

<div class="post-metadata">

### Author: ![bar](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/bar/32/10_2.png) [@bar](https://forums.maslowcnc.com/u/bar)
#### Post date: [January 14, 2025, 10:37pm UTC](https://forums.maslowcnc.com/t/interstitial-firmware-releases/20215/340 "2025-01-14T22:37:09Z")

</div>

> [@tryon](#):
>
> then failed after the first set of points with a 0.13.

I’ve seen this before too. I’m working on making it automatically try again when that happens. Starting with less information means that the system is more likely to fail to find an answer. The good news is that it can just try again without needing to re-do any measurements.

Thank you for trying it out!

---

<div class="post-metadata">

### Author: ![bar](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/bar/32/10_2.png) [@bar](https://forums.maslowcnc.com/u/bar)
#### Post date: [January 14, 2025, 11:57pm UTC](https://forums.maslowcnc.com/t/interstitial-firmware-releases/20215/341 "2025-01-14T23:57:12Z")

</div>

Here is an updated index.html file which will make the calibration process automatically recompute if it fails because the value is too low.

Interestingly while testing I found that I was able to actually get higher calibration values using this system by bumping up the requirement threshold for what makes a “successful” calibration. Since the system now recovers if it doesn’t hit the threshold the first time we can set the threshold higher and force it to try harder.

[index.html.gz](https://forums.maslowcnc.com/uploads/short-url/zaj9AHdXP1UwCfsDBsB9dzc1tne.gz) (110.8 KB)

For anyone interested in testing I would recommend skipping the earlier index.html and just using this one. Feedback is super welcome!

---

<div class="post-metadata">

### Author: ![dlang](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/dlang/32/859_2.png) [@dlang](https://forums.maslowcnc.com/u/dlang)
#### Post date: [January 16, 2025, 8:13am UTC](https://forums.maslowcnc.com/t/interstitial-firmware-releases/20215/342 "2025-01-16T08:13:41Z")

</div>

I would suggest (at least as an option) that you just put the belts in comply  
mode and let the user run them out as far as they want to until they tell you to  
tension them.

for vertical mode, you need to have the belts stop so that you can hang the  
machine, but for horizontal mode, there is no reason to only feed out a specific  
amount (other than setting a max amount to avoid going past the end of the belt)

and there is especially no reason to fuss about a belt not being fully extended  
if a user tells you to tension the belts.

David Lang

[Previous page](https://forums.maslowcnc.com/t/interstitial-firmware-releases/20215.md?page=16)

[Next page](https://forums.maslowcnc.com/t/interstitial-firmware-releases/20215.md?page=18)
