elsa in mac

Marlin - 출력 중 노즐 높이를 변경할 수 있는 BABY STEPPING 기능 본문

3D 프린터/3D 프린터 관련 정보

Marlin - 출력 중 노즐 높이를 변경할 수 있는 BABY STEPPING 기능

elsa in mac 2017. 10. 18. 23:17

이번 포스트에서는 Marlin 펌웨어의 advance 기능인 BABY STEPPING 에 대해 알아보도록 하겠습니다. 

BABY STEPPING은 직역을 하면, 아기의 아장아장 걸음마를 의미합니다. 3D Printer.. 그 중에서도 Marlin 펌웨어에서 BABY STEPPING은 아주 미세하게 스탭 모터의 위치를 조정하는 것을 뜻하는데..  Z축에 대한 미세보정을 지칭 합니다. 

일단 기본적으로, Manual Leveling 이던, 각종 센서를 이용한 Auto Leveling이던 Bed Leveling이 완료되고 나서 프린팅이 시작되면, 참고되는 값은 Z Offset 뿐입니다. Z Offset에 명시된 값을 보정하여 Z축의 0포인트로 잡고 그 위치를 기준으로 프린팅을 시작하게 되는데, 일단 프린팅이 시작되고 나면 Z축의 Offset 변경은 기본적으로 불가능 합니다.

따라서, 실제 프린팅이 시작되고 첫 레이어(First Layer)를 프린팅할 때, 실제 육안으로 출력 품질을 보면서, 다시 Bed Leveling을 할지, Z Offset값을 보정할지  아니면 그냥 프린팅을 계속할 지를 판단하게 됩니다.  

불편하죠...

그래서... 이런 불편함을 해소하고자 프린팅이 시작되었음에도 불구하고 Z Offset 값을 사용자가 미세하게 조정할 수 있는 방법.. 바꿔 말하면 실시간으로 노즐의 Z축 값을 변경할 수 있는 기능이 바로 BABY STEPPING 입니다.  

하지만, 이 기능은 기본적으로 비 활성화 되어 있기 때문에, 초보자 분들은 그 존재조차 모르는 경우가 대부분 입니다. 

그럼 먼저 BABY STEPPING기능을 활성화 하는 방법을 간단히 알아 봅니다. 

우선, Arduino IDE를 통해 Marlin 펌웨어에서 Configuration_adv.h 파일을 열고, 소스 코드를 살펴 보면, 아래와 같이 BABYSTEPPING 설정 부분을 학인할 수 있습니다. 

위의 코드는 marlin 1.1.6을 기준으로 한 것이기는 하지만, header 파일은 크게 변화가 없기 때문에, 1.1.x를 사용하신다 하더라도 대등소이 할 것입니다. 

위의 코드를 보면, 682라인에 #define BABYSTEPPING 구문이 //로 주석처리가 되어 있는 것을 확인할 수 있습니다. 주석처리가 되어 있기 때문에, 해당 펌웨어를 컨트롤 보드에 업로드 해도 해당 기능이 나타나지 않습니다. 

따라서, BABYSTEPPING 기능을 활성화 하기 위해서는 앞에 // 를 제거하여 주석처리를 풀어야 합니다.

604라인에 보면, //#define BABYSTEP_XY 설정이 있는데, 이 define문의 주석을 풀면, Z 뿐만 아니라 X,Y 모터도 미세 조정을 할 수 있게 됩니다.  

605라인의 BABYSTEP_INVERT_Z 는 false로 선언이 되어 있는데, 이는 BABYSTEP 값의 부호에 따른 노즐의 위치 변화의 방향을 결정하게 됩니다. BABY_INVER_Z 가 false로 설정했다면, 실제 사용에서 BABYSTEPPING 값이 마이너스 값이면 노즐이 내려가고 플러스 값이면 노즐이 위로 올라가게 됩니다. 예를 들어 사용자가 BABY STEP 값을 - 0.1로 설정하게 되면, 노즐이 실제 0.1도 아래로 내려 가게 된다는 의미 입니다. 

하지만, BABYSTEP_INVERT_Z 를 true로 정의하게 되면, 반대로 BABYSTEPPING 값이 마이너스 이면 노즐이 위로 올라가게 됩니다.  이건 값과 노즐의 이동 방향에 대한 개인의 해석 방향을 정하는 것이라고 할 수 있겠죠...

다음 606라인에 보면, #define BABYSTEP_MULTIPLICATOR가 100으로 정의가 되어 있는데요.. 이 값은 Controller의 Knob(노브)를 1 stop 돌릴 때의 BABYSTEP의 변화량을 얼마로 할 것인가를 정하는 것 입니다.  값이 작을 수록 1 stop에 대한 변화량이 작고, 이 값이 클수록 1 stop 변화량이 커지게 됩니다.  

608 라인의 #define DOUBLECLICK_FOR_Z_BABYSTEPPING은 비 활성화 되어 있는데요.. BABY STEPPING 기능을 활성화 해도 실제, Controller에서 BABY STEPPING 값을 조절하려면, Tune > Babystep Z  메뉴로 단계적으로 진입하여 값을 변경해야 합니다.  이게 귀찮은 분들은 메인 화면에서 Knob를 더블클릭하는 액션으로 곧 바로 Baby Stepping  설정화면으로 넘어갈 수 있는데, DOUBLECLICK_FOR_Z_BABY_STEPPING 을 활성화 시키면 됩니다. 609라인의 DOUBLECLICK_MAX_INTERVAL은 1250으로 설정이 되어 있는데, DOUBLE CLICK으로 BABY STEPPING기능을 들어가기 위한 더블클릭 인터벌에 대한 값입니다. 즉, 1.25초 내에 knob 스위치를 두번 누르기만 하면 BABY STEPPING 화면으로 전환된다는 것을 의미합니다.  이 값이 너무 크다면 값을 조절하면 됩니다. 

BABYSTEPPING 기능을 소스에서 활성화 시킨 후, 펌웨어를 업로드 한 후 프린팅 시, Tune 메뉴를 들어가면, 위와 같이 Babystep Z가 활성화 된 것을 확인할 수 있습니다. 더블클릭 옵션을 켰다면.. 메인 화면에서 더블클릭으로 곧장 Babystep Z 설정화면으로 진입하게 되겠죠...

Babystep Z는 knob를 돌려 값을 변경하고 버튼을 눌러야 하는 것이 아니라, knob를 돌려 값을 변경하는 즉시 노즐 높이가 변화하게 됩니다.  Bed Leveling으로 고심하고 계시다면 Baby stepping 기능을 활용해 보시기 바랍니다. 

공유하기 링크
Comments