New Firmware Settings - Which is Master?

Posts: 36
Joined: Tue Jul 17, 2018 2:45 am

New Firmware Settings - Which is Master?

Postby TheDude » Sat Dec 01, 2018 9:15 pm


I'm trying to understand the relationship between the firmware settings, such as acceleration or jerk control vs the Ideamaker slicer directives. Which one rules? Firmware or Ideamaker GCODE export? If both are enabled, which one does the printer follow?

Please advise at your soonest.

Thanks all!

User avatar
Posts: 443
Joined: Sat Nov 26, 2016 12:54 am
Location: Borås, Sweden

Re: New Firmware Settings - Which is Master?

Postby Noren » Sun Dec 02, 2018 11:58 am

The sethings in the printer is used if you haven’t checked the acceleration and jerk check boxes in ideamaker. In that case those are used. That’s my understanding.

User avatar
Posts: 5177
Joined: Fri Mar 25, 2016 3:54 am

Re: New Firmware Settings - Which is Master?

Postby Vicky@Raise3D » Wed Dec 05, 2018 12:52 am

Noren is right. If you enable the settings in ideaMaker, it will use the setting in gcode. Or it will use the ones in touchscreen.

3D printing noob
Posts: 9
Joined: Tue Jun 26, 2018 11:54 am

Re: New Firmware Settings - Which is Master?

Postby 3D printing noob » Thu Dec 06, 2018 1:48 pm

While in some context the previous answers are correct, stop, let's all get this right and really understand the system. To do that, we have to wrap our heads around the actual control board running the printer, the motion board and the firmware that runs on that (marlin or in the case of the Pro2 marlin "compatible" firmware).
When you turn on the printer, the processor reads the information stored in flash memory and that is effectively "the firmware" but it runs in RAM. This is actually no different than a full blown computer, the actual running state of the computer is in RAM.
RAM is not permanent memory- so if gcode, a command or other user or machine interaction changes say a setting in firmware in RAM, it's active in ram until the processor is power cycled or just resets or something else changes it.
KEY CONCEPT- the last change is now the active setting!!! Whatever event happens last then affects every function after that.

OK, so second part to get is the front panel computer is NOT actually running the hardware. It is a gcode command sending console and streaming server when printing. It interacts with the motion control firmware defined by the gcode commands accepted and understood by the Marlin firmware. In many cases, it's a command, but that command is not checked for execution. In other words, (Simon Says), the front panel computer sent the command and we assume it was completed. This concept is essential to understanding troubleshooting of this and really any other 3D printer.

OK, so that covers the basic hardware and firmware, so let's get to the crux of the "system" to understand your question.
When the printer boots, the firmware uses the settings stored in the actual firmware. For purposes of discussion- these are the hard coded factory values in firmware as a baseline.
What matters as a second layer to this is that the raise touch updates to the front panel streaming computer allows what we all should grasp as override settings that then override (or we hope they do- remember that state and that if the processor reboots- then original firmware is the setting- AKA it's a command but not acknowledged- we pray it took effect) by the front panel sending a series of gcode commands shortly after boot.
Again, concept time- last thing sent is the active command and overrides all previous commands.

So, if you set a value in the Raise 3D touchscreen hardware menu- then it overrides the default baseline firmware setting
Now the key 3rd layer:
If you print a file that contains gcode commands to change a setting during a print- they override the LCD menu settings
If you mid print- manually use the LCD to change a setting (flowrate, temp, or speed) then because it's an additional command above and beyond what was in the file or sent previously(AKA last or most recent command sent)- then the last command sent now is the active command

Other concepts that get users into trouble:
Not every file or job contains all commands. So let's say you set manually via the LCD mid print during the previous job a setting like flowrate. When the file ended and you didn't turn off the printer or otherwise reset, typically the ending gcode in the print file does not contain "default" values to then reset the system to assumed defaults. If the new file assumes a default setting like flowrate and does not specifify one, then this is how a user gets into trouble because the previous printing session can override what are assumed values in the new print.
This is especially true when using different slicers. Say if you use S3D for one print, and Ideamaker for another. Depending on the order of 2 files printing with typical stock as supplied starting and ending gcode- S3D generally assumes flowrate in firmware is 100% and does not specify or send a command to change it to 100%. Ideamaker exactly opposite, does send firmware gcode commands to change flowrate.

The fix?
Well, it can be as simple as reading all the above- deeply "getting it", and realizing that you should edit ending gcode and specify in starting gcode assumed values like flowrate.

3D printing noob
Posts: 9
Joined: Tue Jun 26, 2018 11:54 am

Re: New Firmware Settings - Which is Master?

Postby 3D printing noob » Thu Dec 06, 2018 2:28 pm

Further concept- how slicers works considering flowrate:

Some slicers when you specify a flowrate modifier actually process and edit line by line the final gcode print file and adjust the E length commands in gcode by the percentage. S3D and most other slicers work this way.

Ideamaker being the black sheep - it does not follow this rule for many things, and as such, sends firmware flowrate modifier commands and the firmware then edits line by line.

Here is the difference.
In a "normal" world, we assume firmware flowrate is 100% meaning the firmware executes the distance commanded in gcode.
12mm of extrusion is 12mm of extrusion
Again, say a line of gcode line G1 X100 Y20 E12 should extrude exactly 12mm of incoming filament into the extruder (not the output from the nozzle)

Ideamaker sends a command to tell firmware to take all read gcode commands regarding E extrusion length and modify the result.
If you tell it 90% flowrate, the the firmware reads 12mm in gcode, and yet only sends 90% of 12mm to command the extruder feeder stepper to feed.
Again, in this case, a firmware flowrate command first was sent
M221 S90
and overrides the firmware standard of 100% flowrate so any line of gcode with an E extrusion length is then only output by the new rate.
12mm commanded no longer equals 12mm actual output.
G1 E12
Actually only outputs 90% of 12mm

3D printing noob
Posts: 9
Joined: Tue Jun 26, 2018 11:54 am

Re: New Firmware Settings - Which is Master?

Postby 3D printing noob » Fri Dec 07, 2018 2:07 pm

Also, sorry, I talked a lot about flowrate and you asked about acceleration- which works the exact same way.
The mainboard boots up with the firmware defaults
If any new user invoked settings in the front panel LCD are set, shortly after boot those gcode override commands are sent
If the print file contains further gcode override settings- they are the most recent command and thus they apply
Should the user mid print attempt to change settings, in theory the front panel would send the commands and they would then be the active setting- however, the LCD warns to only do this during idle- so in specific regards to acceleration- this is not meant generally to be sent mid print.

Return to “Pro2 Series”

Who is online

Users browsing this forum: No registered users and 1 guest