LIN_ADVANCE = better extrusion control

Discussions about ideaMaker and other printing software.
ABH
Posts: 182
Joined: Sun Aug 14, 2016 7:31 pm

Re: LIN_ADVANCE = better extrusion control

Postby ABH » Fri Aug 24, 2018 6:07 pm

JohnSays, I never saw this error message myself. It seems to be related to the measured hot-end temperature not increasing during warm-up. The test limit used in the firmware is 2 degC in 20 sec. Do you see this error consistently? You could try to store the serial log on a USB stick and then attach it here, then I might be able to see what goes on.

User avatar
JohnSays
Posts: 636
Joined: Tue Apr 26, 2016 2:42 pm
Location: Saint Petersburg, FL

Re: LIN_ADVANCE = better extrusion control

Postby JohnSays » Tue Aug 28, 2018 6:33 pm

I will do this when I load the latest version -- if it happens with it. I would typically see the error randomly. In other words I could do whole print, and then set up the next print without rebooting and the error shows. Occasionally it shows up when first starting up after setting the temperatures to warm up the printer.
- John
2 Raise3D N2 Duals, V2 nozzles, Bondtech BMGs, adjustable table, Panucatt SD2224 drivers, run-out sensor, thermal overload protection resistors on motion controller board, Firmware 1.1.8ABH - with Lin_Advance, Palette+

firesped
Posts: 853
Joined: Mon Mar 21, 2016 9:23 pm
Location: Tucson, AZ

Re: LIN_ADVANCE = better extrusion control

Postby firesped » Thu Aug 30, 2018 12:10 am

researching the issue on marlin firmware, it was a bug a long time ago. likely the issue now is that your PID is off and needs to be configured.

the issue had to due with temperature set where the printer was stabled. then when it was allowed to fall out of stable temperature and restarted, it caused this.

are you pre-heating the hotends? if your PID is off, it won't heat back up fast enough to recover if the tempurature is too close with the currently set settings for the thermal protection.

referance to github. https://github.com/MarlinFirmware/Marlin/issues/3167

the only adjustment ABH could make is to change the thermal protection to have a longer duration.
RL name: Michael Nolen
printers:
raise3D N2 kickstarter Early Bird
Trinus Deluxe (running smoothieware on Azteeg X5 GT board)
Monoprice Maker Select v2

User avatar
JohnSays
Posts: 636
Joined: Tue Apr 26, 2016 2:42 pm
Location: Saint Petersburg, FL

Re: LIN_ADVANCE = better extrusion control

Postby JohnSays » Thu Aug 30, 2018 11:42 am

Thank you firesped. The senario you cover fits the description of my problem well enough to suspect that you have nailed the problem. I will reconfigure the PID. However, one sticking point is this: by restoring the factory firmware the error code does not come back. Have you any explanation for that?
- John
2 Raise3D N2 Duals, V2 nozzles, Bondtech BMGs, adjustable table, Panucatt SD2224 drivers, run-out sensor, thermal overload protection resistors on motion controller board, Firmware 1.1.8ABH - with Lin_Advance, Palette+

Jetguy
Posts: 2700
Joined: Tue Mar 22, 2016 1:40 am
Location: In a van, down by the river

Re: LIN_ADVANCE = better extrusion control

Postby Jetguy » Thu Aug 30, 2018 12:11 pm

Yes, factory firmware has different parameters in the safety code. That's why you do no see it trip into safety on stock firmware.
Also, stock firmware does not enable EEPROM, does not use PID settings stored there, it starts up with the settings that are built into the code and then if you tuned via the LCD it overrides them by sending gcode at boot up.

Let me see if I can explain this in a way everyone can understand. You have 3 types of memory on the processor, flash (think like an SD card or USB thumb drive) and EEPROM ( a much smaller space, and slightly different tech but the key is, EEPROM can be written to and changed by running firmware). In other words, Flash is the space where firmware sits, and flash is effectively read only memory to the firmware. Also, to complete this discussion we have RAM. So when you boot the printer the processor reads the flash memory, loads the active running firmware code into RAM and that's where your functionality basically lives- in RAM. As such, hard coded settings used by the firmware (startup or baseline values) are loaded from flash to RAM at boot. Then, if say you send certain tuning codes, for things like steps per mm, PID tuning, acceleration and jerk values, those modify the value in RAM. This is how the stock firmware works and how the LCD can change values in stock firmware even if EEPROM is not used and not storing anything and not allowing anything to be stored in the stock firmware. The front panel LCD boots up and overwrites the values in RAM by sending gcode commands at the start of booting up the printer. The thing there is, RAM is volatile memory, so if the mainboard reboots or resets, then the front panel must again send the setup codes or else the mainboard is using default built into hardcoded firmware states and settings.

Now go to ABH and other firmware, we are typically enabling EEPROM. So you have both the hard setting in firmware, and a EEPROM location where settings can be stored and read from and written to by firmware. So when it boots up, the routine still uses the flash for booting, and then reads the EEPROM data table and overrides in RAM the settings from EEPROM. Then if you the user send it gcode, or the front panels does, then that still overwrites the active setting in RAM, still violatile like before. But now we have an option because EEPROM is enabled. That is, we can use the gcode command M500 and that takes all the settings in RAM, and now writes them in EEPROM, thus changing the startup behavior, so even through a reboot or reset cycles, the board now boots up using the new values.
I also need to add, when EEPROM is enabled, another cool feature is restore firmware defaults, meaning, because again the firmware aways contains the starting or baseline settings values, invoking an M502 http://marlinfw.org/docs/gcode/M502.html, EEPROM is written back to matching values hard coded in that firmware. Good time to study M500, M501, and M502 commands.

Now problem, the safety code parameters are hard coded in firmware and not set as EEPROM or gcode changeable values. That means nothing, short of flashing a new firmware by which those values were changed in source code changes that function.
As pointed out, we have the interaction between 2 things PID tuning can affect how tightly your hardware heater can maintain a setpoint and not overshoot or sag under the setpoint temp. Then we also have safety code, trying to detect failures of the heater and/or the temperature reporting system to control the safety aspect of how much deviation is allowed from the setpoint before the system is considered in a safety fault. Bad PID tuning coupled with tight safety code can lead to false triggering.

User avatar
JohnSays
Posts: 636
Joined: Tue Apr 26, 2016 2:42 pm
Location: Saint Petersburg, FL

Re: LIN_ADVANCE = better extrusion control

Postby JohnSays » Thu Aug 30, 2018 1:50 pm

I get it. That explains the situation. Thank you JetGuy. So what I need to do is simply re-tune the PID setting and store to EEPROM with M502. Then, on load, evoke M500 to load settings from EEPROM.
- John
2 Raise3D N2 Duals, V2 nozzles, Bondtech BMGs, adjustable table, Panucatt SD2224 drivers, run-out sensor, thermal overload protection resistors on motion controller board, Firmware 1.1.8ABH - with Lin_Advance, Palette+

Jetguy
Posts: 2700
Joined: Tue Mar 22, 2016 1:40 am
Location: In a van, down by the river

Re: LIN_ADVANCE = better extrusion control

Postby Jetguy » Thu Aug 30, 2018 2:21 pm

Yes and no. Yes I highly recommend storing to EEPROM. However, the LCD and raise touch updates are going to send override gcode if PID tuning was used and enabled. So even if EEPROM was used, there is potential the last action (if it happened to be the LCD and raise touch) would put it's values in active memory, and active memory is what counts.

What I'm saying is, PID tune, but be sure you do it for the firmware loaded. That's because values that worked with one firmware, may not be valid for a different firmware ( I know, just another complication). Then after you know the raisetouch is properly sending the PID tuned values for that firmware and your printer hardware tuning, then save to EEPROM. Now, no matter what happens, no matter what sequence of events, the board on it's own would boot up and use the correctly tuned PID values. The LCD may or may not attempt to write values into memory, but again, again reset, the point is your controller running your hardware knows and boots with the correct values without intervention.

User avatar
JohnSays
Posts: 636
Joined: Tue Apr 26, 2016 2:42 pm
Location: Saint Petersburg, FL

Re: LIN_ADVANCE = better extrusion control

Postby JohnSays » Thu Aug 30, 2018 10:44 pm

I am a little confused on the sequence. I'll start at the beginning to show what I'm thinking:

1) Install the 1.1.9ABH
2) Run PID tuning
3) Run a small "print job" to send M500 to write changed byte to EEPROM
4) Run a print job, but no need to send any M5?? codes.

No need to PID tune again unless I change (a) the firmware, or (b) something I change in the hot end setup.
- John
2 Raise3D N2 Duals, V2 nozzles, Bondtech BMGs, adjustable table, Panucatt SD2224 drivers, run-out sensor, thermal overload protection resistors on motion controller board, Firmware 1.1.8ABH - with Lin_Advance, Palette+

ABH
Posts: 182
Joined: Sun Aug 14, 2016 7:31 pm

Re: LIN_ADVANCE = better extrusion control

Postby ABH » Sat Sep 01, 2018 5:25 am

Factory firmware has this "Heating sanity check" completely disabled, only the "Thermal Runaway" test is used.
One option would be that I also disable it in 1.1.9ABH.
Alternatively I could increase the limits. As written earlier, the default Marlin checks for a minimum temperature increase of 2 degC in 20 seconds.

1.1.8ABH and 1.1.9ABH use the same kind of "Heating sanity check" with the same limits.
I was only searching for any changes compared to 1.1.8, as I understood from John that he didn't see the issue with 1.1.8ABH. But I might have misunderstood this.

EEPROM is not enabled in 1.1.8ABH or in 1.1.9ABH, like it is not enabled in factory firmware.
I could enable it in 1.1.9ABH.

User avatar
JohnSays
Posts: 636
Joined: Tue Apr 26, 2016 2:42 pm
Location: Saint Petersburg, FL

Re: LIN_ADVANCE = better extrusion control

Postby JohnSays » Sun Sep 02, 2018 2:13 am

Hi ABH. No, I saw it with 1.1.8ABH, but not the factory files.
- John
2 Raise3D N2 Duals, V2 nozzles, Bondtech BMGs, adjustable table, Panucatt SD2224 drivers, run-out sensor, thermal overload protection resistors on motion controller board, Firmware 1.1.8ABH - with Lin_Advance, Palette+

ABH
Posts: 182
Joined: Sun Aug 14, 2016 7:31 pm

Re: LIN_ADVANCE = better extrusion control

Postby ABH » Sun Sep 02, 2018 5:21 am

I increased the limits for the "Heating Sanity Check" in the 1.1.9ABH precompiled files. Now the requirement is 2 deg. temperature increase in 60 seconds (was 20 s). It is not easy to completely disable the sanity check, as it is bundled with the thermal runaway protection that we want to keep.
Also the EEPROM is now enabled in the precompiled files.

User avatar
JohnSays
Posts: 636
Joined: Tue Apr 26, 2016 2:42 pm
Location: Saint Petersburg, FL

Re: LIN_ADVANCE = better extrusion control

Postby JohnSays » Sun Sep 02, 2018 11:46 am

Very cool and thank you. Unfortunately, I have not learned how to use the programming and compiling environment. If you have the time, would you compile the files?
- John
2 Raise3D N2 Duals, V2 nozzles, Bondtech BMGs, adjustable table, Panucatt SD2224 drivers, run-out sensor, thermal overload protection resistors on motion controller board, Firmware 1.1.8ABH - with Lin_Advance, Palette+

ABH
Posts: 182
Joined: Sun Aug 14, 2016 7:31 pm

Re: LIN_ADVANCE = better extrusion control

Postby ABH » Sun Sep 02, 2018 2:11 pm

JohnSays wrote:Very cool and thank you. Unfortunately, I have not learned how to use the programming and compiling environment. If you have the time, would you compile the files?

"precompiled files" = compiled files. You just download the .firm file again from the original links here:
http://forum.raise3d.com/viewtopic.php?f=3&t=6244&p=35108#p35108

User avatar
JohnSays
Posts: 636
Joined: Tue Apr 26, 2016 2:42 pm
Location: Saint Petersburg, FL

Re: LIN_ADVANCE = better extrusion control

Postby JohnSays » Sun Sep 02, 2018 5:27 pm

Okay, now I feel.. um what's the word... uh uh.. Oh yeah, "dumb."
- John
2 Raise3D N2 Duals, V2 nozzles, Bondtech BMGs, adjustable table, Panucatt SD2224 drivers, run-out sensor, thermal overload protection resistors on motion controller board, Firmware 1.1.8ABH - with Lin_Advance, Palette+

User avatar
JohnSays
Posts: 636
Joined: Tue Apr 26, 2016 2:42 pm
Location: Saint Petersburg, FL

Re: LIN_ADVANCE = better extrusion control

Postby JohnSays » Sun Sep 02, 2018 8:06 pm

I tried to install the 1.1.9ABH for N2 dual and the message, "Updating Firmware" does not go away. On reboot, an error happens but I can get to the Safe Boot option. I'll use that to revert firmware.
- John
2 Raise3D N2 Duals, V2 nozzles, Bondtech BMGs, adjustable table, Panucatt SD2224 drivers, run-out sensor, thermal overload protection resistors on motion controller board, Firmware 1.1.8ABH - with Lin_Advance, Palette+

ABH
Posts: 182
Joined: Sun Aug 14, 2016 7:31 pm

Re: LIN_ADVANCE = better extrusion control

Postby ABH » Mon Sep 03, 2018 3:04 pm

JohnSays wrote:I tried to install the 1.1.9ABH for N2 dual and the message, "Updating Firmware" does not go away. On reboot, an error happens but I can get to the Safe Boot option. I'll use that to revert firmware.

Yes, sorry about that. EEPROM doesn't work right away, so I now removed it again from the compiled binaries. Please download again. It might be that the increased testing time (60 s versus 20 s) is enough for your system to pass the test during warm-up.
I will look into the EEPROM issue once I have better time.

User avatar
JohnSays
Posts: 636
Joined: Tue Apr 26, 2016 2:42 pm
Location: Saint Petersburg, FL

Re: LIN_ADVANCE = better extrusion control

Postby JohnSays » Mon Sep 03, 2018 5:28 pm

Thank you ABH
- John
2 Raise3D N2 Duals, V2 nozzles, Bondtech BMGs, adjustable table, Panucatt SD2224 drivers, run-out sensor, thermal overload protection resistors on motion controller board, Firmware 1.1.8ABH - with Lin_Advance, Palette+

JK_TechCom
Posts: 3
Joined: Thu Nov 08, 2018 3:06 pm

Re: LIN_ADVANCE = better extrusion control

Postby JK_TechCom » Fri Nov 09, 2018 8:18 pm

Hello Everyone,

I have installed ABH's 1.1.8 bltouch build and am having issues with one of the top two programmable fan ports have stopped working. The bltouch part works awesome but i really want to use both part cooling fans without splicing the wires. The one not working is the top most plug.

Thank you in advance!

User avatar
JohnSays
Posts: 636
Joined: Tue Apr 26, 2016 2:42 pm
Location: Saint Petersburg, FL

Re: LIN_ADVANCE = better extrusion control

Postby JohnSays » Fri Nov 16, 2018 6:55 pm

I have installed and am using 1.1.9ABH with no errors. I recompiled to set HE2 as the controllable fan pins for my Berd-Air. All seems to be working well.
- John
2 Raise3D N2 Duals, V2 nozzles, Bondtech BMGs, adjustable table, Panucatt SD2224 drivers, run-out sensor, thermal overload protection resistors on motion controller board, Firmware 1.1.8ABH - with Lin_Advance, Palette+


Return to “Software”

Who is online

Users browsing this forum: No registered users and 5 guests