Controlar varias impresoras usando varias instancias Octoprint
OctoPrint 0.18.0 Raspberry Pi
Última actualización
OctoPrint 0.18.0 Raspberry Pi
Última actualización
De entrada puede parecer una guía muy larga y difícil, si es larga es porque está todo lo necesario para no tener ningún problema con múltiples instancias en octoprint. Tampoco es difícil, solo hay que ir haciendo los pasos como se muestran.
Temas claros antes de duplicar la instancia:
Plugins:
Quedan compartidos entre todas las instancias instaladas.
Los datos cada instancia guarda sus datos, eso no queda compartido.
Para actualizar un plugin, solo basta en actualizar en una instancia, para que se muestre actualizado en las otras, o se reinicia la raspberry o las distintas instancias.
Recomendado actualizar plugins cuando no se este imprimiendo en ninguna de las impresoras.
Si en una instancia no se quiere uno de los plugins, con desactivar para esa instancia es suficiente.
Si se borra un plugin, al reiniciar se borrara de las otras instancias.
Muy importante renombrar los puertos usb, para evitar problemas de conexión.
Los gcode subidos a cada instancia, solo se mostrarán en esa instancia, eso es bueno, ya que solo veremos los ficheros para esa impresora.
Verificar la versión, al final de la página de octoprint verás que versión tienes, esta guía es válida para la versión 0.18.0.
Nos logeamos, si no habéis cambiado el usuario y password, por defecto el usurario es pi y el password es raspberry.
Por Seguridad es recomendable cambiar el password.
Duplicamos el fichero octorpint.service, es posible que os vuelva a pedir de nuevo el password, es decir raspberry o el que tengáis.
Recuerdo que para pegar los comando en PuTTy, se puede hacer pulsando el botón derecho del ratón.
Si queréis más impresoras, el proceso es igual, pero cambiado el 2 por 3, 4, etc…
Entramos en el nuevo fichero duplicado:
Os saldrá una ventana como esta:
Editamos estos parámetros, 5001 para la segunda impresora.
Añadimos al final de ExecStart esto:
Quedando así:
Quedando así:
Guardamos con CRTL+X, luego a Y (yes), finalmente a ENTER
De nuevo, para más de dos impresora, el proceso es el mismo, hay que editar los otros ficheros:
Tercera impresora, puerto 5002:
Cuarta Impresora, puerto 5003:
Activamos el inicio automático al iniciar la raspberry para estas segundas instancias:
Si sale como la imagen es que ya han quedado activadas correctamente para el inicio.
Pasamos a editar el haproxy.cfg, abriéndolo con:
Crearemos un nuevo frontend para cada impresora, esto tiene como ventaja poder tener una cámara para cada una de las impresoras, y la gestión de multi-instancia, desde mi punto de vista, es mejor.
Con esto accederemos a la segunda impresora desde el puerto 81, tercera 82 etc. Mencionar que la primera se accede desde el puerto 80, que no es necesario introducir en el navegador.
Vamos al final fichero y pegamos esto para la segunda impresora:
Repetimos lo mismo para las otras instancias:
Guardamos el fichero y comprobamos que todo este correcto con:
Si no da ningún error es que todo es correcto.
En el caso que os salga un error como este, debes volver a editar haproxy, revisando bien el fichero y que no haya algún valor mal introducido.
Reiniciamos la raspberry con:
Una vez reiniciada ya tendremos acceso a las nuevas instacias, las direcciones serian estas:
o
Vamos a configurar las nuevas instancias:
Importante, en la sección de Server Commands, hay que poner:
Para la tercera y cuarta
Ahora, para distinguir cada impresora y evitar confusiones, es recomendable cambiar el nombre de cada una de ellas y su color.
Finalmente, y muy pero que muy importante, es renombrar los puertos. Esto es muy importante, ya que al abrir la raspberry puede que cambie el nombre del puerto, y no conectes a la impresora correcta. Pero aun puede ser peor, como que en otra instancia conectes a otra impresora que esta imprimiendo, provocando el reinicio de esa placa y adiós a esa impresión.
1. Conectamos solo una de las impresoras, y miramos, desde octorpint, cual es el nombre de Serial Port que le asigna la raspberry:
En este caso está asignada a /dev/ttyUSB0
, el nombre puede ser diferente, por ejemplo, ttyAMC1
.
Si las impresoras no tienen la misma placa, da igual a que puerto usb de la raspberry conectes la impresora, en el caso de tener la misma placa hay que acordarse a que puerto as conectado cada impresora.
Mandamos este comando, con el nombre del puerto asignado a nuestra impresora.
Saldrán muchos números. Nos desplazamos aproximadamente al tercer parágrafo, nos paramos en el primero mas largo, como en la foto.
Apuntamos estos dos valores:
En el caso que las dos impresores sean iguales, o tengan la misma placa, estos valores saldrán iguales, hay que apuntar un tercer valor.
Una vez apuntados estos valores, desconectamos del usb de la impresora y conectamos la otra, volvemos a octoprint para saber que nombre le da octoprint al puerto usb a la nueva impresora, puede que sea igual que la otra impresora.
¡OJO! Si tus impresoras son iguales o tienen la misma placa, tienes que conectar a otro puerto usb de la raspberry, y acordarte a que puerto usb as conectado cada impresora, sino conectara a la que no toca.
Repetimos el proceso para todas la impresoras. Al final conseguiremos los valores de idVendor, idProduct, y en caso necesario, el devpath, para cada una de las impresoras.
Con esto terminamos con PuTTY, editamos este fichero, si es la primera vez que accedes saldrá en blanco.
Dentro añadimos una línea para cada impresora, rellenándolo con los valores conseguidos anteriormente. En SYMLINK+
, añadimos el nombre que le daremos al nuevo puerto. Quedando algo así:
En el caso de impresoras iguales o con la misma placa, hay que añadir el tercer parámetro, quedando así:
Guardamos, y posteriormente reiniciamos la raspberry.
Con todas las impresoras conectadas, podemos comprobar si los nombres asignados son correctos, podemos mandar este comando por SSH.
Ahora vamos a una de las instancias de octoprint. Por ejemplo, en este caso, la de la Prusa.
Vamos a Settings – Serial Connection – General.
En Additional serial ports, añadiremos el nuevo nombre del puerto para la Prusa, en este caso /dev/PMINI
Luego en Blacklisted serial ports, pondremos todos los nombres de los puertos que nos aparezcan de mas. Es decir, algo así:
Finalmente guardamos, si está todo correcto veremos que ahora solo nos sale el puerto de la Prusa, en esa instancia de octorpint.
Repetimos el mismo proceso para la Artillery X1, vamos al octoprint para esta impresora y la configuramos igual que la otra, solo que en Additional serial ports, esta vez añadimos el puerto de la Arillery.
Repetimos este proceso para cada una de las máquinas. De esta forma, no correremos el riesgo de conectar a la impresora que no toca.
Esto es todo lo necesario para poder crear múltiples instancias de octoprint 0.18.0 Extraído del manual de nuestro compañero https://t.me/rogodra que podéis encontrar aquí
Si tenéis alguna duda poder entrar en la magnífica comunidad de octoprint para telegram:
Y quiero dar mención a Chris Riley y Thomas Messmer por sus manuales para la versión de octoprint 0.17.0
Primero entramos por SSH a octoprint, por ejemplo desde Windows con la aplicación PuTTy, introducimos la IP de la raspberry, marcamos SSH y finalmente a Open.
Si todo es correcto, volveremos a ver que ahora solo nos muestra el puerto de la Artillery.