elsa in mac

3D 프린터 컨트롤러 - FYSETC F6 리뷰 본문

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

3D 프린터 컨트롤러 - FYSETC F6 리뷰

elsa in mac 2018. 12. 3. 22:00

FYSETC F6 보드 이미지

이번 포스트에서는 TMC 2xxx Pololu Driver로 유명세를 탄 중국의 FYSETC에서 개발/출시한 Open H/W 3D프린터 컨트롤러인 F6 보드에 대해 알아보도록 하겠습니다.  정확한 명칭은 F6 1.3 인데요.. 그 이전 버전의 보드는 본적이 없기 때문에 내부 개발 버전 이 후, 1.3에서 공식 릴리즈 된 것으로 보여 입니다. 

3D프린터의 두뇌 역활을 하는 컨트롤러는 전통적으로 Arduino의 ATMEGA2560 보드에 CNC 쉴드인 RAMPS 보드를 결합하여 사용해 왔지만, 이 후, 이 둘을 하나의 PCB로 통합한 All In One 보드들이 점차 보편화 되면서, 최근에는 Arduino + RAMPS로 3D프린터의 컨트롤러를 사용하는 것은 좀 처럼 찾아보기 힘듭니다.  무엇보다 All-In-One 보드와 Arduino+RAMPS 조합 간의 가격차이가 거의 없기 때문입니다. 

최근까지도 8bit 컨트롤러로 애용되어온 보드는 역시 MKS Gen 1.4보드가 있고, 후속으로 나온 Light Version인 MKS GEN L 1.0 보드가 있습니다. MKS GEN L은 MKS Gen 1.4에서 일부 출력 포트를 제거하고, Form Factor의 사이즈를 줄임과 동시에 PCB를 4층에서 2층으로 줄여 가격을 끌어내린 보드 입니다. 전 세대와 마찬가지로 Pololu 스타일의 Stepper Driver를 장착할 수 있도록 해서, 사용자들의 Stepper motor Driver의 선택권을 유지할 수 있도록 구성했습니다. 

MKS Gen 1.4와 MKS Gen-L 1.1 스샷왼쪽 ) MKS Gen 1.4, 오른쪽) MKS Gen L

MKS Gen 시리즈는 Arduino+RAMPS 보드의 핀맵과 구성을 충실히 따르고 있어, 호환성을 유지하면서, 단일 보드로 구성했다는 점을 제외하고는 크게 다른 차이는 없습니다.

하지만, TMC2100을 시작으로 정숙성을 내세운 TMC 칩들이 대세를 이루면서, 기존의 MKS GEN 시리즈 보드를 사용하는 것이 다소 불편하게 되었는데요.. 결정적으로는 TMC2208과 TMC2130이 나오면서 부터 입니다. 

TMC2208 , TMC2130 이미지왼쪽) FYSETC TMC2208, 오른쪽) FYSETC TMC2130

두 칩은 각각 UART와 SPI 인터페이스를 통해 S/W로 내부 기능들을 직접 제어할 수 있기 때문입니다. MKS Gen 보드에 실장을 할 수는 있지만 모두 Stealthchop 모드를 기본으로 Standalone 모드로 고정되어 출시가 되었고, spreadCycle 모드 변경을 포함한 부가적인 기능 설정과 Motor Current 설정을 S/W적으로 제어하기 위해서는 Jumper Wiring을 해주어 합니다.  

MKS Gen L 1.1 TMC2130 장착 이미지MKS GEN L에 TMC2130을 연결한 모습

초기 TMC2130 칩이 나왔을 당시에는 Driver의 핀을 인두기로 뒤집고, Jumper Wiring을 손수 직접해야 했는데, 무엇보다도 Driver 뒷면에 눈으로 보이지도 않을 만큼 작은 Pad를 연결하거나 연결된 핀을 분리해야 했기 때문에 일반인들은 엄두도 내지를 못했었습니다.  이후에는 Jumper wiring만 하면 될 수 있도록 버전이 올라간 Driver가 출시가 되었고.. 종국에는 FYSETC F6와 같이 아예 Jumper Wiring도 필요 없는 보드가 출시되기에 이르게 됩니다. 

FYSTC F6 보드 이미지2

F6 보드 역시 MKS GEN 1.4나 MKS GEN L과 같이 ATMEGA2560 MCU를 장착한 8bit 컨트롤러 입니다. RAMPS와 핀맵이 호환되며, 추가적으로 확장된 Driver와 기능들로 인해 핀맵이 확장되어 있는 것이 다소간의 차이점이라고 할 수 있습니다. 

우선 외형을 보면, PCB는 물론 모든 포트 커넥터와 Screw Terminal Block 까지 몽땅 All Black으로 디자인 한 것이 꽤나 강렬한 인상을 줍니다. 

PCB는 MKS GEN 1.4와 마찬가지로 4층 기판으로 제작이 되어 시그널 간섭이 적고, 방열에 효과적이라고 할 수 있습니다. MKS GEN L의 최대약점이 2층 기판이라는 점이죠.. 대신 싸니까... ^^

MKS GEN 시리즈에서 많은 지적을 받아왔던 Screw Terminal Block의 흔들림 문제는 F6에서는 전체 포트를 하나의 긴 Terminal Block으로 구성해서 튼튼하게 잡아 줍니다. 

FYSETC F6 terminal Block 부분

이 보드에 적용된 커넥터가 좀 특이한데요. 기존 보드들에서 일반적으로 볼 수 있는 Dupont 커넥터 핀 혹은 XH2.54 핀 커넥터를 채용하지 않고, 일반적으로 다소 생소한 Molex SL 커넥터를 사용하고 있습니다. 

FYSETC F6 커넥터

Molex SL 커넥터는 구하기도 쉽지 않을 뿐만 아니라, 가격도 비싸죠.. 하지만, 일반 Dupont 커넥터와 핀 간격이 일치하기 때문에 Dupont 커넥터를 이용하여 연결을 해주면 큰 문제가 되지는 않습니다. 따라서, Stepper Motor를 구매할 때, 아래와 같이 Dupont Pin 커넥터로 처리된 케이블을 선택해야 합니다. 

Dupont Pin 커넥터 이미지

Stepper Motor Driver 소켓쪽을 보면, 아래와 같이 총 6개의 Driver를 꽃을 수 있도록 되어 있습니다. 

FYSETC F6 Motor Driver Socket

보통 적으면 4개, 많으면 5개 인데, 이 보드는 6개의 Driver를 연결할 수 있기 때문에, X/Y/Z/E 그리고 나머지 여분의 2 채널을 Multi-Extruder로 사용하거나 아니면, Multi-Z Axis를 구성하는데 사용할 수 있습니다. Multi-Z Axis를 구성한다면 최대 3개를 사용할 수 있는 셈 입니다. 8bit 컨트롤러로써는 최대의 장점 중 하나라고 볼 수 있습니다. 

FYSETC F6 Motor 커넥터1

Driver와는 달리 모터의 경우에는 총 7개를 연결할 수 있는데, 이유는 Z축 모터 포트가 PCB 내부에서 병렬(Parallel)연결로 되어 있어 하나의 Z Driver를 통해 두 개의 Z축 모터를 연결할 수 있도록 되어 있기 때문입니다. 

듀얼 Z Axis를 구성하는데 있어 각각 별도 독립적인 제어가 필요 없다면, 이 두 포트를 이용하여 동기화된 Z축 모터 듀얼로 구성할 수 있습니다.

일반적으로 단일 Driver를 통해 Dual Z Axis를 구성할 때,  Series(직렬)로 연결하는 방법과 Parallel(병렬)로 연결하는 방법이 있는데요, 과거에는 Paralle로 연결을 하였지만, 최근에는 직렬로 연결하는 것이 트렌드 입니다. 

일단,  병렬로 연결을 하게 되면, Stepper Motor Current의 두 배의 Current(전류)가 필요 합니다. 예를 들어, Stepper Motor가 Max 1.7A라면, 70% 효율을 고려 했을 때, 약 1.2A 이상을 인가해 줄 수 있어야 합니다.  따라서, Parallel로 연결을 할 경우에는 이 두 배인 2.4A 이상을 공급해 줄 수 있어야 하죠. 반면, Series로 연결을 한다면, 그대로 1.2A 이상만 공급을 해 줄 수 있으면 됩니다.  또한, 안정성 측면에서도 직렬연결이 더 유리한데요.. 직렬 연결에서는 어느 한쪽 Motor의 연결이 빠지거나 할 경우(그럴리는 없겠지만..) 다른 한쪽 모터도 동작을 멈추게 됩니다. 건전지를 직렬로 연결하고 하나를 빼면 전구에 불이 들어오지 않는것과 같은 이치입니다. 하지만, 병렬로 연결한 경우에는 한쪽이 빠져도 나머지 한쪽은 계속 동작을 하기 때문에, 듀열 Z구성 시, 한쪽으로 기울어지는 심각한 문제를 발생시킬 수 있습니다. 

대신 굳이 직렬연결의 단점을 말하라고 하면, 듀얼회로이지만 듀얼로 사용하지 않고 1개의 stepper motor만 연결하여 사용할 경우, 나머지 사용하지 않는 빈 포트를 반드시 점퍼핀으로 점퍼링을 해 놓아야 한다는 점 입니다. 위의 예에서 건전지 하나를 뺀 대신, 선은 이어 놓아야 전구에 계속 불이 들어올 수 있는 것과 같은 이치입니다.   

F6보드의 경우에는 Parallel로 구성이 되어 있기 때문에, 1.7A 모터를 사용할 경우 Driver에서 2.4A 이상을 공급해 줄 수 있어야 하는데, TMC2130의 경우, 최대 RMS기준으로 1.2A가 최대 이므로, Parallel로 회로를 구성한 것이 다소 의아 합니다. 결국 반대로 Z축모터 Current의 1/2로 설정을 해서 사용할 수 밖에 없다는 말인데.. 흠...

다음으로 Jumper Pin에 대해 보도록 합니다.
F6보드는 A4988, DRV8825, TMC2100, TMC2208, TMC2130등 사용자들이 일반적으로 많이 사용하는 거의 대부분의 Stepper Driver들을 사용할 수 있습니다. 단, TMC2130, TMC2208의 UART, SPI 인터페이스를 설정해야 하는 관계로 전통적인 MS(MicroStepping) 3개 Jumper 이 외애 다소 많은 Jumper로 구성되어 있습니다.  따라서, 사전 지식이 없는 초보자들의 경우에는 설정이 다소 생소하고 쉽지 않은 것이 단점 입니다.  F6보드를 구매할 경우에는 기본적으로 TMC2130 V1.2 를 사용할 수 있는 상태로 Jumper가 설정되어 있습니다.  따라서, TMC2130 V1.2를 함께 구매한 경우에는 그대로 사용을 하면 됩니다 만, 혹시라도 Jumper가 빠져 있거나 잘 못 연결되어 있을 수도 있으므로 반드시 확인이 필요 합니다. 

F6의 Schematic을 보면, 각 슬롯의 SPI 인터페이스 핀들이 모두 Common으로 묶여 연결되어 있는 것을 확인할 수 있습니다. 

FYSETC F6 스케메틱1

이 말은 6개의 드라이버를 꽃아서 사용한다고 가정했을 때, 어느 하나라도 뒤집어 꽃거나 연결이 잘못되면, 이 하나의 실수로 꽃혀 있는 모든 나머지 Driver도 함께 망가질 수 있다는 점 입니다. 

FYSETC F6 Wiki를 보면, 각 Driver 마다 Jumper 설정을 어떻게 해야 하는지 나와 있기는 하지만, 설명이 영문인데다. 다소 직관적이지 않기 때문에, 설정을 망설이게 하는 요인이 됩니다. 따라서, 이 보드의 경우에는 FYSETC에서 제조한 TMC2130 V1.2만 사용할 것을 적극 추천 합니다. 

TMC2208 V1.2의 경우 UART인터페이스를 지원하고, F6에서도 이 Driver를 별다른 Jumper Wiring 없이 사용할 수 있다고 되어 있기는 합니다 만, FYSETC에서 제공하는 Custom Marlin Firmware의 소스를 보면, UART Write Only로 설정을 해 놓고 있습니다. 이는 Read의 경우 Shadow Register(Chip 설정 정보를 실제 Chip 내부의 Register가  아닌 MCU의 메모리에 가상으로 만들어 놓고 사용하는 방법)를 사용한다는 것이므로.. 아직 완벽한 UART 통신을 한다고 볼 수 없습니다.  

또한, F6 전용 TMC2208 v1.2의 경우에는 소개 페이지에서 F6 전용이므로 UART 모드를 사용할 경우 Jumper wiring 없이 그대로 사용할 수 있다고 소개 되어 있기는 하지만, 실제로는 납땜(Soldering) 작업이 필요 합니다. 

FYSETC TMC2208 V1.2 이미지

위의 스샷은 FYSETC TMC2208 V1.2의 아랫면 이미지 인데요, 보시는 바와 같이 왼쪽의 패드들을 서로 연결해 줘야 합니다. 제조 시, 패드에 납을 올리기는 했는데 연결을 해 놓지는 않았기 때문에 기본적으로는 standalone 모드로 동작하므로 UART 모드가 아닙니다. 이 모듈을 사용하실 분들 중에 UART 모드로 사용할 분들은 위와 같이 꼭 패드를 인두기로 연결하시기 바랍니다.  

다시 강조하지만, 결론적으로 여러 Driver를 지원함에도 불구하고 TMC2130 v1.2 Driver를 사용하지 않는다면 굳이 이 보드를 선택할 필요가 없으므로 TMC2130 V1.2 Driver만을 사용할 것을 추천 드립니다. 

다음은 전원연결 관련 부분 입니다.
F6 보드는 여타의 다른 보드와는 좀 달리 메인 입력전원과 Heating Bed를 위한 입력전원이 각각 분리되어 있습니다. 

FYSETC F6 터미널 블럭1

위의 스샷을 보면, PWR IN 이라고 표시된 Red-Box 부분이 메인 전원 입력 단자이고, BED IN 이라고 표시된 Green-Box 부분이 Heating Bed를 사용하기 위한 전원 입력 단자 입니다.  따라서, 단일 PSU를 사용한다면, 아래와 같이 각각의 12 혹은 24V 입력을 연결해야 만 합니다. 

FYSETC F6 터미널 블럭2

아니면, 두 개의 PSU를 각각 연결해도 되겠죠.. BED-IN에 입력전압을 인가하지 않으면 Heating Bed는 가열되지 않습니다. 그럼 왜 이렇게 Heatbed의 입력전원을 별도로 만든것일까 ? 
컨트롤러 보드에 연결되는 부품들 중에 전류를 가장 많이 소모라는 것이 Heatbed이기 때문입니다. Heatbed는 항상 ON 상태가 아니라 온도를 유지하기 위해 BangBang모드로 ON/OFF 하거나 PWM 제어를 통해 On/OFF를 반복하죠.  이 말은 컨트롤러 전체적으로 전류를 확땡겼다 놓았다 땡겼다 놓았다를 반복한다는 것인데, 메인 전원의 Watt가 작은 경우 HeatBed의 On/Off 동작이 다른 부분... 특히 Motor 동작에 특별히 영향을 줄 가능성이 있기 때문입니다.  

FYSETC F6 센서 커넥터

위의 스샷에서 보는 바와 같이 FAN은 총 3개를 연결할 수 있도록 되어 있습니다. Marlin Firmware를 사용한다면, FAN0는 Layer Fan, FAN1은 Hotend Fan, Fan2는 Case Fan 혹은 Board FAN으로 사용하면 됩니다.  그 옆으로 TB 포트는 Heating Bed의 온도센서인 Thermistor를 연결하는 포트 이고, TE0, TE1, TE2는 각각 Extruder0, Extuder1, Extruder2번의 Thermistor 선을 연결하면 됩니다. TE포트의 경우에는 3핀으로 되어 있는데, 일반적으로 3D프린터에서 사용하는 Thermistor는 케이블이 두 가닥입니다. 따라서, 3핀 중에 두 핀만 사용하애 하는데, 아래와 같이 왼쪽 부터 2개의 핀을 연결하면 됩니다.  당연히 +/- 극성은 없습니다. 

다음은 LCD 연결 포트 입니다. MKS 보드와 마찬가지로 LCD/SD를 연결하기 위해 EXP1(Green-Box)/EXP2(Red-Box) 포트가 있습니다. 

FYSETC F6 디스플레이 컨트롤러 연결 커넥터

일반적으로 많이 사용하는 Reprap 2004 smart controller나 12864 full graphic controller 혹은 MKS Mini 12864 LCD controller등을 연결할 수 있으며, MakerBase에서 만든 것이 아니라면, 언제나 그렇듯 케이블을 뒤집어서 연결해야 합니다. 

MKS 12864 컨트롤러

F6보드는 아래 보는 바와 같이, 외부 인터페이스로 RGB LED Light Strip을 연결할 수 있는 핀 1개 와, 외부 SD카드 연결 포트 1개, Servo 연결포트 4개 그리고 AUX 1 포트를 갖추고 있어 확장성이 꽤 우수한 것처럼 보이지만, 사실 이들 핀은 다른 기능 핀들과 일부 겹쳐 있다는 점을 간과해서는 안됩니다.  전원이 12V라면 12V RGB LED Strip을 연결해야 하며, 전원이 24V라면 24V RGB LED Strip을 연결해야 합니다.

FYSETC F6  BLTouch 1

 RGB의 4핀은 위의 스샷에서 볼때 왼쪽에서 오른쪽으로 각각 D9, D3, D4, 12V/24V 핀으로 D4는 Servo 1번과 Common 이고, D9는 Z+ endstop 핀과 Common 입니다.  즉, RGB LED Stip을 사용하게 되면, Servo 1과 Z+ endstop을 사용할 수 없게 됩니다. 둘 다, 일반적으로 사용하지 않으니, RGB LED Strip을 사용하는데 별 무리는 없지만, 중첩된다는 사실을 알고는 있어야 겠지요..

FYSETC F6 ENdstop

Endstop(Limit Switch) 연결은 위에 보는 바와 같이 왼쪽부터 X+, X-,Y+, Y-, Z+, Z- 순서로 배치가 되어 있으며, 각각 3핀으로 구성되어 있고, 스샷에서 볼때, 위에서 아래로 5V, GND, Signal 핀으로 배열되어 있습니다. 특히 Z-의 경우에는 Green-Box 부분에 3 핀이 나와 있는데, 기본적으로는 Jumper가 꽃혀 있지 않습니다. 이유는 앞서 언급했듯이 TMC2130 V1.2 기준으로 기본설정되어 있기 때문인데, 원칙적으로 X측과 Y축의 경우 TMC2130의 Stall Detection 기능을 Limit S/W 대용으로 사용하도록 되어 있기 때문입니다. 

따라서, TMC2130 V1.2를 사용하지 않는 경우에는 별도의 Endstop S/W를 X/Y에 연결해서 사용해야 합니다. 특히, Z-는 사용하는 Z Probe의 종류에 따라 5V 혹은 12/24V 전원을 선택적으로 적용해야 하는데, 이 때 사용하는 Jumper가 Green-Box의 3핀입니다. 왼쪽 부터 두 핀을 Jumpering하면 12/24V를 사용하는 것이며, 가운데와 오른쪽핀 이렇게 두 개를 jumpering 하면 5V를 사용하는 것으로 설정이 됩니다. 이 설정은 Z- endstop 핀에만 적용이 되며, 나머지 Endstop 핀들은 5V로 고정되어 있습니다. 

만일 Z Probe로 BLTouch나 BLTouch Clone 제품을 사용한다면, 연결은 아래와 같습니다.  BLTouch의 경우에는 Endstop 연결핀에서 5V 혹은 12 볼트 전원 핀을 사용하지 않으므로 앞서 설명드린 Z- 에 대한 Voltage 선택 Jumper를 고민할 필요가 없습니다. 그냥 Jumper를 빼 놓으면 됩니다. 

FYSETC F6 BLTouch 2

BLTouch 이미지

위의 스샷을 보는 방향에서
- Z-포트의 중간 핀(GND) - BLTouch 검정색. 
- Z-포트의 아랫핀(Signal) - BLTouch 흰색. 
- Servo의 맨 왼쪽(D13)포트의 분홍색 핀(5V) - BLTouch 빨간색.
- Servo 검정색 핀(GND) - BLTouch 갈색.
- Servo 파란색 핀(Signal) - BLTouch 노란색.

상시 DC output pin은 12/24V  3포트를 지원합니다. 위치는 아래와 같습니다. 

FYSETC F6 DC 전원 output 포트

이쯤에서 소개를 마무리 하고 정리를 해 봅니다. 

장점
- 대륙의 제품답지 않게 깔끔한 Open source 보드
- 6개의 pololu motor Driver를 지원하고, 최대 7개의 Stepper Motor를 사용할 수 있다.
- 기존 RAMPS와 핀 호환이 되어 업그레이드가 쉽다.
- FYSETC에서 판매하는 전용 TMC2130 V1.2 Driver를 사용할 경우 Jumper Wiring 필요없이 TMC2130의 모든 기능을 다 사용할 수 있다. 
- MKS Gen 1.4 보다 작은 Form Factor. 가로 117mm x 세로 87mm
- 나름 경쟁력있는 가격 !
  - 보드 만 구매 시 28달러, TMC2130 V1.2 6개 풀 장착 시 70달러, TMC2130 풀장착 + MKS 12864 Full Graphic LCD 추가 시 82달러

단점
- Dual Z 포트를 왜 Parallel로 했을까..
- 사용할 Driver에 따른 다소 복잡한 Jumper 설정
- TMC2130 V1.2가 아닌 기타 다른 Driver를 사용할 경우, Vref 설정 Pot을 조정하기 매우 불편한 Driver 배치 방향.소트 주의..
- 트랜드는 32bit MCU로 가고 있다는...

설정에 주의만 기울인다면, 단점 보다는 장점이 많은 보드임에는 틀림이 없습니다. 특히 TMC2130을 완벽하게 사용하고 싶은 유저들에게는 추천드릴만 한 좋은 보드라는 것이 개인적인 생각입니다.  구매는 물론 aliexpress를 통해서...

다음 포스트에서는 3D프린터 32Bit 컨트롤러인 DuetWiFi에 대해 살펴 보도록 하겠습니다. 
  

공유하기 링크
Comments