마음 속 하늘은 항상 맑음~!
전자잉크 모듈과 첫 만남 본문
저렴한 알리발 waveshare 1.54인치 전자잉크 모듈을 구입했는데 처음부터 난관에 봉착했다. 문제의 원인은 최신 모듈은 2020년 즈음에 업데이트 되었는데 인터넷에 돌아다니는 모듈 드라이버들이 그 이전의 V1의 사양으로 만들어진 것 때문이었다. V2의 아두이노 소스를 위키에서 찾아서 클로드에 변환을 요청하고 약간 수정해서 적용시키니 문제없이 작동했다.
하지만 생각 외의 다른 문제가 있었는데, 200x200의 해상도 때문에 더 많은 버퍼메모리를 프레임 메모리로 사용해야 한다. 이는 메모리가 적은 아두이노 보드에서는 힘든 문제가 될 수 있다. 게다가 BW가 아닌 BW-RED의 패널도 있는데 이는 RED는 따로 버퍼메모리를 가져야 한다.
작은 아두이노에서 OLED가 저렴하고 간단하고 수명도 긴 디스플레이 모듈인 것 같다.
일단 소소하게 클로드로 변환하고 수정한 마이크로파이썬 드라이버는 다음과 같다.
아직은 만드는 중이라 버그가 있는지는 모르겠다. 초기화나 LUT 테이블 같은건 다른 부분이 많았고 적용 방법도 달랐던 것 같다.
예제를 더 살펴보니 아두이노가 아닌 다른 폴더에 이미 파이썬 라이브러리가 만들어져 있었다. 하지만 난 이 방법을 고수하기로 했다. 그리고 우연히 그 파이썬 예제를 살펴보는 도중에 partial refresh(displpay mode 2)에 대한 힌트도 찾아서 새로이 업데이트 했다.
전자종이에는 2페이지의 메모리 버퍼가 존재하고 그게 화면 업데이트를 요청할 때 마다 왔다갔다 회전하면서 메모리 버퍼를 참조해서 표시해주는 방식으로 되어 있었다.