본문 바로가기
3D Print

Marlin 펌웨어 값 변경 후 업로드시 적용이 되지 않는 경우

by featherwing 2019. 12. 4.
반응형

 

대부분의 3D 프린터는 오픈소스 펌웨어인 Marlin 펌웨어를 사용합니다.

 

대부분의 3D 프린터가 사용하는 이 펌웨어는 오픈 프로젝트인 RepRap에서 만들어낸 펌웨어입니다.

 

 

보자마자 숨막히는 펌웨어

 

아두이노를 제어보드로 사용하는 3D 프린터는 C언어 기반의 펌웨어를 가지고 있는데

 

수많은 라이브러리로 구성되어 있는 이 복잡하고 숨막히는 펌웨어에서 수정할 때가 있는것은 단 두가지 뿐입니다.

 

이 두가지만 손댈 수 있으면 됩니다. 정말!

Configuration.h와 Configuration_adv.h 단 두개만 수정할 수 있으면 되고, 다른것은 단 하나도 몰라도 됩니다.

 

펌웨어의 사용법같은경우에도 Marlin 펌웨어의 홈페이지 에서 친절히 설명해주고 있습니다.

 

 


 

 

 

3D 프린터는 3차원 STL 도면을 가지고 G-code로 변환하여 이를 그대로 인쇄하게 되는데

 

X,Y,Z축그리고 익스트루더의 각 스텝모터는 각각 어느정도의 편차를 가지고 있고

 

이를 제어하는 펌웨어를 보정해 주어야 기본적인 정확도를 가지게 됩니다.

 

 

 

펌웨어에서 스텝모터를 제어하는 부분은 아래의 STEPS_PER_UNIT부분인데

 

이부분의 캘리브레이션 방법은 간단합니다.

 

출력물을 실측하여 보정해 주면 됩니다.

 

간단하게는 Clibration Cube 를 인쇄하는것도 있고, 

 

Clibration Cross와 같은것을 인쇄하여 좀 더 정밀하게 보정 할 수도 있습니다.

 

 

 

 

 

 

어쨋건, 이번에 프린터의 리빌딩을 하면서

 

기존에 스텝모터처럼 기어가 그대로 필라멘트를 밀어주는 것이 아닌

 

기어비를 이용하여 좀더 높은 토크로 밀어줄 수 있는 타이탄 익스트루더를 교체하게 되었는데

 

아무리 스텝값을 수정 한 뒤 업로드 하여도 필라멘트의 압출이 제대로 되지 않았습니다.

 

제품 문제인가 싶어 던져둔뒤, 시간이 지나고 하나 더 구매하여 보니, 똑같은 결과가 나오더군요.

 

 

 

무엇인가 문제가 있다고 생각하여 해외의 포럼들을 뒤져보니...

 

제법 많은 사람들이 해당 문제때문에 헤메고 있는데

 

EEPROM_SETTINGS 라는 단어가 눈에 들어옵니다.

 

결론부터 말씀드리자면

 

EEPROM이 세팅된 상태에서는 펌웨어의 스텝값을 변경한 후 업로드를 해주는 것으로는

 

변경된 값이 적용되지 않습니다.

 

해당 옵션은, 컨트롤러에서 변경된 값을 보드에 저장하는것을 허용해주는 옵션인데,  해당 라인의 주석을 해제해 주어야만, 컨트롤러에서 변경된 값을 저장할 수 있습니다. 

 

 

 

기존에 스텝 보정을 몇번 했었는데 아마도, 스텝 보정을 한 이후 EEPROM 세팅을 해주었고

 

베드사이즈 조절이나, 축의 한계설정, 스텝모터의 방향변경, 엔드스톱의 사용 유무 등을 변경하는데 있어서는

 

어떠한 문제도발생한 적이 없어서 생각을 하지 못했네요

 

아마도 일부 동작에 관련된 값들 중 컨트롤러에서 세팅할 수 있는 수치나 이와 관련있는 일부 수치들에 있어서는

 

변경된 펌웨어가 업로드 되더라도, EEPROM에 있는 수치가 우선시 되는것 같습니다. 

 

해결책은 간단합니다.

 

펌웨어의 값 변경후에는 

 

3D 프린터의 컨트롤러에서 Store Memory가 있는 항목에서 Initialize EEPROM를 한번 선택해 주면 됩니다.

 

해당 명령어는 G코드의 M502(Restore Failsafe) + M500(Store Settings)과 동일한 것으로,

 

EEPROM에 저장되어 있던 항목들이 초기화 되고, 새로 업로드된 펌웨어의 값들로 변경됩니다.

 

 

물론, 이전에 LCD 컨트롤러에서 따로 세팅 해주었던 

 

Mesh Leveling과 같은 수동 레벨링의 데이터나, Z probe의 마진을 따로 설정해주었던 부분도 초기화 되기 때문에

 

다시 세팅해주어야 합니다.

 

 

 

 

 

 

 

 

 

 

 

 

반응형

댓글