RepRapFirmware 3.01beta1 released
-
@kraegar said in RepRapFirmware 3.01beta1 released:
My initial round had two && in one line, which caused the duet to hard crash and reboot.
Can you provide that version, so that I can fix it?
-
This post is deleted! -
Here is the version that works well:
M561 ; clear any existing bed transform ; If the printer hasn't been homed, home it if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed G28 G1 Z7.5 ;Run initial 4 point leveling routine G30 P0 X15 Y45 Z-99999 G30 P1 X15 Y227.5 Z-99999 ;G30 P2 X235 Y125 Z-99999 S3 G30 P2 X235 Y227.5 Z-99999 G30 P3 X235 Y45 Z-99999 S3 while true if iterations = 5 abort "Too many auto calibration attempts" if move.initialDeviation.deviation < 0.01 if move.calibrationDeviation.deviation < move.initialDeviation.deviation + 0.005 if move.calibrationDeviation.deviation > move.initialDeviation.deviation - 0.005 break echo "Repeating calibration because initial deviation (" ^ move.initialDeviation.deviation ^ "mm) must be < 0.01" echo "and (" ^ move.calibrationDeviation.deviation ^ "mm) must be within 0.005 of initialDeviation" G30 P0 X15 Y45 Z-99999 G30 P1 X15 Y227.5 Z-99999 ;G30 P2 X235 Y125 Z-99999 S3 G30 P2 X235 Y227.5 Z-99999 G30 P3 X235 Y45 Z-99999 S3 echo "Auto calibration successful, deviation", move.calibrationDeviation.deviation ^ "mm" echo "Auto calibration successful, initialDeviation", move.initialDeviation.deviation ^ "mm" G28 Z G1 X0 Y0 F24000 ; move the head to the corner (optional)
And removing the nested if's to replace with && crash it
if move.initialDeviation.deviation < 0.01 && move.calibrationDeviation.deviation < move.initialDeviation.deviation + 0.005 && move.calibrationDeviation.deviation > move.initialDeviation.deviation - 0.005 break
Edit: I realize I could just have some major syntax issues, still figuring this out. But that's a hard crash if you do that
-
@carlosspr Solved. I was missing M584 drive mapping on config.g
-
@kraegar said in RepRapFirmware 3.01beta1 released:
And removing the nested if's to replace with && crash it
Thanks, I've reproduced the crash by adding that line to my own script. I will look into it. Even if you do make a syntax error, you should get a helpful error message.
PS - now I know that the new crash handler I added for uncaught exceptions works!
Last software reset at 2020-01-15 16:35, reason: Terminate called, spinning module GCodes, available RAM 9464 bytes (slot 2)
-
Trying to test if move.initialDeviation.deviation is 0.000
if move.initialDeviation.deviation != 0 echo "one " ^ move.initialDeviation.deviation
I've tried using 0.000 as well, with the same result. == 0.000 or == 0 doesn't match, even though it is.
(I'm trying to determine if leveling has been run at all yet, my only clear method for now is to see if initial and calirbated deviation and mean are all 0.000)
-
Just done some tests. There is a problem with equality between floats.
The other problem you had is because the GCode line was too long. I changed it to throw an exception when that happens, but the exception isn't caught.
This is all very new code, so I was expecting some bugs.
-
Yep, I'm just playing, happy to just keep reporting. Variables will clean the code up a lot, but that's a big ask
-
Once variables are implemented, if they're "system wide" and not constrained to the macro they're called in, I would set a "is_level = false" in config.g, and set to true once leveling is run. Negating the need for this method of checking.
But I can't resist playing
-
Thanks for your reports. These two issues are now fixed in the latest builds at https://www.dropbox.com/sh/3azy1njy3ayjsbp/AACquxr2m00eV568RZg5QG5wa?dl=0.
-
Can I just say, HUGE thank you!
I've already made a script to tune PA, Temp, and Extrusion % (just call the macros via layer change) as well as the auto-leveling and a "pre-print" systems readiness check.This is amazing!
-
Float comparisons are now working, and the other errors gracefully:
Error: in file macro, line 20 column 1: GCode command too long
Thanks!
-
Thanks for confirming. FWIW, maximum GCode line length excluding leading white space, line number and checksum (if present) and comments is currently 160 characters.
-
We're going to need line numbers in the file editor in DWC now
-
Can I use that new duet2combinedfirmware.bin on my maestro? The 3.01 was duetmaestrofirmware.bin.
-
@4lathe
It's still DuetMaestroFirmware.bin -
@dc42
Hi David, maybe I have found a bug....
For testing I was back on 2.05 on a Maestro (DWC 2.06) and I was not able to get back directly to 3.01b.
Flashing 3.0 stable worked. -
@DIY-O-Sphere said in RepRapFirmware 3.01beta1 released:
For testing I was back on 2.05 on a Maestro (DWC 2.06) and I was not able to get back directly to 3.01b.
Read the upgrade notes!
-
@dc42 said in RepRapFirmware 3.01beta1 released:
Thanks for confirming. FWIW, maximum GCode line length excluding leading white space, line number and checksum (if present) and comments is currently 160 characters.
Are you sending them via text message???
-
@dc42 said in RepRapFirmware 3.01beta1 released:
Read the upgrade notes!
Sorry....The one who can read is in advantage