Custom temperature control
-
Hi!
I am currently looking for a solution for a custom water cooler for one of the tools.
For now, I am running a continuous macro in the daemon.g, which controls the temperature based on some GCode meta commands. It works as desired, however I can't actively change the temperature ranges in a nicely manner. I would love to implement something looking like a heater, ie. fields where the input temperature is entered, and a target temperature is shown, but instead of the heater control algorithm, my custom code runs.
Best regards,
AW -
@awitc Why don’t you stick with your initial thread on this topic? There, you didn’t supply much context either, here, it is completely missing. On that thread, you got suggestions from @jay_s_uk and @dc42 on how to deal with a water cooled tool. Configuring the pump as a thermostatic fan (as @dc42 suggested) is the (or at least one) common solution for water cooled hotends. Instead, you elaborate with custom gCodes in daemon.g: Why? If your request isn’t about a hotend, you better should explain your special case - but please, keep that in your initial thread.
-
I reconed, that it is a different topic, since I had used the previous suggestions, and had something working with the daemon.g. However, here I was asking mainly about any way of adding new controls to the web interface. My bad.
-
@awitc First, I want to firmly state that arguing is better than to down-vote valid contributions or requests to this forum .
here I was asking mainly about any way of adding new controls to the web interface
That’s a hard task to do, as your data are not part of the object model which DWC relies upon. Furthermore, you would have to modify DWC (or build a plugin).
But my question remains: Why? For water-cooled hotends, @dc42’s proposal works fine (at least for me), so, without further context, I simply don’t understand the need for a different approach. Is this reason enough to stay with your initial thread, please?
-
@awitc If you declare global variables at boot eg:
global minTempNum = 25 global maxTempNum = 200
And assign these variables in your macros as appropriate, you can use the BtnCmd plugin and create Input Panels which allow you to set the values of the two global variables in the UI eg:
These can be sliders or basic input and they will update the global variable value when changed.
Hope this Helps
-
Thanks for the reply!
I have been reading on the BtnCmd plugin a bit yesterday, but I found this information on the wiki:
Which made me wonder if it will work in my case , ie. I am configuring the Duet board, with a RPi connected, through an ethernet cable, but when I will finish the setup phase, there will be an external touch screen connected to the RPi. How would the layouts behave if they are bound to the browser?
-
@awitc You can export layouts and import them on different browsers. However your pi screen is likely to have a different resolution and aspect ratio to your desktop, so it might be necessary to re-edit anything you export to meet the new resolution.
If you use the developer options of your desktop browser, and set the device resolution to match your pi screen, you may find it easier to design something which transfer better.
-
While trying to install the newest release of BtnCmd, I got this:
Beforehand, I did these on RPi:
sudo apt update sudo apt upgrade
On the screenshot, there is also DuetPi Management Plugin visible, with the version 3.4.6, and the command M115 for both of my boards also claims that they are on the 3.4.6 version.
-
@awitc Please read the release notes. The latest release is for 3.5.x. 3.4.x requires an earlier version
-
Thanks for the clear up! I got everything working the way I imagined. Once again thanks, and I admire your work with the plugin.
-
Hi, do you know if there is a variable which can allow for continuous speed monitoring? I have a stepper motor for the extruder, which has a gearbox, and would love to setup a custom panel which shows the output speed.
-
@awitc not specifically. A custom panel can display almost anything from the object model, so if it exists in there then you should be able to show it. You can use the object model plugin to browse the object model.