본문 바로가기
3D Print

아두이노 1.8.10 버전 업데이트 이후 12864 LCD의 오류

by featherwing 2019. 11. 4.
반응형

사용하던 3D 프린터의 펌웨어를 Marlin 1.1.9 버전으로 업데이트 하기로 했습니다.

 

해당 과정에서 필요한 아두이노 프로그램의 최신버전업이 떴길래 

 

별 생각없이 1.8.10 버전으로 업데이트 한 이후, 3D 프린터의 펌웨어를 다시 업로드 하였습니다.

 

그런데 업로드 이후 3D 프린터의 LCD 화면이 이렇게! 되었습니다.

 

해당 펌웨어의 문제인가 싶어, 기존에 사용하던 펌웨어로 롤백하여 업로드했지만

 

똑같은 현상이 발생하였습니다.

 

사용하는 LCD 컨트롤러는 12864 LCD 이고, 아두이노 업데이트 전에는 어떤 이상도 없었습니다.

 

 

해외의 포럼을 살펴보니, 아두이노 업데이트 이후, 펌웨어 업로드를 진행한 사람들의 대부분이

 

해당 문제를 겪는것을 확인했습니다.

 

해당 문제의 해결방법은 아래와 같습니다.

 

1. 아두이노의 탭에서 ultralcd_st7920_u8glib.rrd.h탭 선택



2. 주석 처리되어있는 아래의 딜레이 부분을 주석 해제



//#define ST7920_DELAY_1 DELAY_NS(0) 
//#define ST7920_DELAY_2 DELAY_NS(0) 
//#define ST7920_DELAY_3 DELAY_NS(0)



3. 주석 해제 후 ST7920_DELAY_2 DELAY_NS에 400의 delay 값을 부여 



#define ST7920_DELAY_1 DELAY_NS(0) 
#define ST7920_DELAY_2 DELAY_NS(400) 
#define ST7920_DELAY_3 DELAY_NS(0)



4. 다시 펌웨어 업로드

 

 

u8glib 라이브러리는 12864 LCD를 사용하는데 필요한 라이브러리인데,

 

특정 버전 이후의 아두이노 업데이트 이후 (ex. 1.8.8, 1.8.10...) 문제를 겪는 해외 포럼의 사례들을 살펴보니 

 

특정 버전 이후의 아두이노와 해당 라이브러리의 충돌이 일어나는것으로 보입니다.

 

어쨌든, 해당 라이브러리의 코드를 수정해주면 아래와 같이 문제가 해결되는것을 확인할 수 있습니다.

 

 

 

반응형

댓글