RepRapFirmware 3.2 planned improvements
-
@zapta said in RepRapFirmware 3.02 planned improvements:
Any plans to support slicer's (e.g. Prusaslicer) time markers for more accurate time-left display?
Do you mean the M73 command?
-
Any chance of revisiting this topic?
https://forum.duet3d.com/topic/4802/6th-order-jerk-controlled-motion-planning
-
It's on the list for implementation, but IMO it's pointless as long as jerk or junction deviation is needed at corners. The first-order motion components need to be made continuous before or at the same time as worrying about third and high order components.
-
This post is deleted! -
@dc42 Is there anything that a slicer could output to make improved motion planning easier for the firmware?
I've been playing around with IceSL, which requires a LUA script to process the sliced model and generate gcode output. And therefore, we have an opportunity to use the raw, non-truncated, slice geometry data before it is turned to gcode and calculate anything we wish and format it alongside the gcode in any way we wish.
Unfortunately, the underlying slicer does not generate curves. But, we can calculate angles, segment lengths, extrusion rates, etc. in the slicer and offload that from the FW.
I'm currently making a RRF-specific printer profile for IceSL, which is basically just implementing all the features duet users expect, and producing gcode compatible with RRF.
Long story short, we have the possibility now to do high-precision pre-processing of the gcode at the same time that we slice it.
-
Implementation of Variables of GCode Meta Comments would be useful. Or is this function already implemented?
-
@dc42 said in RepRapFirmware 3.02 planned improvements:
Do you mean the M73 command?
Yes, M73. This is what I got from in a 22minutes (estimated) gcode file:
M73 P0 R22 M73 P0 R22 M73 P4 R21 M73 P9 R20 M73 P13 R19 M73 P18 R18 M73 P22 R17 M73 P27 R16 M73 P31 R15 M73 P36 R14 M73 P40 R13 M73 P45 R12 M73 P49 R11 M73 P54 R10 M73 P58 R9 M73 P63 R8 M73 P67 R7 M73 P72 R6 M73 P76 R5 M73 P81 R4 M73 P85 R3 M73 P90 R2 M73 P94 R1 M73 P99 R0 M73 P100 R0
In the early phases of the print probably the remaining time R is more useful for the estimation and in later phase probably the percentage P and actual time so far will give a better estimation.
The markers seem to be in (estimated) 1 minute intervals.
-
I've added M73 to the list for consideration.
-
@dc42 said in RepRapFirmware 3.02 planned improvements:
I've added M73 to the list for consideration.
Thanks.
-
@dc42 said in RepRapFirmware 3.02 planned improvements:
It's on the list for implementation, but IMO it's pointless as long as jerk or junction deviation is needed at corners. The first-order motion components need to be made continuous before or at the same time as worrying about third and high order components.
What is causing that dependance?
-
@dc42, FYI, I run a small experiment correlating the M73 markers with actual prints (replaced them with G10 and M140 that propagated the values to standby fields in the json). Results look very good, both for linearity and absolute time values.
My slicer has default setting, without any calibration for the max speed, acceleration and jerk of my printer.
You can probably run tests much faster using simulator mode.
-
Please add inverted M80/M81 for meanwell PSUs.
I know. I'm inpatient. Is it a lot of work to implement this? -
Could the option be added to set the min limit for behaviours similar to that controlled my M190. A default of 41 seems fine, but ultimately arbitrary, and having the option to hand control of this value to the operator would be nice. M143 sets max limits, perhaps it could be overloaded to support specifying min limits also?
-
@dc42 really looking forward to playing with G5 Bezier curves!
Ian
-
@copystring said in RepRapFirmware 3.02 planned improvements:
Please add inverted M80/M81 for meanwell PSUs.
I know. I'm inpatient. Is it a lot of work to implement this?This is included in the planned work to make the PS_ON pin configurable.
-
Support G5
Does this involve maybe also G15 / G16 ? (I don't know if any slicer know how to use them, I only used them when I wrote code manually on my old milling machine)
-
Maybe I'm just more confused than normal but I don't understand the versioning system.
Is 3.1.0, soon to be 3.1.1, not the latest stable release? If so, why is the next version going to be 3.02? -
@DaveA understandable confusion; the current 3.1.0 was supposed to be 3.01 until about the day it was released, presumably what would be 3.02 will be 3.2.0.
-
@DaveA said in RepRapFirmware 3.02 planned improvements:
Maybe I'm just more confused than normal but I don't understand the versioning system.
Is 3.1.0, soon to be 3.1.1, not the latest stable release? If so, why is the next version going to be 3.02?The next stable release, not counting patch releases such as 3.1.1, will now be called be 3.2.0. I have changed the title of this thread.
-
I'm hoping requests for 3.2 will also be entertained: Extend M409 to allow multiple keys to be requested.
For example, assume something embedded that wants to determine how much time is probably left in a print (using the simulated time) would need to request job.file.simulatedTime as well as job.duration. Having to request the entire 'job' key to 3 levels deep can result in a large buffer. Having to make 2 M409 requests doubles the time needed to get the information.
On the other hand, if M409 supported multiple keys, the request and response could be simplified:
M409 K"job.duration","job.file.simulatedTime"
(For discussion, I've also started a new thread: https://forum.duet3d.com/topic/16450/m409-multiple-keys-at-once)