2018년 2월 10일 토요일

BL Touch 설치기

최근 블로그에는 글로 남기지 않았었지만 3D 프린터를 무음모드? 로 만들기 위해서 많은 작업을 하고 있었다.

가장 시끄러운 순서로 보면,

모터 소음 > SMPS 팬 소음 > 노즐목을 식혀주는 상시 30mm 팬 > 바닥 50 mm > 팬덕트 40 mm

순이었는데 이런식으로 해결했다.
모터 소음 : TMC2100 & Stepper damper
SMPS 팬 소음 : 방수 SMPS 로 교체
30 mm 팬 : WD-40 을 사용한 청소
40 mm 팬 : 그냥 무시
50 mm 팬 : 제거

이를 통해서 10 dB ~ 20 dB 라는 기적적인 고요함이 찾아왔다. 덕분에 밤새도록 출력을 해도 옆방에서 자고 있는 아들에게 불평을 들을 일이 없어졌다. 더불어 이걸 해결하기 위해 코어200 을 50번 이상이나 분해 조립을 하다보니 내공이 쌓여갔다.

그런데 내공이 쌓이는 것을 자각 할때부터 뭔가 새로운 (이라 쓰고 어려운 이라고 생각) 것을 찾기 시작했는데... 첫번째가 바로 auto-leveling 이었다. 사실 동영상에서 볼때마다 이게 정말 필요한걸까? 라는 생각을 할 정도로 실제 필요성을 느끼지 못하는 기능이었는데 정말 순수하게 호기심으로 해 보는 기능이었다.

맘을 먹었으니 자료조사 부터..

많은 자료가 있지만 이 동영상 하나로 정리가 될 것 같다.
그런데 아무리 좋은 센서라고 해도 내가 갖고 있는 프린터에 사용할 수 있는 것이 아니라면 무쓸모지 않을까. 코어200 이나 CR-10 의 경우 유리 bed 를 사용하기 때문에 가능한 센서가 제한적이었다.

조급하게 생각하지 않고 천천히 관련 동영상을 찾아 보던중에....응? 아주 친숙한 경상도 영어가 들리는 동영상을 하나 발견했다.

기능과는 전~혀 상관없이 경상도 영어 하나로 호기심이 생긴 이 제품에 대해서 찾아보니 아니나 다를까 한국 사람이 만든 제품이었다. 뜬금 왠 애국심 쇼핑인가 싶었지만 정품구매를 한번 해 봤다.

바로 이 제품 BL Touch 였다.
생각보다 작은 사이즈의 bl touch
배송이 왔는데 담배값 정도 사이즈에 사진속의 제품과 핀 류가 들어 있었다.

메뉴얼과 배선 방법을 아래 링크에서 확인 할 수 있다.
https://www.antclabs.com/manual
https://www.antclabs.com/wiring

내가 사용하는 코어200 은 ramps 1.4 를 사용하기 때문에 가이드대로 쉽게 작업해 줄 수 있다.
ramps 1.4 에 연결하는 방법
연결하는 방법도 찾았겠다 바로 작업을 해주려고 했는데 한가지 문제에 봉착했다.
바로 마운트 문제 였다. 
thingiverse 에 다양한 기종의 프린터에 장착할 수 있는 마운트가 있었는데, 아쉽게도 코어200 은 DIY 제품이고 한국에서만 사용되고 있어서 인지 bl touch 사용자를 찾을 수 없었다.

처음에는 다른 기종의 마운트를 다운받아서 어떻게든 코어200 에 달아 주려고 해 봤으나..ㅠㅜ
맞는 것을 찾을 수 없어 포기. 결국엔 글루건 신공을 써 줬다. 정말 조악하지만 .. 내가 생각해도 멋지게 달아 줬다 ㅋㅋㅋ
글루건 신공 마운트
이렇게 보면 조악해 보이지만, 앞에서 보면 좀 그럴싸 하다.
bl touch & 노즐 & 팬덕트
 조금 더 확대 보면 노즐이 베드에 닿았을 때 bl touch 와 팬덕트가 적당히 떨어져 있는 것을 볼 수 있다.
이쁘게 배치되어 있는 3형제
이렇게 설치를 하고 아두이노 전원을 넣으니 빨간색 불이 이쁘게 들어왔다.

하지만!! 본체 전원을 넣을 수가 없었다. 이유는...
bl touch 를 사용하기 위해서는 펌웨어를 수정해 줘야 하는데, 코어200의 펌웨어는 아직 오픈되지 않아서 marlin 을 직접 수정해 줘야 하는 것이었다. OTL

그런데!! 딱 이 문제를 알고 어떻게 할지 고민을 시작할 무렵, 네이버 코어 카페에서 한 멤버께서 marlin 설정을 올려 주셨다.
그래서 marlin github 를 fork 하여 그 코드를 base 로 patch 작업을 해 줬다.

https://github.com/gouache/Marlin/tree/1.1.x/Marlin/example_configurations/Core/200

코드는 여기에서 확인 할 수 있다.

이렇게 작업을 해 주고 auto home 과 auto leveling 의 감동을 바로 느낄 수 있었다.
먼저 leveling 을 해주고

샘플 출력을 해 봤다.
오!! 대박. 오토 레벨링이 이렇게 편한것이었단 말인가!!!

편한것도 편한 거지만 프린팅 퀄리티가....진정 이게 내 코어인가 할 정도로 드라마틱하게 좋아 보인다.

사실 품질이 좋아진게 bl touch 때문만은 아닌 것이, 이 작업을 하기 위해
1. 펌웨어를 오픈소스 순정으로 변경 했고
2. 팬턱트를 추가 했고
3. 베드 스프링을 최대한 조여줬다.
bed 스프링
수동으로 레벨링을 할 때는 이 스프링을 조였다 풀었다 하면서 수평을 맞춰줘야 하는데 꽉 조일때는 별 문제 없지만 느슨하게 풀어야 할때는 시간과 진동이 늘어날수록 약간씩 풀리는 문제가 있기 때문에 최대한 꽉 조이고 변화가 없게 하는 것이 퀄리티 향상에 도움이 된 듯 하다.

작업은 다 끝나고 만족 또 만족을 하고 있는데. 짚어보고 가야 할 게 있다.
난 이 오토레벨링 이라는 작업을 매번 프린트 할때 마다 하는 줄 알았다. 그런데 바꿔 생각해 보면 수동 레벨링도 한번 맞춰 놓으면 틀어질때 까지 그냥 쓰지 않는가.
따라서 start code 에 G29 (auto leveling) 을 할 필요가 없다는 것이다.

한가지 더. auto leveling 을 했다고 해서 z-offset 을 신경쓰지 않는 것은 아니다.
bl touch 를 설치하는 사람마다 노즐과의 간격이 제 각각이다. 이 때문에 z-offset 과
Z_PROBE_OFFSET_FROM_EXTRUDER 는 꼭 맞춰 줘야 한다.

이 두가지만 신경쓴다면 큰 어려움 없이 오토레벨링의 신세계로 들어올 수 있다.
마운트가 필요한 것은 여전하지만 ^^;; 모델링 고수분들이 언젠가는 thingiverse 에 올려 주시지 않을까 하는 막연한 기대감으로 이번 취미를 마무리 하려 한다.

댓글 2개:

밤에부는 바람처럼 :

멋집니다.
코어200을 이런게 고급 기능을 적용하시다니..
대단하구요...

링크 따라 들어와서 잘 보고 갑니다.

brian Park :

감사합니다~