So i've been wondering this for a while, what is FANMUX for, I see user after user trying to use these settings to no avail.. I suspect in part as no one seems to know what this is for.
It was added back in 2017 [
github.com]
The code seems to simply toggles IO pins on extruder change by calling the following passing the extruder number as a parameter.
void fanmux_switch(const uint8_t e) {
WRITE(FANMUX0_PIN, TEST(e, 0) ? HIGH : LOW);
#if PIN_EXISTS(FANMUX1)
WRITE(FANMUX1_PIN, TEST(e, 1) ? HIGH : LOW);
#if PIN_EXISTS(FANMUX2)
WRITE(FANMUX2, TEST(e, 2) ? HIGH : LOW);
#endif
#endif
}
Just seems to do the following.
e | FANMUX0_PIN | FANMUX1_PIN | FANMUX2_PIN
-----------------------------------------------------------------------
0 | 0 | 0 | 0
1 | 1 | 0 | 0
2 | 0 | 1 | 0
3 | 1 | 1 | 0
4 | 0 | 0 | 1
5 | 1 | 0 | 1
6 | 0 | 1 | 1
7 | 1 | 1 | 1
But without additional hardware this has no connection to the existing hotend or cooling fans....
You could of course connect fans to the FANMUX pins, but they would either only be full on or off.. (and this seem to be what users try)
Anyone using this or know its original intention?
Or am I missing something?
Edited 2 time(s). Last edit at 10/28/2019 06:34AM by Dust.