Prusa i3 Rework Firmware/pt

From RepRap
Jump to: navigation, search


Introdução | Lista de Materiais | Montagem do eixo Y | Montagem eixo X | Montagem do eixo X e Z | Motores Nema 17 | Correias | Mesa aquecida (heated bed)

Extrusora - cabeça de impressão | Electrónica e cablagem | Firmware, instalar Marlin | Calibrar a impressora | Primeira Impressão


Após montar a sua impressora 3D Prusa i3 Rework, vamos agora dar inicio à instalação do firmware, chamamos-lhe programação que vai gerir os movimentos da impressora bem como os seus limites de impressão, temperaturas e velocidade.

Downloads - Descarregar programas e firmware

Passo 1


Depois de montar a sua impressora inicie por descarregar o Firmware [Marlin] no seguinte link:

[Versão antiga Firmware Marlin usado para a Prusa i3 Hephestos e modificado para a Prusa i3 Rework]

Se estiver à procura de uma versão nova e estável do Marlin 1.0.2-2 já em Português aqui vai o link:

[Firmware Marlin 1.0.2-2 Estável usado para a Prusa i3 Hephestos com lead screws de M8 pitch 2 no Z e um engrenagem dentada mk8 no E]

Se tiver uma Geeetech i3 X:

[para Geeetech i3 X]

Ou opte pelo original em:

Versão Atual

Descarregue também o Arduino IDE:

[Clique aqui para descarregar o Arduino IDE 1.0.6 (recomendado)]


Descarregar o PronterFace programa usado para controlado a impressora via USB:

[Clique aqui para descarregar Pronterface]

Juntamente com o PronterFace vai o Slic3r, usado para criar os ficheiros gcode com base em STL ou OBJ que serão lidos pelo Pronterface.


Nota: STL e OBJ são extensões de ficheiros de modelos 3D, se trabalha com aplicações 3D certamente que os conhece. Caso contrário, pode fazer uma pesquisa na Internet e Aprender mais sobre modelação 3D. Um bom programa para modelar em 3D é o [Blender] pois trata-se de uma aplicação gratuita muito completa.


Passo 2

Depois de descarregar todas as aplicações instale o Arduino IDE.

Descompacte o ficheiro Marlin_Prusai3_reprap_pt.zip ou Marlin_1_0_2.zip para uma pasta.

Clique duas vezes sobre o ficheiro Marlin.ino. Após clicar sobre o ficheiro deve abrir a seguinte janela:

Arduino Software com o Firmware Marlin.

Alterar o firmware

Passo 1: Abrir as Configurações

Uma grande parte do código já foi alterado por mim, mas ainda assim pode alterar algumas partes do código ou confirmar no caso de algo estar errado. Se não quiser alterar pode ignorar os seguintes passos até ao 10. Se optou pela versão actual, não deve ignorar estes passos. Ainda assim com a versão mais recente as variáveis diferem.

Para alterar o código clique na tab que diz Configuration.h.

Tab Configuration.h


Passo 2: Data e nome do autor das alterações

Para fazer alterações no código deve indicar o seu nome assim como a data em que iniciou as alterações.

#define STRING_VERSION_CONFIG_H __DATE__ "27/03/2015 1126h" __TIME__ // build date and time
#define STRING_CONFIG_H_AUTHOR "(Pedro Emanuel, reprap.pt)" // Who made the changes.

Neste caso substitua 27/03/2015 1126h pela data atual no seu computador, e (Pedro Emanuel, reprap.pt) pelo seu nome e outra referência.


Passo 3: BAUDRATE

Quando liga a sua impressora ao computador por USB, esta fica com um BAUDRATE que determina a velocidade da conexão da impressora, muitas das vezes esse valor é de 115200.

#define BAUDRATE 115200

Mais tarde quando se conectar pelo Pronterface, irá ter de introduzir este valor. Na imagem em baixo mostramos onde este valor é escolhido:

Pronterface BAUDRATE.

Passo 4: Motherboard RAMPS

O próximo passo será definir a motherboard. No nosso caso a motherboard escolhida foi a 33 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed).

Por isso escolhemos o valor 33 para a versão mais antiga do marlin:

#define MOTHERBOARD 33

Para a versão mais recente do Marlin 1.0.2-2:

// The following define selects which electronics board you have.
// Please choose the name from boards.h that matches your setup
#ifndef MOTHERBOARD
  #define MOTHERBOARD BOARD_RAMPS_13_EFB
#endif

Nota: Se tivéssemos duas cabeças de impressão seria 34 para a versão antiga.

Nota sobre versão mais recente do Marlin 1.0.2-2: As placas encontram-se em boards.h e a opção a escrever será #define MOTHERBOARD BOARD_RAMPS_13_EFB em vez de #define MOTHERBOARD BOARD_ULTIMAKER. EFB aqui quer dizer que o Extruder, Fan e Bed mas ainda têm as seguintes opções:

  1. define BOARD_RAMPS_13_EFB 33 // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed)
  2. define BOARD_RAMPS_13_EEB 34 // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed)
  3. define BOARD_RAMPS_13_EFF 35 // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan)
  4. define BOARD_RAMPS_13_EEF 36 // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Fan)

Passo 5: Termistor

Este passo será para definir o termistor, como estamos a usar 2 termistores de 100k, um para a cama aquecida e outro para a cabeça de impressão. O termistor será quem irá obter as informações de temperatura.

Por isso escolhemos o valor 1 para ambos:

#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1

Nota: TEMP_SENSOR_0 refere-se ao termistor da cabeça de impressão e TEMP_SENSOR_BED para a mesa aquecida. Se usar um termistor de 10k (não recomendado para a mesa aquecida) teria de escolher outra opção.


Passo 6: Temperaturas Min e Max

Neste caso poderá definir as temperaturas mínimas e máximas que os termistor podem detectar.

Mínimas:

#define HEATER_0_MINTEMP 5
#define HEATER_1_MINTEMP 5
#define HEATER_2_MINTEMP 5
#define BED_MINTEMP 5

Nota: HEATER_0_MINTEMP refere-se ao termistor da cabeça de impressão e BED_MINTEMP para a mesa aquecida.

Máximas:

#define HEATER_0_MAXTEMP 275
#define HEATER_1_MAXTEMP 275
#define HEATER_2_MAXTEMP 275
#define BED_MAXTEMP 150

Nota: HEATER_0_MAXTEMP refere-se ao termistor da cabeça de impressão e BED_MAXTEMP para a mesa aquecida.

Passo 7: Inverter movimentos dos motores

Nestas configurações intencionalmente inverte-se algumas direcções dos motores. Quando tiver a fazer os primeiros testes de movimento e verificar que o motor está a mover no sentido oposto pode sempre alterar o valor de true para false aqui.

#define INVERT_X_DIR true    // for Mendel set to false, for Orca set to true
#define INVERT_Y_DIR true    // for Mendel set to true, for Orca set to false
#define INVERT_Z_DIR true     // for Mendel set to false, for Orca set to true
#define INVERT_E0_DIR true   // for direct drive extruder v9 set to true, for geared extruder set to false
#define INVERT_E1_DIR false    // for direct drive extruder v9 set to true, for geared extruder set to false
#define INVERT_E2_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false

Passo 8: Posição dos endstops

Se os seus fins de curso (endstops) se encontram na origem quando manda a impressora para Home onde neste caso será: X=215mm(MAX), Y=0mm(MIN) e Z=0mm(MIN).

Então o código a aplicar para a rework é:

#define X_HOME_DIR 1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1

No caso de uma Hephestos o código é o mais comum nas Prusas:

#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1

Onde 1 corresponde à posição máxima do X e -1 às mínimas de Y e Z.

Passo 9: Definir dimensão da área de impressão

Por defeito a Prusa i3 tem aproximadamente uma dimensão X de 215 mm, Y de 210 mm e Z de 180 mm. Se tiver uma área de impressão maior pode sempre alterar os seguintes valores:

#define X_MAX_POS 215
#define X_MIN_POS 0
#define Y_MAX_POS 210
#define Y_MIN_POS 0
#define Z_MAX_POS 180
#define Z_MIN_POS 0

Passo 10: Velocidade dos motores

Aqui pode definir a velocidade dos motores, estas configurações podem ser melhoradas na altura de calibrar, mas a maioria destes valores são definidos na seguinte calculadora do [Josef Prusa].

// prusa i3 settings
#define DEFAULT_AXIS_STEPS_PER_UNIT   {80,80,4000,600}  // default steps per unit for prusa i3 rework 
#define DEFAULT_MAX_FEEDRATE          {500, 500, 2, 25}    // (mm/sec)
#define DEFAULT_MAX_ACCELERATION      {2000,2000,20,1000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for skeinforge 40+, for older versions raise them a lot.


Nota: estes valores funcionam para os stepper drivers de A4988. Se utilizar os drivers DRV8825, os valores devem ser alterados para dobro.

Na altura de calibrar recomendo a desenhar uma marca no eixo pretendido (X, Y ou Z) e mover 10 cm e ver quanto se moveu o motor, depois podemos obter o valor correcto de DEFAULT_AXIS_STEPS_PER_UNIT com um regra de 3 simples.

Este vídeo poder ser muito útil para entender como o fazer:

https://www.youtube.com/watch?v=-7ht0zYWhzY

https://www.youtube.com/watch?v=7iEMJm6aiNI

Mas só é possível fazer depois de colocar o primeiro firmware na impressora.

Passo 11: Escolher LCD e Cartão SD

É igualmente importante escolher o LCD que instalamos na impressora. No meu caso eu usei um LCD2004, conhecido também como RepRapDiscount Smart Controller.

Suporte para SD:

#define SDSUPPORT // Enable SD Card Support in Hardware Console

Podem ativar o Ultra_LCD e ULTIPANEL para ter o máximo de suporte:

//LCD and SD support
#define ULTRA_LCD  //general LCD support, also 16x2
//#define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
#define SDSUPPORT // Enable SD Card Support in Hardware Console
//#define SDSLOW // Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error)
//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication
//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder
//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking
//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.
#define ULTIPANEL  //the UltiPanel as on Thingiverse
//#define LCD_FEEDBACK_FREQUENCY_HZ 1000	// this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click
//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click

Para o LCD2004:

// The RepRapDiscount Smart Controller (white PCB)
// http://reprap.org/wiki/RepRapDiscount_Smart_Controller
#define REPRAP_DISCOUNT_SMART_CONTROLLER

Se o LCD fosse o 12864 (conhecido com Full Graphic) então a opção pretendida seria em vez da anterior:

// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB)
// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
//
// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

Nota: A opção é um dos LCDs não devemos ter todos ou alguns descomentados, apenas um deverá estar descomentado.

Instalar Marlin na Placa

Passo 1: Escolher Placa

Ligue por cabo USB o conjunto electrónico ao computador (este é ligado a uma entrada USB na Arduino Mega). Aguarde para que o sistema instale os drivers.

No Arduino Software escolha Ferramentas > Placa > Arduino Mega ou Mega 2560

Escolher Placa Arduino Mega ou Mega 2560


Passo 2: Escolher Entrada Porta Serie

Ao conectar o meu computador atribuiu o numero COM5 à Serial Port do meu Arduino, no seu caso pode ter atribuído um numero diferente. Evite ter outros periféricos ligados para poder descobrir a porta certa do seu Arduino.

Se tiver dificuldades a descobrir a porta abra o Gestor de Dispositivos do Windows e ao conectar irá encontrar o seu Arduino ligado numa porta Serie.

No Arduino Software escolha Ferramentas > Porta > COM5

Escolher Serial Port

Passo 3: Compilar e verificar o firmware

Antes de fazer Upload podemos testar para ver se tudo está bem carregando no botão redondo no canto superior esquerdo com forma de um V no interior:

Verificar

Ao verificar uma barra de progresso apresenta os resultados em baixo. Se der algum erro, e se não é a primeira vez que está a seguir este processo, verifique se não tem o Pronterface conectado à impressora ou outra aplicação.

Progress Bar

Passo 4: Fazer Upload para a placa definitivamente

Upload
Progress Bar


O seu firmware está agora instalado. Não precisa de fazer este processo mais vezes, a não ser que queira alterar as definições permanentes da Impressora ou partes dela.

Depois de todos estes passos pode ser necessário mais tarde fazer um PID Tuning para afinar a precisão de aquecimento e alterar os seguintes valores:


  #define  DEFAULT_Kp 22.2
  #define  DEFAULT_Ki 1.08
  #define  DEFAULT_Kd 114