Swapping hot ends with different heater characteristics

  • I have 2 diamond hot ends with different size nozzles. To make swapping between them easier, I have made two complete assemblies consisting of nozzle, heat sinks, mount, fan heater and temperature sensor. For some reason, the heater in the second hot end assembly has very different characteristics to the first and I've had to tune that heater separately to prevent faults. So, in my config.g I have two M307 statements. One for each heater and obviously one is always commented out. So whenever I swap hot ends, I will have to remember to comment out one of the M307 lines and uncomment the other.

    This is not ideal so I'm looking for a more elegant solution. One idea I had was to put the appropriate M307 line in to the start g.code for each of the printer configurations that I've set up in Slic3r. That way, whenever I slice something for a particular nozzle, it would use the appropriate heater PID values. On the other hand, I'm not sure that having heater control parameters embedded into gcode files is necessarily a good idea because if I changed a heater, I'd have to edit all the gcode files to use the new value.

    I guess another way would be to use a macro.

    Does anyone have any better ideas?

  • administrators

    A macro is the best way to do this in my opinion.

  • Would running a macro that contains your current hot end settings before your print suffice?

  • Yes, I guess a macro will have to be the way to go. I'm guessing that if I have one heater defined in config.g, running a macro with the other set of heater values will overwrite what gets loaded at start up.

    Thinking about it, the second heater is one that I used to do some tests on the effects of using copper slip as thermal paste. I ran the tests up to 400 deg C a couple of times so maybe that cartridge has just become "aged" which is why it has different characteristics. Maybe I'll buy another cartridge or even a handful and try and get a matched pair so that either one will run with the same values.

  • administrators

    You can buy a pack of 3 or 5 heater cartridges inexpensively on eBay. You stand a good chance that two of those have resistances (and hence heating powers) close enough to each other.

  • Thanks all. Just ordered a pack of 5 heater cartridges for not much money from ebay.

    Now though, I've just realised that when switching assemblies, it will be most unlikely that the nozzle tips will be in exactly the same position relative to the z probe height (the probe is fixed to the carriage). I don't care much about them differing in x and y by a mm or two but Z is going to be critical. The difference won't be much but I doubt if they will be within (say) 0.1mm of each other. So I'll likely need different parameters for the z probe for each nozzle and I'm thinking that a macro which includes the heater settings (if necessary) as well as the z probe settings will have to be the way to go. I'll just have to remember to run it when I switch hot ends….. 🙂

  • You can run macros from within G-code files with M98 Pfile.g. So your config.g could have:

    M98 Pheater1.g
    ; M98 Pheater2.g

    and you could uncomment the one that was currently attached. The only way to make this more convenient would be to either detect which heater you were using or use the same settings for both heaters

  • administrators

    I think adding a hardware and firmware feature request to allow for a tool detection scheme is a good idea. I like the idea of (semi) smart tools that can at a minimum at least let the firmware know what they are. Its some way off but it would be useful in an automatic tool changer - and clearly also useful in a manual tool change situation.

Log in to reply