Control de ventiladores con MOSFET externo
Se te ha roto el MOSFET del ventilador de capa o necesitas otro ventilador controlable?
Última actualización
Se te ha roto el MOSFET del ventilador de capa o necesitas otro ventilador controlable?
Última actualización
Nuestras placas usan un componente MOSFET para proveer de corriente a los diferentes perifericos que se conectan a ella. Básicamente un MOSFET es usado como un interruptor que actúa como amplificador de la señal recibida.
Os recordamos que tienes mas guias de ayuda en nuestro bot de Telegram @ThreeDWorkHelpBot
En el caso de las impresoras 3D este tipo de puertos se usan para ajustar una señal PWM. Esta señal se envía en pulsos más rápidos o lentos para cambiar la potencia de salida del ventilador.
Antes de proceder lo ideal es asegurarnos que el problema no es el ventilador estropeado o por otro lado tengamos otros pines para ventiladores controlables que nos permitan reasignar los pines para el rol deseado y asi evitar comprar nada.
Para poder realizar este tipo de cambios requerimos un MOSFET externo dado que normalmente sustituir el componente dañado suele ser complicado de encontrar y relativamente complicado de poder reparar sin los conocimientos o herramientas adecuados.
Aunque no esta enfocado al objetivo de la guía normalmente a nuestras impresoras 3D se suelen poner dos tipos de MOSFET externos
MOSFET para la gestión del hotend o cama calientes, estos normalmente ayudan a proteger la electrónica de la placa y mejoran la potencia y estabilidad suministradas a estos componentes. Son muy aconsejables en el caso de uso de camas calientes ya que generan un alto consumo y desgaste sobre la electrónica.
MOSFET para la gestión de ventiladores, en este caso suelen ser pequeños MOSFET que nos permitirán gestionar un ventilador ya sea para sustituir alguno dañado de la placa o como extra para usar en otras partes de nuestra impresora
Por otro lado y si estas buscando ventiladores te aconsejamos los siguientes:
Ventiladores 4010 para hotend o electronica silenciosos (12v!!!)
Ventiladores 5015 para ventilación de capa (24v)
Dado que el objetivo de esta guía es solucionar de forma sencilla ante un fallo del mosfet que gestiona nuestro ventilador te ofrecemos dos soluciones, sin contar la del cambio del componente en placa por lo comentado anteriormente, siendo una de ellas un mosfet tradicional y la otra normalmente más sencilla pero con ciertos requerimientos
Básicamente un módulo MOSFET dispone de 3 entradas/salidas:
Entrada de activación, de donde recibe la señal por parte externa para la activación básicamente dependiendo del tipo de módulo son dos o tres pines:
GND que irá conectado al GND de la placa
SIG que es el pin de señal de la placa
VCC alimentación en el caso de disponer de controlador o led de control, este pin depende del modulo puede estar o no disponible
Entrada de alimentación externa, es la fuente de corriente que mediante la activación del MOSFET entregará a la salida. En nuestro caso normalmente esta entrada irá conectada a nuestra fuente de alimentación. En la foto anterior serían los pines VIN/GND
Salida alimentación hotend/cama/ventilador, es donde conectaremos el componente a controlar. En la foto anterior serían los pines V+/V-
Esta solución es muy cómoda y versátil al permitirnos disponer de hasta 3 ventiladores extras controlables aunque la partida es que deberemos sacrificar un zócalo de driver de motores para su instalación.
Makerbase dispone de su 3MOS que va perfecto para lo comentado.
Con este módulo conectado en nuestra placa dispondremos de hasta 3 ventiladores controlables con un máximo de 1A por salida de ventilador. En la siguiente tabla podréis ver sus características y como configurar los pines:
Dependiendo del uso que queramos dar al módulo externo MOSFET necesitaremos realizar algunos cambios en nuestro firmware Marlin. En nuestro caso vamos a reasignar la función del control de un ventilador.
En el caso de ventiladores es importante entender que algunas placas es necesario activar #define FAN_SOFT_PWM que se encuentra en configuration.h. En nuestro ejemplo usando una SKR 1.4 no es necesario especificarlo.
Para poder trasladar de un pin que no funciona como el ventilador de capa podemos deberemos deshabilitar una asignación de pin al que queremos usar para poder asignarlo posteriormente.
Para poder ver donde están esas definiciones debemos encontrar el fichero pins de nuestra placa:
En el caso de querer trasladar un ventilador de pin tenemos que usar un pin compatible PWM para poder usar de forma adecuada nuestro modulo MOSFET externo.
Verificados
Z-Stop P1_27
PWRDET P1_00
I2C_SCA1 P0_00
I2C_SCL1 P0_01
SPI P0_26 (top left) (cercano a power CPU) (parece no usado por el puerto SPI)
NEOPIXEL P1_24
PROBE P0_10
No verificados pero deberían de funcionar
SERVO P2_02
PWM pero normalmente en uso
E1 Stepper pins,
E1 Enable P1_16
E1 Step P1_15
E1 Dir P1_14
TFT Pins
TFT RX0 P0_03
TFT TX0 P0_02
Wifi Pins
Wifi TX3 P4_28
Wifi RX3 P4_29
PWM pero NO USAR!!!
SPI_SCK1 P0_07
SPI_MISO1 P0_08
SPI_MOSI1 P0_09
En nuestro caso para sustituir nuestro ventilador de capa estropeado vamos a usar los pines asociados con el control de detección de problema de corriente (Power Loss Detection) o el de gestión de encencido (Power Supply Control).
En este caso simplemente deshabilitaremos uno de ellos de la siguiente manera:
//// Power Supply Control
//#ifndef PS_ON_PIN
//#define PS_ON_PIN P1_00 //3DWORK – Cambio para reasignar funcion
//// Power Loss Detection
//#ifndef POWER_LOSS_PIN
//#define POWER_LOSS_PIN P1_00 //3DWORK – Cambio para reasignar funcion
Un cambio muy aconsejable a nivel de ventiladores es, para placas que solamente tienen un pin de ventilador controlable y doble extrusión que no usemos... SKR 1.3 y 1.4 por ejemplo, el colocar nuestro ventilador del HotEnd y de refrigeración de la electrónica a la salida del extrusor 1 (HE1) o en uno de los pines que seleccionamos anteriormente
En ese caso podemos activarlo de la siguiente forma en configuration_adv usando el pin que previamente desactivamos de su función normal:
#define E0_AUTO_FAN_PIN P1_00 //3DWORK – Asignado pin ventilador hotend controlado a MOSFET externo
O podemos como comentabamos anteriormente usarlo con la salida del extrusor 1 (HE1) si no lo estamos usando:
#define E0_AUTO_FAN_PIN FAN1_PIN //3DWORK – Asignado pin ventilador hotend controlado a pin HE1
En este caso podemos ajustar además a partir de que temperatura queremos ponerlo en marcha y a que velocidad (el valor 255 equivaldría al 100% de velocidad de giro):
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255
Otro uso para añadir un ventilador controlable es como refrigeración de nuestro cerramiento si queremos tener un control de temperaturas.
#define CHAMBER_FAN_PIN P1_00 //3DWORK – Asignado pin ventilador chamber controlado
#define CHAMBER_AUTO_FAN_TEMPERATURE 50
#define CHAMBER_AUTO_FAN_SPEED 255
En este caso el proceso es un poco diferente al anterior ya que debemos de modificar para cambiar el pin actual por el nuevo elegido.
Revisando nuestro fichero nos encontraremos con la definición de FAN_PIN, para nuestro caso y para nuestra SKR 1.4 lo haremos de la siguiente manera:
# define FAN_PIN P2_03 // 3DWORK - pin original ventilador de capa
# define FAN1_PIN P1_00 // 3DWORK - nuevo pin ventilador de capa
Deberemos asignar el nuevo ventilador a nuestro segundo extrusor:
# define FANMUX0_PIN P2_03 // 3DWORK - pin original ventilador de capa
# define FANMUX1_PIN P1_00 // 3DWORK - nuevo pin ventilador de capa
En el caso que nuestro pin de ventilador de capa falle, normalmente estan controlados por un MOSFET integrado y el sintoma de que esta roto es que esta continuamente al 100% sin posibilidad de ser controlado, el proceso es muy sencillo.
Simplemente deberemos intercambiar los pines asignados entre los que usemos:
# define FAN_PIN P1_00 // 3DWORK - nuevo pin ventilador MOSFET externo
# define POWER_LOSS_PIN P2_03 // 3DWORK - antiguo pin ventilador roto
En ocasiones, dependiendo del pin/mosfet/ventilador usado, es necesario ajustar Marlin para que la señal PWM se ajuste al cambio si nuestro ventilador no funciona como debiera.
Para ello podemos revisar si con #define FAN_SOFT_PWM (y otras dos opciones relacionadas con este cambio) podemos hacer que esta señal funcione correctamente con nuestra configurracion.
Placa
Fichero pins
SKR 1.4 TURBO
Marlin/src/pins/lpc1769/pins_BTT_SKR_V1_4_TURBO.h
SKR 1.4
Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h
SKR MINI TURBO
Marlin/src/pins/lpx1769/pins_BTT_SKR_E3_TURBO.h