본문 바로가기

▶3D 프린팅/범블비 자작기

[범블비 델타 16] Sensorless homing 의 accuracy 및 첫 출력

[범블비 델타 16 - Sensorless homing 의 accuracy 및 첫 출력]


 뭔가 심플하고 멋있는 장치가 될 듯 하여 sensorless homing 이 가능한 tmc2130 드라이버를 선택했다.  tmc 시리즈는 무소음 모드인 stealth 기능이 있어서 정숙함을 얻을 수 있는데 tmc2100, tmc2208, tmc2130 시리즈 중에서 마지막에 있는 tmc2130 이 spi 통신을 통해 모터자체가 힘을 받으면 그 위치를 home sensor 와 동일하게 인식하는 장치가 sensorless homing 기능이다.  그래서 내가 만든 범블비 델타에는 endstop 스위치가 없다. 



그런데, 캘리브레이션 중에 아주 심각한 문제를 발견하게 되었다. 

이 센서의 정밀도를 신뢰할 수 없다는 것을 알게 되었다. stallguard2 라고 하는 기술을 사용해 tmc2130 을 만들었다고 하는데, 모터가 하중을 받는 것을 감지하고 그 하중이 일정값 이상을 넘어갈 때는 해당 위치의 모터 스텝을 관찰하여 그 위치를 홈위치로 인식하게 하는 장치이다. 그런데 이 정밀도가 무척 떨어짐을 발견했다. 어쩌면 펌웨어 설정을 통해 잡을 수 있을지도 모르겠지만 몇시간째 붙잡고 조정을 해봐도 정밀도를 높이는 방법을 찾지 못했다.  테스트는 이렇게 진행했다. g28 을 이용해서 오토홈을 한 후에 M48 x0 y0 로 중심 원점의 위치값을 반복 테스트를 하는 작업을 하였다. 여러차례 반복하면서 g28 오토홈을 하지 않고 반복테스트를 해보면 그 정밀도가 0.05mm 이하로 나옴을 확인할 수 있었다. 하지만 g28 을 하여 오토홈을 하고 난 뒤에는 그 값의 차이가 심할 때는 1mm 까지 발생한다는 것을 알게 되었다. layer thickness 가 0.1~0.3 을 하니 1mm 의 차이는 제대로 프린팅을 할 수 없는 값이라고 할 수 있다. 베드 안착을 믿을 수 없게 되는 것이다. 특정 값을 Z height 로 입력해놓으면 한번은 허공에서 출력하고 한번은 노즐이 바닥과 충돌하는 일이 벌어진다. 


해외사이트를 검색해도 유저들의 의견은 tmc2130 의 stallguard2 기술로 직교에서 Z height 를 맞추는 것은 무리가 있다는 내용이 많았고, 아무래도 sensorless homing 을 포기해야하지 않을까 하는 생각을 하다가 새로운 아이디어가 떠올랐다. g28 을 하여 오토홈을 진행한 후에 실제 높이가 어떻게 나오는지 확인해서 그 값을 적용해 출력 오프셋을 정하면 되지 않을까 하는 것이었다. 그런데 g33 p1 으로 중심 거리를 측정하고 나면 반드시 다시 오토홈을 해야 하는 맹점이 있었다. 

결국 이를 해결하는 방법은 2가지가 남았는데, 하나는 sensorless homing 을 버리는 방법이다. 아마도 이 방법을 써야 가장 확실하지 않을까 싶었다. 실제로 내가 calibration 을 하여 적용한 값도 신뢰할 수가 없다는 생각이 들었다. 

두번째 방법은 지난 포스팅에서 내가 부정적으로 언급한 auto bed leveling 을 적용하는 것이다. 추가 하드웨어 작업과 비용을 들이지 않고 하는 방법은 현재로선 이 방법밖에는 생각나지 않았다.  



그래서 auto bed leveling 을 활성화 시켰는데, 여러가지 레벨링 방법중 베드면을 수평이라고 인식하고 진행하는 linear 베드레벨링을 적용코자 하였다.

이렇게 하고 start gcode 에 g28 다음줄에 g29 를 넣어 매 출력 진행전 레벨링을 하고 나서 그 레벨에 맞춰 출력이 되도록 수정을 하였다. 그렇게 하면 성공할줄 알았다. 

그러나 세가지 실패가 있었다. 


1. extruder 스텝값 캘리브레이션을 하지 않은 상태에서 진행 

  이건 그나마 바로 인식해서 캘리브레이션을 800대의 높은 기본 값에서 400대의 값으로 낮춰서 진행하였다. 

2. Z probe offset 설정 

  노즐 자체가 프로브가 되는 형태여서 처음에는 0 으로 두고 했으니 노즐이 너무 밀착이 되어 출력 진행이 되는 상황이었다. 나는 이 값이 플러스 값을 줘야 할지 마이너스를 줘야 할지 헷갈렸다.  Z probe offset 은 프로브를 기준으로 한 노즐 끝의 높이를 말한다. 이 값이 마이너스면 노즐은 베드와 더 밀착되고 플러스면 더 떨어지는 것을 확인하였다. 현재는 이 값을 0.5mm 값을 주었다. 아마도 측정시 베드가 살짝 눌리는 것 때문에 이 정도 값의 오차가 있지 않나 싶었다. 

3. 큐라 슬라이서의 filament 직경 설정 오류

  이것은 정말 초기 셋팅에 애를 먹었던 것이다. 큐브를 슬라이싱해서 gcode 로 출력을 진행하는데 계속 제대로 출력이 안되는 상황이었다. 나는 이것이 2번의 Z probe offset 의 문제인줄 알고 이리저리 값을 수정하면서 출력하다가 결국 새로 장착한 pc bed 가 아주 흉칙하게 긁혀버리고 말았다.  그런데 혹시나 하는 마음에서 큐라 슬라이서의 프린터 설정의 필라 직경값을 확인해보니 2.85 가 적혀 있었다.  아니? 이게 뭐지?  분명히 1.75 로 입력을 했는데 왜 이게 2.85인거야? 라고 생각하고 1.75 로 수정을 했는데, 껏다가 켜보면 다시 2.85로 바뀌어 있는 것이다.  버그인것 같은데  이 문제를 모르고 계속 Z probe offset 만 올렸다 내렸다는 반복했으니 너무 지친다 지쳐..  좀더 살펴보아야겠지만 2.85 로 바뀌지 않는 Kossel delta 프린터를 선택하여 프린터 추가를 해주고 나니 정상적으로 되었다. 


어쨋든, 이런 우여곡절 끝에 드디어 첫 프린팅을 시도해볼 수 있게 되었다. 



일단은 프린팅 소음이 거의 없다는 것이 특징이다.

그리고 마그네틱 조인트가 쉽게 떨어지면 어쩌지 싶었는데 센터쪽에서만 출력해서인지 몰라도 상당히 견고히 붙어서 출력이 진행되고 있다.  32비트 보드여서인지 아니면 tmc 를 사용해서인지 모르겠지만 노즐 움직임이 기존 프린터에 비해서 무척이나 부드러운 느낌이다.  출력 도중 모터의 온도를 측정해봤는데 40도를 넘지 않는 온도여서 아직까지는 양호하다. 모터 발열에 대해서는 좀더 긴 시간의 출력을 걸어놓고 확인해볼 예정이다. 현재 tmc2130 드라이버의 전류치를 800mA 로 했는데 장시간 출력시 발열을 보고 조금 조정해볼 수 있을 것 같다. 이렇게 하여 결국 첫 프린팅 결과가 나왔다. 

처음 출력 완성이 된 큐브는 다음과 같다.

완전 못난이에 형편없어 보이는 모양새이다. 

그래도 장점을 찾아보자면 Z 방향으로 와블이 없다는 것이다. 속도도 상당히 빠르게 진행되는데 진동도 없이 잘 나온 것 같다. 

단점은

1. 바닥면이 가늘게 나왔다. 안착이 제대로 되지 않았음을 볼 수 있다. Z probe offset 값을 0.1mm 정도 낮춰 진행해봐야겠다. 

2. 쿨링이 전혀 되고 있지 않다.  알리에서 조금 조용하다고 하는 12V 4010 팬을 구입했었는데, 이게 제대로 바람을 못내주는 것 같았다. 실제로 바람이 나오는 곳에 손가락을 가져다 대어보아도 바람이 잘 느껴지지 않는데, 큐브는 그걸 정확히 보고 있었나 보다. 상단 Z 표면도 열에 의해 울룩불룩해져 있고 옆면 X Y 글자도 뭉개지고 쳐지고 하는 모습을 보였다. 조금 소리가 크더라도 쿨링이 잘될 수 있는 팬을 구입해 장착하고 경우에 따라서는 2개 팬을 장착해볼까 싶다. 

3. 정사각형이 아니라 마름모꼴로 형태가 나왔다. 다음의 직교에서 출력한것과 비교를 해보면 확연하게 드러난다. 

이건, delta Tower angle 때문이라고 한다. delta auto calibration 을 하게 되면 tower angle 이 자동으로 계산되어 업데이트가 되는데 이 값이 X2.06 Y0.39 Z-2.46 이렇게 적용되어 있는 상태다.  출력물이 동일하게 출력되었고 LM 가이드도 대략 중심에 맞춰 조립이 되었다는 가정을 한다면 이 값은 모두 0 이 되어야 할 것인데 auto calibration 도중 조정이 되다보니 이런일이 발생한게 아닌가 싶다. 아니면 역시 sensorless homing 의 폐해가 발생한건 아닌가도 싶다.  어쨋든, 큐브 사이즈도 문제가 있어 보이고 skew 라고 하는 현상도 있으니 이를 수정해봐야겠다. 


제대로 셋팅이 되고 나면 과연 어느정도 성능을 내줄까? 궁금해진다.




김성민의 북리지 - 함께 성장하는 책 리더십 지혜