Ender 3 + Banana Pi M1 (Octoprint)

Instalação e configuração do Octoprint no Banana Pi M1 para gerir uma impressora 3D Ender 3

Instalação do Octoprint no Banana Pi M1

Instalação do Octoprint no Banana Pi M1 é facil e requer apenas os seguintes comandos:

cd ~
sudo apt update
sudo apt install python-pip python-dev python-setuptools python-virtualenv git libyaml-dev build-essential
pip install pip --upgrade
pip install https://get.octoprint.org/latest

Se após o comando:

 pip install pip --upgrade

A execução de qualquer comando pip install resultar no seguinte erro:

Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in 
from pip import main
ImportError: cannot import name 'main'

É possível que o seguinte comando resolva o problema, (a mim resolveu):

hash -d pip

Tirando este problema, que deriva da actualização do pip, o resto da instalação correu sem problemas.

Configuração do Octoprint no Banana Pi M1

Depois de instalado para correr o octoprint devemos executar o seguinte comando (num login que não seja root):

octoprint serve

O comando executa o servidor do octoprint e todo o software necessário para gerir a impressora.

No ecran surgem várias linhas de um log do qual transcrevo parte.

2019-06-20 16:35:06,278 - tornado.access - WARNING - 409 GET /api/printer (192.168.1.100) 21.53ms
2019-06-20 16:35:16,271 - tornado.access - WARNING - 409 GET /api/printer (192.168.1.100) 21.36ms
2019-06-20 16:35:17,174 - octoprint.server.util.sockjs - INFO - New connection from client: 192.168.1.100
2019-06-20 16:35:17,373 - octoprint.server.util.flask - INFO - Passively logging in user inaciose from 192.168.1.100
2019-06-20 16:35:17,397 - octoprint.server.util.sockjs - INFO - User inaciose logged in on the socket from client 192.168.1.100
2019-06-20 16:35:21,967 - octoprint.util.comm - INFO - Changing monitoring state from "Offline" to "Detecting serial port"
2019-06-20 16:35:22,147 - octoprint.util.comm - INFO - Changing monitoring state from "Detecting serial port" to "Opening serial port"
2019-06-20 16:35:22,160 - octoprint.util.comm - INFO - Changing monitoring state from "Opening serial port" to "Detecting baudrate"
2019-06-20 16:35:23,197 - octoprint.util.comm - INFO - M110 detected, setting current line number to 0
2019-06-20 16:35:23,208 - octoprint.util.comm - INFO - Changing monitoring state from "Detecting baudrate" to "Operational"
2019-06-20 16:35:23,235 - octoprint.util.comm - INFO - M110 detected, setting current line number to 0
2019-06-20 16:35:25,558 - octoprint.util.comm - INFO - Printer reports firmware name "Marlin Creality 3D"
2019-06-20 16:35:25,588 - octoprint.util.comm - INFO - Firmware states that it supports temperature autoreporting
2019-06-20 16:35:26,498 - octoprint.plugins.tracking - INFO - Sent tracking event printer_connected, payload: {u'printer_baudrate': 0, u'printer_port': u'AUTO', 'firmware_name': 'Marlin Creality 3D'}

Estas linhas correspondem a um momento posterior, no qual ligo o cabo usb do banana pi à ender3.

Como o servidor web do octoprint responde na porta 5000, termos que apontar o navegador para o ip do pi, na porta 5000, conforme o exemplo abaixo:

http://ip:5000/

Se tudo correr bem será apresentada uma sequência de ecrans em que se procede à configuração inicial do octoprint.

Procedi a todo o processo de configuração sem ter o pi ligado a impressora 3D.

Apenas no final liguei o cabo entre o pi e a ender3. Nesse preciso momento o ecran da impressora 3D acendeu. E assim fica enquanto o pi estiver ligado.

Configuração do Octoprint no Cura

O cura tem um plugin que comunica directamente com o octoprint. Para instalar o plugin, é necessário ir ao market place, escolher plugins e instalar o Octaprint Connection.

Seguidamente ir ao menu das impressoras e escolher: Manage Printers, seleccionar a impressora (ou criar uma nova préviamente) e  clicar em Connect Octoprint.

Os passos que segui estão mais o menos documentados no seguinte video.

Antes de ligar a impressora ao Pi, quando tentei a ligação do Cura ao Octaprint, no log exibido na consola de login começou a aparecer a seguinte mensagem de erro:

2019-06-20 16:35:06,278 – tornado.access – WARNING – 409 GET /api/printer (192.168.1.100) 21.53ms

Esta mensagem de erro desapareceu assim que liguei o pi a impressora e cliquei no botão de connect no interface web do Octaprint.

No entanto nunca apareceu dentro do cura qualquer informação de que a ligação ao Octaprint tinha sido efectuada.

Posto isto efectuei a minha primeira tentativa de impressão directamente no cura recorrendo ao novo botão que ficou disponível:

No entanto a impressão directa não funcionou, e foi.me proposto transferir o ficheiro para o Octaprint. Proposta aceite. O cura transferiu o ficheiro.

Na página do octoprint bastou apenas dar inicio à impressão do ficheiro, que fica guardado numa lista.

Após a impressão este era o aspecto da página web do octaprint. É bem visivel do lado direito o gráfico das temperaturas do extrusor e da cama, e do lado esquerdo o estado da impressão e o ficheiro carregado.

Caso alguma coisa corra mal na ligação entre o pi e a impressora 3D convém verificar se o utilizador tem permissões de uso para o device. Os seguintes comandos, com o pi substituido pelo utilizador adequado, podem ajudar a resolver.

sudo usermod -a -G tty pi
sudo usermod -a -G dialout pi

Numa impressão posterior, depois de reinicializar o pi a impressão iniciou-se directamente a partir do cura. No entanto não correu bem, pois interrompeu a meio. Quando voltei a imprimir através do octaprint já correu bem.

A instalação do octoprint foi adaptada do processo descrito no seguinte link:

https://community.octoprint.org/t/setting-up-octoprint-on-a-raspberry-pi-running-raspbian/2337

Outro video consultado foi: