본문 바로가기

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

[범블비 델타 21] 화면을 버리고 꿀결을 얻다

[범블비 델타 21 - 화면을 버리고 꿀결을 얻다]


한달여 정도 고민하고 있던 문제를 해결했다. 



해결은 했지만 반쪽짜리 해결이라고 할 수 있다. 하지만 이런 부분에 대한 고려도 필요하구나 하는 정보차원에서 공유해봐도 좋을 듯 싶어 글을 남긴다. 혹시 이 글을 읽는 분중에  완벽한 해결방법을 아는 분이 답을 달아주거나 혹은 더 발전된 방향으로 논의를 진전시킬 수 있을지도 모른다는 기대도 잊지 않은 채 말이다. 


1년전 베이비그루트의 여드름 치료 프로젝트에서 나온 현상이 이번 자작프린터인 범블비 델타에서 다시 나타났다. 옥토프린터는 설치하지 않은 채 SD 카드로 출력하고 있어서 분명 그때 그 문제는 아니라고 생각했다. 

첫번째 가장 의심되었던 것은 내가 사용하는 32비트 보드 skr v1.1이 SPI pin 을 여러부분에서 공유하고 있었다는 점이었다. 일단 spi 통신에 그래픽 LCD 와 SD 카드리더, 그리고 TMC2130 의 spi 통신을 모두 동일한 mosi, miso, sck 핀을 이용하고 있었다. 같은 핀을 가지고 통신을 하다보면 이전 라즈베리파이를 이용한 옥토프린터에서 발생한 통신병목현상이 동일하게 발생할 수 있지 않을까 하는 가설을 세웠다. 찾아보니 skr v1.3은 tmc2130 을 위해 만들어져서인지 spi 통신핀의 공유 문제가 핀맵상에서는 없는 것 같았다. 그래서 skr v1.3 을 구입하였고 그 배송을 3주동안 기다리다 몇일전 집에 도착했다. 

TMC2130 의 spi 연결핀 4개의 하단을 다 잘라버렸기에 납땜을 통해 다시 달아주는 귀찮은 작업이 있었긴 했지만 우여곡절끝에 skr v1.3 으로의 하드웨어 셋팅과 펌웨어 설정을 마치고 출력을 진행했다.  엄청난 기대감에 부풀어서 말이다. 

처참한 실패였다. 원인은 그게 아니었던 것이다. 

skr v1.3 에서는 각각의 핀이 중복되는 것도 없고 해서 나의 가설이 맞다면 문제를 해결할 수 있을것으로 생각했는데 그게 아니었던 것이다. 기존 skr v1.1 도 괜찮았던것인데 괜한 돈을 ㅠㅠ.

멘탈붕괴 상황에서 내가 했던 사고 과정을 모두 기술하는 것은 의미없을 듯 하다. 

나는 여러 다른 시도를 했었고, bigtreetech 페이스북 그룹과 유저그룹에 글도 올렸고, 나와 같은 현상이 있는지 해외사이트 유저들의 수많은 글들을 읽어보았다. 


그리고 나서 내가 내린 결론은 다음과 같다. 

나는 범블비 델타를 만드는 과정에서 다른 사람이 시도하지 않았던 것을 적용했다. 

1. 델타에 잘 적용하지 않는 full graphical LCD 12864 를 화면으로 달았다.

2. 델타는 기본적으로 수없이 밀어닥치는 제곱근 연산을 진행하기 때문에 cpu 의 연산파워가 많이 필요하다. 

3. 나는 32 비트 보드면 그 문제가 없을 것이라 생각했다. 

4. 게다가 많은 데이터가 오고가는 SPI 통신에 의해 움직이는 TMC2130 spi 를 장착했다. 

5. 델타 - 12864LCD- TMC2130 spi  모두가 시스템의 리소스를 많이 먹는 것이다. 


여기까지의 내 생각이 맞다면 나는 리소스 먹는 것을 줄여야 할 필요가 있었다. 속도를 극단적으로 낮추거나 드라이버 분주수를 낮추는 등으로 해결할 수 있다는 내용도 있었으나 그런 제약을 두고 해결하는 것은 내 마음이 원치 않았다.

그렇다고 델타 방식을 없앨수는 없는 노릇이다.  게다가 tmc2130 의 spi 를 a4988 이나 tmc2130 standalone 모드로 바꾸고 싶지도 않았다. sensorless homing 을 사용하고 싶었기 때문이다.  그렇다면 화면을 바꾸면 될까?  (이것도 사실 내키지 않았기에 나의 해결책이 반쪽짜리라고 말한 것이었다.)


펌웨어단에서 12864를 사용하는 Smart controller Full graphic LCD 대신에 2004 설정의 smart discount controller 를 선택해서 펌업을 했다. 이렇게 되면 보드는 12864 연산이 아닌 2004 연산으로 시스템 리소스를 사용하게 될 것이라고 여겼다. 당연히 화면이 나오지 않기 때문에 나는 USB 연결을 통해 출력을 테스트해보았다. USB 연결은 SD 카드 보다는 통신문제에는 보다 취약하기 때문에 결과가 동일하다면 애매해지겠지만, 결과가 좋게 나온다면 확실히 LCD 에 의한 영향이 크다는 사실을 확증할 수 있을 것으로 보았다.   결과는 다음과 같았다. 




언뜻 보기에 seam 라인이 형성되었다고 생각할 수 있기에 나는 seam 이 형성되지 않는 spiral outer contour 기능을 이용해 연속 이어출력이 되도록 했다. 

결과는 2004 모두에서 아주 깨끗한 표면을 얻을 수 있었다.  (여기까진 펌웨어 단에서만 바꾸었고 실제로 lcd 교체는 하지 않은 상태임)


한발자욱 더 나아가 TFT 를 연결해도 문제를 해결할 수 있을 것이라는 생각이 들었다. TFT 는 UART 통신이고 주고받는 데이터도 gcode 기반으로 크지 않으며 TFT 자체가 컴퓨팅 파워를 가지고 있어 보드 연산에 부하를 주지 않는다는 사실을 알았기 때문이다. 여기서 나는 고민에 빠졌다.



알리에서 구매를 했다 취소를 했다를 두어차례 반복하다가 그냥 집에 있는 2004 LCD 를  사용해보기로 결론을 내렸다. 기존 범블비 1호기가 2004LCD 인데 1호기는 직교식에 DRV8825 를 사용하기에 full graphic LCD 를 달아도 괜찮을 것 같았기에 교환하기로 하였다.  (돈 아끼기로 했다.)



기존 케이스를 그대로 사용해서 좀 어색하긴 하지만 일단 장착을 했고, 출력을 진행했다. 


참, 이 과정에서 새롭게 안 사실이 있다. 12864 와 2004 모두 exp1, exp2 의 2개의 케이블을 꽂는다는 것은 동일한데,  교체해보았을때 화면이 안나오는 것이었다.  알고보니 2개가 서로 반대방향으로 연결되도록 핀 구성이 되어 있었다. (한참 삽질했다. ㅠㅠ)


그래서 ramps1.4 의 어댑터도 위 사진과 같이 2개가 서로 다르게 만들어 판매가 되고 있었던 것이다. 


풀 그래픽을 포기하고 얻은 출력 품질은 지극히 만족한다. 

내가 지금껏 출력한 베이비그루트 중에 최고의 품질이지 않나 싶다. 그 결과를 공유하고 마치도록 하겠다. 


Slicer : Cura 4.1 beta

modeling : baby groot

Scale : 50% 

Layer height : 0.2mm

wall thickness : 0.8mm

infill density : 20%

speed : 80mm/s

support : no

retraction distance : 4mm

retraction speed : 30mm/s

printing temp : 190도

bed temp : no heating bed

filament : china cheapest PLA 

예상 Printing time : 1hr 15min

실제 Printing time : 1hr 18min 30sec

(실제와 예상이 큰 차이가 없는것이 보드에서 딜레이 없이 출력이 진행되었다는 증거가 되기도 한다. 델타 스피드에 대해 알아낸 사항이 있지만 그건 다음번에 공유토록 하겠다.)






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