PID heating calibration

Discussion in 'Calibration, Help, and Troubleshooting' started by GrodanB, Jul 6, 2016.

  1. GrodanB

    GrodanB Well-Known Member

    Joined:
    Feb 3, 2016
    Messages:
    192
    Likes Received:
    26
    Using Alex9779 RC6 dual MBL firmaware.

    It there any way to store the calibration for each extruder or if I need to add it to the tool change script in simplify 3d?

    When I store for E0 and E1 it makes no difference whenI read it back. Same values returned regardless which one I choose. Always the latest stored values.

    And if in the script, when starting is the tool change script run so I get the correct settings for the used extruder?

    Or shall it be added in the startup script... there I do not see how the "newtool" variable can be used since no tool has been choosen...
     
  2. Alex9779

    Alex9779 Moderator
    Staff Member

    Joined:
    Sep 4, 2015
    Messages:
    2,405
    Likes Received:
    731
    Nope sorry that option is not activated (yet). I wanted to check if it will set for both when I don't specify an extruder so I can keep the scripts as they are and have to set it only once for normal use cases...
    You can download the source from github and set that option and compile yourself...
    I think setting in the tool change might work but the result would be not so good IMHO because when you change the PID the old hotend can make problems. It takes some time for the temp to stabilize again after a change of the PID...
     
  3. GrodanB

    GrodanB Well-Known Member

    Joined:
    Feb 3, 2016
    Messages:
    192
    Likes Received:
    26
    OK, well the issue raised is a valid one... even if it stores the data does how is it used...

    Seem like a code review or info from the implementers is needed.

    I'm currently in the "getting it to work" or "understanding why it work" stage and is not feeling confident to tamper with firmware yet... so at the moment I rely on other more experienced users...
     
  4. Alex9779

    Alex9779 Moderator
    Staff Member

    Joined:
    Sep 4, 2015
    Messages:
    2,405
    Likes Received:
    731
    Ummm can some one translate please? :D I thought my English is ok but sorry @GrodanB I don't get what you want to tell me...

    To start over again, there is an option in Marlin to have separate PID value for each hotend but in mine or the official firmwares this is not activated.
    If that option is not activated the part of the command you select the hotend is just ignored by Marlin and the one and only PID is set. So what you describe is normal, you have only one PID value and so the last you set is the one you get when you read...
     
  5. GrodanB

    GrodanB Well-Known Member

    Joined:
    Feb 3, 2016
    Messages:
    192
    Likes Received:
    26
    You say that you do not have this enabled yet due to the fact you want to understand how it works. Correct? I agree that that is a valid concern. and pointless to enable unless it is understood.

    Then you tell me to try it myself by compiling my own...

    And I say, that I'm not there yet will probably do that later but for now I wish to follow the firmware leader (aka. Alex9779)...

    I agree that switching PID settings in mid print cannot be optimal. I still wonder if it possible to find the best optimization for both (like take the mean of the values) until the dual PID function is understood.
     
  6. Alex9779

    Alex9779 Moderator
    Staff Member

    Joined:
    Sep 4, 2015
    Messages:
    2,405
    Likes Received:
    731
    I'm testing the firmware tonight anyways so I put this on my list...
     
    GrodanB likes this.
  7. Alex9779

    Alex9779 Moderator
    Staff Member

    Joined:
    Sep 4, 2015
    Messages:
    2,405
    Likes Received:
    731
    Ok i tried it and unfortunately if it is enabled if you set the value with M301 only then only the PID for the first extruder is set.
    That's is what is in the code:
    Code:
    // default behaviour (omitting E parameter) is to update for extruder 0 only
    So it is as follows:
    • M301 sets value of E0
    • M301 E0 sets values of E0
    • M301 E1 sets values of E1
    The LCD menu is prepared for multiple extruders, you have the settings displayed for both and you can also do the auto tuning for both.

    But as it is now I don't want to include it. If an M301 without an E specified would set the PID for all then ok.
    Also I see no point enabling this for a normal Dual or a Hybrid Dual because you can only run the same type of hotends (V6 or Volcano) and from my experience the PIDs are within the same ranges.

    What I might do is to enable this for the Dual Titan firmware because with this setup it is possible to combine a V6 with a Volcano and in that case I think different PIDs would be needed...
     
    mike01hu likes this.
  8. mike01hu

    mike01hu Well-Known Member

    Joined:
    Apr 22, 2014
    Messages:
    957
    Likes Received:
    166
    Yes Alex, there is no point for the normal factory machines, only those with Chase's dual design where different hotends are being used in each position.
     
  9. GrodanB

    GrodanB Well-Known Member

    Joined:
    Feb 3, 2016
    Messages:
    192
    Likes Received:
    26
    Yes, the legacy function would be as you describe. And probably best to kep.

    Not sure I agree that it is negligible difference.

    Especially since current experience suggest that farting in the printers general direction seems to impact print quality...

    I do hope that we do not need special firmware for everything that can vary. So can we impact the Marlin main development to get it to work as you describe?
     
    #9 GrodanB, Jul 7, 2016
    Last edited: Jul 7, 2016
  10. Alex9779

    Alex9779 Moderator
    Staff Member

    Joined:
    Sep 4, 2015
    Messages:
    2,405
    Likes Received:
    731
    No idea, I looked into the code and the problem is that I blows it all up. It is not a single line of code because if you activate the feature to have separate PID values the variables become arrays and the simple trick they is if there is no E parameter they just set the array index to 0.
    I would have to implement a loop through all available extruders and set the values for each if there is no E parameter...

    I will have a look into it, maybe... :)
     
  11. GrodanB

    GrodanB Well-Known Member

    Joined:
    Feb 3, 2016
    Messages:
    192
    Likes Received:
    26
    Ah, the design is not correct of the software.. it is just patched.

    Sounds like my work.

    Yes, the correct behaviour would be that without designated extruder a M301 should update all in the array PID array/structure with the same values. And with designation only the specific value should be updated.

    Then all old scripts should work as before and we do not need a special firmware for the printers configurations that uses extruders that differs significantly.

    Seems I should look into installing the software so you do not need to do all the work...
     
  12. Alex9779

    Alex9779 Moderator
    Staff Member

    Joined:
    Sep 4, 2015
    Messages:
    2,405
    Likes Received:
    731
    That is exactly what I expect as a user, otherwise I would have to know every single feature which is activated in the firmware prior compiling... Especially for such features which change the behaviour if commands... That should not be...

    I think I am trying to raise an issue, maybe the devs have some sympathy for the case...

    If this would work like that, then there is no point IMHO for the feature being inactive. It can just be active all the time because someone who want PID for all just sends M301...
     
    mike01hu likes this.
  13. GrodanB

    GrodanB Well-Known Member

    Joined:
    Feb 3, 2016
    Messages:
    192
    Likes Received:
    26
    Yes, se no reason why the current behaviour should be better. And when dual extruders get more standard the three or more will enter the scene... so the issue should be solved now...
     

Share This Page