본문 바로가기

IT/3D Printing

R3D S3 프린터에 Auto Bed Leveling 추가하기 (2/2)

(1부에서 계속)

1부 보러 가기: http://miraclepocket.tistory.com/89


이제 실제로 장착을 해 보자.


1. 준비물


당연한 이야기지만, 아래에서 나열하는 준비물들은 같은 제품이면 굳이 첨부한 링크 외의 다른 곳에서 구입해도 무방하다. 그냥 내가 산 곳들을 적어놓은 것 뿐.

납땜을 위한 장비와 소품들과 테스터는 이미 가지고 있음을 전제로 하므로 기술하지 않는다.
그리고 빠진 것이 있을 수 있으니, 뒤쪽의 실제 작업 절차를 보면서 부족한 것은 따로 조달하도록 한다.

    • 변환 기판
    • 2.54mm 피치 핀헤더, 듀퐁 커넥터, 아두이노용 점퍼 선
      • 위의 변환 기판에 사용할 핀헤더와, 여기에 연결가능한 커넥터
      • 아두이노에서 많이 쓰는 그것 맞다.
      • 점퍼 선은 본 포스팅에 나오는 그대로 조립하는 경우, 레귤레이터 모듈과 Z 엔드스탑 케이블을 연결할 때 M-F 타입 2개가 필요하다.
    • 크림핑 툴
      • 구입 링크 (예시일 뿐...)
      • 여러가지 커넥터를 작업할 때 사용하는 도구인데, 이제까지 써 본것 중에서는 위의 PA-09가 제일 마음에 들었다. 물론 더 저렴하고 신속하게 구할 수 있는 크림핑 툴을 써도 무방. 공구는 내 손에 익숙한 것이 최고다. :-)

    • 기구물
      • 다운로드 링크: https://www.thingiverse.com/thing:2763931
      • 당연히 ABL 센서를 장착할 수 있는 기구물이 필요한데, 그냥 프린터로 제작하면 된다. 마침 R3D 공구 이후에 인기를 끌었던 FAN duct가 ABL 센서를 장착할 수 있는 기구물 도면을 같이 포함하고 있어, 이를 사용하였다.
        • 포함된 모델 데이터를 모두 출력할 필요는 없고, 아래 명시하는 파일들만 출력해도 된다.
          • V2-FANG-oz-40mm-duct.stl
          • V2-FANG-oz-fang.stl
          • FANG-oz-EZABL.stl
          • FANG-oz-carriage-plate.stl
      • 마음에 드는 다른 기구물이 있다면 그것으로 대체해도 무방하다.


2. 사전 작업


먼저, 기구물을 프린트하여 준비해놓자. 프린팅해서 준비해야 하는 물건은 프린터에 손대기 전에 미리 까먹지 말고 준비해놓아야 나중에 후회하지 않는다. :-)

나중에 챔버를 씌울 수도 있는 상황을 고려하여, ABS가 사용가능한 프린터가 있다면 웬만하면 ABS를 쓰자. 정 안되면 PETG나 PLA로 출력할 수 밖에 없겠지만, 추후에 ABS로 교체한다고 생각은 해 두자.


금속 베드도 미리 설치해둔다.


3. 부품 조립 및 가공


설치 전에 부품들을 먼저 조립 또는 제작해서 준비해야 한다.

3.3V 레귤레이터 조립, 12V 전원 분배 케이블 제작 작업, ABL 센서 커넥터 작업이 이에 해당한다.


3.1. 3.3V 레귤레이터 조립


AMS1117-3.3 레귤레이터를 WAT-89-223 변환보드에 납땜한다.

변환보드는 AMS1117-3.3이 SOT-223 패키지로 되어 있으므로 SOT-223이라고 인쇄되어 있는 면을 사용한다.


아래쪽에는 1,2,3이라고 써 있는 3개의 구멍이 있는데, 여기에는 2.54mm 피치의 핀헤더를 납땜한다.


납땜이 잘 되었는지 테스터로 꼭 확인하도록 하자.



3.2 Y자 커넥터 작업


ABL 센서에 전원을 공급하기 위해서, 상시 팬(R3D S3에서는 2번이라고 써 있음)의 전원을 분배하여 사용할 것이다.

SMR Connector를 가지고 입력 1개, 출력 2개로 된 케이블을 제작하는데, 기존 커넥터의 케이블 배치(빨간색, 검정색)를 잘 보고 맞춰서 작업한다. 


마찬가지로 테스터를 이용하여 단자 작업이 제대로 되었음을 확인한다.




3.3. ABL 센서 커넥터 작업


ABL 센서에서는 갈색, 청색, 검정색선이 나오는데, 각각 Vcc, GND, SIGNAL이라고 보면 된다.

Vcc와 Ground는 12V 전원쪽으로 연결할 것이고, SIGNAL은 앞에서 조립한 3.3V 레귤레이터 모듈의 3번 핀에 연결하게 될 것이다.


앞에서 제작한 Y자 케이블과 맞춰서, 갈색(Vcc)은 빨간색에, 청색(GND)는 검정색에 연결되도록 SMR connector 작업을 하고, 나머지 검정색 선은 듀퐁 connector로 작업하여 3.3V 레귤레이터 모듈에 꽂을 수 있도록 작업한다.



4. 장착!


이제 실제로 프린터에 장착해보자.


4.1. 기구물 및 ABL 센서 장착


미리 출력해둔 FAN duct를 핫엔드쪽에 장착하고, ABL 센서도 마찬가지로 장착한다.

ABL 센서는 높이를 어느 정도 조정해야 하는데, 센서의 끝이 노즐 끝보다 약 2mm정도 높게 장착한다.

참고로 나는 2mm 두께의 아크릴 판을 갖고 있어서, 노즐을 베드에 붙인 상태에서 센서 밑에 아크릴판을 놓고 센서의 너트들을 조여서 고정하였다.




4.2. Y자 커넥터 연결


상시팬 케이블(2번이라고 써 있음)을 뽑아서, 앞에서 제작한 Y자 커넥터를 끼워서 다시 연결해준다.


유씨드에서 받은 상시팬 저항을 쓰는 사람도 있을텐데, 이 경우에는 분배되는 위치가 저항보다 앞(컨트롤 박스 쪽)에 위치하도록 설치한다. (안 그러면 ABL 센서도 저항에 의해 감쇄된 전류를 받으니...)





4.3. 3.3V 레귤레이터 및 Z축 엔드스탑 케이블 연결


ABL 센서를 보면 검정색, 갈색, 파란색 케이블이 나와있을텐데, 이것과 레귤레이터, Y자 커넥터를 연결하는 작업이다.


조금 복잡한데. 아래 그림을 참고.




아래쪽의 SMR 커넥터가 여러 개 나오는 쪽은 이미 눈치챈 사람도 있겠지만, 앞에서 연결한 Y자 커넥터쪽 결선도다. Y자 커넥터의 남는 쪽에 ABL 센서에서 나온 갈색 선과 파란 선을 연결하면 되는데, 갈색이 Y자 커넥터의 빨간선, 파란색이 검정색과 연결되도록 한다. 이러면 일단 전원은 연결되므로, 프린터를 켜고 ABL 센서의 아래쪽에 금속재질로 된 물체를 갖다대면 센서에 불이 들어오는 것을 볼 수 있다. 전원을 연결하기 전에는 반드시 +, -가 제대로 연결되었는지 확인하도록 하자. 잘못 연결하면 메인보드가 손상될 수 있다!!!


그리고 ABL 센서에서 나머지 검정색 선, 이게 실제 감지된 신호를 내보내는 선인데, 이걸 3.3V 레귤레이터를 거쳐서 연결해야 한다. 앞에서 조립한 레귤레이터 모듈의 3번 단자에 연결하면 되는데, 모듈에는 아까 2.54mm 핀헤더를 납땜해 놓았기 때문에, 듀퐁 커넥터를 가지고 연결하면 편할 것이다.


이제 레귤레이터 모듈과 메인보드를 연결해야 한다.

일단 Z 엔드스탑에 꽂혀있는 케이블이 연결된 단자 옆을 잘 보면, 위에서부터 SIG, GND, VCC가 써 있다.

케이블을 보면 두 줄짜리 케이블인데, SIG에 파란색 선, GND에 흰색 선이 연결되어 있고, VCC 자리는 비어있을 것이다.




Z 엔드 스탑에서 케이블을 뽑고, 레귤레이터 모듈의 1번 단자와 케이블의 흰색 선이 있는 쪽, 레귤레이터 모듈의 2번 단자와 케이블의 파란색 선이 있는 쪽을 각각 연결한다. 연결할 때는 기존 케이블에 듀퐁 케이블(male 타입)을 꽂을 수 있으므로, Male-Female 타입 듀퐁 케이블을 이용하면 편할 것이다. 아래 사진에서 빨간색으로 동그라미 쳐진 곳을 참고.




마지막으로 위 결선도대로 배선이 잘 되었는지 꼼꼼하게 다시 확인한다.


정상적으로 잘 연결하였으면, 프린터를 켜고 LCD 메뉴의 Axis Move를 이용하여 Z축을 약간 높이 올린 다음에, Auto Home을 누르고 Z축이 내려오는 동안에 센서에 금속 자 같은 물건을 갖다대면 Z 엔드 스탑이 눌려진 것으로 인식하고 멈추는 것을 볼 수 있다.


5. 펌웨어 설정 변경


기본 펌웨어는 당연하게도 Auto Bed Leveling 설정이 되어 있지 않다.

그래도 다행히 간단한 설정 변경으로 Marlin이 제공하는 bed leveling 기능 중, Auto Bed Leveling Bilinear를 사용할 수 있게 되어 있다. 막혀있었으면 바로 엄마보드 바꿨을 듯... :-)


LCD에서 설정 가능하면 좋았겠지만, 안타깝게도 이 설정은 펌웨어를 다시 기록하여 처리해야만 한다.


다음 절차를 수행하여 간단하게(!) 처리해보자.


5.1. 오리지널 펌웨어 다운로드


기본적으로 엄마보드 제작사인 Makerbase가 펌웨어의 소스 코드를 공개하지 않기 때문에, 펌웨어 잧체는 수정이 불가능하다. (GPL Violation이다. 이놈들아~~)


하지만, 일부 설정들을 별도의 텍스트 파일로 분리해놓아, re-flashing 과정만으로 이를 적용할 수 있게 해 놓았다. 당연히 Makerbase에서 release한 기본 설정을 쓰면 안되고, R3D S3에 맞게 수정된 것을 사용해야 하는데, 이 파일은 다행히 유씨드측에서 공개를 해 두었다.


아래 경로에서 받을 수 있으며, 카페 가입이 필요할 수도 있다.

https://cafe.naver.com/thingnthinks/810


상기 글의 첨부 파일의 압축을 풀면, 아래와 같이 네 개의 파일이 나온다.


- lite_cfg.cur

- lite_cfg.txt

- mksLite.bin

- mksLite.CUR


이 중에서 수정할 파일은 lite_cfg.txt이다. 이를 메모장, vi, UltraEdit 등 입맛에 맞는 텍스트 파일 편집 도구를 이용하여 연다.


5.2. 펌웨어 설정 수정


lite_cfg.txt에서 수정할 부분은 딱 여섯 줄이다.


1) MIN_SOFTWARE_ENDSTOPS

    - 1에서 0으로 변경

    - 엔드 스탑이 눌리는 위치 이하로 이동할 수 있도록 허용할 것이냐인데, 기본값인 1로 놓으면 이를 허용하지 않는 설정이 된다. 이를 0으로 변경해서 ABL 센서에서 감지한 위치보다 아래로 내려갈 수 있게 해야 마음대로 Z offset을 설정하며 사용할 수 있다.


2) X_PROBE_OFFSET_FROM_EXTRUDER

    - 0에서 적절한 값(!)으로 변경

    - ABL 센서의 위치 중 X축의 위치를 노즐 기준으로 설정해주는 항목이다. ABL 센서를 설치한 후, 측정 공구(자, 캘리퍼스 등)로 재어주면 되는데, 본인은 앞에서 출력한 기구물을 사용하였고, ABL 센서를 우측(프린터를 정면에서 바라볼 때 기준)에 설치하였는데, 자로 재어보니 거리가 약 50mm정도로 나와서 50으로 설정하였다.


3) Y_PROBE_OFFSET_FROM_EXTRUDER

    - 0에서 적절한 값(!)으로 변경

    - 마찬가지로, ABL 센서의 위치 중 Y축의 위치를 노즐 기준으로 설정해주는 항목이다. 본인의 경우 약간 앞쪽으로 10mm 정도 나와있어서 -10으로 설정하였다.


4) BED_LEVELING_METHOD

    - 0에서 3으로 변경

    - Bed Leveling 방법을 설정하는 항목으로, Auto Leveling Bilinear를 사용할 것이므로 주석의 내용에 따라 3으로 설정하였다.


5) RIGHT_PROBE_BED_POSITION

    - 180에서 285로 변경

    - ABL 수행 시, ABL 센서가 가로, 세로로 5x5로 총 25군데를 찍게 되는데, 가장 오른쪽 위치(X좌표 최대 위치)가 어딘지 설정하는 항목이다. 베드에서 벗어나지 않는 위치로 적절하게 잡아주면 된다. 본인은 대충(!) 285로 설정하였다.


6) BACK_PROBE_BED_POSITION

    - 180에서 270으로 변경

    - 마찬가지로 ABL 센서가 찍을 가장 뒤(Y좌표 최대 위치)를 설정하는 항목으로, 베드에서 벗어나지 않게 적절하게 잡아주면 된다. 본인은 대충(!) 270으로 설정하였다.


위 내용들을 그림으로 보면 이렇게 된다.






5.3. 설치


설치라고는 되어 있으나, re-flashing이 더 적절한 듯.


방법은 매우 간단해서, Micro SD카드에 수정한 lite_cfg.txt를 포함한 상기 네 개의 파일을 넣고, R3D S3의 컨트롤 박스에 삽입한 후 전원을 켜면, LCD에 Update라는 메시지가 나오고 퍼센트가 쭉 올라간다. 100%까지 완료되면 평소와 같이 R3D 로고가 출력되고 프린터가 구동된다,.


6. 슬라이서 Start G-code 변경


슬라이서에서도 Start G-code를 수정해야 하는데, 간단하게 G28 이후에 G29를 넣어주면 끝.




7. 시험 출력 & Z offset 수정


이제 20mm 큐브 같은 간단한 출력물을 슬라이싱해서 출력해보자.

아마 Z offset이 0 또는 그 이상으로 설정된 상태로 사용하고 있었을텐데, 약간 지루할 수 있는 25점 probing이 끝나고나면 상당히 높은 위치에서 출력하고 있는 것을 볼 수 있을 것이다.


LCD 메뉴 중 Control - Motion - Z offset의 값을 조정하면서 적절하게 베드에 안착이 되는 높이를 찾도록 한다. 너무 내리면 베드를 긁을 수 있으니 주의.


베드의 재질과 ABL 센서의 높이, 베드에 붙인 시트나 테이프의 두꼐 등에 따라 이 값은 천차만별로 설정될 수 있다. 참고로 음수값 사용이 가능하다. (이를 위해 아까 펌웨어 설정 중 MIN_SOFTWARE_ENDSTOPS를 변경!)


제대로 셋팅이 끝나고나면, 넓은 면적의 출력물을 한번 출력해보자. 상당히 뿌듯할...지도 모른다. :-)



8. 마치며


장황하고 그다지 친절하지 않은 포스팅을 보며 따라하시느라 수고 많으셨...ㅠ


부디 본 포스팅의 내용이 많은 분들을 레벨링 스트레스에서 벗어날 수 있도록 도와주기를 기원한다.