Interstitial Firmware Releases

I had a similar thing happen to me the first time I went to run the new firmware, I assumed my belts got snagged on something and reran the retract all /extend all command. After that the center point deviation was fine.

1 Like

I just retested but this time I did a calibration run before trying to Home the machine. The calibration succeeded, it moved to the Home position smoothly without slack. When I pressed Tension, it moved to the center. I then loaded a file, pressed Play and it immediately locked up.

Calibration complete
Calibration values:
Fitness: 0.7347495925629822
Maslow_tlX: -19.0
Maslow_tlY: 2139.8
Maslow_trX: 2213.9
Maslow_trY: 2137.9
Maslow_blX: 0.0
Maslow_blY: 0.0
Maslow_brX: 2237.7
Maslow_brY: 0.0
A command to save these values has been successfully sent for you. Please check for any error messages.
[MSG:INFO: Setting z-stop position]
[MSG:INFO: Measured waypoint 49]
[MSG:INFO: Measured waypoint 50]
CLBM:[{bl:1536.23, br:1549.66, tr:1540.75, tl:1560.41},{bl:1441.82, br:1462.40, tr:1642.20, tl:1654.77},{bl:1294.76, br:1610.21, tr:1781.78, tl:1538.51},{bl:1398.47, br:1699.72, tr:1689.94, tl:1422.63},{bl:1515.47, br:1797.00, tr:1599.28, tl:1313.74},{bl:1643.08, br:1667.59, tr:1440.84, tl:1450.79},{bl:1781.93, br:1539.15, tr:1293.82, tl:1607.75},{bl:1691.17, br:1423.22, tr:1397.06, tl:1698.60},{bl:1600.43, br:1314.07, tr:1514.00, tl:1795.50},{bl:1519.16, br:1213.70, tr:1635.80, tl:1899.70},{bl:1350.96, br:1363.78, tr:1758.25, tl:1778.97},{bl:1192.76, br:1531.55, tr:1888.00, tl:1659.49},{bl:1048.85, br:1704.27, tr:2029.72, tl:1556.71},{bl:1157.93, br:1777.80, tr:1938.40, tl:1426.57},{bl:1279.71, br:1859.17, tr:1847.86, tl:1300.75},{bl:1406.60, br:1949.12, tr:1765.44, tl:1180.67},{bl:1536.07, br:2045.09, tr:1692.36, tl:1068.15},{bl:1642.41, br:1913.51, tr:1517.29, tl:1203.57},{bl:1760.23, br:1780.34, tr:1349.17, tl:1362.58},{bl:1890.41, br:1660.60, tr:1190.95, tl:1529.57},{bl:2031.19, br:1557.50, tr:1047.11, tl:1702.04},{bl:1940.76, br:1427.38, tr:1155.49, tl:1775.76},{bl:1850.10, br:1301.44, tr:1277.47, tl:1856.94},{bl:1767.51, br:1181.10, tr:1405.71, tl:1946.29},{bl:1694.23, br:1068.24, tr:1535.50, tl:2042.88},{bl:1631.58, br:966.37, tr:1667.35, tl:2144.47},{bl:1448.84, br:1117.78, tr:1767.40, tl:2021.41},{bl:1271.47, br:1288.22, tr:1877.25, tl:1896.28},{bl:1101.77, br:1465.86, tr:2000.91, tl:1784.76},{bl:944.15, br:1647.15, tr:2134.30, tl:1689.68},{bl:805.34, br:1829.23, tr:2275.85, tl:1613.96},{bl:919.72, br:1885.35, tr:2188.85, tl:1473.68},{bl:1046.53, br:1951.33, tr:2098.47, tl:1335.46},{bl:1178.62, br:2025.06, tr:2015.21, tl:1200.15},{bl:1315.59, br:2107.80, tr:1940.00, tl:1068.73},{bl:1454.32, br:2197.20, tr:1873.80, tl:942.94},{bl:1590.08, br:2288.86, tr:1817.60, tl:825.11},{bl:1676.00, br:2161.03, tr:1631.26, tl:951.92},{bl:1768.45, br:2024.29, tr:1448.62, tl:1114.45},{bl:1878.22, br:1898.77, tr:1271.07, tl:1284.23},{bl:2000.95, br:1786.91, tr:1101.34, tl:1460.39},{bl:2134.75, br:1691.36, tr:943.49, tl:1640.10},{bl:2275.89, br:1615.16, tr:804.61, tl:1823.75},{bl:2190.45, br:1474.77, tr:917.86, tl:1882.07},{bl:2099.84, br:1336.54, tr:1046.25, tl:1945.99},{bl:2016.33, br:1201.07, tr:1177.84, tl:2021.64},{bl:1940.85, br:1069.55, tr:1312.95, tl:2104.46},{bl:1874.34, br:943.55, tr:1454.14, tl:2193.28},{bl:1817.80, br:825.55, tr:1594.41, tl:2290.02},{bl:1271.43, br:1287.55, tr:1877.07, tl:1896.17},{bl:1536.48, br:1550.76, tr:1540.66, tl:1559.23},]
Computing… This may take several minutesFitness: 0.7422713 in 100
Fitness: 0.7422713 in 200
Fitness: 0.7422713 in 300
Fitness: 0.7422713 in 400
Fitness: 0.7422713 in 500
Fitness: 0.7422713 in 600
Fitness: 0.7422713 in 700
Fitness: 0.7422713 in 800
Fitness: 0.7422713 in 900
Fitness: 0.7422713 in 1000

Calibration complete
Calibration values:
Fitness: 0.7422713041699392
Maslow_tlX: -19.0
Maslow_tlY: 2139.9
Maslow_trX: 2213.9
Maslow_trY: 2137.9
Maslow_blX: 0.0
Maslow_blY: 0.0
Maslow_brX: 2237.7
Maslow_brY: 0.0
A command to save these values has been successfully sent for you. Please check for any error messages.
[MSG:INFO: Setting z-stop position]
[MSG:INFO: Calibration complete]
[MSG:INFO: Measured waypoint 0]
[MSG:INFO: Center point deviation: TL: 0.086 TR: 0.075 BL: -5.583 BR: -11.209]
[MSG:INFO: Center point deviation: TL: 0.086 TR: 0.075 BL: -5.583 BR: -11.209]
[MSG:INFO: Center point deviation within 15.000mm, your coordinate system is accurate]
[MSG:VRB: Mount_sd]
[MSG:DBG: /SD/Paddleboard Lift-2.nc found]
[MSG:DBG: path /SD/Paddleboard Lift-2.nc CT text/html hash ]
[MSG:VRB: Unmount_sd]

This is super weird. I have never seen that message before. It seems like it is deciding to disconnect the SD card which is obviously not what we want

OK, I tried another test this morning but things got weirder. I unplugged and restarted my Maslow. I did Retract/Extend and the in the process of extending the machine locked up. I’ve included the logs from that attempt but not sure there is anything there to give a clue. I then power cycled again. This time the belts seemed to extend fully and I hooked up the machine. But when I tried to Tension, it was evident the machine had crashed again. I couldn’t save the logs for that attempt - the UI wasn’t responding either. (Note that I hadn’t yet hit Test to set the timeout to 10. Also note that I have Verbose logging turned on - could that be why I see “unmount_sd” but you haven’t seen it previously?)

Could I have a bad controller?

Serial Messages
Index.html Version: 0.82
[MSG:DBG: WebSocket 0 from 192.168.68.174 uri /]
[MSG:VRB: Cannot open file /littlefs/macrocfg.json]
[MSG:VRB: Cannot open file /littlefs/macrocfg.json.gz]
[MSG:DBG: /macrocfg.json not found]
[MSG:VRB: Cannot open file /littlefs/404.htm]
[MSG:VRB: Cannot open file /littlefs/404.htm.gz]
[MSG:DBG: /404.htm not found]
[MSG:DBG: /preferences.json is cached]
[MSG:INFO: Channel auto report interval set to 50 ms]
[MSG:INFO: FluidNC v0.82 (change-timeout-on-test-0b4c8725-dirty)]
[MSG:INFO: Compiled with ESP32 SDK:v4.4.7-dirty]
[MSG:DBG: Spiffs mount failed: ESP_FAIL]
[MSG:INFO: Local filesystem type is littlefs]
[MSG:INFO: Configuration file:maslow.yaml]
[MSG:DBG: Running after-parse tasks]
[MSG:DBG: Checking configuration]
[MSG:INFO: Machine Maslow S3 Board]
[MSG:INFO: Board Maslow]
[MSG:INFO: UART1 Tx:gpio.1 Rx:gpio.2 RTS:NO_PIN Baud:115200]
[MSG:INFO: SPI SCK:gpio.12 MOSI:gpio.11 MISO:gpio.13]
[MSG:INFO: SD Card cs_pin:gpio.10 detect:NO_PIN freq:8000000]
[MSG:INFO: Stepping:Timed Pulse:4us Dsbl Delay:0us Dir Delay:0us Idle Delay:240ms]
[MSG:INFO: Axis count 3]
[MSG:INFO: Axis X (-2438.400,0.000)]
[MSG:INFO: Motor0]
[MSG:DBG: Initializing motor / limits…]
[MSG:INFO: Axis Y (-1219.200,0.000)]
[MSG:INFO: Motor0]
[MSG:DBG: Initializing motor / limits…]
[MSG:INFO: Axis Z (-100.000,0.000)]
[MSG:INFO: Motor0]
[MSG:DBG: Initializing motor / limits…]
[MSG:DBG: TMCStepper Library Ver. 0x0x703]
[MSG:INFO: tmc_2209 UART1 Addr:0 Step:gpio.15 Dir:gpio.16 Disable:NO_PIN R:0.110]
[MSG:INFO: Motor1]
[MSG:DBG: Initializing motor / limits…]
[MSG:INFO: tmc_2209 UART1 Addr:1 Step:gpio.46 Dir:gpio.38 Disable:NO_PIN R:0.110]
[MSG:INFO: Z Axis driver test passed]
[MSG:DBG: Z Axis StealthChop]
[MSG:DBG: CHOPCONF: 0x0x18000053]
[MSG:DBG: COOLCONF: 0x0x0]
[MSG:DBG: TPWMTHRS: 0x0x0]
[MSG:DBG: TCOOLTHRS: 0x0x0]
[MSG:DBG: GCONF: 0x0x1c4]
[MSG:DBG: PWMCONF: 0x0xc10d0024]
[MSG:DBG: IHOLD_IRUN: 0x0x11108]
[MSG:INFO: Z2 Axis driver test passed]
[MSG:DBG: Z2 Axis StealthChop]
[MSG:DBG: CHOPCONF: 0x0x18000053]
[MSG:DBG: COOLCONF: 0x0x0]
[MSG:DBG: TPWMTHRS: 0x0x0]
[MSG:DBG: TCOOLTHRS: 0x0x0]
[MSG:DBG: GCONF: 0x0x1c4]
[MSG:DBG: PWMCONF: 0x0xc10d0024]
[MSG:DBG: IHOLD_IRUN: 0x0x11108]
[MSG:INFO: Kinematic system: Cartesian]
[MSG:INFO: Using spindle NoSpindle]
[MSG:INFO: Connecting to STA SSID:811BassLake]
[MSG:INFO: Connecting.]
[MSG:INFO: Connecting…]
[MSG:INFO: Connecting…]
[MSG:INFO: Connecting…]
[MSG:INFO: Connecting.]
[MSG:INFO: Connecting…]
itializing motor / limits…]
[MSG:DBG: TMCStepper Library Ver. 0x0x703]
[MSG:INFO: tmc_2209 UART1 Addr:0 Step:gpio.15 Dir:gpio.16 Disable:NO_PIN R:0.110]
[MSG:INFO: Motor1]
[MSG:DBG: Initializing motor / limits…]
[MSG:INFO: tmc_2209 UART1 Addr:1 Step:gpio.46 Dir:gpio.38 Disable:NO_PIN R:0.110]
[MSG:INFO: Z Axis driver test passed]
[MSG:DBG: Z Axis StealthChop]
[MSG:DBG: CHOPCONF: 0x0x18000053]
[MSG:DBG: COOLCONF: 0x0x0]
[MSG:DBG: TPWMTHRS: 0x0x0]
[MSG:DBG: TCOOLTHRS: 0x0x0]
[MSG:DBG: GCONF: 0x0x1c4]
[MSG:DBG: PWMCONF: 0x0xc10d0024]
[MSG:DBG: IHOLD_IRUN: 0x0x11108]
[MSG:INFO: Z2 Axis driver test passed]
[MSG:DBG: Z2 Axis StealthChop]
[MSG:DBG: CHOPCONF: 0x0x18000053]
[MSG:DBG: COOLCONF: 0x0x0]
[MSG:DBG: TPWMTHRS: 0x0x0]
[MSG:DBG: TCOOLTHRS: 0x0x0]
[MSG:DBG: GCONF: 0x0x1c4]
[MSG:DBG: PWMCONF: 0x0xc10d0024]
[MSG:DBG: IHOLD_IRUN: 0x0x11108]
[MSG:INFO: Kinematic system: Cartesian]
[MSG:INFO: Using spindle NoSpindle]
[MSG:INFO: Connecting to STA SSID:811BassLake]
[MSG:INFO: Connecting.]
[MSG:INFO: Connecting…]
[MSG:INFO: Connecting…]
[MSG:INFO: Connecting…]
[MSG:INFO: Connecting.]
[MSG:INFO: Connecting…]
[MSG:INFO: Connected - IP is 192.168.68.159]
[MSG:INFO: WiFi on]
[MSG:INFO: Start mDNS with hostname:http://maslow.local/]
[MSG:INFO: SSDP Started]
[MSG:INFO: HTTP started on port 80]
[MSG:INFO: Telnet started on port 23]
[MSG:VRB: Mount_sd]
[MSG:VRB: Unmount_sd]
[MSG:INFO: Retracting all belts]
[MSG:INFO: Bottom Right pulled tight with offset -0.021]
[MSG:INFO: Bottom Left pulled tight with offset -0.075]
[MSG:INFO: Top Right pulled tight with offset -1.170]
[MSG:INFO: Top Left pulled tight with offset -2.051]
[MSG:INFO: Extending all belts]

Here is 0.83.1 which disables the over-current warnings again. You will still see a message, but the cut will not be interrupted.

firmware.bin (1.9 MB)

1 Like

Here is 0.84.1 which adds an option to slightly scale in X or Y to allow for more precise cuts. It does this by adding the Scale_X and Scale_Y settings with the acceptable input range being .8 to 1.2.

The way it can be used is that if you have a 1000mm square but when it is cut it is coming out 999mm in the x direction then setting Scale_X to 1000/999 = 1.001 will fix it.

This is very much an imperfect solution, since the real solution is to find the original source of the scaling issue, but it may be useful as a temporary measure.

Updating the maslow.yaml file is necessary for the change to work.

maslow.yaml (3.4 KB)
firmware.bin (1.9 MB)

Feedback is very welcome on how well it works and if it’s a useful feature!

3 Likes

This was very necessary for me as I want to use the machine for prototyping cabinets.
I am happy this has been introduced but the option to set the values from the web interface are not clear / missing. Is there a new index.html.gz? I have just been editing the yaml directly.

Some feedback on my experience.

  • The y calibration ratio was as expected, I was able to get to within around 1/32" over 36".
  • The x calibration ratio was not as expected. For me it seemed perhaps 2x more aggressive. e.g. 1000/1001mm would yield an actual adjustment of 2mm.
  • The new yaml defaults for callibration grid were too aggresive for my floor anchors. The calibration appeared to be above the 0.45 threshold until the very last optimization step where it tanked from around 0.6 to 0.38.

Unrelated maybe but with the new firmware I am hammered by 15mm error. This is horrible, I just bought a second set of controllers and a second main board before the new prototype became available.

I have some issues with the 0.84 release. Earlyer i ran the maslow with the 0.69.x release and it worked fairly good. Sometime’s a hard stop out of nowhere but i had a good fitness and the results where also good. Now i had some spare time and i was thinking how about a firmware update.
But with that i ran into some loose belts issues. After taking slack, all the belts are tight but when i run a program or do some jogging the lower right arm/belt is getting loose. and the results aren’t that accurate anymore. I’am convinced that in the future this will be sorted out :slight_smile: but in the meantime i want my old firmware back. i had a backup on my laptop an even downloaded a new 0.69 file from github but i can’t get it installed. when i do the update firmware on the maslow UI it will update but after the restart it tells me that the index file is missing, but i can’t get it uploaded is will complety crash. I fixed this with the installer file from the 0.84 update with a direct usb connection. and i’am on 0.84 again. Tried different approches,like first updating the maslow and index file, then the firmware update. I checked that the index is a .gz file an so on. but no luck. Is there a way to do a firmware downgrade with the installer connected with the USB? i can’t find it on github. Note: i’am not a software guru, more a hardware kind of guy :slight_smile:

Try deleting your maslow.yaml file and uploading a fresh version. I had the exact same issue of loose belts post firmware update. I think it sometimes gets corrupt during calibration somehow.

When you calibrated, did you take the bit out and lower the z down as far as it would go? I made the mistake before of calibrating with the bit in and it caused the belts to go slack since it didn’t know how much belt to let out and take in when raising and lowering.

I’m having the same issue. I also uploaded a yaml file but to no avail.

I read that in your topic earlier so i already tried it, but maybe i was doing it wrong. I made a backup of de yaml file, did a power reset, and uploaded de backup file to the maslow. because i was thinking all the calibration data is stored in the yaml file, or am i wrong here?

@Andith: Yes i did. :slight_smile:

A fresh downloaded file worked for me. Downloading and re uploading the same file probably wouldn’t work. You can look at your calibration settings and enter those numbers into the new file so you don’t have to calibrate again.

1 Like

Here is firmware 0.84.2. I would like to make this a full release, but since I haven’t had time to test it yet I’d like to put it here for feedback. The credit for all of the changes here go to @dlang

The changes in this firmware are primarily aimed at accuracy improvements.

There are two changes.

1st - This firmware now adds math which accounts for the Maslow4 belt not being angled over the entire distance. The arms extend out a little before the belt begins to slope. This is particularly important when cutting close to the top left corner.

2nd - We were not correctly projecting the belt lengths into the XY plane when doing calibration. This firmware fixes that.

BOTH index.html.gz and the firmware need to be updated to get the benefits of this update, and calibration needs to be run.

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

I would love to hear feedback from anyone who tries it out.

8 Likes

what branch in the repo is this?

It’s this one: Project and account for arm stiffness by BarbourSmith · Pull Request #160 · BarbourSmith/FluidNC · GitHub

Thanks, I was looking for a branch to clone to start working on additional enhancements. But I can wait until it’s merged

One of those enhancements was to make a function like measurementToXYPlane(). :slight_smile:

Other things I’m looking at:

  1. make measurementToXYPlane take into account the current Z position
  2. make xyPlaneToMeasurement() (the reverse of the new function you added)
  3. There are quite a few places that call getPosition() to get the belt length, I was planning to go through all of them and see how many could be replaced by measurementTOXYPlane() so that the numbers being used are the same (I worry that some of the “can’t move” errors are caused by the mixing of belt length and projected length)
  4. make the arm and anchor length variables be able to be overridden by maslow.yaml (if not there, default to the current values, writing out the current values if a save is done)
  5. add a per-corner belt offset. This could be used both to add extensions to a belt (for large frames) and to be able to put a clamp on the belt to shorten where fully retracted is (allowing full retraction without detaching the belt from an upper corner). Including instructions for how to make the machine measure this.
  6. add an option for Z to not move (arms around a tube fixed to the sled rather than to the spindle)
  7. add an option for the arms to not be centered on the spindle (like that machine that spools out belts from the four corners). This would probably need a different calibration
1 Like

Have been hotly anticipating this.

@bar, @dlang can you clarify, with the corrected projection into xy, do we still need the x y scale fudge factor or was this fixed with the new release?

1 Like

To be determined, we need to do more testing to understand better.

Right now this branch doesn’t incorporate the XY scaling, but it would be an option to include it too

Bar wrote:

Right now this branch doesn¢t incorporate the XY scaling, but it would be an option to include it too

My suspicion is that XY scaling is not the way to go, I suspect that what we
will need instead is belt length scaling (compensating for the belts streching)

But the bug this fix is correcting for would have resulted in the sled being
slightly closer to the anchor than the machine thought it was.

But this is why we need people to test it :slight_smile:

David Lang

2 Likes