2014년 11월 26일 수요일

Marlin 펌웨어 기본 구성 가이드

DLP 1호기를 마린으로 셋팅했었는데 2호기는 Grbl 펌웨어를 수정하여 사용하다보니 사용할일이 없었는데 
다시 델타봇을 위해 다시 보게되어 정리해본다.
펌웨어는 아래에서 받을수 있고 계속 업데이트 되고 있어서 나중에는 틀린 부분이 있을수 있다.
세팅은 Configuration.h 파일에서 #define을 주석처리하거나 주석을 해제하여 세팅하는 방식이다.

-.기본구성
1.Baud Rate -> 통신속도 설정
#define BAUDRATE 250000 //속도가 높은게 좋긴한데 PC에따라 드라이버 호환이 안되는 경우가 있다고 함
//#define BAUDRATE 115200

2.Motherboard -> 제어보드 설정
자신이 사용하는 제어보드에 맞게 설정
#ifndef MOTHERBOARD
#define MOTHERBOARD 33 //일반적으로 많이 사용하는 Ramps 1.4 보드
#endif

-.온도설정
1.Thermistor -> 온도센서 설정
사용하는 서미스터 목록에서 골라서 설정
#define TEMP_SENSOR_0 1 //핫엔드
#define TEMP_SENSOR_1 0 //0은 사용안함
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1 //히트베드
Ramps 1.3 보드의 경우 T0, T1이 핫엔드와 히트베드 센서로 할당되어 있다함
RAMPS 1.3 Temperature Connectors T0 & T1 Connected
RAMPS 1.3 Temperature Connectors with T0 & T1 Connected to Hot End & Heated bed sensors
2.Maximum Temperatures -> 최대온도 설정
#define HEATER_0_MAXTEMP 275
#define HEATER_1_MAXTEMP 275
#define HEATER_2_MAXTEMP 275
#define BED_MAXTEMP 120
히팅튜브 최대 온도가 이 디폴트값보다 낮을수 있으니 확인이 필요함

-.기계작동부 설정
1.End Stops & Pull Ups -> 엔드스탑(리밋) 스위치 및 풀업저항 설정
엔드스탑 스위치연결을 풀업저항을 이용하여 연결하겠다는 설정인데..
풀업이 뭐지? 하고 고민할수 있는데 이런 스위치연결은 풀다운과 풀업방식이 있고
기본적으로 MCU에서 풀업을 지원해준다. 풀다운 방식을 사용하려면 아래 문구를 주석처리하고
저항을 달아줘야 한다. 굳이 그럴필요가 없으므로 풀업설정을 사용하면 될 것 같다,
엔드스탑 스위치가 NO(Normal Open) 상태에서 눌렸을때 풀업일때는 
1 -> 0으로 바뀐다. 스위치의 신호선이 NO 상태에 있을때는 1로 유지해주는게 풀업저항이다.
풀업저항이 설정안되어 있고 신호선이 NO 상태에 있으면 floating 상태로 1일수도 0일수도 있다.
만약 보드와 일체형인 엔드스탑 스위치는 풀업저항이 보드에 설치되어 있어 아래 코드가 필요없을 것이다.
#define ENDSTOPPULLUPS 
위 코드가 설정되면 아래와 같이 각축별로 엔드스탑의 풀업저항을 설정할수 있다.
#ifndef ENDSTOPPULLUPS
// fine Enstop settings: Individual Pullups. will be ignord if ENDSTOPPULLUPS is defined
#define ENDSTOPPULLUP_XMAX
#define ENDSTOPPULLUP_YMAX
#define ENDSTOPPULLUP_ZMAX
#define ENDSTOPPULLUP_XMIN
#define ENDSTOPPULLUP_YMIN
//#define ENDSTOPPULLUP_ZMIN
#endif
RAMPS 1.3 Mechanical End Stop Connections X-, Y- & Z+
RAMPS 1.3 Mechanical End Stop Connections X-, Y- & Z+
​엔드스탑스위치가 NO (Normal Open), NC (NOrmal Close)에 연결된 제품에 따라 엔드스탑신호를 반전시킬 필요가 있다. 
// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
// set to true to invert the logic of the endstops.
const bool X_ENDSTOPS_INVERTING = false;
const bool Y_ENDSTOPS_INVERTING = false;
const bool Z_ENDSTOPS_INVERTING = false;
 
Opto 센서를 리밋스위치로 사용할 경우는 Opto 센서 데이타시트를 확인해 봐야 한다.
2.Stepper Motors
:스텝모터 회전방향
#define INVERT_X_DIR true
#define INVERT_Y_DIR true
#define INVERT_Z_DIR true
#define INVERT_E0_DIR true
#define INVERT_E1_DIR false
#define INVERT_E2_DIR false
RAMPS 1.3 Stepper Motor Wire Connections
RAMPS 1.3 Stepper Motor Wire Connections
제일 나중에 테스트 하면서 10mm만 이동시켜서 스텝모터 방향을 체크하여 설정한다.
처음으로 스텝모터를 움직이거나 홈으로 이동시킬때 만약의 사태를 대비해 reset 버튼을 
누를 준비를 하고 있어야 한다.
:홈이동 방향
엔드스탑 스위치 연결도 홈방향에 맞춰서 연결해야 한다.
// Sets direction of endstops when homing; 1=MAX, -1=MIN
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR 1
RAMPS 1.3 Mechanical End Stop Connections X-, Y- & Z+
RAMPS 1.3 Mechanical End Stop Connections X-, Y- & Z+. These should also match End Stop home direction.
:이동제한
#define X_MAX_POS 130
#define X_MIN_POS 0
#define Y_MAX_POS 130
#define Y_MIN_POS 0
#define Z_MAX_POS 107
#define Z_MIN_POS 0
작업영역이라고 보면 될 것 같다. 이 이상으로 이동하지 못하도록 제한을 거는 거다. 처음 테스트시 Z축 값은 실제보다 작게해서 테스트해야 핫엔드와 베드의 충돌을 예방할 수 있다.

:유닛당 스텝수
#define DEFAULT_AXIS_STEPS_PER_UNIT   {106.76, 106.76, 800, 48.14}
이 값이 프린터의 정밀도를 좌지우지 하는 설정값이다. 값의 순서는 X, Y, Z, E 이며
X, Y 축 값 설정 공식은 다음과 같다.
Steps per mm = ((360°/Motor step size°) * (1/Driver microstepping))/(Belt pitch * Tooth count)
예) Steps per mm = ((360°/1.8°) * (1(1/16)))/(5 * 12) = 53.333333 
Z축 공식은 (steps for a 360° rotation of stepper/Threaded Rod Pitch)
예) (360 / 1.8) * 16 = 3200에서 피치로 나누면 3200 / 4 = 800
E축 공식은 Steps per Unit (Extruder) = Motor Steps per Revolution * Extruder Gear Ratio / (Pinch Wheel Diameter * Pi)
Extruder Gear Ratio = (big_gear_teeth / small_gear_teeth) 
예) // Classic Wade with a 39:11 gear ratio
(200 * 16) * (39 / 11) / (7 * 3.14159) = 515.91048
// MK7 Direct Drive with 2engineers 50:1 planetary gear motor
(48 * 16) * (50 / 1) / (10.56 * 3.14159) = 1157.49147

이상으로 기본적인 세팅값 설정가이드를 마친다. 자작하는 마린 사용자에게 조금이나마 도움이 되었으면 한다.

#참고사이트

댓글 없음:

댓글 쓰기