13년차의 서버실

서버, 인프라, 홈랩 기술 블로그

[카테고리:] 3d_printer

  • [3D Printer] 3D프린터 베드 레벨링 완벽 가이드: 출력 실패 줄이는 핵심 설정

    [3D Printer] 3D프린터 베드 레벨링 완벽 가이드: 출력 실패 줄이는 핵심 설정

    3D프린터 베드 레벨링 완벽 가이드: 출력 실패 줄이는 핵심 설정

    안녕하세요, 13년차 서버실 지킴이, 그리고 홈랩에서 다양한 장비들을 굴려보는 인프라 엔지니어입니다. 오늘은 3D프린터 사용자라면 한 번쯤은 겪어봤을, 아니 어쩌면 매일매일 씨름하고 있을 바로 그 문제! 3D프린터 베드 레벨링(Bed Leveling)에 대해 이야기해보려고 합니다. 3D프린터 출력 실패의 가장 큰 원인 중 하나가 바로 이 베드 레벨링이 제대로 안 되어 베드 안착(Bed Adhesion)에 문제가 생기는 거거든요. 저도 처음엔 ‘이게 뭐야, 그냥 인쇄 버튼 누르면 되는 거 아니야?’ 했다가 수많은 출력물을 쓰레기통으로 보냈던 경험이 있습니다. 이 삽질을 통해 얻은 노하우를 오늘 아낌없이 풀어볼게요.

    베드에서 떨어져 실패한 3D프린터 출력물과 엉킨 필라멘트

    3D 프린터 출력 실패의 흔한 모습, 베드 레벨링이 잘못되면 이렇게 됩니다.

    베드 레벨링, 왜 그렇게 중요할까요? (핵심 개념 이해하기)

    쉽게 말해, 베드 레벨링(Bed Leveling)은 3D프린터의 노즐(Nozzle)과 출력물이 안착될 베드(Bed) 사이의 거리를 균일하게 맞춰주는 작업입니다. 이 거리가 너무 멀면 출력물이 베드에 제대로 붙지 못하고, 너무 가까우면 노즐이 베드를 긁거나 필라멘트가 제대로 압출되지 못하죠. 결국, 첫 번째 레이어(First Layer)가 안정적으로 베드에 안착(Adhesion)하는 것이 3D프린팅 성공의 8할이라고 봐도 무방할 정도로 중요하거든요. 첫 단추를 잘 꿰어야 옷이 완성되듯이 말이죠.

    베드 레벨링은 크게 두 가지 방식으로 나뉩니다.

    • 수동 레벨링(Manual Leveling): 사용자가 직접 베드 아래의 조절 나사를 돌려 수평을 맞추는 방식입니다. 가장 기본적인 방법이죠.
    • 오토 레벨링(Auto Leveling): 센서(예: BLTouch, CR-Touch 등)를 이용해 베드의 높이 편차를 자동으로 측정하고, 소프트웨어적으로 보정해주는 방식입니다. 사용자 편의성이 훨씬 좋지만, 초기 설정은 필요해요.

    실전 구현: 꼼꼼한 수동 레벨링 따라하기

    대부분의 3D프린터는 처음 세팅할 때 수동 레벨링을 먼저 해줘야 합니다. 저는 Ender 3나 Anycubic Vyper 같은 프린터들을 처음 사용할 때 이 과정을 거쳤는데요, 생각보다 어렵지 않으니 차근차근 따라 해보세요.

    준비물:

    • 일반 A4 용지 한 장 (또는 0.1mm 필러 게이지(Feeler Gauge))
    • 청결한 프린터 베드 (알코올 등으로 닦아주면 좋아요)
    1. 베드와 노즐 예열(Preheat): 프린팅 시 설정할 온도로 노즐과 베드를 예열해주세요. 금속은 온도가 변하면 미세하게 팽창/수축하므로, 실제 작업 환경과 동일하게 맞춰주는 것이 중요합니다.
    2. 노즐 초기 위치 이동: 프린터 메뉴에서 ‘Auto Home‘ 또는 ‘Home All Axes’를 실행하여 노즐을 원점(0,0,0)으로 이동시킵니다.
    3. 베드 코너로 노즐 이동: 프린터 메뉴나 G-code(G0 X20 Y20 Z0 같은)를 이용해 노즐을 베드의 왼쪽 하단 코너(corner) 근처로 이동시킵니다. 너무 끝으로 가면 클립에 걸릴 수 있으니 살짝 안쪽으로 이동하는 것이 좋아요.
    4. A4 용지로 간격 확인: 노즐과 베드 사이에 A4 용지를 넣고 움직여봅니다. 이때 종이가 약간의 저항(slight drag)을 느끼며 움직여야 합니다. 너무 뻑뻑하면 노즐이 너무 낮은 것이고, 너무 헐거우면 노즐이 너무 높은 것입니다.
    5. 베드 조절 나사 조정: 해당 코너 아래에 있는 베드 조절 나사를 돌려 높이를 맞춰줍니다. 노즐이 낮으면 나사를 시계 반대 방향으로 돌려 베드를 낮추고, 노즐이 높으면 시계 방향으로 돌려 베드를 높입니다.
    6. 나머지 코너 반복: 노즐을 오른쪽 하단, 오른쪽 상단, 왼쪽 상단 코너 순서로 이동시키면서 4~5단계를 반복합니다.
    7. 중앙 확인 및 재확인: 네 코너를 모두 맞춘 후에는 베드 중앙(center)에서도 동일하게 간격을 확인해줍니다. 그리고 다시 처음 코너부터 한 바퀴 더 반복하여 미세 조정을 해주는 것이 좋습니다. 한 코너를 맞추면 다른 코너에 영향을 줄 수 있거든요.
    3D프린터 노즐과 베드 사이에 A4 용지를 넣고 베드 레벨링 나사를 조절하는 손

    수동 레벨링의 핵심, A4 용지를 이용한 간격 조절입니다. 너무 빡빡하지도, 너무 헐겁지도 않게!

    실전 구현: 똑똑한 오토 레벨링 활용하기

    최근에는 오토 레벨링(Auto Leveling) 기능이 있는 프린터가 많아서 훨씬 편리해졌습니다. 저도 BLTouch나 CR-Touch 같은 센서가 달린 프린터를 써보고는 ‘와, 이거 진짜 편하네!’ 싶었거든요. 하지만 오토 레벨링도 마법은 아닙니다. 기본적인 수동 레벨링이 어느 정도 되어 있어야 더 정확한 보정을 해주죠.

    1. 센서 장착 및 펌웨어 설정: 오토 레벨링 센서(예: BLTouch)를 장착하고, 해당 센서에 맞는 펌웨어(firmware)를 프린터에 업로드해야 하는데, 이 과정은 프린터 모델마다 조금씩 달라서 해당 매뉴얼을 꼼꼼히 확인하는 게 중요합니다.
    2. Z-Offset 설정: 센서는 베드의 높이를 측정하지만, 실제 노즐 끝과의 거리는 다르죠. 이 차이를 Z-Offset(Z 오프셋)으로 설정해줘야 하는데, 노즐을 베드에 거의 닿게 내린 후 A4 용지 한 장이 간신히 들어갈 정도로 Z-Offset 값을 조절하면 됩니다. 이 값이 정말 중요한데, 이게 조금만 벗어나도 출력 결과가 확 달라진다니까요!
    3. 베드 메시(Bed Mesh) 생성: 프린터 메뉴에서 ‘Auto Level’ 또는 ‘Measure Bed’ 기능을 실행합니다. 센서가 베드의 여러 지점을 자동으로 측정하여 베드 메시(Bed Mesh), 즉 베드의 높이 지도를 생성합니다.
    4. 메시 저장 및 활성화: 생성된 베드 메시를 저장하고, 프린팅 시 이 메시를 활성화하는 G-code(예: G28 후 G29 또는 M420 S1)를 시작 G-code에 추가해줍니다.

    💡 팁: 오토 레벨링 센서를 사용하더라도, 베드 조절 나사를 너무 느슨하게 두지 말고 어느 정도 수평을 맞춰두는 것이 좋습니다. 센서가 보정할 수 있는 범위에는 한계가 있거든요.

    BLTouch 센서가 3D프린터 베드를 자동으로 측정하며 오토 레벨링하는 모습

    BLTouch 센서가 베드를 꼼꼼히 측정하여 베드 메시를 생성하는 모습입니다.

    ⚠️ 삽질 경험 공유: 흔한 출력 실패 원인과 해결책

    저도 3D프린터 출력 실패를 숱하게 겪으면서 다양한 삽질을 했는데요, 베드 레벨링과 관련하여 가장 많이 겪었던 문제들을 몇 가지 공유해봅니다.

    문제 1: 출력물이 자꾸 베드에서 떨어져요 (Poor Adhesion)

    • 원인: 노즐이 베드에서 너무 높거나, 베드가 오염되었거나, 베드 온도가 너무 낮을 때 발생합니다.
    • 해결책:
      1. 레벨링 재조정: 노즐과 베드 간격이 너무 멀지 않은지 다시 한번 확인합니다. A4 용지가 살짝 저항을 느끼며 움직이는 그 미묘한 간격이 중요합니다.
      2. 베드 청소: 지문, 기름때 등이 베드에 묻어 있으면 접착력이 떨어집니다. 이소프로필 알코올(IPA)이나 따뜻한 물과 주방 세제로 깨끗하게 닦아주세요.
      3. 베드 온도 조절: 사용하는 필라멘트(Filament)에 권장되는 베드 온도를 확인하고 충분히 예열될 시간을 줍니다. PLA는 50~60°C, ABS는 90~110°C 정도가 일반적입니다.
      4. 베드 안착 보조제 사용: 글루 스틱(Glue Stick), 헤어 스프레이(Hair Spray), PEI 시트(PEI Sheet) 등 베드 안착을 돕는 보조제를 사용해보세요. 저는 PEI 시트 위에 글루 스틱을 바르는 조합을 자주 썼는데, 이게 베드 안착에는 최고더라고요.

    문제 2: 첫 레이어가 너무 얇거나 노즐이 베드를 긁어요 (Nozzle Too Low)

    • 원인: 노즐이 베드에 너무 가까워서 필라멘트가 제대로 압출되지 못하거나 노즐이 베드를 긁는 소리가 납니다.
    • 해결책:
      1. 레벨링 재조정: 베드 조절 나사를 시계 방향으로 돌려 베드를 미세하게 낮추거나, Z-Offset 값을 양수(+) 방향으로 조정합니다.
      2. Z-Offset 확인: 오토 레벨링을 사용하는 경우, Z-Offset 값이 정확한지 다시 한번 확인하고 조정이 필요할 수 있습니다.
    노즐 높이에 따른 3D프린터 첫 레이어 비교: 너무 높음, 너무 낮음, 완벽

    잘못된 베드 레벨링으로 인한 첫 레이어의 문제점과 완벽한 첫 레이어의 비교 이미지입니다.

    출력 전 베드 안착 재료들 (Bed Adhesion Materials)

    완벽한 베드 레벨링 후에도 가끔은 출력을 꽉 잡아줄 무언가가 필요할 때가 있습니다. 특히 서포트(Support)가 많은 복잡한 모델이나 수축(Warping)이 심한 재료를 쓸 때 유용하죠. 제가 써본 몇 가지를 소개해드릴게요.

    • 글루 스틱 (Glue Stick): 가장 흔하고 저렴합니다. 출력 후 물로 쉽게 닦아낼 수 있어요.
    • 헤어 스프레이 (Hair Spray): 접착력이 좋고 넓은 면적에 빠르게 뿌릴 수 있습니다.
    • PEI 시트 (PEI Sheet): 내열성이 좋고 접착력이 뛰어나서 많이 사용됩니다. 저도 PEI 시트를 정말 좋아합니다.
    • 유리 베드 (Glass Bed): 표면이 매우 평평하고 깔끔한 바닥면을 얻을 수 있지만, 접착력은 보조제가 필요할 수 있습니다.

    검증 및 결과: 완벽한 첫 레이어 확인하기

    레벨링이 잘 되었는지 확인하는 가장 좋은 방법은 첫 레이어 테스트 출력(First Layer Test Print)을 해보는 것입니다. 단순한 사각형이나 원 여러 개를 프린팅해서, 각 부분의 필라멘트 안착 상태와 두께를 확인하는 거죠.

    • ✅ 완벽한 첫 레이어: 베드에 필라멘트가 균일하게 잘 붙어 있고, 너무 얇지도 두껍지도 않게 적당히 납작하게 압출되어 보입니다. 옆 라인들과 빈틈없이 매끄럽게 연결되는 것이 이상적입니다.
    • ⚠️ 너무 높은 노즐: 라인들이 서로 연결되지 않고 둥글게 보이며, 베드에서 쉽게 떨어집니다.
    • ⚠️ 너무 낮은 노즐: 라인들이 너무 납작하게 눌리거나, 노즐이 베드를 긁는 소리가 나고, 필라멘트가 제대로 나오지 않아 중간에 끊길 수 있습니다.

    성공적인 첫 레이어를 보면 정말 기분이 좋더라고요! 🎉

    완벽하게 안착된 첫 레이어 테스트 출력물입니다. 이 정도면 출력 성공은 따놓은 당상이죠!

    마무리하며: 꾸준함이 답이다

    오늘은 3D프린터 베드 레벨링에 대해 자세히 알아봤습니다. 3D프린터 출력 실패의 주범인 베드 안착 문제를 해결하는 가장 기본적이면서도 중요한 과정이죠. 처음에는 조금 귀찮고 어렵게 느껴질 수 있지만, 몇 번 해보면 금방 익숙해질 겁니다. 저처럼 삽질을 줄이고 성공적인 출력물을 얻기 위해서는 꾸준한 관리와 레벨링 확인이 필수라는 점, 꼭 기억해주세요!

    다음번에는 3D프린터 출력물의 뒤틀림(Warping)이나 스트링잉(Stringing) 같은 다른 흔한 문제 해결법에 대해서도 다뤄보겠습니다. 혹시 궁금한 점이나 공유하고 싶은 삽질 경험이 있다면 언제든지 댓글로 남겨주세요!

  • [3D Printer] OctoPrint 완벽 가이드: 3D 프린터 원격 제어 및 모니터링 설정

    3D 프린터 옆에 계속 붙어 있어야 했던 그 시절

    홈랩에 3D 프린터를 들인 지 얼마 안 됐을 때 얘기인데요. 처음엔 정말 신기해서 출력 내내 옆에서 지켜봤거든요. 근데 현실은 긴 출력물은 6시간, 길면 12시간씩 걸리잖아요. 그걸 매번 옆에서 볼 수도 없고, 그렇다고 자리 비웠다가 필라멘트 엉켜서 출력 실패하면… 그 허탈감이란. 😅

    그러다 알게 된 게 바로 OctoPrint입니다. 처음 들었을 때 “이게 뭐지, 문어 인쇄?” 했는데 막상 써보니까 3D 프린터 생활이 완전히 바뀌더라고요. 이 글에서는 OctoPrint 설치부터 3D 프린터 원격 제어, 모니터링 설정까지 직접 구축하면서 겪은 삽질과 노하우를 공유해 드릴게요.

    ▲ OctoPrint 전체 구성도: 라즈베리파이가 3D 프린터와 PC/스마트폰을 연결하는 허브 역할을 합니다.

    OctoPrint란? 3D 프린터 원격 제어의 핵심

    OctoPrint는 3D 프린터를 웹 브라우저로 원격 제어하고 모니터링할 수 있게 해주는 오픈소스 소프트웨어예요. 쉽게 말하면, 3D 프린터에 스마트 두뇌를 달아주는 거죠.

    보통 라즈베리파이(Raspberry Pi)에 설치해서 사용하는데, 라즈베리파이가 3D 프린터 옆에 항상 켜져 있으면서 USB로 프린터와 연결되고, 우리는 어디서든 웹 브라우저로 접속해서 출력을 시작하거나 멈추거나, 카메라로 실시간 확인을 할 수 있는 구조랍니다.

    OctoPrint로 할 수 있는 주요 기능

    • ✅ 웹 브라우저에서 G-code 파일 업로드 및 출력 시작/정지
    • ✅ 노즐(Nozzle) 온도, 베드(Bed) 온도 실시간 모니터링 및 제어
    • ✅ 웹캠 연결 시 실시간 영상 스트리밍 및 타임랩스(Timelapse) 촬영
    • ✅ 출력 진행률, 남은 시간 확인
    • ✅ 플러그인(Plugin) 시스템으로 기능 무한 확장
    • ✅ 스마트폰 앱 연동 (OctoEverywhere, OctoApp 등)

    저 처음에 온도 그래프가 실시간으로 그려지는 거 보고 진짜 감탄했었거든요. 인프라 엔지니어 감성으로 보면 Grafana 대시보드 느낌이라 바로 마음에 들었습니다 ㅎㅎ.

    OctoPrint 시작하기: 준비물 체크리스트

    본격적으로 OctoPrint 설치에 들어가기 전에 필요한 것들을 정리했습니다. 제가 직접 사용한 구성 기준이에요.

    항목 권장 사양 비고
    라즈베리파이 Raspberry Pi 3B+ 이상 Pi 4 추천 (웹캠 스트리밍 쾌적)
    MicroSD 카드 8GB 이상 (Class 10) 16GB 이상 권장
    USB 케이블 프린터-라즈베리파이 연결용 데이터 통신 가능한 케이블 필수
    전원 어댑터 라즈베리파이 공식 어댑터 불안정한 전원은 SD 카드 손상 원인
    웹캠 (선택) USB 웹캠 모니터링 강화 시 추가

    ⚠️ 주의: USB 케이블은 충전 전용이 아닌 데이터 통신이 가능한 케이블을 써야 해요. 이걸 몰라서 처음에 한참 헤맸거든요. 케이블 바꾸니까 바로 인식됐습니다.

    OctoPrint 설치: OctoPi 이미지로 빠르게 시작하기

    OctoPrint를 라즈베리파이에 설치하는 가장 쉬운 방법은 OctoPi 이미지를 사용하는 거예요. OctoPi는 라즈베리파이 OS 위에 OctoPrint가 미리 설치된 커스텀 이미지라 처음부터 직접 설치하는 것보다 훨씬 편합니다.

    1단계: OctoPi 이미지 다운로드 및 SD 카드 굽기

    1. 공식 사이트(octoprint.org)에서 OctoPi 이미지를 다운로드합니다.
    2. Raspberry Pi Imager를 실행하세요.
    3. “OS 선택”에서 “Use custom”을 선택하고 다운받은 OctoPi 이미지를 선택합니다.
    4. SD 카드를 선택하고 굽기 전에 ⚙️ 고급 설정을 열어 Wi-Fi와 SSH를 미리 설정해 두세요.

    💡 팁: Raspberry Pi Imager의 고급 설정에서 Wi-Fi SSID와 비밀번호, SSH 활성화, 사용자 이름/비밀번호를 미리 설정해두면 나중에 별도 작업 없이 바로 SSH 접속이 돼요. 이거 모르면 모니터 연결해서 설정해야 하는데, 알면 훨씬 편합니다.

    2단계: Wi-Fi 설정 확인 (선택사항)

    Raspberry Pi Imager에서 미리 설정했다면 이 단계는 건너뛰어도 괜찮아요. 추가 설정이 필요하면 SD 카드 루트 디렉토리의 octopi-wpa-supplicant.txt 파일을 편집할 수도 있습니다.

    # octopi-wpa-supplicant.txt 예시
    network={
      ssid="YOUR_WIFI_SSID"
      psk="YOUR_WIFI_PASSWORD"
    }

    3단계: 라즈베리파이 부팅 및 SSH 접속

    SD 카드를 꽂고 전원을 연결하면 부팅이 시작돼요. 1~2분 기다린 후 SSH로 접속해 보세요.

    # SSH 접속 (기본 호스트명은 octopi.local)
    ssh [email protected]
    
    # 또는 IP 주소로 접속
    ssh [email protected]

    접속이 되면 절반은 성공한 거예요! 🎉

    4단계: OctoPrint 초기 설정 마법사

    SSH 접속이 확인됐으면 이제 웹 브라우저에서 http://octopi.local 또는 라즈베리파이 IP 주소로 접속하세요. 처음 접속하면 Setup Wizard(설정 마법사)가 뜨는데, 순서대로 따라가면 돼요.

    1. Access Control(접근 제어): 관리자 계정 생성
    2. Connectivity Check: 인터넷 연결 확인
    3. Plugin Blacklist: 보안 블랙리스트 활성화 (그냥 켜두세요)
    4. Printer Profile: 3D 프린터 정보 입력

    프린터 프로파일(Printer Profile) 설정 시 프린터 제조사 홈페이지나 매뉴얼에서 베드 크기, 노즐 직경 등을 확인해서 입력하면 돼요.

    ▲ OctoPrint 웹 대시보드: 온도 그래프, 출력 진행률, 카메라 피드가 한 화면에 표시됩니다.

    3D 프린터 원격 제어 핵심 기능 설정하기

    프린터 USB 연결 및 인식 확인

    라즈베리파이와 3D 프린터를 USB 케이블로 연결하고 OctoPrint 웹 화면 왼쪽 상단의 Connect 버튼을 누르세요. 포트(Port)와 Baudrate(통신 속도)를 설정해야 하는데, 대부분의 경우 AUTO로 두면 자동으로 잡혀요.

    # 라즈베리파이에서 연결된 USB 장치 확인
    ls /dev/ttyUSB* /dev/ttyACM*
    
    # 예시 출력
    /dev/ttyACM0   # 대부분의 3D 프린터가 이 포트로 잡힙니다

    가끔 권한 문제가 생기더라고요. pi 계정에 dialout 그룹 권한이 없으면 포트에 접근을 못합니다.

    # dialout 그룹에 pi 사용자 추가
    sudo usermod -a -G dialout pi
    
    # 적용을 위해 재부팅
    sudo reboot

    웹캠 연동으로 실시간 모니터링 강화

    웹캠을 연결하면 출력 중 실시간으로 프린터 상태를 볼 수 있어서 진짜 편해요. OctoPi에는 기본적으로 mjpg-streamer가 포함되어 있어서 별도 설치 없이 웹캠만 꽂으면 됩니다.

    # 웹캠 인식 확인
    ls /dev/video*
    
    # mjpg-streamer 서비스 상태 확인
    sudo service webcamd status

    OctoPrint 설정 → Webcam & Timelapse 메뉴에서 Stream URL을 확인하세요. 기본값은 보통 http://octopi.local/webcam/?action=stream입니다.

    💡 타임랩스(Timelapse) 기능: OctoPrint는 레이어 변경 시마다 사진을 찍어 자동으로 타임랩스 영상을 만들어 줘요. 출력 완료 후 설정 메뉴에서 렌더링된 영상을 다운받을 수 있어요. 이거 처음 만들어봤을 때 진짜 신기했습니다.

    꼭 설치해야 할 OctoPrint 플러그인 추천

    OctoPrint의 진짜 매력은 플러그인 생태계예요. Settings → Plugin Manager → Get More에서 검색해서 설치할 수 있습니다.

    플러그인 이름 기능 추천 이유
    Bed Visualizer 베드 레벨링 시각화 베드 평탄도를 3D 그래프로 확인
    PrintTimeGenius 출력 시간 예측 개선 기본 시간 예측보다 훨씬 정확함
    Telegram Notifications 텔레그램 알림 출력 완료/실패 시 스마트폰 알림
    Filament Manager 필라멘트 재고 관리 남은 필라멘트 양 추적
    OctoEverywhere 외부 네트워크 접속 VPN 없이 외부에서 안전하게 접속

    저는 특히 Telegram Notifications 플러그인을 강력 추천해요. 출력이 완료되거나 실패했을 때 텔레그램으로 사진이랑 같이 알림이 오거든요. 다른 일 하다가 알림 받고 가서 확인하면 되니까 정말 편합니다.

    ⚠️ 자주 겪는 문제와 해결법

    OctoPrint 구축하면서 겪은 문제들과 해결법을 정리했어요. 저만 겪은 게 아닐 거라 생각합니다.

    문제 1: 프린터가 연결됐다가 끊겼다가 반복

    원인은 대부분 두 가지예요. 첫째는 케이블 문제, 둘째는 라즈베리파이 전원 불안정입니다. USB 허브를 사용한다면 전원 공급이 되는 허브인지 확인하세요. 라즈베리파이 전원 어댑터는 공식 어댑터를 쓰는 게 정말 중요해요. 저도 저렴한 어댑터 쓰다가 한참 고생했거든요.

    # 라즈베리파이 전원 상태 확인 (under-voltage 경고 확인)
    dmesg | grep -i voltage
    
    # 또는
    vcgencmd get_throttled
    # 0x0이면 정상, 다른 값이면 전원 문제

    문제 2: 웹캠 화면이 안 나옴

    웹캠이 USB 3.0 포트에서 인식이 안 되는 경우가 있어요. USB 2.0 포트로 바꿔서 꽂아보세요. 라즈베리파이 Pi 4에서는 USB 포트별로 전력 공급이 달라서 포트를 바꾸는 것만으로 해결되기도 합니다.

    # 웹캠 인식 여부 확인
    lsusb
    
    # v4l2 장치 목록 확인
    v4l2-ctl --list-devices

    문제 3: 외부에서 접속이 안 됨

    집 밖에서 OctoPrint에 접속하려면 포트 포워딩이나 VPN, 또는 OctoEverywhere 같은 서비스를 써야 해요. 보안 때문에 OctoPrint를 인터넷에 직접 노출하는 건 권장하지 않습니다. 저는 이미 홈랩에 VPN 서버가 있어서 VPN 연결 후 내부 IP로 접속하는 방식을 써요.

    ⚠️ 보안 경고: 라우터에서 OctoPrint 포트를 직접 외부에 포워딩하는 건 절대 하지 마세요. OctoEverywhere 같은 보안 터널 서비스나 VPN을 사용하세요.

    ▲ OctoPrint 플러그인 매니저와 텔레그램 알림 설정 화면 예시.

    설정 완료! 3D 프린터 원격 제어 활용하기

    모든 설정이 완료되면 이런 것들이 가능해져요. 드디어 됐다! 🎉

    • 집 어디서든 Wi-Fi 연결 상태에서 3D 프린터 원격 제어 가능
    • 스마트폰 브라우저에서도 OctoPrint 대시보드 접속 가능
    • 출력 중 자리를 비워도 카메라로 실시간 확인
    • 출력 완료/실패 시 텔레그램 알림 수신
    • 출력물마다 예쁜 타임랩스 영상 자동 생성

    심화 활용: G-code 스크립트 자동화

    OctoPrint에서는 출력 시작 전/후에 자동으로 실행할 G-code를 설정할 수 있어요. Settings → Printer Profiles 또는 Settings → GCODE Scripts에서 설정합니다.

    # 출력 시작 전 G-code 예시 (베드 자동 레벨링 후 시작)
    G28 ; 홈 포지션으로 이동
    G29 ; 자동 베드 레벨링 (ABL 지원 프린터)
    G92 E0 ; 익스트루더 초기화
    
    # 출력 완료 후 G-code 예시
    G91 ; 상대 좌표 모드
    G1 Z10 F3000 ; Z축 10mm 올리기
    G90 ; 절대 좌표 모드
    G1 X0 Y200 F3000 ; 베드를 앞으로 이동 (출력물 꺼내기 쉽게)
    M84 ; 모터 끄기

    이런 자동화 스크립트를 잘 설정해두면 출력 시작 전 베드 레벨링을 자동으로 하거나, 출력 완료 후 베드가 자동으로 앞으로 나와서 출력물 꺼내기도 편해져요. 실제로 써보니까 이게 진짜 편하더라고요.

    OctoPrint 설치 방법 비교: OctoPi vs 수동 설치

    구분 OctoPi 이미지 사용 기존 라즈베리파이 OS에 수동 설치
    설치 난이도 쉬움 ⭐ 보통 ⭐⭐⭐
    설치 시간 15~30분 1시간 이상
    웹캠 지원 기본 포함 별도 설정 필요
    다른 서비스 공존 제한적 자유롭게 구성 가능
    추천 대상 OctoPrint 전용 라즈베리파이 기존 라즈베리파이에 추가 설치

    처음 시작하시는 분들께는 무조건 OctoPi 이미지를 추천해요. 저도 처음엔 수동 설치로 삽질하다가 결국 OctoPi로 갈아탔거든요 ㅎㅎ.

    ▲ OctoPrint 설치 옵션 비교 및 핵심 기능 체크리스트 요약.

    자주 묻는 질문 (FAQ)

    Q. 라즈베리파이 없이 OctoPrint를 쓸 수 있나요?

    네, 가능해요. Windows나 macOS, Linux PC에도 설치할 수 있습니다. 다만 24시간 켜두기엔 라즈베리파이가 전기세 면에서 훨씬 유리해요. 항상 켜두는 용도라면 라즈베리파이를 강력히 추천합니다.

    Q. OctoPrint 설치 후 슬라이서(Slicer) 소프트웨어는 필요 없나요?

    아니요, 슬라이서는 여전히 필요해요. OctoPrint는 G-code를 프린터에 전송하고 제어하는 역할이고, G-code 파일 자체는 Cura, PrusaSlicer 같은 슬라이서로 만들어야 합니다. 슬라이서에서 만든 G-code 파일을 OctoPrint에 업로드해서 출력하는 방식이에요.

    Q. OctoPrint가 무료인가요?

    OctoPrint 자체는 완전히 무료 오픈소스 소프트웨어예요. 라즈베리파이 하드웨어 비용만 들고, OctoEverywhere 같은 부가 서비스는 유/무료 플랜이 있습니다.

    마무리: 3D 프린터 옆에서 해방됐습니다

    OctoPrint 덕분에 정말 3D 프린터 생활이 달라졌어요. 이제는 출력 시작해 놓고 다른 일 하다가 텔레그램 알림 오면 확인하는 식으로 써요. 처음 설정할 때 케이블 문제, 권한 문제로 삽질 좀 했지만 한 번 잘 잡아두면 정말 편합니다.

    정리하면 이렇습니다:

    • ✅ OctoPi 이미지로 라즈베리파이에 설치 (가장 쉬운 방법)
    • ✅ USB 데이터 케이블 + 안정적인 전원 어댑터 필수
    • ✅ dialout 그룹 권한 설정 잊지 말기
    • ✅ 웹캠 연결로 3D 프린터 원격 모니터링 강화
    • ✅ Telegram Notifications 플러그인으로 알림 설정
    • ✅ 외부 접속은 VPN 또는 OctoEverywhere 사용 (보안 중요!)

    다음 글에서는 OctoPrint와 Home Assistant(홈 어시스턴트)를 연동해서 스마트홈과 3D 프린터를 통합하는 방법을 다뤄볼 예정입니다. 혹시 궁금한 점이나 다른 삽질 경험 있으시면 댓글로 공유해 주세요! 😊

  • [3D Printer] 3D 프린터 베드 레벨링 완벽 가이드: 수동·자동 센서 활용법

    첫 레이어가 안 붙는다고요? 베드 레벨링이 문제입니다

    3D 프린팅을 처음 시작했을 때 제일 많이 겪는 좌절이 뭔지 아세요? 바로 첫 레이어가 안 붙는 문제입니다. 분명히 설정도 맞추고, 필라멘트도 잘 나오는데 출력물이 베드에서 떨어져 나가거나, 반대로 너무 꽉 눌려서 노즐이 베드를 긁는 경우죠. 저도 처음엔 이게 왜 그런지 몰라서 몇 시간짜리 출력을 여러 번 날려먹었어요.

    결론부터 말씀드리면, 3D 프린터 베드 레벨링(Bed Leveling)이 제대로 안 되어 있어서 그렇습니다. 베드 레벨링은 단순히 ‘수평 맞추기’가 아니라, 노즐과 베드 사이의 간격을 정밀하게 설정하는 작업이거든요. 이게 0.1mm만 틀려도 출력 품질이 확 달라집니다.

    오늘은 13년 동안 서버실과 홈랩을 운영하면서 틈틈이 3D 프린터도 굴려온 제가, 수동 레벨링부터 오토 레벨링 센서 활용까지 직접 해본 경험을 바탕으로 정리해 드릴게요. 삽질 경험도 솔직하게 다 풀어드릴 테니, 끝까지 읽어보시면 분명 도움이 될 겁니다.

    베드 레벨링의 핵심은 노즐과 베드 사이의 균일한 간격 유지입니다. 간격이 너무 넓거나 좁으면 첫 레이어 안착이 실패합니다.


    베드 레벨링(Bed Leveling)이 뭔가요? 개념부터 잡고 가기

    쉽게 말해, 베드 레벨링은 프린터 노즐이 베드 위를 움직일 때 어느 위치에서든 노즐-베드 간격이 동일하도록 맞추는 작업입니다. 베드가 완벽하게 평평하고 프린터 프레임도 완벽하다면 한 번만 맞추면 되겠지만, 현실은 그렇지 않죠.

    제가 쓰는 프린터도 왼쪽 앞은 괜찮은데 오른쪽 뒤가 살짝 높아서, 같은 설정으로 출력해도 위치에 따라 첫 레이어 두께가 달라지더라고요. 이런 불균일한 베드 표면을 보정해주는 게 바로 레벨링의 핵심입니다.

    왜 첫 레이어(First Layer)가 이렇게 중요한가요?

    • 접착력: 첫 레이어가 베드에 제대로 눌려야 출력물이 중간에 떨어지지 않아요
    • 치수 정확도: 첫 레이어가 찌그러지면 전체 출력물 높이와 치수가 틀어집니다
    • 표면 품질: 바닥면 품질이 나쁘면 윗 레이어에도 영향을 줍니다
    • 출력 성공률: 장시간 출력일수록 첫 레이어가 생명입니다

    노즐과 베드 사이의 이상적인 간격은 보통 0.1~0.2mm 정도입니다. 종이 한 장 두께가 약 0.1mm니까, 종이가 살짝 끼워지면서 저항이 느껴지는 정도가 딱 맞는 거예요.


    수동 레벨링(Manual Leveling): 손으로 직접 맞추는 방법

    자동 센서가 없는 프린터라면 수동 레벨링을 해야 합니다. 귀찮아 보이지만, 원리를 이해하고 나면 생각보다 어렵지 않아요. 저도 처음엔 30분씩 걸렸는데, 지금은 5분이면 끝납니다.

    준비물

    • A4 용지 1장 (두께 약 0.1mm)
    • 프린터 베드 레벨링 나사 (보통 네 귀퉁이에 있는 손나사)
    • 프린터 제어 소프트웨어 (Pronterface, OctoPrint, 또는 프린터 자체 LCD 메뉴)

    단계별 수동 레벨링 방법

    1. 홈 포지션 이동: 프린터를 홈(Home)으로 이동시킵니다. LCD 메뉴나 G-code 명령어로 G28을 실행하세요.
    2. 베드 온도 예열: 실제 출력 온도로 베드를 예열합니다. 열팽창 때문에 차가운 상태에서 맞추면 나중에 틀어져요. 저도 이거 몰라서 한참 삽질했습니다.
    3. 첫 번째 코너 이동: 노즐을 베드 왼쪽 앞 코너로 이동합니다.
    4. 종이 테스트: 노즐 아래에 A4 용지를 넣고 손나사를 돌려서 종이가 살짝 저항을 느끼며 움직일 수 있는 높이로 맞춥니다.
    5. 네 귀퉁이 반복: 나머지 세 코너도 같은 방법으로 맞춥니다.
    6. 중앙 확인: 마지막으로 베드 중앙에서도 종이 테스트를 해서 균일한지 확인합니다.
    7. 2~3회 반복: 한 귀퉁이를 조정하면 다른 귀퉁이에 영향을 줄 수 있어서, 전체를 2~3바퀴 반복해서 확인하는 게 좋습니다.
    # 수동 레벨링 시 유용한 G-code 명령어들
    G28          ; 모든 축 홈 이동 (Home All)
    G29          ; 자동 베드 레벨링 실행 (센서 있는 경우)
    G1 Z0 F300  ; Z축을 0으로 이동
    M851 Z-1.5  ; Z 오프셋(Z Offset) 설정 (값은 프린터마다 다름)
    M500         ; EEPROM에 설정 저장

    💡 팁: 베드 레벨링 나사 조정 방향 외우기

    “오른쪽으로 돌리면 베드가 올라간다(노즐과 가까워진다), 왼쪽으로 돌리면 내려간다”고 기억하세요. 헷갈리면 나사 머리에 화살표를 스티커로 붙여두는 것도 방법입니다. 저는 그렇게 했어요.


    오토 레벨링(Auto Leveling): 센서로 자동 보정하기

    수동 레벨링이 귀찮다면, 자동 레벨링 센서를 사용하는 방법이 있습니다. 요즘 중급 이상 프린터에는 기본 탑재된 경우가 많고, 별도로 구매해서 달 수도 있어요. 제가 홈랩에서 굴리는 프린터에도 달아봤는데, 진짜 편하더라고요.

    주요 오토 레벨링 센서 종류

    센서 종류 작동 방식 장점 단점
    BLTouch 물리적 핀이 베드에 닿아 감지 정확도 높음, 유리/금속 베드 모두 사용 가능 핀 내구성 이슈, 가격대 있음
    CR Touch 광학 센서 + 물리적 핀 BLTouch 개선 버전, 내구성 향상 호환 프린터 제한적
    유도형 센서 (Inductive) 금속 베드의 자기장 변화 감지 내구성 강함, 저렴함 금속 베드에서만 사용 가능
    용량형 센서 (Capacitive) 정전용량 변화 감지 다양한 베드 재질 지원 온도/습도 영향 받음

    BLTouch 센서가 베드 여러 지점을 측정하여 메시(Mesh) 데이터를 생성하고, 이를 바탕으로 출력 경로를 자동 보정하는 과정입니다.

    Marlin 펌웨어에서 BLTouch 설정하기

    BLTouch를 달았다면 펌웨어 설정도 맞춰줘야 합니다. Marlin 펌웨어 기준으로 설명할게요. 처음엔 이 부분에서 좀 헤맸는데, 핵심 설정 몇 가지만 건드리면 됩니다.

    // Configuration.h 파일에서 수정할 주요 설정들
    
    // BLTouch 활성화
    #define BLTOUCH
    
    // 센서 오프셋 설정 (노즐 기준 센서 위치, mm 단위)
    // X, Y는 센서가 노즐에서 얼마나 떨어져 있는지
    // Z는 Z 오프셋 (실제 출력 시 미세 조정 필요)
    #define NOZZLE_TO_PROBE_OFFSET { -44, -9, 0 }  // 프린터마다 다름!
    
    // 자동 베드 레벨링 메시(Mesh) 방식 활성화
    #define AUTO_BED_LEVELING_BILINEAR
    
    // 메시 포인트 수 (3x3부터 시작, 익숙해지면 5x5도 OK)
    #define GRID_MAX_POINTS_X 5
    #define GRID_MAX_POINTS_Y 5
    
    // 레벨링 데이터 EEPROM 저장 활성화
    #define EEPROM_SETTINGS
    #define EEPROM_AUTO_INIT

    슬라이서(Slicer) Start G-code 설정

    펌웨어 설정 후에는 슬라이서의 시작 G-code도 수정해야 합니다. 이게 빠지면 레벨링 데이터가 실제 출력에 적용이 안 되거든요. 저도 이걸 몰라서 한참 헤맸습니다.

    # 슬라이서 Start G-code 예시 (Cura 기준)
    G28 ; 홈 이동
    G29 ; 자동 베드 레벨링 실행
    M500 ; 레벨링 데이터 저장
    G92 E0 ; 익스트루더 리셋
    G1 Z0.3 F3000 ; 시작 높이로 이동
    G1 X10 Y20 F3000 ; 시작 위치로 이동

    또는 EEPROM에 저장된 레벨링 데이터를 재사용하고 싶다면:

    # 저장된 레벨링 데이터 불러오기 (매번 G29 생략 가능)
    G28 ; 홈 이동
    M420 S1 ; 저장된 베드 레벨링 데이터 활성화
    G1 Z0.3 F3000

    ⚠️ 자주 겪는 문제와 해결법: 실제 삽질 경험 공유

    이론은 이론이고, 실전은 또 다르죠. 제가 직접 겪었던 문제들과 해결 방법을 솔직하게 정리해 봤습니다.

    문제 1: 레벨링은 맞췄는데 첫 레이어가 계속 안 붙어요

    원인: Z 오프셋(Z Offset)이 맞지 않는 경우가 대부분입니다. 레벨링은 상대적 수평을 맞추는 거고, Z 오프셋은 절대적인 노즐-베드 간격을 결정합니다.

    해결법: 실시간으로 Z 오프셋을 미세 조정하면서 첫 레이어 상태를 확인하세요. 필라멘트가 베드에 눌려서 약간 납작해 보이는 게 정상입니다. 동그랗게 솟아있으면 너무 높은 거죠.

    # Z 오프셋 실시간 조정 (출력 중에도 가능)
    M851 Z-1.8  ; Z 오프셋을 -1.8mm로 설정 (음수가 일반적)
    M500        ; 저장

    문제 2: 오토 레벨링 후에도 베드 한쪽이 뜨거나 눌려요

    원인: 수동 레벨링이 너무 틀어져 있으면 오토 레벨링의 보정 범위를 넘어섭니다. 오토 레벨링은 미세 보정이지, 큰 오차를 완전히 커버하지는 못해요.

    해결법: 수동 레벨링으로 먼저 대략적인 수평을 맞춘 뒤, 오토 레벨링으로 미세 보정하는 2단계 접근이 가장 효과적입니다.

    문제 3: BLTouch 핀이 배포되지 않아요

    원인: 대부분 배선 문제이거나 펌웨어 설정 오류입니다. 저도 처음에 배선 순서를 잘못 연결해서 한참 고생했어요.

    해결법: BLTouch 배선은 5핀 커넥터를 사용하며, 서보 신호선과 Z-min 신호선을 정확히 연결해야 합니다. 제조사 공식 배선도를 반드시 확인하세요.

    문제 4: 매번 출력 전에 G29를 실행하면 너무 오래 걸려요

    해결법: 앞서 설명한 M420 S1을 Start G-code에 넣어서 저장된 레벨링 데이터를 재사용하세요. 베드를 건드리지 않는 이상 자주 재측정할 필요 없습니다. 저는 베드를 분리했다 다시 달거나, 프린터를 이동한 경우에만 G29를 새로 실행합니다.

    레벨링 전후 첫 레이어 품질 비교. 왼쪽(레벨링 불량)은 필라멘트가 뭉치거나 떠 있고, 오른쪽(레벨링 정상)은 균일하게 눌려 있습니다.


    베드 안착(Bed Adhesion)을 높이는 추가 팁

    레벨링을 완벽히 맞췄어도 재료나 환경에 따라 안착이 안 될 수 있어요. 레벨링과 함께 챙겨야 할 베드 안착 팁도 드릴게요.

    베드 표면 관리

    • 유리 베드: 헤어스프레이나 글루스틱을 얇게 도포하면 안착력이 올라갑니다
    • PEI 시트: 요즘 가장 많이 쓰는 방식. 온도만 맞으면 별도 처리 없이도 잘 붙고, 식으면 자연스럽게 떨어집니다. 정말 편해요
    • 빌드택(BuildTak): 접착력이 강해서 ABS 같은 수축이 심한 재료에 유용합니다
    • 베드 청결 유지: 이소프로필 알코올(IPA) 70% 이상으로 출력 전 베드를 닦아주세요. 손기름이 안착력을 크게 떨어뜨립니다

    슬라이서 설정으로 안착 보조

    • Brim: 출력물 주변에 얇은 테두리를 추가해서 접촉 면적을 늘립니다. 다리가 가는 출력물에 특히 효과적이에요
    • Raft: 출력물 아래에 두꺼운 받침대를 깝니다. 안착이 극히 어려운 경우 최후 수단입니다
    • First Layer Speed: 첫 레이어 속도를 20~30mm/s로 느리게 설정하면 안착력이 올라갑니다
    • First Layer Height: 첫 레이어 두께를 0.2~0.3mm로 약간 두껍게 설정하면 안착이 잘 됩니다

    레벨링 결과 확인: 이렇게 생겼으면 성공입니다

    레벨링이 잘 됐는지 확인하는 가장 좋은 방법은 직접 출력해보는 거예요. 간단한 테스트 파일로 확인해 보세요.

    첫 레이어 테스트 방법

    1. 슬라이싱 소프트웨어에서 얇은 정사각형 패드 모델을 준비합니다 (20x20x0.2mm 정도)
    2. 출력하면서 첫 레이어 상태를 눈으로 확인합니다
    3. 아래 기준으로 판단하세요
    첫 레이어 상태 의미 조치
    필라멘트가 납작하게 눌리며 균일하게 퍼짐 ✅ 정상 그대로 출력 진행
    필라멘트가 동그랗게 솟아있음 노즐이 너무 높음 Z 오프셋 낮추기 (음수 방향)
    필라멘트가 너무 얇거나 베드에 긁힘 노즐이 너무 낮음 Z 오프셋 높이기 (양수 방향)
    한쪽은 붙고 반대쪽은 뜸 베드 기울어짐 수동 레벨링 재조정
    중앙이 뜨고 가장자리가 붙음 베드 중앙 처짐 메시 레벨링 포인트 늘리기

    드디어 첫 레이어가 균일하게 눌리면서 베드에 착 붙는 걸 보는 순간, 정말 뿌듯합니다. 저는 그 순간을 아직도 기억해요.


    정리 및 자주 묻는 질문

    수동 레벨링과 오토 레벨링의 특징을 한눈에 비교한 요약 인포그래픽입니다.

    수동 vs 오토 레벨링, 뭘 선택해야 하나요?

    구분 수동 레벨링 오토 레벨링
    비용 추가 비용 없음 센서 구매 비용 발생
    정확도 숙련도에 따라 다름 일관되게 높은 정확도
    편의성 매번 손으로 조정 필요 출력 전 자동 측정
    베드 왜곡 보정 평면 보정만 가능 메시(Mesh) 기반 곡면 보정 가능
    권장 대상 입문자, 저가 프린터 중급 이상, 정밀 출력 필요한 경우

    자주 묻는 질문 (FAQ)

    Q. 레벨링은 얼마나 자주 해야 하나요?
    A. 프린터를 이동하거나 베드를 탈착한 경우, 또는 출력 품질이 갑자기 나빠진 경우에 하시면 됩니다. 안정적인 환경에서 매일 출력해도 주 1회 정도면 충분한 경우가 많아요.

    Q. 오토 레벨링이 있으면 수동 레벨링 안 해도 되나요?
    A. 수동 레벨링으로 대략적인 수평을 맞춘 뒤 오토 레벨링으로 미세 보정하는 게 가장 좋습니다. 오토 레벨링이 모든 오차를 커버하지는 못거든요.

    Q. Z 오프셋 설정값이 계속 바뀌어요
    A. 베드 온도가 달라지거나, 핫엔드(노즐 부분)를 교체한 경우 Z 오프셋이 달라질 수 있습니다. 출력 온도를 고정하고, 예열 후 Z 오프셋을 맞추는 습관을 들이세요.

    마무리: 레벨링은 3D 프린팅의 기초 중의 기초

    3D 프린터 베드 레벨링, 처음엔 귀찮고 어렵게 느껴지지만 익숙해지면 5분이면 끝나는 작업입니다. 이 기초를 제대로 잡아야 나머지 출력 품질 최적화도 의미가 있어요.

    수동 레벨링으로 시작해서 원리를 이해하고, 여유가 되면 BLTouch 같은 센서를 달아서 편의성을 높이는 방향을 추천합니다. 저도 그 순서로 왔거든요.

    다음 글에서는 필라멘트 종류별 출력 온도 및 설정 최적화를 다룰 예정입니다. 레벨링을 잡았다면 다음 단계는 재료별 설정이니까요. 궁금한 점은 댓글로 남겨주세요!

  • [3D 프린팅] Cura 5.7 슬라이서 설정: 초보자를 위한 완벽 출력 가이드

    [3D 프린팅] Cura 5.7 슬라이서 설정: 초보자를 위한 완벽 출력 가이드

    안녕하세요, 13년차 서버실 지킴이, ’13년차의 서버실’ 블로그 주인장입니다. 오늘은 서버실 이야기는 잠시 접어두고, 제 홈랩에서 밤낮없이 돌아가고 있는 3D 프린터 이야기, 그중에서도 Cura 5.7 슬라이서 설정에 대한 경험담을 풀어볼까 합니다. 3D 프린팅을 처음 시작하시는 분들이라면, 저처럼 수많은 출력 실패와 ‘삽질’을 경험하셨을 거예요. 저도 처음엔 이게 뭔가 싶었는데, 결국은 Cura 가이드를 제대로 익히는 것이 성공적인 출력을 위한 지름길이더라고요.

    처음 3D 프린터를 구매하고 나서, 예쁜 모델링 파일을 다운받아 신나는 마음으로 출력을 눌렀다가 처참하게 실패했던 기억, 혹시 있으신가요? 😢 출력물이 베드에서 떨어져 나가거나, 거미줄처럼 실이 덕지덕지 붙어 나오거나, 아니면 아예 형체가 이상하게 나오는 등… 저도 수십 번은 겪었을 겁니다. 이런 문제들의 대부분은 사실 3D프린터 슬라이서인 Cura의 설정을 제대로 이해하지 못해서 발생하거든요. 오늘은 초보자분들도 헤매지 않고 멋진 출력물을 뽑아낼 수 있도록, 제가 직접 경험하며 얻은 Cura 5.7 설정 팁을 아낌없이 공유해 드릴게요. 함께 차근차근 따라오시면, 분명 만족스러운 결과를 얻으실 수 있을 겁니다! 💡

    Cura 5.7 메인 화면은 이렇게 생겼습니다. 다양한 옵션들이 한눈에 들어오죠? 처음엔 복잡해 보이지만, 자주 쓰는 것들 위주로 익히면 금방 익숙해집니다.

    Cura 슬라이서, 왜 중요할까요?

    3D 프린팅을 시작하면서 가장 먼저 만나게 되는 소프트웨어가 바로 슬라이서(Slicer)입니다. 쉽게 말해, 3D 모델링 파일(보통 .STL이나 .OBJ 파일)을 3D 프린터가 이해할 수 있는 언어(G-code)로 바꿔주는 역할을 하는 거죠. G-code(지코드)는 프린터의 노즐이 어디로 움직여야 하고, 필라멘트를 얼마나 밀어내야 하며, 온도는 몇 도로 설정해야 하는지 등 모든 출력 과정을 명령하는 코드입니다.

    수많은 슬라이서 프로그램 중에서도 Ultimaker Cura(얼티메이커 큐라)는 가장 널리 사용되고 있는 슬라이서 중 하나거든요. 무료이고, 오픈소스(Open Source)이며, 다양한 3D 프린터 모델을 지원한다는 장점 덕분에 저도 오랫동안 사용하고 있어요. 특히 Cura 5.7 버전은 사용자 인터페이스(UI)도 직관적이고, 여러 기능이 개선되어 초보자분들이 접근하기 더욱 좋아졌더라고요.

    Cura 5.7 초기 설정 가이드: 내 프린터 등록하기

    가장 먼저 Cura를 설치하셨다면, 여러분의 3D 프린터를 등록해야 합니다. 저도 처음엔 어떤 프린터를 선택해야 할지 몰라 한참 헤맸던 기억이 나네요. 하지만 걱정 마세요, 생각보다 간단합니다.

    1. Cura 실행 및 프린터 추가: Cura를 처음 실행하면, 자동으로 프린터 추가 마법사가 뜹니다. 만약 뜨지 않는다면, 상단 메뉴에서 Settings (설정) > Printer (프린터) > Add Printer (프린터 추가)를 선택하시면 됩니다.
    2. 프린터 선택:
      • Non-Ultimaker Printers (얼티메이커 외 프린터)를 선택하고, 본인의 프린터 제조사와 모델명을 찾아 선택합니다. (예: Creality Ender-3, Anet A8 등)
      • 만약 목록에 없다면, Custom (사용자 정의) > Custom FFF printer (사용자 정의 FFF 프린터)를 선택하여 직접 베드 크기나 노즐 직경 등을 입력해야 합니다. 저도 한때 DIY 프린터를 만들어서 등록해본 경험이 있거든요.
    3. 프린터 설정 확인: 프린터를 선택하면, 자동으로 해당 프린터에 맞는 기본 설정(빌드 볼륨, 노즐 직경 등)이 로드됩니다. 특별한 경우가 아니라면 이대로 두셔도 됩니다.

    이렇게 프린터가 등록되면, 이제 모델링 파일을 불러와 G-code로 슬라이싱할 준비가 된 겁니다. 간단하죠? 🎉

    성공적인 출력을 위한 핵심 설정 파헤치기

    이제 본격적으로 Cura 5.7 설정의 핵심인 출력 관련 파라미터(Parameter)들을 살펴보겠습니다. 이 부분에서 정말 많은 분들이 삽질을 하시고, 저 역시 수많은 실패를 통해 배웠던 것들이 많거든요. 중요한 설정 위주로 쉽게 설명해 드릴게요.

    Cura의 ‘Prepare’ 탭에서 볼 수 있는 핵심 설정 창입니다. 이 설정들을 잘 조절하는 것이 고품질 출력을 위한 첫걸음이죠.

    1. 레이어 높이 (Layer Height): 출력 품질 vs 속도

    • 설명: 출력물의 한 층(Layer)의 두께를 의미합니다. 이 값이 낮을수록 층이 얇아져서 출력물의 표면이 매끄러워지고 디테일이 살아납니다. 반대로 높으면 출력 속도가 빨라지지만, 층이 눈에 띄게 보여 거칠어져요.
    • 제가 쓰는 팁:
      • 정밀한 출력물: 0.1mm ~ 0.15mm (출력 시간이 길어집니다.)
      • 일반적인 출력물: 0.2mm (가장 많이 사용합니다.)
      • 빠른 출력물/시제품: 0.25mm ~ 0.3mm (품질보다는 속도에 중점을 둘 때)

    2. 벽 두께 (Wall Thickness) & 탑/바텀 레이어 (Top/Bottom Layers): 출력물 강도

    • 설명:
      • Wall Thickness (벽 두께): 출력물 외벽의 두께를 결정합니다. 노즐 직경의 배수로 설정하는 것이 일반적이거든요. (예: 0.4mm 노즐 기준, 0.8mm 또는 1.2mm) 두꺼울수록 강도가 강해집니다.
      • Top/Bottom Layers (탑/바텀 레이어): 출력물의 상단과 하단이 몇 층으로 채워질지를 결정합니다. 이 값이 너무 낮으면 상단이 비어 보이거나 구멍이 생길 수 있어요.
    • 제가 쓰는 팁:
      • Wall Line Count (벽 라인 수)를 2~3개 정도로 설정하고, 노즐 직경에 맞춰 Wall Thickness를 조절합니다.
      • Top/Bottom Layers는 보통 4~5개 정도로 설정하면 웬만한 출력물은 깔끔하게 나와요.

    3. 채움 밀도 (Infill Density) & 패턴 (Pattern): 내부 채움

    • 설명: 출력물 내부를 채우는 정도와 방식을 결정합니다. Infill Density (채움 밀도)는 퍼센트(%)로 설정하며, 높을수록 내부가 촘촘해져 강도가 강해지지만, 재료 소모와 출력 시간이 늘어나죠. Infill Pattern (채움 패턴)은 내부를 채우는 모양을 의미하며, 종류에 따라 강도, 유연성, 출력 시간이 달라집니다.
    • 제가 쓰는 팁:
      • 시제품/장식용: 10~15% (재료 절약, 빠른 출력)
      • 일반적인 용도: 20~25% (적당한 강도와 출력 시간)
      • 높은 강도 요구: 40% 이상 (기능성 부품 등)
      • 패턴: Cubic (큐빅)이나 Gyroid (자이로이드)가 강도도 좋고 안정적이라 자주 사용합니다. Lines (라인)는 빠르지만 강도가 약하거든요.

    4. 출력 속도 (Print Speed): 품질과 시간의 트레이드오프

    • 설명: 노즐이 움직이며 필라멘트를 압출하는 속도입니다. 빠를수록 출력 시간이 줄어들지만, 품질 저하(고스팅, 진동으로 인한 오차)나 압출 불량의 위험이 커져요.
    • 제가 쓰는 팁:
      • 일반적인 출력: 50mm/s ~ 60mm/s
      • 고품질 출력: 30mm/s ~ 40mm/s (인내심이 필요합니다. ㅎㅎ)
      • 벽(Wall)이나 상단/하단(Top/Bottom) 레이어는 메인 출력 속도보다 조금 느리게 (예: 25~30mm/s) 설정하면 표면 품질을 높일 수 있어요. Cura에는 Outer Wall Speed (외부 벽 속도) 같은 세부 설정이 있으니 활용해 보세요.

    5. 서포트 (Supports): 오버행 구조물 지지

    • 설명: 출력물에 공중에 떠 있는 부분(Overhang, 오버행)이 있을 때, 이 부분을 지지해주기 위해 임시로 출력되는 구조물입니다. 없으면 필라멘트가 중력에 의해 처지거나 무너져요.
    • 제가 쓰는 팁:
      • Generate Support (서포트 생성)를 활성화하고, Support Overhang Angle (서포트 오버행 각도)를 45도 ~ 60도 사이로 설정합니다. 이 각도보다 가파른 경사에는 서포트가 생성되거든요.
      • Support Placement (서포트 배치)는 Everywhere (모든 곳)보다는 Touching Buildplate (빌드플레이트와 닿는 곳만)를 먼저 시도하는 것이 제거하기 편합니다.
      • 제거가 어려운 경우가 많으니, Support Density (서포트 밀도)는 10~15% 정도로 낮게 설정하고, Support Z Distance (서포트 Z 거리)를 노즐 직경의 배수(예: 0.2mm, 0.28mm)로 조절하여 제거 용이성을 높여보세요. 이 부분에서 삽질을 정말 많이 했었거든요.

    6. 베드 접착 (Build Plate Adhesion): 출력물 안착

    • 설명: 출력물이 빌드 플레이트(Build Plate, 프린터 베드)에 잘 달라붙도록 돕는 기능입니다. 출력 초기에 베드에서 떨어지는 문제(Warping, 워핑)를 방지하죠.
    • 제가 쓰는 팁:
      • Brim (브림): 출력물 바닥 주변에 얇고 넓게 층을 만들어 접착 면적을 넓힙니다. 제거가 쉽고 효과가 좋아서 제일 많이 써요!
      • Skirt (스커트): 출력물 주변에 몇 바퀴 선을 그어 노즐 프라임(Prime, 예열 및 필라멘트 채우기)을 돕습니다. 접착에는 직접적인 영향이 적어요.
      • Raft (래프트): 출력물 바닥에 두꺼운 뗏목 형태의 층을 만듭니다. 접착력이 매우 강하지만, 제거가 어렵고 바닥면 품질이 좋지 않을 수 있어요. 워핑이 정말 심할 때만 사용합니다.

    7. 온도 (Temperature) & 리트랙션 (Retraction): 스트링잉 방지

    • 설명:
      • Printing Temperature (출력 온도): 노즐 온도(Extruder Temperature)와 베드 온도(Build Plate Temperature)를 설정합니다. 사용하는 필라멘트(PLA, ABS, PETG 등)에 따라 적정 온도가 다르거든요. 필라멘트 제조사 권장 온도를 따르세요.
      • Retraction (리트랙션): 노즐이 이동할 때, 필라멘트를 살짝 뒤로 당겨서 노즐 끝에서 필라멘트가 새어 나오는 것을 방지하는 기능입니다. 스트링잉(Stringing, 거미줄 현상)과 블로빙(Blobling, 점액처럼 뭉치는 현상)을 줄이는 데 핵심적인 역할을 하거든요.
    • 제가 쓰는 팁:
      • PLA 필라멘트 기준: 노즐 온도 190~210°C, 베드 온도 50~60°C.
      • Retraction Distance (리트랙션 거리): 4~6mm (보우덴(Bowden) 방식 프린터), 0.5~1.5mm (다이렉트 드라이브(Direct Drive) 방식 프린터)
      • Retraction Speed (리트랙션 속도): 25~45mm/s
      • 이 설정은 프린터와 필라멘트에 따라 정말 천차만별이거든요. Temperature Tower (온도 타워)나 Retraction Test (리트랙션 테스트) 모델을 출력해보면서 최적값을 찾는 것이 중요해요. 저도 수없이 테스트하며 최적값을 찾아냈습니다. 🧪

    ⚠️ 삽질 경험담과 트러블슈팅 팁

    제가 13년차 인프라 엔지니어지만, 3D 프린팅 분야에서는 저도 초보와 다름없었죠. 수많은 삽질을 통해 얻은 몇 가지 꿀팁을 공유합니다.

    1. 출력물이 베드에서 떨어져요 (Warping)!
      • 원인: 베드 온도가 너무 낮거나, 첫 레이어(First Layer)가 제대로 안착되지 않았을 때예요.
      • 해결:
        • 베드 온도를 5~10°C 정도 높여보세요.
        • Brim (브림) 기능을 사용해 접착 면적을 넓혀보세요.
        • 베드 레벨링(Bed Leveling)을 다시 확인하고, 노즐과 베드 간의 간격이 너무 멀지 않은지 확인하세요. 종이 한 장이 겨우 들어갈 정도가 적당합니다.
        • 저는 베드에 헤어스프레이나 딱풀을 발라서 접착력을 높이기도 합니다. 이거 진짜 꿀팁이더라고요.
    2. 출력물에 거미줄이 생겨요 (Stringing)!
      • 원인: 노즐 온도가 너무 높거나, 리트랙션 설정이 부족할 때예요.
      • 해결:
        • 노즐 온도를 5°C 단위로 낮춰가며 테스트해보세요.
        • Retraction Distance (리트랙션 거리)를 0.5~1mm 단위로 늘려보세요.
        • Retraction Speed (리트랙션 속도)를 높여보세요.
        • 필라멘트가 습기를 먹으면 스트링잉이 심해지니, 제습 보관도 중요합니다.
    3. 레이어가 제대로 쌓이지 않고 분리돼요 (Layer Separation)!
      • 원인: 노즐 온도가 너무 낮거나, 냉각팬(Cooling Fan) 설정이 너무 강할 때예요.
      • 해결:
        • 노즐 온도를 5~10°C 정도 높여보세요.
        • Cooling Fan Speed (냉각팬 속도)를 줄여보세요. 특히 첫 레이어 몇 개는 냉각팬을 끄는 것이 좋습니다.
        • 프린팅 환경의 온도가 너무 낮으면 문제가 발생할 수 있어요. 챔버(Enclosure)를 사용하거나, 주변 온도를 따뜻하게 유지하는 것도 도움이 됩니다.

    이 외에도 수많은 문제가 발생할 수 있지만, 대부분은 위에서 설명한 핵심 설정들을 조금씩 조절하면서 해결할 수 있을 겁니다. 포기하지 마세요! 멘토인 제가 항상 응원합니다. 💪

    설정 검증 및 첫 출력! 🎉

    이제 여러분이 열심히 설정한 값들이 잘 작동하는지 확인해볼 시간입니다. 복잡한 모델보다는 간단한 테스트 모델을 출력해보는 것을 추천해요.

    1. 테스트 모델 불러오기: Thingiverse 같은 사이트에서 Calibration Cube (캘리브레이션 큐브)나 Benchy (벤치) 같은 작은 테스트 모델을 다운로드하여 Cura로 불러옵니다.
    2. 슬라이싱 (Slice): Cura 우측 하단의 Slice (슬라이스) 버튼을 클릭하여 G-code를 생성합니다.
    3. 미리보기 (Preview): Preview (미리보기) 탭으로 이동하여 출력 경로와 서포트 생성 여부 등을 시각적으로 확인해요. 여기서 문제가 없어 보이면 성공입니다.
    4. 출력 시작: 생성된 G-code 파일을 SD 카드에 저장하거나, USB 케이블/Wi-Fi를 통해 프린터로 전송하여 출력을 시작합니다.

    드디어 제가 설정한 값으로 뽑아낸 벤치마크 큐브입니다. 깔끔하게 잘 나왔죠? 이런 작은 성공이 다음 출력에 대한 동기를 부여합니다.

    마무리하며: 꾸준한 실험과 학습이 중요합니다

    오늘은 Cura 5.7 슬라이서 설정, 특히 초보자분들이 성공적인 3D 프린팅을 시작하는 데 필요한 핵심 설정들을 제 경험을 바탕으로 자세히 알아봤습니다. 3D프린터 슬라이서는 단순히 모델을 G-code로 바꾸는 도구가 아니라, 출력물의 품질을 좌우하는 가장 중요한 요소 중 하나라는 것을 다시 한번 강조하고 싶네요.

    제가 알려드린 팁들은 기본적인 가이드라인이며, 여러분의 프린터 모델, 사용하는 필라멘트 종류, 심지어는 출력 환경(온도, 습도)에 따라 최적의 설정값은 달라질 수 있습니다. 마치 서버 환경 설정과 비슷하죠? 😅 끊임없이 실험하고, 작은 실패를 통해 배우는 과정이 3D 프린팅의 진짜 재미라고 생각합니다.

    이 글이 여러분의 3D 프린팅 삽질 여정을 조금이나마 줄여주고, 즐거운 취미 생활을 이어가는 데 도움이 되었으면 좋겠습니다. 다음번에는 더 재미있는 홈랩 이야기나 서버실 경험담으로 찾아뵐게요! 그때까지 즐거운 출력 되세요! 🎉

    오늘 다룬 핵심 설정들을 한눈에 볼 수 있도록 정리해봤습니다. 이 표를 참고해서 여러분만의 최적 설정을 찾아보세요!

  • [3D Printer] Klipper 펌웨어 설치 및 고급 설정: 출력 품질 극대화 완벽 가이드

    마블링 같은 출력물… 그냥 두고 볼 수 없었습니다

    3D 프린터를 처음 샀을 때 기억 나시나요? 저는 당시 Marlin 펌웨어로 세팅하고 그냥 쓰고 있었는데, 출력물 표면에 물결 무늬(ringing 또는 ghosting이라고 부르는 현상)가 계속 생기는 거예요. 파라미터 이것저것 건드려봤는데 영 개선이 안 되더라고요. 그러다 동료 엔지니어한테서 처음 Klipper 펌웨어 얘기를 들었습니다. “그거 쓰면 진짜 달라져” 하는 말에 반신반의하면서 설치해봤는데… 솔직히 그 이후로 Marlin으로 돌아갈 생각이 전혀 없어요.

    이 글에서는 Klipper 설치부터 고급 설정까지, 제가 직접 삽질하면서 쌓은 경험을 최대한 실용적으로 풀어드리려 합니다. 3D프린터 펌웨어를 처음 바꿔보시는 분도, 이미 Klipper를 쓰고 있지만 최적화가 잘 안 되는 분도 도움이 되셨으면 좋겠네요.

    ▲ Klipper의 핵심 구조 — 라즈베리 파이(호스트)와 마이크로컨트롤러(MCU)가 역할을 나눠서 처리하는 방식입니다.

    Klipper 펌웨어란 무엇인가요? — 쉽게 말해서

    Klipper는 3D 프린터의 제어 로직을 마이크로컨트롤러(MCU) 단독으로 처리하지 않고, 라즈베리 파이(Raspberry Pi) 같은 싱글보드 컴퓨터와 역할을 분리해서 처리하는 오픈소스 3D프린터 펌웨어입니다.

    쉽게 말해서, 기존 Marlin 같은 펌웨어는 프린터 보드(예: SKR, RAMPS) 안에서 모든 계산을 혼자 다 처리했어요. 근데 그 보드들 성능이 그렇게 좋진 않잖아요. Klipper는 복잡한 수학 계산(G-code 파싱, 가감속 계산 등)을 라즈베리 파이에서 처리하고, 보드는 그냥 “이 모터를 이 타이밍에 이만큼 돌려”라는 저수준 명령만 받아서 실행하는 구조거든요.

    항목 Marlin 펌웨어 Klipper 펌웨어
    연산 위치 프린터 보드(MCU) 단독 라즈베리 파이 + MCU 분산
    설정 변경 펌웨어 재컴파일 필요 텍스트 파일 수정 후 재시작
    입력 성형(Input Shaping) 제한적 가속도계 연동 자동 보정 가능
    압력 선행(Pressure Advance) Linear Advance (설정 복잡) Pressure Advance (직관적)
    인터페이스 LCD 또는 별도 호스트 Mainsail/Fluidd 웹 UI
    다중 MCU 지원 어려움 기본 지원

    이 구조 덕분에 설정을 바꿀 때마다 펌웨어를 새로 컴파일해서 플래시할 필요가 없어요. printer.cfg 파일만 수정하고 Klipper를 재시작하면 끝입니다. 처음에 이게 얼마나 편한지 실감 못 했는데, 써보고 나서 “아 이래서 다들 Klipper 쓰는구나” 했습니다.

    준비물 및 환경 구성

    Klipper 설치 전에 필요한 것들을 정리해볼게요. 제가 쓰는 환경 기준으로 설명하겠지만, 대부분의 환경에 적용 가능합니다.

    하드웨어 요구사항

    • 싱글보드 컴퓨터: 라즈베리 파이 3B+ 이상 권장 (저는 Pi 4 2GB 사용)
    • 프린터 보드: SKR Mini E3, BTT Octopus, Creality 보드 등 대부분 지원
    • MicroSD 카드: 라즈베리 파이용 8GB 이상
    • USB 케이블: 라즈베리 파이 ↔ 프린터 보드 연결용 (데이터 전송 지원)

    소프트웨어 스택

    • Klipper: 실제 펌웨어 코어
    • Moonraker: Klipper와 웹 UI를 연결하는 API 서버
    • Mainsail 또는 Fluidd: 웹 기반 인터페이스 (저는 Mainsail 사용)
    • KIAUH(Klipper Installation And Update Helper): 설치 자동화 스크립트

    Klipper 설치 단계별 가이드

    자, 이제 본격적으로 Klipper 설치 과정입니다. 처음에는 좀 복잡해 보이는데, 한 번만 하고 나면 별거 아니에요. 차근차근 따라오세요.

    1단계: 라즈베리 파이 OS 설치

    라즈베리 파이 이미저(Raspberry Pi Imager)로 Raspberry Pi OS Lite (64-bit)를 설치합니다. GUI 없는 Lite 버전으로 충분하고, 오히려 더 가볍게 돌아가요.

    이미저에서 고급 설정으로 SSH 활성화와 Wi-Fi 설정까지 미리 해두면 나중에 편합니다. 저는 여기서 SSH 설정 안 해두고 나중에 모니터 연결해서 했던 기억이… 🤦

    2단계: SSH 접속 및 초기 업데이트

    # 라즈베리 파이에 SSH로 접속
    ssh pi@[라즈베리파이_IP주소]
    
    # 패키지 업데이트
    sudo apt update && sudo apt upgrade -y

    3단계: KIAUH로 Klipper, Moonraker, Mainsail 설치

    # KIAUH 다운로드
    cd ~
    git clone https://github.com/dw-0/kiauh.git
    
    # KIAUH 실행
    ./kiauh/kiauh.sh

    KIAUH 메뉴가 뜨면 순서대로 설치합니다:

    1. 1번 메뉴 (Install) 선택
    2. Klipper 설치
    3. Moonraker 설치
    4. Mainsail 또는 Fluidd 설치 (둘 중 하나)

    설치 중에 Python 가상환경 세팅이나 의존성 설치가 자동으로 이루어져요. 예전에는 이걸 수동으로 다 해야 했는데, KIAUH 덕분에 진짜 편해졌더라고요.

    4단계: 프린터 보드용 Klipper MCU 펌웨어 컴파일 및 플래시

    이 단계가 핵심입니다. 프린터 보드에 올릴 Klipper MCU 펌웨어를 라즈베리 파이에서 컴파일해야 해요.

    # Klipper 디렉토리로 이동
    cd ~/klipper
    
    # 메뉴 기반 설정 도구 실행
    make menuconfig

    여기서 본인 보드에 맞는 설정을 해줘야 합니다. 예를 들어 BTT SKR Mini E3 V3 기준으로는:

    • Micro-controller Architecture: STMicroelectronics STM32
    • Processor model: STM32G0B1
    • Bootloader offset: 8KiB bootloader
    • Communication interface: USB (on PA11/PA12)

    ⚠️ 주의: 보드마다 설정이 달라요. Klipper 공식 문서나 보드 제조사 GitHub에서 본인 보드에 맞는 설정을 반드시 확인하세요. 잘못된 설정으로 플래시하면 보드가 벽돌이 될 수 있거든요. 저도 한 번 당했는데, 다행히 DFU 모드로 복구했어요.

    # 설정 완료 후 컴파일
    make clean
    make -j4
    
    # 컴파일 결과물 위치: ~/klipper/out/klipper.bin

    컴파일된 klipper.bin을 SD카드에 복사해서 보드에 플래시하거나, USB DFU 방식으로 직접 플래시합니다. 방법은 보드마다 다르니 반드시 확인이 필요해요.

    ▲ Mainsail 웹 인터페이스에서 printer.cfg를 직접 편집하고 저장하면 바로 적용됩니다 — 펌웨어 재플래시 없이요.

    5단계: printer.cfg 기본 설정

    Klipper의 핵심 설정 파일인 printer.cfg를 작성합니다. 이게 Marlin에서 Configuration.h 역할을 한다고 보시면 돼요. 근데 훨씬 읽기 쉽고 수정하기 편합니다.

    # printer.cfg 기본 예시 (Cartesian 방식 프린터)
    
    [mcu]
    # 보드가 연결된 시리얼 포트 확인: ls /dev/serial/by-id/
    serial: /dev/serial/by-id/usb-Klipper_stm32g0b1xx_XXXXXXXXXXXXXXXX-if00
    
    [printer]
    kinematics: cartesian
    max_velocity: 300
    max_accel: 3000
    max_z_velocity: 5
    max_z_accel: 100
    
    [stepper_x]
    step_pin: PB13
    dir_pin: !PB12
    enable_pin: !PB14
    microsteps: 16
    rotation_distance: 40
    endstop_pin: ^PC0
    position_endstop: 0
    position_max: 235
    homing_speed: 50
    
    [stepper_y]
    step_pin: PB10
    dir_pin: !PB2
    enable_pin: !PB11
    microsteps: 16
    rotation_distance: 40
    endstop_pin: ^PC1
    position_endstop: 0
    position_max: 235
    homing_speed: 50
    
    [stepper_z]
    step_pin: PB0
    dir_pin: PC5
    enable_pin: !PB1
    microsteps: 16
    rotation_distance: 8
    endstop_pin: probe:z_virtual_endstop
    position_min: -5
    position_max: 250
    
    [extruder]
    step_pin: PB3
    dir_pin: !PB4
    enable_pin: !PD1
    microsteps: 16
    rotation_distance: 33.500
    nozzle_diameter: 0.400
    filament_diameter: 1.750
    heater_pin: PC8
    sensor_type: EPCOS 100K B57560G104F
    sensor_pin: PA0
    min_temp: 0
    max_temp: 250
    
    [heater_bed]
    heater_pin: PC9
    sensor_type: ATC Semitec 104GT-2
    sensor_pin: PC4
    min_temp: 0
    max_temp: 130

    처음에는 이게 양이 많아 보이는데, 사실 각 섹션이 뭘 의미하는지 한 번만 파악하면 Marlin보다 오히려 직관적이에요.

    Klipper 고급 설정 — 출력 품질 극대화

    자, 이제 진짜 Klipper의 진가를 발휘하는 고급 기능들입니다. 이게 제가 Klipper로 넘어온 가장 큰 이유예요.

    Pressure Advance (압력 선행 보정)

    Pressure Advance는 익스트루더가 필라멘트를 밀 때 노즐 내부에 생기는 압력 지연을 보정하는 기능입니다. 쉽게 말해, 코너 부분에서 필라멘트가 뭉치거나 늘어지는 현상을 잡아주는 거예요.

    [extruder]
    # 위 extruder 섹션에 추가
    pressure_advance: 0.05
    pressure_advance_smooth_time: 0.040

    정확한 값은 캘리브레이션 타워를 출력해서 찾아야 해요. Klipper 공식 문서에 캘리브레이션 방법이 잘 나와 있습니다. 저는 이거 세팅하고 나서 코너 품질이 확실히 달라졌더라고요. 특히 벤치마크 모델 출력할 때 차이가 눈에 띄었습니다.

    Input Shaping (입력 성형) — 링잉 제거의 핵심

    이게 Klipper의 킬러 기능이라고 생각합니다. Input Shaping(입력 성형)은 프린터 프레임이 진동할 때 생기는 링잉(ringing, 고스팅) 현상을 소프트웨어적으로 보정하는 기술이에요.

    가속도계(accelerometer)를 연결하면 자동으로 프린터의 공진 주파수를 측정해서 최적의 보정 필터를 적용해줍니다. 저는 ADXL345 모듈을 라즈베리 파이 SPI 핀에 연결해서 사용했어요.

    # ADXL345 가속도계 설정
    [adxl345]
    cs_pin: rpi:None
    spi_bus: spidev0.0
    
    [resonance_tester]
    accel_chip: adxl345
    probe_points:
        117.5, 117.5, 20
    # SSH에서 공진 주파수 측정 실행
    # Mainsail 콘솔 또는 SSH에서:
    SHAPER_CALIBRATE AXIS=X
    SHAPER_CALIBRATE AXIS=Y

    측정 결과를 바탕으로 Klipper가 자동으로 추천 필터를 알려줘요. 그걸 printer.cfg에 적용하면 됩니다:

    [input_shaper]
    shaper_freq_x: 45.8
    shaper_freq_y: 38.2
    shaper_type: mzv

    💡 팁: 가속도계가 없어도 수동으로 캘리브레이션 타워를 출력해서 주파수를 추정할 수 있어요. 다만 ADXL345 같은 저렴한 모듈을 하나 구해두면 훨씬 정확하고 빠르게 캘리브레이션할 수 있습니다.

    Bed Mesh Leveling (베드 메쉬 레벨링)

    베드가 완벽하게 평평한 경우는 거의 없죠. Bed Mesh는 베드 여러 포인트를 측정해서 높이 편차를 보정 맵으로 만들어 출력 중에 실시간으로 Z축을 조정하는 기능입니다.

    [bed_mesh]
    speed: 120
    horizontal_move_z: 5
    mesh_min: 10, 10
    mesh_max: 225, 225
    probe_count: 5, 5
    algorithm: bicubic

    Macro(매크로) 활용 — 반복 작업 자동화

    Klipper의 매크로 기능도 정말 편리해요. 자주 쓰는 작업을 버튼 하나로 실행할 수 있게 만들 수 있거든요.

    # 출력 시작 매크로 예시
    [gcode_macro START_PRINT]
    gcode:
        {% set BED_TEMP = params.BED_TEMP|default(60)|float %}
        {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(190)|float %}
        M140 S{BED_TEMP}
        G28
        BED_MESH_CALIBRATE
        M109 S{EXTRUDER_TEMP}
        M190 S{BED_TEMP}
        G92 E0
        G1 X5 Y20 Z0.3 F5000
        G1 X5 Y200 E15 F1500
        G92 E0
    
    [gcode_macro END_PRINT]
    gcode:
        G91
        G1 E-5 F3000
        G1 Z10 F3000
        G90
        G1 X0 Y220 F5000
        M104 S0
        M140 S0
        M84

    슬라이서(Slicer)에서 시작/종료 G-code를 START_PRINT BED_TEMP={material_bed_temperature} EXTRUDER_TEMP={material_print_temperature}처럼 설정하면, 슬라이서에서 설정한 온도가 자동으로 매크로에 전달돼요. 이거 처음 알았을 때 진짜 편하다 싶었습니다.

    ▲ Input Shaping 적용 전후 비교 — 공진 주파수 측정 그래프와 실제 출력물의 링잉(ghosting) 현상 개선 결과

    ⚠️ 트러블슈팅 — 제가 겪은 삽질들

    설치하면서 자주 만나는 문제들을 정리해봤어요. 저도 다 겪어봤던 것들이라 공감하실 분들 많을 거예요.

    문제 1: MCU 연결이 안 됨 (Unable to connect)

    가장 흔한 문제입니다. printer.cfg의 시리얼 포트가 맞는지 확인하세요.

    # 연결된 USB 장치 시리얼 ID 확인
    ls /dev/serial/by-id/
    
    # 출력 예시:
    # usb-Klipper_stm32g0b1xx_XXXXXXXXXXXXXXXX-if00

    이 경로를 그대로 printer.cfg의 [mcu] 섹션 serial:에 넣으면 됩니다. USB 케이블 불량인 경우도 꽤 있어요. 데이터 전송이 되는 케이블인지 확인해보세요.

    문제 2: Klipper 서비스 시작 후 에러 로그

    # Klipper 로그 실시간 확인
    tail -f ~/printer_data/logs/klippy.log
    
    # 서비스 상태 확인
    sudo systemctl status klipper

    대부분의 에러는 printer.cfg 설정 오류거든요. 로그를 보면 어느 섹션, 어느 파라미터에서 문제가 났는지 꽤 친절하게 알려줍니다.

    문제 3: 베드 레벨링 프로브 동작 안 함

    BLTouch나 CR Touch 같은 프로브를 쓰는 경우, 핀 설정이 까다로울 수 있어요. 특히 probe_with_touch_mode 옵션을 켜야 하는 경우도 있거든요. 저는 처음에 이거 몰라서 한참 헤맸습니다.

    [bltouch]
    sensor_pin: ^PC14
    control_pin: PA1
    pin_up_touch_mode_reports_triggered: False
    probe_with_touch_mode: True
    x_offset: -44
    y_offset: -10
    z_offset: 2.350

    문제 4: 압출량(Extruder) 캘리브레이션

    rotation_distance 값이 맞지 않으면 압출량이 부정확해집니다. 마크 테스트(Mark Test)로 캘리브레이션해야 해요.

    # 100mm 압출 명령 (Mainsail 콘솔에서)
    G91
    G1 E100 F100
    
    # 실제 압출된 길이를 측정하고 아래 공식으로 계산
    # 새 rotation_distance = 기존값 × (요청량 / 실제압출량)
    # 예: 33.5 × (100 / 98.5) = 34.01

    ✅ 결과 확인 — 이렇게 달라졌습니다

    Klipper 설정을 완료하고 나서 체감한 변화를 솔직하게 공유할게요.

    • 🎉 링잉(Ringing) 현상: Input Shaping 적용 후 거의 사라졌습니다. 코너 부분이 훨씬 깔끔해졌어요.
    • 🎉 코너 품질: Pressure Advance 세팅 후 코너 뭉침/늘어짐이 확실히 개선됐어요.
    • 🎉 출력 속도: Input Shaping 덕분에 고속 출력에서도 품질 저하가 줄어들었습니다. 가속도를 더 높게 설정할 수 있게 됐어요.
    • 🎉 운용 편의성: 설정 변경이 너무 편해요. 파라미터 하나 바꾸는 데 펌웨어 재컴파일이 필요 없으니까요.
    • 🎉 웹 인터페이스: Mainsail에서 실시간 모니터링, 파일 관리, 매크로 실행이 다 돼서 편합니다.

    물론 초기 세팅 난이도가 Marlin보다 높은 건 사실이에요. 라즈베리 파이 세팅, 리눅스 기본 조작, 각 보드별 펌웨어 컴파일 설정 등 진입 장벽이 있습니다. 근데 한 번만 넘어서면, 그 이후는 오히려 훨씬 편하거든요.

    ▲ Mainsail 대시보드 — 온도 그래프, 출력 진행률, 매크로 버튼 등을 웹 브라우저에서 실시간으로 모니터링할 수 있습니다.

    자주 묻는 질문 (FAQ)

    Q. Klipper가 모든 프린터 보드와 호환되나요?

    대부분의 주요 보드를 지원합니다. Klipper 공식 문서의 Config Reference 페이지에서 지원 MCU 목록을 확인할 수 있어요. STM32, AVR, RP2040 계열은 대부분 지원됩니다.

    Q. 라즈베리 파이 없이 Klipper를 쓸 수 있나요?

    네, 가능합니다. 라즈베리 파이 대신 오렌지 파이(Orange Pi), 일반 리눅스 PC도 호스트로 사용할 수 있어요.

    Q. Klipper 설치 후 기존 Marlin으로 되돌릴 수 있나요?

    네, 가능합니다. 프린터 보드에 Marlin 펌웨어를 다시 플래시하면 됩니다. 라즈베리 파이 쪽 Klipper 설정은 그냥 두거나 삭제하면 돼요.

    Q. Input Shaping에 가속도계가 반드시 필요한가요?

    필수는 아닙니다. 가속도계 없이 캘리브레이션 프린트로 수동으로 주파수를 추정할 수 있어요. 다만 ADXL345 같은 저렴한 모듈을 하나 구해두면 훨씬 정확하고 빠르게 캘리브레이션할 수 있습니다.

    마무리 — 그래서 Klipper, 써야 할까요?

    13년간 서버와 인프라를 다뤄온 입장에서, Klipper는 3D 프린터를 “설정 파일로 관리하는 시스템”으로 바꿔준 펌웨어라고 생각합니다. 코드로 인프라를 관리하는 IaC(Infrastructure as Code) 철학이랑 비슷한 느낌이랄까요.

    처음 설치가 좀 복잡한 건 사실입니다. 근데 그 이후로는 정말 편해요. 설정 하나 바꿀 때마다 Arduino IDE 켜고 컴파일하고 플래시하는 과정이 없어지는 것만으로도 충분히 투자할 가치가 있다고 생각합니다.

    처음엔 그냥 출력 품질 개선 목적으로 시작했는데, 이제는 홈랩 서버에서 Moonraker API로 자동화 스크립트도 돌리고, 출력 완료 시 알림도 보내고… 점점 재미있어지고 있어요. 혹시 이런 자동화 연동에 관심 있으신 분은 다음 글에서 Moonraker API 활용 자동화 방법도 다룰 예정이니 기대해주세요.

    질문이나 본인만의 Klipper 세팅 팁이 있으시면 댓글로 공유해주세요. 저도 아직 배우는 중이라, 다른 분들 경험도 궁금하거든요. 😊

  • [3D Printer] 3D 프린터 출력 실패 트러블슈팅: 층 분리·워핑·압출 불량 완벽 해결 가이드

    [3D Printer] 3D 프린터 출력 실패 트러블슈팅: 층 분리·워핑·압출 불량 완벽 해결 가이드

    3D 프린터 출력 실패, 저도 처음엔 정말 막막했습니다

    홈랩을 운영하면서 3D 프린터를 도입한 게 벌써 몇 년 전인데요. 처음에 프린터 세팅하고 첫 출력 버튼 눌렀을 때의 설렘… 그리고 5시간 뒤에 베드에 붙어있는 스파게티 면발 같은 결과물을 보며 멍해졌던 기억이 아직도 생생합니다 ㅎㅎ.

    3D 프린터 출력 실패는 초보자뿐만 아니라 어느 정도 경험이 쌓인 분들도 자주 마주치는 문제예요. 특히 층 분리(Layer Separation), 워핑(Warping, 출력물 뒤틀림), 압출 불량(Under/Over Extrusion) 이 세 가지는 제가 지금도 가끔 겪는 대표적인 출력 실패 유형들이거든요. 오늘은 13년간 온갖 장비를 만지면서 쌓아온 삽질 경험을 바탕으로, 각 문제의 원인과 해결 방법을 최대한 실용적으로 정리해드리려 합니다.

    혹시 지금도 출력 실패로 필라멘트만 낭비하고 계신가요? 이 글이 분명히 도움이 될 거예요.

    3D 프린터 출력 실패 유형 개요 — 층 분리, 워핑, 압출 불량 비교 다이어그램

    ▲ 3D 프린터 출력 실패의 대표적인 세 가지 유형 — 층 분리, 워핑, 압출 불량의 발생 위치와 외형적 특징을 한눈에 비교한 개요도


    3D 프린터 출력 실패 유형 한눈에 비교

    본격적으로 각 문제를 파고들기 전에, 세 가지 실패 유형이 어떻게 다른지 먼저 정리해볼게요. 증상만 잘 파악해도 원인 찾는 시간이 확 줄어들거든요.

    실패 유형 주요 증상 주요 원인 영향 받는 소재
    층 분리 (Layer Separation) 출력물이 중간에 갈라지거나 층이 떨어짐 온도 부족, 출력 속도 과다, 레이어 높이 부적절 PLA, PETG, ABS 등 전반
    워핑 (Warping) 출력물 가장자리가 베드에서 들뜨고 휘어짐 베드 온도, 접착력 부족, 냉각 과다 ABS, ASA, 대형 PLA 출력물
    압출 불량 (Extrusion Issue) 필라멘트가 부족하거나 과도하게 나옴, 구멍/흘러내림 익스트루더 설정, 노즐 막힘, 필라멘트 직경 편차 전 소재

    층 분리(Layer Separation) — 출력물이 중간에 쪼개지는 현상

    이게 왜 생기냐면요

    층 분리는 말 그대로 쌓아 올린 레이어(Layer, 층)가 서로 제대로 접합되지 않아서 갈라지는 현상이에요. 제가 처음 이걸 겪었을 때는 출력이 다 끝난 것처럼 보였는데, 손으로 살짝 힘을 주니까 뚝 하고 두 조각이 나더라고요. 그때 충격이란…

    주요 원인은 크게 세 가지입니다.

    • 노즐 온도(Nozzle Temperature)가 낮을 때: 필라멘트가 충분히 녹지 않아 이전 레이어와 결합력이 약해집니다.
    • 출력 속도(Print Speed)가 너무 빠를 때: 필라멘트가 레이어에 눌러 붙을 시간이 부족해요.
    • 레이어 높이(Layer Height)가 너무 클 때: 노즐 직경 대비 레이어 높이가 과도하면 층간 결합이 불충분해집니다.

    ✅ 3D 프린터 층 분리 해결 방법 단계별 정리

    1. 노즐 온도를 5~10°C 올려보세요. PLA 기준으로 보통 190~220°C 사이에서 최적값을 찾아야 하는데, 같은 PLA라도 브랜드마다 권장 온도가 다르거든요. 필라멘트 제조사 권장 범위 안에서 조금씩 올려가며 테스트해보는 게 가장 확실합니다.
    2. 출력 속도를 낮춰보세요. 일반적으로 3D 프린터 층 분리가 발생하면 속도를 기존 대비 20~30% 정도 줄여서 테스트해보는 걸 권장합니다.
    3. 레이어 높이를 노즐 직경의 75% 이하로 설정하세요. 예를 들어 0.4mm 노즐이라면 레이어 높이를 0.3mm 이하로 잡는 게 안전해요.
    4. 필라멘트 상태를 확인하세요. 습기를 많이 먹은 필라멘트는 출력 중 기포가 생겨서 층 결합을 방해합니다. 드라이박스나 건조기로 건조 후 재출력해보세요.

    💡 팁: 저는 새 필라멘트 롤을 열면 항상 소형 테스트 출력물(보통 20mm 정육면체)을 먼저 뽑아봅니다. 이 과정에서 온도와 속도 최적값을 찾아두면 나중에 큰 출력물 날릴 일이 확 줄어들어요.


    워핑(Warping) — 출력물이 베드에서 들뜨고 휘어지는 현상

    인프라 엔지니어의 워핑 트라우마

    솔직히 말씀드리면, 워핑은 제가 가장 많이 겪은 3D 프린터 문제예요. 특히 ABS(Acrylonitrile Butadiene Styrene, 아크릴로니트릴 부타디엔 스티렌) 소재를 처음 써봤을 때… 출력 중간에 “틱” 소리가 나면서 베드에서 출력물 모서리가 들뜨는 걸 보는 느낌은 정말 허탈합니다.

    워핑은 기본적으로 열수축(Thermal Contraction) 때문에 생깁니다. 뜨겁게 녹아서 쌓인 필라멘트가 식으면서 수축하는데, 이 수축 응력이 베드와의 접착력을 이기면 가장자리가 들뜨는 거예요.

    워핑 발생 원리와 히팅 베드 및 인클로저를 활용한 워핑 방지 방법 비교 다이어그램

    ▲ 워핑 발생 원리(열수축으로 인한 베드 이탈)와 히팅 베드, 인클로저 사용 시 효과를 비교한 단면 다이어그램

    ✅ 3D 프린터 워핑 해결 방법 — 우선순위 순으로

    1. 베드 온도(Bed Temperature)를 올리세요.

      • PLA: 50~65°C
      • PETG: 70~85°C
      • ABS: 100~110°C

      베드가 따뜻하게 유지되면 수축 속도가 느려져서 워핑이 줄어들어요.

    2. 베드 접착 보조제를 사용하세요. 글루스틱(Glue Stick), 헤어스프레이, PEI 시트 등을 활용하면 첫 레이어 접착력이 크게 올라갑니다. 저는 PEI(폴리에테르이미드) 스프링 스틸 시트로 바꾼 뒤로 ABS 워핑이 확연히 줄었어요.
    3. 첫 레이어 높이와 속도를 최적화하세요. 첫 레이어(First Layer)는 살짝 눌러서 베드에 잘 붙도록 레이어 높이를 조금 낮추고, 속도도 절반 정도로 줄여서 출력하는 게 좋습니다.
    4. 브림(Brim)을 추가하세요. 브림은 출력물 가장자리에 얇은 테두리를 추가해 베드 접착 면적을 넓혀주는 기능이에요. 슬라이서(Slicer) 소프트웨어에서 간단하게 설정할 수 있습니다.
    5. 인클로저(Enclosure, 밀폐 공간)를 활용하세요. ABS나 ASA 같은 고온 소재는 외부 냉기에 매우 민감합니다. 밀폐된 공간에서 출력하면 온도 편차가 줄어서 워핑이 크게 감소해요.

    ⚠️ 주의: 냉각 팬(Cooling Fan) 설정도 중요한데, ABS 출력 시에는 냉각 팬을 끄거나 최소화하는 게 워핑 방지에 도움이 됩니다. PLA는 반대로 냉각이 잘 돼야 오버행(Overhang, 돌출부)이 깔끔하게 나오니까 소재별로 다르게 접근해야 해요.


    압출 불량(Extrusion Issue) — 필라멘트가 제대로 안 나오거나 너무 많이 나오는 현상

    언더 익스트루전 vs 오버 익스트루전

    압출 불량은 크게 두 가지로 나뉩니다. 언더 익스트루전(Under Extrusion, 압출 부족)과 오버 익스트루전(Over Extrusion, 압출 과다)이에요. 둘 다 출력 품질을 망치지만, 원인과 해결법이 달라서 구분이 중요합니다.

    구분 증상 주요 원인
    언더 익스트루전 출력물 표면에 구멍/빈 공간, 레이어가 얇고 약함, 스트링 없이 끊김 노즐 막힘, 익스트루더 스텝 설정 오류, 필라멘트 직경 편차, 온도 부족
    오버 익스트루전 표면이 울퉁불퉁, 레이어 경계가 뭉툭, 치수 오차 익스트루션 배율(Flow Rate) 과다, 필라멘트 직경 설정 오류

    ✅ 언더 익스트루전 해결 방법

    1. 노즐 막힘(Clogged Nozzle)을 확인하세요.

      가장 흔한 원인이에요. 콜드 풀(Cold Pull) 방법으로 노즐을 청소할 수 있습니다.

      # 콜드 풀(Cold Pull) 절차 요약
      1. 노즐을 작동 온도까지 가열 (예: PLA → 200°C)
      2. 필라멘트를 수동으로 밀어 넣어 잔여물 배출
      3. 온도를 90°C 정도로 낮춤
      4. 필라멘트를 힘껏 당겨 빼기 (막힌 잔여물이 함께 딸려 나옴)
      5. 2~3회 반복
    2. 익스트루더 스텝(E-step) 캘리브레이션을 진행하세요. 익스트루더가 실제로 100mm 필라멘트를 보내라고 했을 때 정말 100mm를 보내는지 확인하는 과정이에요. 펌웨어 설정에서 E-step 값을 조정해 정확도를 높일 수 있습니다.
    3. 필라멘트 직경을 실측하세요. 캘리퍼스(Calipers)로 필라멘트 직경을 여러 지점에서 측정해서 슬라이서 설정값과 맞는지 확인하세요. 1.75mm 표기 제품이 실제로 1.65mm인 경우도 있거든요.

    ✅ 오버 익스트루전 해결 방법

    1. 플로우 레이트(Flow Rate, 유량 배율)를 낮추세요. 슬라이서에서 Flow Rate를 100%에서 95%, 90% 순으로 낮춰가며 테스트 큐브를 출력해보세요.
    2. 필라멘트 직경 설정을 재확인하세요. 실측값을 슬라이서에 정확히 입력해야 합니다.

    ▲ 언더 익스트루전(좌, 표면에 구멍과 빈 공간 발생)과 오버 익스트루전(우, 표면이 뭉툭하고 울퉁불퉁) 출력물 비교


    3D 프린터 출력 전 체크리스트 — 공통 점검 사항

    사실 위에서 다룬 세 가지 문제 모두 출력 전에 기본 점검만 잘 해도 발생 빈도가 크게 줄어요. 제가 출력 전에 항상 확인하는 체크리스트 공유해드릴게요.

    • ✅ 베드 레벨링(Bed Leveling): 베드가 수평으로 맞춰져 있는지 확인. ABL(Auto Bed Leveling, 자동 베드 레벨링) 기능이 있으면 주기적으로 실행.
    • ✅ 필라멘트 건조 상태: 습기 먹은 필라멘트는 출력 중 “딱딱” 소리와 함께 기포 발생. 드라이박스 보관 권장.
    • ✅ 노즐 상태: 노즐 주변에 탄화된 필라멘트 찌꺼기 없는지 확인. 출력 전 퍼지(Purge) 동작으로 잔여물 제거.
    • ✅ 슬라이서 설정 재확인: 소재, 필라멘트 직경, 노즐 직경이 정확히 입력돼 있는지 확인.
    • ✅ 첫 레이어 확인: 출력 시작 후 처음 1~2레이어는 반드시 눈으로 확인. 여기서 문제가 보이면 즉시 중단하고 조정하는 게 필라멘트 절약의 핵심이에요.
    # 3D 프린터 출력 전 간단 점검 순서 요약
    1. 베드 레벨링 확인 (ABL 실행 또는 수동 확인)
    2. 필라멘트 건조 상태 확인
    3. 노즐 온도 올리고 수동 퍼지 (잔여 필라멘트 5~10cm 배출)
    4. 슬라이서 설정값 최종 확인 (소재/직경/노즐 직경)
    5. 출력 시작 후 첫 레이어 육안 확인

    자주 묻는 질문 (FAQ)

    Q. PLA인데도 워핑이 심하게 생겨요. 왜 그럴까요?

    PLA는 워핑이 적은 편이지만, 출력물 크기가 크거나 베드 표면 상태가 좋지 않으면 생길 수 있어요. 베드 표면을 IPA(이소프로필 알코올)로 깨끗이 닦고, 베드 온도를 55~60°C로 설정한 뒤 브림을 추가해보세요. 대부분 해결됩니다.

    Q. 층 분리인지 압출 불량인지 구분이 어려워요.

    층 분리는 레이어가 물리적으로 분리되는 거고, 언더 익스트루전은 레이어 내부에 빈 공간이 생기는 차이가 있어요. 출력물 단면을 잘라보면 구분이 명확해집니다. 층 분리는 층과 층 사이가 깔끔하게 분리되고, 압출 불량은 레이어 내부에 구멍이 불규칙하게 생겨요.

    Q. 같은 설정인데 어떤 날은 잘 나오고 어떤 날은 실패해요.

    저도 이거 때문에 한동안 고생했는데요. 원인 중 하나가 필라멘트 흡습(Moisture Absorption)이에요. 여름철 습도가 높은 날에는 밀봉 안 된 필라멘트가 며칠 만에 습기를 흡수해서 출력 품질이 달라질 수 있습니다. 드라이박스 투자를 강력히 권장드려요.


    마무리 — 실패는 데이터다

    3D 프린터 층 분리, 워핑, 압출 불량 트러블슈팅 원인 및 해결책 요약 인포그래픽

    ▲ 층 분리, 워핑, 압출 불량 3가지 출력 실패 유형의 원인과 해결책을 한눈에 정리한 트러블슈팅 요약 인포그래픽

    13년간 인프라 장비를 다루면서 느낀 건데요. 장비 트러블슈팅은 결국 체계적인 원인 분리(Isolation)가 핵심이에요. 3D 프린터 출력 실패도 마찬가지입니다. 여러 변수를 한꺼번에 바꾸지 말고, 하나씩 바꿔가며 테스트하는 습관을 들이면 문제 해결 속도가 눈에 띄게 빨라져요.

    오늘 다룬 내용을 정리하면:

    • 층 분리 → 온도 올리기, 속도 줄이기, 레이어 높이 조정
    • 워핑 → 베드 온도, 접착력, 인클로저 환경 개선
    • 압출 불량 → 노즐 청소, E-step 캘리브레이션, 플로우 레이트 조정

    그리고 무엇보다, 첫 레이어를 꼭 눈으로 확인하세요. 첫 레이어에서 이미 문제가 보이는데 그냥 두면 나중에 더 큰 실패로 이어지거든요. 5초만 투자해도 필라멘트 몇 십 그램을 아낄 수 있어요.

    다음 글에서는 서포트(Support) 설정 최적화와 브리징(Bridging, 허공 가로지르기) 품질 개선 방법을 다뤄볼 예정이에요. 오버행이나 브리지 출력에서 고생하고 계신 분들은 기대해주세요. 🎉

    궁금한 점이나 다른 3D 프린터 출력 실패 사례가 있으시면 댓글로 남겨주세요. 같이 해결해봅시다!

  • [3D 프린팅] OctoPrint 완벽 가이드: 라즈베리 파이로 원격 제어하기

    [3D 프린팅] OctoPrint 완벽 가이드: 라즈베리 파이로 원격 제어하기

    [3D 프린팅] OctoPrint 완벽 가이드: 라즈베리 파이로 3D 프린터 원격 제어하기

    안녕하세요, 13년차 인프라 엔지니어입니다. 오늘은 제 홈랩에서 정말 유용하게 쓰고 있는 OctoPrint에 대한 이야기를 해볼까 합니다. 혹시 3D 프린터 출력 시작 버튼 누르고 나서, 혹시나 실패할까 봐 전전긍긍하며 프린터 앞에서 밤새 대기하고 계신가요? 아니면 출력 상태 확인하려고 작업실까지 왔다 갔다 하는 게 귀찮으신가요? 제가 딱 그랬거든요. 😅

    저도 처음엔 3D 프린터 출력을 시작하면 중간에 문제가 생길까 봐 걱정이 많았어요. 출력물 베드가 들뜨거나, 필라멘트가 엉키거나, 심지어는 프린터가 오작동해서 불이 날까 봐 불안했죠. 이런 불안감을 해결해 준 게 바로 라즈베리 파이와 OctoPrint였습니다. 이제는 사무실에 앉아서도, 심지어는 외부에 있을 때도 제 3D 프린터의 상태를 실시간으로 모니터링하고 제어할 수 있게 됐습니다. 정말 편하더라고요! 오늘은 이 OctoPrint를 라즈베리 파이에 설치하고 활용하는 완벽 가이드를 공유해 드릴게요. 저의 삽질 경험을 녹여냈으니, 여러분은 좀 더 쉽게 성공하실 수 있을 겁니다. 🎉

    OctoPrint가 라즈베리 파이와 3D 프린터를 연결하여 원격 제어 및 모니터링하는 전체 아키텍처 다이어그램

    OctoPrint와 라즈베리 파이, 그리고 3D 프린터의 연결 구조를 보여주는 다이어그램입니다. 마치 뇌가 신체 각 부분을 통제하는 모습과 비슷하죠?

    OctoPrint가 뭐야? 왜 써야 할까요?

    먼저 OctoPrint가 정확히 무엇인지, 그리고 왜 이걸 써야 하는지부터 알아봐야겠죠?

    OctoPrint 개념 쉽게 설명

    쉽게 말해 OctoPrint는 3D 프린터를 위한 웹 인터페이스 기반의 원격 제어 및 모니터링 시스템입니다. 오픈소스 프로젝트로, 주로 라즈베리 파이 같은 싱글 보드 컴퓨터에 설치해서 사용하죠. 3D 프린터에 USB로 연결하면, 마치 프린터의 두뇌처럼 작동하면서 웹 브라우저나 스마트폰 앱으로 모든 제어를 가능하게 해줍니다.

    OctoPi는 이런 OctoPrint를 라즈베리 파이에 쉽게 설치할 수 있도록 미리 세팅해 놓은 운영체제 이미지입니다. 라즈베리 파이 OS 위에 OctoPrint와 웹캠 스트리밍을 위한 mjpg-streamer 등이 포함되어 있어서, SD 카드에 굽기만 하면 바로 사용할 수 있어요. 저처럼 이것저것 설정하는 데 익숙한 사람에게도 편하지만, 초보자에게는 더할 나위 없이 좋은 솔루션입니다.

    OctoPrint의 주요 장점

    • 원격 제어: 웹 브라우저나 앱으로 언제 어디서든 프린터의 움직임, 온도, 팬 속도 등을 제어할 수 있습니다. G-code(3D 프린터 명령 언어)를 직접 보내는 것도 가능하죠.
    • 실시간 모니터링: 웹캠을 연결하면 실시간으로 출력 과정을 영상으로 볼 수 있습니다. 제가 가장 애용하는 기능 중 하나예요.
    • 타임랩스: 출력 과정 전체를 멋진 타임랩스 영상으로 자동 제작해 줍니다. 결과물을 보면서 뿌듯함을 느낄 수 있죠.
    • 플러그인 확장성: 수많은 플러그인이 있어서 기능을 무한히 확장할 수 있습니다. 예를 들어, AI 기반의 실패 감지 플러그인이나 Telegram 알림 플러그인 등이 있습니다.
    • 파일 관리: G-code 파일을 웹 인터페이스에서 직접 업로드하고 관리할 수 있습니다. SD 카드에 넣었다 뺐다 할 필요가 없어져요.

    실전 구현: 라즈베리 파이에 OctoPi 설치하기

    자, 이제 직접 OctoPrint를 설치해볼 차례입니다. 단계별로 차근차근 따라오시면 어렵지 않게 성공하실 수 있을 거예요. 저도 처음엔 좀 헤맸지만, 결국 해냈거든요! 💡

    준비물

    시작하기 전에 필요한 것들을 먼저 챙겨봅시다.

    • 라즈베리 파이: Raspberry Pi 3B+ 또는 Raspberry Pi 4 (2GB 이상 권장). 저는 Pi 4 4GB 모델을 쓰고 있습니다. 구형 모델은 웹캠 스트리밍 시 버벅일 수 있어요.
    • MicroSD 카드: 16GB 이상 (클래스 10 이상 권장).
    • 라즈베리 파이 전원 어댑터: 5V 3A 이상. 전원 부족은 라즈베리 파이의 가장 흔한 문제입니다. ⚠️ 정품 어댑터를 쓰시는 게 정신 건강에 좋습니다. 제가 싸구려 어댑터 썼다가 엄청 삽질했거든요.
    • USB 케이블 (Type A to B): 3D 프린터와 라즈베리 파이를 연결할 케이블.
    • USB 웹캠 (선택 사항): 모니터링을 위한 웹캠. 라즈베리 파이와 호환되는 모델인지 확인하는 게 좋아요.
    • 컴퓨터: OctoPi 이미지를 MicroSD 카드에 구울 때 사용합니다.

    단계 1: OctoPi 이미지 다운로드 및 설치

    1. OctoPi 이미지 다운로드: OctoPrint 공식 홈페이지에서 최신 OctoPi 이미지를 다운로드합니다.

    2. Raspberry Pi Imager 설치: 컴퓨터에 Raspberry Pi Imager를 설치합니다. 이 툴을 사용하면 아주 쉽게 OS 이미지를 SD 카드에 구울 수 있습니다.

    3. 이미지 굽기:

      • Imager를 실행하고 CHOOSE OS를 클릭합니다.
      • Custom을 선택한 후, 다운로드한 OctoPi 이미지를 선택합니다.
      • CHOOSE STORAGE를 클릭하여 MicroSD 카드를 선택합니다.
      • WRITE를 클릭하여 이미지를 굽습니다. 이 과정은 몇 분 정도 소요될 수 있습니다.
    4. Wi-Fi 및 SSH 설정 (강력 권장): 이미지가 성공적으로 구워지면, SD 카드가 컴퓨터에 다시 마운트됩니다. 이 SD 카드 내부에 boot 파티션이 보일 거예요. 여기에 octopi-wpa-supplicant.txt 파일을 열어서 Wi-Fi 설정을 해줍니다. 주석을 제거하고 아래와 같이 수정하세요.

      # WPA/WPA2 secured
      network={
        ssid="YOUR_WIFI_SSID"
        psk="YOUR_WIFI_PASSWORD"
      }
      

      그리고 SSH를 활성화하려면 boot 파티션에 확장자 없는 ssh라는 이름의 빈 파일을 생성합니다. 윈도우에서는 메모장으로 ssh.txt를 만든 후 확장자를 제거하면 됩니다. ⚠️ SSID나 PSK 오타 조심하세요! 제가 여기서 오타 때문에 연결이 안 돼서 한참을 헤맸습니다. ㅎㅎ

    단계 2: OctoPrint 초기 설정

    1. 라즈베리 파이 부팅: 설정이 완료된 MicroSD 카드를 라즈베리 파이에 삽입하고 전원을 연결합니다. 처음 부팅하는 데 시간이 좀 걸릴 수 있어요.

    2. OctoPrint 접속: 라즈베리 파이가 네트워크에 연결되면, 웹 브라우저를 열고 http://octopi.local 또는 라즈베리 파이의 IP 주소(예: http://192.168.1.xxx)로 접속합니다. IP 주소는 공유기 관리 페이지에서 확인하거나, nmap 같은 툴로 스캔해서 찾을 수 있습니다.

    3. 초기 설정 마법사 진행: 웹 인터페이스에 접속하면 OctoPrint 초기 설정 마법사가 시작됩니다. 사용자 이름, 비밀번호를 설정하고, 3D 프린터 프로필을 생성합니다. 프린터의 베드 사이즈, 노즐 크기 등을 입력하면 돼요. 이 과정에서 액세스 제어를 설정하여 보안을 강화하는 게 중요합니다. 외부에서 접속할 계획이라면 꼭 비밀번호를 강력하게 설정하세요!

    4. 3D 프린터 연결: 라즈베리 파이와 3D 프린터를 USB 케이블로 연결한 다음, OctoPrint 웹 인터페이스에서 Connect 버튼을 클릭합니다. 올바른 Serial Port와 Baudrate를 선택해야 합니다. 보통 자동으로 감지되지만, 안 되면 수동으로 설정해야 해요. 제 프린터는 115200 Baudrate를 썼습니다.

    OctoPrint 웹 인터페이스의 대시보드 화면, 3D 프린터 원격 제어 및 모니터링

    OctoPrint에 성공적으로 접속했을 때 볼 수 있는 대시보드 화면입니다. 제 3D 프린터가 연결되어 있고, 웹캠 스트리밍도 잘 나오고 있네요.

    단계 3: 웹캠 연결 및 설정 (선택 사항)

    실시간 모니터링의 핵심인 웹캠을 연결해봅시다.

    1. USB 웹캠 연결: 라즈베리 파이에 USB 웹캠을 연결합니다.

    2. 웹캠 스트리밍 확인: OctoPrint 웹 인터페이스의 Control 탭으로 이동하면, 웹캠 스트리밍 화면이 보일 겁니다. 만약 보이지 않으면, Settings > Webcam & Timelapse 섹션에서 Stream URL이 올바르게 설정되어 있는지 확인합니다. 보통 /webcam/?action=stream으로 되어 있을 거예요. 웹캠 호환성 문제가 있을 수 있으니, 미리 라즈베리 파이에서 잘 동작하는지 확인해두는 게 좋습니다.

    주의사항 및 삽질 해결 경험

    제가 OctoPrint를 설치하고 사용하면서 겪었던 몇 가지 문제점과 그 해결 방법을 공유해 드립니다. 여러분은 저처럼 삽질하지 마세요! 😅

    • ⚠️ 라즈베리 파이 전원 부족: 가장 흔한 문제입니다. 웹캠이나 다른 USB 장치를 연결했을 때, 라즈베리 파이의 전압이 부족하면 오작동하거나 부팅이 안 될 수 있습니다. 저는 정품 5V 3A 어댑터로 교체하고 나서 해결됐습니다. 터미널에서 dmesg | grep voltage 명령으로 전압 경고를 확인할 수 있어요.

    • ⚠️ USB 케이블 불량: 3D 프린터와 라즈베리 파이를 연결하는 USB 케이블이 불량인 경우가 의외로 많습니다. 다른 케이블로 바꿔보니 바로 연결되는 경험을 몇 번 했어요. 데이터 전송이 가능한 케이블인지 확인하세요.

    • ⚠️ Wi-Fi 연결 문제: SSID나 비밀번호에 오타가 있으면 라즈베리 파이가 Wi-Fi에 연결되지 않습니다. 특히 특수문자가 포함된 비밀번호는 더 주의해야 해요. ssh로 접속해서 sudo cat /var/log/syslog | grep wpa 명령으로 로그를 확인해보면 원인을 찾을 수 있습니다.

    • ⚠️ 웹캠 인식 문제: 일부 웹캠은 라즈베리 파이에서 제대로 인식되지 않거나, mjpg-streamer와 호환되지 않을 수 있습니다. lsusb 명령으로 웹캠이 인식되는지 확인하고, 구글에 [웹캠 모델명] Raspberry Pi OctoPrint로 검색해서 호환성 정보를 찾아보세요. 저는 로지텍 C920 모델을 사용하는데, 아무 문제 없이 잘 작동하더라고요.

    • ⚠️ 프린터 연결 오류: OctoPrint에서 프린터 연결이 안 될 때, Serial Port가 여러 개 뜨거나 Baudrate가 맞지 않는 경우가 있습니다. /dev/ttyUSB0이나 /dev/ttyACM0 같은 포트를 시도해보고, 프린터 제조사에서 권장하는 Baudrate를 찾아보세요. 보통 115200 또는 250000을 많이 써요.

    결과 확인: 따뜻한 커피와 함께하는 원격 출력!

    모든 설정이 완료되고, 드디어 OctoPrint를 통해 3D 프린터를 원격으로 제어할 수 있게 되었습니다! 🎉 이제 여러분은 웹 인터페이스에서 G-code 파일을 업로드하고, 출력을 시작하며, 웹캠으로 진행 상황을 지켜볼 수 있어요. 심지어 문제가 생기면 출력을 일시 중지하거나 취소할 수도 있죠. 이 편리함은 정말이지 겪어봐야 압니다.

    저는 이제 아침에 출근해서 사무실에 앉아 어제 자기 전에 슬라이싱해둔 G-code 파일을 OctoPrint에 업로드하고 출력을 시작합니다. 그리고 중간중간 웹캠으로 출력 상태를 확인하면서 다른 업무를 보거나, 따뜻한 커피 한 잔의 여유를 즐기죠. 예전 같으면 프린터 옆에 붙어 앉아 노심초사했을 텐데, 정말 삶의 질이 달라졌어요. 홈랩의 진정한 의미를 여기서 찾았다고 생각합니다.

    OctoPrint의 플러그인 목록 화면, 3D 프린터 기능 확장

    OctoPrint의 강력한 기능 중 하나인 플러그인 확장 기능입니다. 다양한 플러그인을 통해 기능을 무한히 확장할 수 있어요.

    마무리: 이제 당신의 3D 프린터는 스마트해졌습니다!

    오늘은 OctoPrint와 라즈베리 파이를 활용해 3D 프린터를 원격 제어하고 모니터링하는 방법에 대해 자세히 알아봤습니다. 제가 직접 경험한 삽질과 해결 과정을 공유하면서, 여러분이 좀 더 쉽고 빠르게 이 편리함을 누리시길 바라는 마음으로 글을 써봤어요.

    OctoPrint는 단순히 원격 제어를 넘어, 3D 프린팅 경험 자체를 한 단계 업그레이드 시켜주는 강력한 도구입니다. 이제 여러분의 3D 프린터도 스마트해졌으니, 더 멋진 출력물을 만드는데 집중할 수 있을 거예요. 다음 단계로는 다양한 플러그인을 활용해보시길 추천합니다. 특히 AI 기반 실패 감지 플러그인은 정말 신세계입니다. 🤩

    혹시 설치 중에 궁금한 점이나 문제가 발생하면 언제든지 댓글로 남겨주세요. 저의 13년차 인프라 경험이 여러분의 삽질을 줄여주는 데 도움이 될 수 있다면 기쁠 것 같습니다. 그럼 다음 기술 이야기에서 또 만나요! 🚀

    OctoPrint와 라즈베리 파이를 통한 3D 프린터 원격 제어 장점 인포그래픽

    OctoPrint와 라즈베리 파이의 주요 장점들을 한눈에 볼 수 있도록 요약한 인포그래픽입니다.

  • [3D Printer] 3D 프린터 출력 실패 원인 분석 및 해결: 흔한 문제와 트러블슈팅

    [3D Printer] 3D 프린터 출력 실패 원인 분석 및 해결: 흔한 문제와 트러블슈팅

    3D 프린터 출력 실패, 저도 처음엔 정말 많이 당했습니다

    홈랩에 3D 프린터를 들인 게 벌써 꽤 됐는데요, 솔직히 말하면 처음 몇 달은 성공보다 실패가 훨씬 많았습니다. 출력 도중 필라멘트가 허공에 뭉치고, 바닥에서 뜯겨 나가고, 노즐에서 아무것도 안 나오는 상황을 수도 없이 겪었거든요. 그때마다 ‘이게 뭔가 잘못된 건가’ 싶어서 포럼이며 유튜브며 닥치는 대로 찾아봤던 기억이 납니다.

    3D 프린터 출력 실패는 처음 접하는 분들에게는 정말 막막한 경험이에요. 슬라이서(Slicer) 설정, 필라멘트 특성, 프린터 하드웨어 상태까지 변수가 너무 많거든요. 그래서 오늘은 제가 직접 겪고 해결한 경험들을 바탕으로, 3D 프린터 출력 실패의 흔한 원인들과 트러블슈팅 방법을 정리해 드리려고 합니다. 같은 삽질은 반복하지 않으셨으면 해서요 😊

    3D 프린터 출력 실패 사례 모음 — 워핑, 층 분리, 스트링 등 다양한 출력물 불량 유형

    ▲ 3D 프린터에서 자주 발생하는 출력 실패 유형들 — 워핑, 층 분리, 스트링, 노즐 막힘 등 다양한 불량 사례


    3D 프린터 출력 실패, 왜 이렇게 종류가 많을까?

    쉽게 말해서, 3D 프린팅은 수백 개의 설정값이 동시에 맞아 떨어져야 제대로 되는 작업이에요. 온도, 속도, 레이어 높이, 필라멘트 습도, 베드(Bed) 레벨링 상태… 이 중에 하나라도 틀어지면 바로 출력물 불량으로 이어지거든요.

    FDM(Fused Deposition Modeling, 열가소성 수지를 녹여 층층이 쌓는 방식) 방식 프린터를 기준으로 말씀드리면, 3D 프린터 출력 실패 원인은 크게 다음 세 영역에서 발생합니다.

    • 하드웨어 문제: 노즐 막힘, 베드 레벨링 불량, 벨트 장력 이상 등
    • 슬라이서 설정 문제: 온도, 속도, 레트랙션(Retraction) 설정 오류 등
    • 필라멘트 문제: 흡습(습기 흡수), 품질 불량, 직경 불균일 등

    각 원인별로 어떻게 나타나고, 어떻게 해결하는지 하나씩 짚어볼게요.


    문제 1: 워핑(Warping) — 출력물이 베드에서 떠오른다

    워핑이란?

    워핑(Warping)은 출력물의 모서리나 바닥 부분이 베드에서 들뜨면서 뒤틀리는 현상이에요. 특히 ABS(Acrylonitrile Butadiene Styrene) 필라멘트를 쓸 때 정말 자주 발생하는 문제고, PLA(Polylactic Acid)도 대형 출력물에서는 꽤 나타나더라고요.

    제가 처음 ABS 출력을 시도했을 때 거의 매번 모서리가 들려서 출력물이 사다리꼴이 되는 참사를 겪었습니다 ㅎㅎ

    워핑 원인

    • 필라멘트 냉각 시 수축률이 높음 (특히 ABS)
    • 베드 온도가 낮거나 히팅 베드(Heated Bed)가 없는 경우
    • 첫 레이어(First Layer) 접착력 부족
    • 출력 환경의 급격한 온도 변화 (에어컨, 선풍기 바람 등)

    워핑 해결 방법

    1. 베드 온도 올리기: PLA는 55~65°C, ABS는 100~110°C 정도가 기준이에요. 낮으면 접착력이 떨어집니다.
    2. 베드 접착 보조제 사용: 유리 베드에 헤어스프레이를 얇게 뿌리거나, PEI(폴리에테르이미드) 시트를 붙이면 접착력이 확 올라가요. 저는 PEI 시트로 바꾸고 나서 워핑 문제가 거의 사라졌거든요.
    3. 브림(Brim) 또는 래프트(Raft) 추가: 슬라이서에서 브림(Brim, 출력물 주변에 납작한 테두리를 추가하는 기능)을 5~10mm 정도 설정하면 바닥 접착 면적이 늘어나서 훨씬 안정적입니다.
    4. 인클로저(Enclosure, 밀폐 공간) 사용: ABS라면 사실상 필수예요. 주변 온도를 일정하게 유지해줘야 수축을 줄일 수 있거든요.
    5. 쿨링 팬 속도 줄이기: 첫 몇 레이어는 쿨링 팬을 끄거나 낮춰서 급격한 냉각을 방지하세요.

    문제 2: 노즐 막힘(Clog) — 필라멘트가 안 나온다

    노즐 막힘 증상

    이건 정말 갑자기 찾아오는 문제예요. 잘 나오다가 갑자기 필라멘트가 안 나오거나, 가늘게 나오거나, 아예 멈춰버리는 거죠. 익스트루더(Extruder, 필라멘트를 밀어주는 장치) 쪽에서 딸깍딸깍 소리가 나면 노즐 막힘의 신호일 가능성이 높습니다.

    노즐 막힘 원인

    • 너무 낮은 출력 온도로 필라멘트가 충분히 녹지 않음
    • 이전 필라멘트 잔여물이 탄화되어 굳어버림
    • 필라멘트에 이물질 혼입
    • 히트 크리프(Heat Creep, 열이 콜드존까지 올라오는 현상)로 인한 막힘

    노즐 막힘 해결 방법

    1. 콜드 풀(Cold Pull) 시도: 노즐을 출력 온도(예: 200°C)까지 올린 뒤, 필라멘트를 수동으로 밀어 넣다가 90°C 정도로 내린 뒤 강하게 당겨 빼는 방법이에요. 이물질이 같이 딸려 나오는 경우가 많습니다. 저도 이 방법으로 꽤 많이 해결했어요.
    2. 니들(Needle)로 뚫기: 노즐 청소용 얇은 니들을 고온에서 찔러 넣어 막힌 부분을 뚫는 방법이에요. 단, 노즐 손상에 주의하셔야 합니다.
    3. 노즐 교체: 콜드 풀로도 안 되면 그냥 새 노즐로 바꾸는 게 속 편할 때도 있어요. 소모품이라 생각하시면 됩니다.
    4. 쿨링 팬 확인: 히트 크리프가 원인이라면 히트싱크(Heatsink) 쿨링 팬이 제대로 돌고 있는지 확인하세요. 팬이 죽으면 막힘이 반복됩니다.

    콜드 풀 단계 요약 (Marlin 펌웨어 콘솔 명령 기준)

    # 1. 노즐 온도를 출력 온도까지 올리기
    M104 S200  # 노즐 목표 온도 200도 설정
    M109 S200  # 온도 도달까지 대기
    
    # 2. 필라멘트 수동으로 밀어넣기 (약 20-30mm)
    M83        # 익스트루더 상대 좌표 모드
    G1 E30 F100  # 30mm 밀어넣기
    
    # 3. 온도를 90도로 낮추기
    M104 S90
    M109 S90  # 90도까지 냉각 대기
    
    # 4. 이 시점에서 필라멘트를 손으로 강하게 잡아당기기
    # (이물질이 같이 딸려 나옴)

    문제 3: 층 분리(Layer Separation / Delamination) — 레이어가 떨어진다

    3D 프린터 층 분리와 노즐 막힘으로 인한 출력 불량 비교 사진

    ▲ 층 분리(레이어 디라미네이션)와 노즐 막힘으로 인한 출력물 불량 사례 비교

    층 분리 증상과 원인

    층 분리(Layer Separation, 또는 Delamination이라고도 해요)는 출력 중간에 레이어끼리 제대로 붙지 않아 갈라지거나 벌어지는 현상입니다. 완성된 출력물을 손으로 잡아당기면 레이어 경계에서 뚝 떨어지기도 하죠.

    • 온도가 너무 낮음: 레이어 간 융합(Fusion)이 충분히 일어나지 않아요
    • 출력 속도가 너무 빠름: 이전 레이어가 충분히 녹아 붙기 전에 다음 레이어가 올라오는 경우
    • 레이어 높이가 너무 높음: 노즐 직경 대비 레이어 높이가 지나치게 높으면 접합력이 약해짐
    • 필라멘트 흡습: 습기를 머금은 필라멘트는 출력 품질이 전반적으로 나빠짐

    층 분리 해결 방법

    1. 노즐 온도 5~10°C 올리기: 먼저 온도를 조금씩 높여가며 테스트해 보세요. PLA 기준 195~215°C 범위에서 조정하시면 됩니다.
    2. 출력 속도 낮추기: 기본 속도의 70~80% 정도로 낮춰보세요. 느린 게 답일 때가 많습니다.
    3. 레이어 높이 재확인: 일반적으로 노즐 직경의 25~75% 범위가 권장이에요. 0.4mm 노즐이면 0.1~0.3mm 레이어 높이가 적당합니다.
    4. 필라멘트 건조: 흡습된 필라멘트는 식품 건조기나 전용 필라멘트 드라이어로 건조해 주세요. 저는 식품 건조기 65°C에서 4~6시간 돌리는 편이에요.

    문제 4: 스트링(Stringing) — 거미줄 같은 실이 생긴다

    스트링 현상이란?

    출력물 사이를 이동할 때 노즐에서 가는 실 같은 필라멘트가 흘러나와 거미줄처럼 붙어있는 현상이에요. 처음엔 이게 왜 생기는지 몰라서 한참 헤맸는데, 알고 보니 레트랙션(Retraction) 설정이 핵심이더라고요.

    스트링 해결 방법

    1. 레트랙션(Retraction) 거리/속도 조정: 레트랙션은 노즐이 이동할 때 필라멘트를 살짝 뒤로 당겨서 흘러내림을 방지하는 기능이에요. 보우든(Bowden) 방식은 4~7mm, 다이렉트 드라이브(Direct Drive) 방식은 0.5~2mm 정도가 일반적입니다.
    2. 출력 온도 낮추기: 온도가 높을수록 필라멘트 점도가 낮아져 흘러내리기 쉬워요. 5°C씩 낮춰가며 테스트해 보세요.
    3. 이동 속도 높이기: 이동 중에 빠르게 지나갈수록 실이 덜 생깁니다.
    4. Combing 모드 활성화: 슬라이서에서 이동 경로를 출력물 내부로만 설정하는 기능이에요. Cura 기준으로 ‘Combing Mode’를 ‘All’ 또는 ‘Within Infill’로 설정하면 외부에 스트링이 생기는 걸 많이 줄일 수 있습니다.

    Cura 슬라이서 스트링 관련 핵심 설정값 예시 (PLA 기준)

    # 레트랙션 설정
    retraction_enable: true
    retraction_amount: 5  # 보우든 방식 기준 (mm)
    retraction_speed: 45  # mm/s
    
    # 이동 설정
    speed_travel: 150  # mm/s
    combing_mode: "noskin"  # 외부 표면 제외 내부에서만 이동
    
    # 온도 설정
    material_print_temperature: 200  # °C (스트링 심하면 195로 낮추기)
    retraction_hop_enabled: false  # Z-hop은 스트링 줄이는 데 도움되기도 함

    문제 5: 그 외 흔한 출력물 불량 증상 정리

    위에서 다룬 것 외에도 자주 만나는 3D 프린터 출력 실패 증상들이 있어요. 표로 한 번에 정리해 드릴게요.

    증상 주요 원인 해결 방법
    언더 익스트루전
    (Under-extrusion, 재료 부족)
    온도 낮음, 속도 빠름, 노즐 부분 막힘 온도 올리기, 속도 줄이기, 익스트루션 멀티플라이어 조정
    오버 익스트루전
    (Over-extrusion, 재료 과다)
    익스트루션 멀티플라이어 높음, 필라멘트 직경 설정 오류 Flow Rate(플로우 레이트) 줄이기, 필라멘트 직경 실측 후 입력
    고스팅/링잉
    (Ghosting/Ringing, 표면 물결 무늬)
    출력 속도 과다, 벨트 장력 부족, 프레임 진동 속도 줄이기, 벨트 장력 조정, 가속도(Acceleration) 값 낮추기
    코끼리 발
    (Elephant’s Foot, 첫 레이어 퍼짐)
    베드와 노즐 간격 너무 좁음, 첫 레이어 온도 너무 높음 베드 레벨링 재조정, 라이브 Z 오프셋 미세 조정
    서포트 분리 불량
    (Support Removal 어려움)
    서포트 밀도 너무 높음, Z 거리 설정 부족 서포트 Z 거리 늘리기, 서포트 밀도 낮추기

    트러블슈팅 전에 꼭 확인해야 할 기본 점검 목록

    3D 프린터 트러블슈팅 기본 점검 항목 순서도 — 베드 레벨링, 필라멘트 건조, 노즐 점검 등

    ▲ 3D 프린터 출력 실패 시 체계적으로 점검해야 할 트러블슈팅 순서도

    문제가 생겼을 때 무작정 설정을 바꾸기 전에, 기본 점검부터 하는 게 훨씬 효율적이에요. 저도 초반에 설정만 만지다가 시간 다 날린 적이 한두 번이 아니거든요.

    1. ✅ 베드 레벨링 상태 확인: 베드와 노즐 간격이 균일한지 점검. 종이 한 장 두께(약 0.1mm) 정도가 기준이에요.
    2. ✅ 필라멘트 습도 상태 확인: 출력 중 ‘치직치직’ 소리가 나거나 기포가 보이면 흡습된 것입니다. 건조 필수!
    3. ✅ 노즐 온도 및 베드 온도 실제값 확인: 설정값과 실제 온도가 다를 수 있어요. 써모커플(Thermocouple) 이상이면 교체가 필요합니다.
    4. ✅ PTFE 튜브 상태 확인: 보우든 방식이라면 PTFE 튜브(테플론 튜브)가 노즐까지 제대로 닿아 있는지, 손상은 없는지 확인하세요.
    5. ✅ 슬라이서 설정 프리셋 확인: 다른 필라멘트 프로파일이 잘못 적용되진 않았는지 체크.
    6. ✅ 익스트루더 기어 마모 확인: 필라멘트를 잡아주는 기어가 마모되면 미끄러짐이 발생합니다.

    💡 팁: 새로운 필라멘트 브랜드나 소재로 처음 출력할 때는 항상 캘리브레이션 큐브(Calibration Cube) 같은 작은 테스트 출력물부터 시작하세요. 큰 출력물 중간에 실패하는 것만큼 시간 낭비가 없거든요.


    정리: 3D 프린터 출력 실패 원인별 빠른 해결 가이드

    3D 프린터 올바른 설정 출력 성공 사례와 설정 오류 출력 실패 사례 비교

    ▲ 동일한 모델을 올바른 설정으로 출력했을 때와 설정 오류로 출력했을 때의 결과물 비교

    지금까지 다룬 내용을 한 문장씩 요약해 드릴게요.

    • ⚠️ 워핑: 베드 온도 올리고, 브림 추가하고, 인클로저로 환경 안정화
    • ⚠️ 노즐 막힘: 콜드 풀 먼저 시도, 안 되면 노즐 교체
    • ⚠️ 층 분리: 온도 올리고, 속도 낮추고, 필라멘트 건조 확인
    • ⚠️ 스트링: 레트랙션 설정 최적화, 온도 낮추기, Combing 모드 활성화
    • ⚠️ 언더/오버 익스트루전: Flow Rate 캘리브레이션이 핵심

    3D 프린터 출력 실패는 처음엔 정말 좌절스럽지만, 원인을 하나씩 찾아가다 보면 어느 순간 패턴이 보이기 시작해요. 그때부터는 문제 생겨도 ‘아, 이거 이거구나’ 하고 바로 잡을 수 있게 되더라고요. 저도 그 과정을 거쳐왔거든요.

    다음 글에서는 슬라이서(Cura, PrusaSlicer) 기초 설정 가이드를 다뤄볼 예정이에요. 설정값이 너무 많아서 어디서부터 손대야 할지 모르겠다는 분들을 위해 정리해 드리려고 합니다. 필라멘트 소재별 캘리브레이션 방법도 이전 글에서 다루고 있으니 함께 참고하시면 도움이 될 거예요.

    궁금한 점이나 저와 다른 경험 있으신 분들은 댓글로 나눠주세요. 같이 해결하면 더 빠르니까요 🎉

  • [3D Printer] 3D 프린터 노즐 막힘 해결: 원인과 완벽한 청소 방법

    [3D Printer] 3D 프린터 노즐 막힘 해결: 원인과 완벽한 청소 방법

    3D 프린터 노즐 막힘 해결: 원인과 완벽한 청소 방법

    3D 프린터를 쓰다 보면 한 번쯤은 꼭 만나게 되는 상황이 있습니다. 분명히 어제까지 잘 출력되던 프린터가 갑자기 필라멘트를 밀어내지 못하거나, 출력물 중간에 선이 끊기거나, 심하면 아무것도 나오지 않는 상황이요. 저도 처음 3D 프린터를 들였을 때 이걸 경험하고는 ‘기계가 고장났나?’ 싶어서 한참 당황했던 기억이 나네요. 3D 프린터 노즐 막힘은 생각보다 훨씬 흔한 문제고, 원인만 제대로 알면 충분히 집에서 해결할 수 있더라고요.

    이 글에서는 제가 직접 겪어온 노즐 막힘 경험을 바탕으로, 원인부터 청소 방법까지 단계별로 알려드릴게요. 솔직히 초반에 꽤 삽질했습니다. 그래도 덕분에 이제는 노즐 막히면 당황하지 않고 척척 처리하게 됐거든요.

    3D 프린터 노즐 막힘으로 인해 필라멘트가 불균일하게 압출되는 증상 클로즈업

    ▲ 노즐 막힘이 발생하면 이렇게 필라멘트가 고르게 나오지 않거나 아예 압출이 멈춰버립니다.

    3D 프린터 노즐 막힘, 왜 생기는 걸까요?

    쉽게 말해서, 노즐 막힘(Clog, 클로그)은 노즐 내부에 탄화된 필라멘트 찌꺼기나 이물질이 쌓여서 필라멘트가 정상적으로 통과하지 못하는 현상입니다. 원인은 생각보다 다양한데, 제가 직접 경험한 주요 원인들을 정리해봤어요.

    노즐 막힘 주요 원인 5가지

    • 온도 설정 오류: 필라멘트 종류에 맞지 않는 온도로 출력하면 노즐 내부에서 필라멘트가 제대로 녹지 않거나, 반대로 과도하게 탄화됩니다. 예를 들어 PLA를 240도 이상으로 장시간 가열하면 내부에서 눌어붙더라고요.
    • 필라멘트 교체 실수: 이전 필라멘트를 제대로 제거하지 않고 다른 종류의 필라멘트를 넣으면 두 소재가 섞여서 막힘이 생깁니다. 특히 ABS → PLA 교체 시 온도 차이 때문에 문제가 자주 생겨요.
    • 저품질 필라멘트: 직경이 불균일하거나 불순물이 많은 필라멘트는 노즐을 막는 주범입니다. 싸다고 무조건 좋은 게 아니더라고요. 저도 초반에 저렴한 필라멘트 쓰다가 고생했습니다.
    • 리트랙션(Retraction) 설정 과다: Cura 같은 슬라이서에서 리트랙션(필라멘트를 뒤로 당기는 동작) 거리를 너무 길게 설정하면 콜드존(Cold Zone, 냉각 구간)으로 녹은 필라멘트가 올라와 굳어버립니다.
    • 장시간 유휴 상태: 고온으로 가열된 채로 오래 방치하면 노즐 안에서 필라멘트가 서서히 탄화됩니다. 출력 전 준비하다가 자리 비우고 오면 이런 일이 생기죠.

    노즐 막힘 증상 구분하기: 완전 막힘 vs 부분 막힘

    노즐 막힘에도 단계가 있습니다. 완전히 막힌 건지, 부분적으로 막힌 건지에 따라 대처 방법이 달라지거든요. 혹시 이런 증상 경험해보신 적 있으신가요?

    증상 완전 막힘 (Full Clog) 부분 막힘 (Partial Clog)
    필라멘트 압출 전혀 나오지 않음 가늘게 나오거나 끊김
    압출기 모터 클릭 소리와 함께 슬립 간헐적으로 슬립
    출력물 상태 출력 불가 레이어 분리, 표면 거칠음
    대처 난이도 높음 (물리적 청소 필요) 낮음 (Cold Pull로 해결 가능)

    노즐 청소 방법: 단계별 가이드

    이제 본격적으로 노즐 청소 방법을 알아볼게요. 막힘 정도에 따라 방법이 다르니, 가벼운 것부터 순서대로 시도해보시는 걸 추천합니다.

    3D 프린터 노즐 청소에 필요한 청소 바늘, 렌치, 나일론 필라멘트 등 도구 모음

    ▲ 노즐 청소에 사용하는 주요 도구들. 왼쪽부터 노즐 청소 바늘(Needle), 콜드 풀용 나일론 필라멘트, 노즐 렌치입니다.

    방법 1: Cold Pull (콜드 풀) — 부분 막힘에 효과적

    콜드 풀은 필라멘트를 이용해서 노즐 내부 찌꺼기를 뽑아내는 방법입니다. 저는 이걸 처음 알았을 때 ‘이게 된다고?’ 했는데, 진짜 신기하게 잘 됩니다. 나일론 필라멘트가 있으면 가장 좋고, 없으면 PLA로도 어느 정도 됩니다.

    1. 노즐을 해당 필라멘트 출력 온도로 가열합니다. (PLA면 200~210도)
    2. 필라멘트를 손으로 밀어 넣어 노즐 안을 채웁니다.
    3. 온도를 서서히 낮춥니다. PLA 기준 90~100도까지 낮추세요.
    4. 온도가 목표치에 도달하면 필라멘트를 빠르게 당겨 뽑습니다.
    5. 뽑힌 필라멘트 끝을 보면 노즐 내부 형태와 함께 찌꺼기가 붙어 나옵니다.
    6. 찌꺼기가 없어질 때까지 2~5회 반복합니다.

    💡 팁: 콜드 풀 후 필라멘트 끝이 깨끗하고 매끈하게 나오면 성공입니다. 검은 탄화 찌꺼기가 묻어나오면 한 번 더 반복해보세요.

    방법 2: 노즐 청소 바늘 (Needle) 사용 — 완전 막힘 초기 단계

    노즐 청소 바늘은 기타 현 같이 생긴 가는 금속 바늘입니다. 0.3~0.4mm 노즐에는 0.25mm 바늘을 사용하세요. 제가 처음에 일반 바늘 쓰다가 노즐 안에 부러진 적이 있었는데… 반드시 전용 청소 바늘을 사용하셔야 합니다. ⚠️

    1. 노즐을 출력 온도로 가열합니다.
    2. 필라멘트를 제거합니다.
    3. 노즐 구멍에 청소 바늘을 조심스럽게 넣고 위아래로 움직입니다.
    4. 바늘을 빼면서 찌꺼기를 제거합니다.
    5. 새 필라멘트를 넣어 압출 테스트를 합니다.

    방법 3: 아세톤 담금 (Acetone Soak) — ABS 노즐 전용

    아세톤 담금은 ABS 필라멘트로 막힌 노즐에만 사용 가능한 방법입니다. ABS는 아세톤에 녹거든요. PLA나 PETG에는 효과가 없으니 주의하세요.

    1. 노즐을 프린터에서 분리합니다. (반드시 가열 후 분리하세요!)
    2. 분리한 노즐을 아세톤이 담긴 작은 용기에 넣습니다.
    3. 12~24시간 담가둡니다.
    4. 꺼내서 청소 바늘로 남은 찌꺼기를 제거합니다.
    5. 완전히 건조 후 재장착합니다.

    방법 4: 노즐 교체 — 최후의 수단

    솔직히 말씀드리면, 노즐은 소모품입니다. 청소를 여러 번 해도 노즐 막힘이 반복된다면 교체하는 게 훨씬 속 편해요. 브라스(황동) 노즐 기준으로 개당 1,000~3,000원 정도라서 부담도 없습니다.

    1. 노즐을 200도 이상으로 가열합니다. (절대 차가운 상태로 분리하지 마세요!)
    2. 히터 블록을 스패너로 고정하고, 노즐 렌치로 노즐을 반시계 방향으로 돌려 분리합니다.
    3. 새 노즐을 손으로 먼저 돌려 끼운 뒤, 렌치로 살짝 조여줍니다. (과조임 금지)
    4. 첫 출력 전 퍼지(Purge, 초기 압출)를 충분히 해주세요.

    노즐 막힘 예방: Cura 설정 최적화

    청소도 중요하지만, 애초에 막히지 않도록 예방하는 게 더 중요하죠. Cura(큐라) 슬라이서 설정에서 몇 가지만 잘 조정해도 노즐 막힘 빈도가 확 줄어듭니다. 제가 현재 쓰는 설정값도 함께 공유할게요.

    Cura 슬라이서의 리트랙션 설정 화면 - 노즐 막힘 예방을 위한 설정 항목

    ▲ Cura의 리트랙션 설정. 이 값들을 잘못 설정하면 노즐 막힘의 주요 원인이 됩니다.

    리트랙션 (Retraction) 설정

    설정 항목 보우덴(Bowden) 방식 다이렉트 드라이브(Direct Drive) 방식
    리트랙션 거리 4~7mm 0.5~2mm
    리트랙션 속도 40~60mm/s 25~45mm/s
    최대 리트랙션 횟수 100 이하 권장 100 이하 권장

    근데 여기서 중요한 포인트! 리트랙션 거리가 너무 길면 녹은 필라멘트가 콜드존으로 올라와서 굳어버립니다. 특히 다이렉트 드라이브 방식에서 5mm 이상 설정하면 거의 무조건 노즐 막힘이 생긴다고 보시면 돼요. 저도 이거 몰라서 한동안 삽질했거든요.

    온도 타워 (Temperature Tower) 테스트 필수

    필라멘트마다 최적 온도가 다릅니다. 같은 PLA라도 브랜드마다 5~10도씩 차이가 나거든요. 온도 타워를 출력해서 내 필라멘트에 맞는 최적 온도를 찾아두면 노즐 막힘 예방에 큰 도움이 됩니다. Thingiverse에서 ‘Temperature Tower’로 검색하면 바로 파일 받을 수 있어요.

    그 외 노즐 막힘 예방 수칙

    • ✅ 필라멘트는 밀봉 보관 (습기 흡수 시 기포 발생 → 막힘)
    • ✅ 출력 전후 노즐 온도를 정상 범위 내에서만 유지
    • ✅ 장시간 출력 중단 시 필라멘트를 언로드하고 온도를 낮울 것
    • ✅ 필라멘트 교체 시 충분히 퍼지(Purge) 후 교체
    • ✅ 노즐 주변에 흘러내린 필라멘트 찌꺼기 주기적으로 제거

    청소 후 테스트: 정상 작동 확인

    청소가 끝났으면 바로 큰 출력물 돌리지 마시고, 간단한 테스트 출력으로 먼저 확인해보세요. 저는 항상 20mm 정육면체나 Benchy(벤치, 3D 프린터 성능 테스트용 보트 모형)를 먼저 출력해봅니다.

    정상적으로 복구됐다면 이런 것들이 확인됩니다:

    • ✅ 첫 레이어부터 고르게 압출됨
    • ✅ 압출기 모터에 클릭 소리 없음
    • ✅ 레이어 간 접착력 정상
    • ✅ 표면이 매끈하게 출력됨

    드디어 됐다! 싶은 순간이 이때입니다. 처음 깨끗하게 출력되는 거 보면 진짜 뿌듯하거든요. 😄

    노즐 청소 후 성공적으로 출력된 매끈한 3D 프린터 출력물 결과

    ▲ 노즐 청소 후 정상적으로 출력된 결과물. 레이어 라인이 고르고 표면이 매끈합니다.

    자주 묻는 질문 (FAQ)

    Q. 노즐 청소는 얼마나 자주 해야 하나요?

    필라멘트 교체 시마다 간단한 퍼지는 필수고, 콜드 풀은 출력 품질이 떨어지기 시작할 때 해주시면 됩니다. 저는 보통 5~10kg 정도 필라멘트 사용 후 한 번씩 콜드 풀 해줍니다.

    Q. 노즐 분리 없이 막힘을 해결할 수 있나요?

    네, 대부분의 경우 콜드 풀이나 청소 바늘로 분리 없이 해결됩니다. 분리는 정말 심한 경우에만 하는 게 좋아요. 분리할 때마다 나사산이 닳거든요.

    Q. 노즐 교체 후에도 막힘이 반복된다면?

    이 경우엔 PTFE 튜브(피스톤 튜브, 필라멘트 가이드 튜브) 문제일 수 있습니다. 특히 히터 블록과 연결 부위에서 PTFE 튜브가 손상되면 비슷한 증상이 나타납니다. 튜브도 함께 점검해보세요.

    마무리: 노즐 막힘, 이제 두렵지 않습니다

    처음 3D 프린터 노즐 막힘을 만났을 때는 정말 막막했는데, 알고 보면 충분히 집에서 해결 가능한 문제입니다. 요약하자면 이렇습니다:

    • 부분 막힘 → 콜드 풀로 먼저 시도
    • 완전 막힘 → 청소 바늘 + 콜드 풀 조합
    • ABS 막힘 → 아세톤 담금
    • 반복되는 노즐 막힘 → 노즐 교체 + Cura 설정 점검

    그리고 무엇보다 예방이 최선입니다. Cura 리트랙션 설정 최적화, 필라멘트 밀봉 보관, 주기적인 콜드 풀만 잘 해줘도 노즐 막힘 걱정 거의 없이 쓸 수 있거든요.

    다음 글에서는 출력 실패 원인 중 또 다른 주범인 베드 레벨링(Bed Leveling, 출력 베드 수평 조정)과 첫 레이어 설정에 대해 다룰 예정입니다. 노즐 막힘 해결했는데 첫 레이어가 안 붙는다면 그쪽 문제일 가능성이 높으니 참고해주세요!

    궁금한 점이나 저와 다른 경험이 있으시면 댓글로 알려주세요. 같이 해결해봅시다. 💡