Prusa i3d Firmware/pt

From RepRap
Revision as of 13:59, 12 May 2017 by Keeplisted (talk | contribs) (Passo 10: Motores)
Jump to: navigation, search

LINGUA / LANGUAGE


MENU Prusa i3D

Introdução | Lista de Materiais (BOM) | Onde comprar as peças?

Instruções:

  1. Montagem Transformador 400w
  2. Montagem Eixo X
  3. Montagem Eixo Z
  4. Montagem Eixo Y
  5. Montagem do Sistema de Extrusão
    1. Opção de Extrusão Direta
    2. Opção Bowden 1 Extrusor
    3. Opção Bowden 2 Extrusores
  6. Electrónica e Ligações
  7. Firmware
  8. Primeira Impressão
Infobox info icon.svg.png Esta página está em desenvolvimento... Porque o nome mk2b poderia confundir com a MK2 alterei para o nome para Prusa i3d

Firmware

Downloads - Descarregar programas e firmware

Passo 1


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

  • O firmware baseado em Marlin para esta impressora pode ser encontrado em Github Firmware


Descarregue também o Arduino IDE:

[Clique aqui para descarregar o Arduino IDE]


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 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_CONFIG_H_AUTHOR "(Pedro Martins, reprap.pt)" // Who made the changes.
#define SHOW_BOOTSCREEN
#define STRING_SPLASH_LINE1 SHORT_BUILD_VERSION // will be shown during bootup in line 1
#define STRING_SPLASH_LINE2 WEBSITE_URL         // will be shown during bootup in line 2

Neste caso substitua (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, valor por defeito é 250000 e podemos manter.

#define BAUDRATE 250000

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

Pronterface BAUDRATE.

Sem mantivermos o valor de 250000 neste campo em vez de colocar 115200 teríamos de inserir 250000.

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 1.4.2 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)

Esta orientação E,F e B corresponde a D10,D9 e D8 na RAMPS.

Ou seja para dois extrusores independentes e uma mesa aquecida seria #define BOARD_RAMPS_13_EEB onde:

  • D10= Extruder 0
  • D09= Extruder 1
  • D08= BED

Ou seja para um a quatro extrusores dependentes e uma mesa aquecida seria #define BOARD_RAMPS_13_EFB onde:

  • D10= Extruder 0, 1, 2, 3
  • D09= Colling Fan
  • D08= BED

Passo 5: Termistor

Este passo será para definir o termistor, como estamos a usar 2 termistores de 100k NTC beta 3590, 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 ou 11 e 60:

#define TEMP_SENSOR_0 11
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_3 0
#define TEMP_SENSOR_BED 60

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. No caso do segundo extrusor independente TEMP_SENSOR_1.

A não esquecer que para ativar o segundo extrusor devemos indicar

// This defines the number of extruders
// :[1, 2, 3, 4]
#define EXTRUDERS 2

E se forem extrusores dependentes mantemos o código dos sensores onde TEMP_SENSOR_1 é zero e descomentamos SINGLENOZZLE:

// For Cyclops or any "multi-extruder" that shares a single nozzle.
#define SINGLENOZZLE

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 HEATER_3_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 HEATER_3_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 true   // for direct drive extruder v9 set to true, for geared extruder set to false
#define INVERT_E2_DIR true   // 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=0mm(MIN), Y=0mm(MIN) e Z=0mm(MIN).

Neste caso é:

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

Onde -1 às mínimas de X, 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 215 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 215
#define Y_MIN_POS 0
#define Z_MAX_POS 180
#define Z_MIN_POS 0

Nota: Se optar pela mesa de 300mmx200mm é tão simples quanto alterar o valor de #define Y_MAX_POS 215 para 300

Passo 10: 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 nos valores de DEFAULT_AXIS_STEPS_PER_UNIT. Recomenda-se que o valor de JERK X e Y seja 10 ou 15.

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. E para saber os valores não há nada melhor que a calculadora do Josef Prusa.

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

Erros Comuns

stk500v2_getsync(): timeout communicating with programmer

Possível Solução: Utilizar um cabo USB mais curto ou remover o Jumper que pode estar nos pins de Reset da ATMEGA 2560, se não tiver o jumper colocar o Jumper e retirar após o reset. Se nenhuma destas soluções funciona. Experimente instalar noutro computador. Se nenhuma destas soluções não funcionar e se o erro aparece ao fim de muito tempo de carregamento da placa, provavelmente pode estar danificada.


MENU Prusa i3D

Introdução | Lista de Materiais (BOM) | Onde comprar as peças?

Instruções:

  1. Montagem Transformador 400w
  2. Montagem Eixo X
  3. Montagem Eixo Z
  4. Montagem Eixo Y
  5. Montagem do Sistema de Extrusão
    1. Opção de Extrusão Direta
    2. Opção Bowden 1 Extrusor
    3. Opção Bowden 2 Extrusores
  6. Electrónica e Ligações
  7. Firmware
  8. Primeira Impressão

Fonte