Nâng cấp Klipper cho Elegoo Neptune 3 Pro với BTT Pi v1.2

Hướng dẫn cài Klipper cho Elegoo Neptune 3 Pro zin và in ngàm gắn BTT Pi v1.2 vào khoang đáy máy. Bao gồm chuẩn bị linh kiện, kết nối UART/USB, cấp nguồn, build & flash firmware, và cấu hình printer.cfg.

👁️
8.1K
Lượt Xem
❤️
136
Lượt Thích
📥
565
Lượt Tải
Cập Nhật Apr 26, 2026
Chi tiết
Tải xuống
Bình Luận
Khoe bản in
Remix

Mô tả

Nâng cấp Klipper cho Elegoo Neptune 3 Pro

Trang này có hướng dẫn cài Klipper cho Elegoo Neptune 3 Pro zin và mẫu (model) để gắn BTT Pi V1.2 vào bên trong phần đáy của máy.

Mình viết hướng dẫn này sau khi nâng cấp Elegoo Neptune 3 Pro của mình vài ngày trước nên có thể sẽ quên vài chỗ. Nếu bạn làm theo tutorial này để nâng cấp Neptune 3 Pro mà gặp vấn đề, cứ thoải mái đặt câu hỏi hoặc góp ý cải thiện ở phần bình luận.

Cập nhật

  • 2025-07-14: Thêm thông tin cách kết nối BTT Pi với Neptune 3 Pro qua UART không cần hàn (cảm ơn @Эрнест đã cung cấp thông tin)
  • 2024-04-18: Chỉnh sửa mục “What you'll need”: ưu tiên DuPont Jumper Wires dài 30cm thay vì 20cm để chừa không gian cho quạt MCU.
  • 2024-04-17: Giảm đường kính lỗ bắt vít cho BTT Pi xuống D=1.78mm để giữ vít M2 chắc hơn

Bạn cần chuẩn bị

  1. 1x BIGTREETECH BTT PI V1.2 (aliexpress, chọn tuỳ chọn “Only BTT PI V1.2”)
  2. 1x Thẻ MicroSD (khuyến nghị 16Gb trở lên. Tốc độ đọc/ghi càng cao càng tốt. Mình đang dùng thẻ 128GB đọc 200MB/s và ghi 90MB/s)
  3. 3x-5x Vít M3 (5-12mm) để bắt ngàm giữ board vào vỏ máy
  4. 4x Vít M2 (5-8mm) để bắt BTT Pi V1.2 vào ngàm giữ board
  5. 2x dây (20-30cm) để cấp nguồn cho BTT Pi V1.2 từ PSU của máy in
  6. Dây rút để đi dây gọn gàng
  7. Dây để kết nối BTT Pi với MCU (xem bên dưới)

Ngoài ra bạn sẽ cần thêm các món sau tuỳ theo cách kết nối MCU ←→ BTT Pi:

  • UART (không hàn):
    1. 3x DuPont Jumper Wires, Male-Female dài 30cm (aliexpress, chọn “3 x 40pin Ribbon Kit 30cm” hoặc “40pin Ribbon M-F”)
  • UART (hàn một chút):
    1. 1x Thanh pin 4 chân 2.54mm Male (aliexpress, chọn “Mix Kits 20PCS”)
    2. 3x DuPont Jumper Wires, Female-Female dài 30cm (aliexpress, chọn “3 x 40pin Ribbon Kit 30cm” hoặc “40pin Ribbon F-F”)
  • Dùng cổng USB type B phía trước:
    • Dây USB 2.0 type B

In ngàm giữ board BTT Pi

Bạn nên in 1x Base.3mf3x Stands.3mf (có thể in 4 cái để dự phòng nếu lỡ gãy trong lúc lắp). Model đã có chừa dung sai sẵn nên in trên Neptune 3 Pro đã cân chỉnh cơ bản là ổn.

Thiết lập in (Print settings):

  • Layer 0.2mm
  • 3 lớp top/bottom
  • 3 vòng tường (wall loops)
  • Infill 15% Gyroid (hoặc improved 3D Honeycomb trong Orca Slicer V2.0.0+)
  • Không support
  • Không brim
  • Cân nhắc dùng keo khô (glue stick) để bám bàn tốt hơn (mình bị cong vênh với PETG khi in Base.3mf)
Lắp ráp

In xong bạn gắn các Stands vào Base (từ mặt dưới). Nếu bị lỏng rớt ra thì có thể dán keo.

Cài Klipper lên BTT Pi V1.2

Bạn tải bản Debian chính thức có cài sẵn Klipper trên GitHub của BTT ở đây (tên file dạng CB1_Debian11_Klipper_XXXXX.img.xz) rồi flash vào thẻ MicroSD bằng công cụ như Balena Etcher.

Sau khi flash OS xong, bạn mở thẻ SD trong trình quản lý file và sửa 2 file bằng Notepad:

1. system.cfg - đổi WiFi SSID và mật khẩu.

...
###########################################
# wifi name
WIFI_SSID="ZYIPTest"
# wifi password
WIFI_PASSWD="12345678"
...

2. BoardEnv.txt - giải phóng TTY để kết nối MCU (mặc định Debian dùng cho console). Thay “console=display” thành “console=serial” rồi lưu file.

...
## default 'display' for debug, 'serial' for /dev/ttyS0
# console=display
console=serial
...

Kết nối BTT Pi V1.2 với MCU của máy in

Có 3 cách chính để kết nối MCU với BTT Pi:

  • UART (không hàn)
  • UART (hàn một chút)
  • USB
Tuỳ chọn 1: Kết nối UART không cần hàn

Cảm ơn @Эрнест đã chỉ ra cách không cần hàn này, thông tin thêm ở đây: https://github.com/Arm0ID/Klipper_to_Elegoo_Neptune_UART_RU/tree/main

Để kết nối MCU của máy in với BTT Pi V1.2 qua UART mà không cần hàn, bạn dùng GPIO nội bộ của BTT Pi theo sơ đồ đi dây sau:

Printer's MCU

BTT Pi

GND

GND

RX

TX

TX

RX

Tuỳ chọn 2: Kết nối UART (hàn một chút)

Để kết nối MCU của máy in với BTT Pi V1.2 qua UART (có hàn một chút), bạn dùng GPIO nội bộ của BTT Pi theo sơ đồ đi dây sau:

Printer's MCU

BTT Pi

GND

GND

RX

TX

TX

RX

Để mối nối này tháo ra lắp vô được, bạn có thể hàn thanh 4PIN 2.54mm Header (male hoặc female) vào 4 chân trên ZNP Robin Nano như trong hình phía trên. Sau đó nối bằng các dây DuPont jumper tương ứng.

Tuỳ chọn 3: Kết nối chế độ USB

Dùng dây USB TypeA-TypeB cắm vào cổng USB của BTT Pi và cổng Type-B của máy in ở mặt trước.

Cấp nguồn cho BTT Pi V1.2

Tiếp theo bạn nối BTT Pi V1.2 vào các cọc nguồn PSU của máy in. Elegoo Neptune 3 Pro có 3 cặp cọc 24v ("+" và "-"). Một cặp đang cấp cho MCU ZNP Robin Nano_DW, còn 2 cặp dư. Bạn có thể dùng cặp dư để cấp nguồn cho BTT Pi V1.2. Máy mình chạy rất ổn với PSU của máy in, nhưng nếu bạn thấy nguồn này không đủ ổn định để cấp cho BTT thì cân nhắc dùng adapter nguồn USB +5V và cấp cho BTT Pi qua dây USB Type-C. Nhớ là đừng cấp nguồn cho BTT Pi đồng thời từ +24V và +5V, chỉ chọn 1 cách để tránh hậu quả không mong muốn.

Và nhớ kiểm tra thật kỹ chữ ghi trên cọc nguồn PSU của máy in!
TUYỆT ĐỐI không bao giờ nối 110/220v AC trực tiếp vào BTT Pi.

Flash firmware cho máy in

Bật máy in lên và đợi nó kết nối WiFi. Sau đó bạn vào trang quản trị router WiFi để tìm IP của board BTT Pi. Khuyến nghị đặt IP tĩnh cho BTT Pi ở đây để lúc nào cũng biết đường truy cập máy in. Xem hướng dẫn router của bạn để biết cách làm.

Ví dụ, mình tìm được IP của BTT Pi là: 192.168.54.42.

Bạn SSH vào BTT Pi (ví dụ dùng Putty), tài khoản/mật khẩu: biqu/biqu.

Rồi chạy các lệnh sau trong terminal:

cd klipper
make menuconfig

Chọn thiết lập giống như hình chụp sau:

  1. Bật “Enable extra low-level configuration options” thành ON ([*]) (nếu không thì lát nữa sẽ không thấy tuỳ chọn PA3/PA2)
  2. “Micro-controller Architecture" chọn “STMicroelectronics STM32”
  3. “Processor model” chọn “STM32F401”
  4. “Communication interface”:
    1. Nếu kết nối UART chọn “PA3/PA2
    2. Nếu kết nối USB chọn “PA10/PA9

Sau đó bấm “Q” trên bàn phím và đồng ý lưu cấu hình.
Build firmware bằng lệnh:

make

Build xong, bạn dùng WinSCP kết nối vào BTT Pi và vào thư mục: /home/biqu/klipper/out

Format một thẻ SD khác sang FAT32 rồi chép klipper.bin từ BTT Pi ra thư mục gốc của thẻ. Đổi tên file này thành ZNP_ROBIN_NANO.bin, rồi tháo thẻ an toàn và cắm vào khe SD của máy in. Khởi động lại máy in và chờ khoảng ~3 phút để nó flash. Màn hình Elegoo sẽ không hiện tiến trình nâng cấp, chuyện này bình thường. Hiện tại Klipper chưa hỗ trợ màn hình Elegoo, nhưng bạn có thể tìm các dự án tuỳ biến để dùng sau.

Cấu hình Klipper

Sau khi chờ ~3 phút sau lúc flash, rút thẻ SD khỏi máy in, khởi động lại máy lần nữa, mở IP của BTT Pi trên trình duyệt (ví dụ http://192.168.54.42 như máy mình, IP của bạn sẽ khác) và vào mục Machine ở thanh bên.

Mở file printer.cfg, xoá sạch nội dung rồi dán vào đó cấu hình của TheFeralEngineer (tiện đây bạn cũng có thể xem nhiều video của TheFeralEngineer trên YouTube về cấu hình Klipper và set up cho máy Elegoo).

Sửa cổng serial trong file:

[mcu]
# If printer is connected to the BTT Pi's GPIO, use /dev/ttyS0
# If printer is connected to the BTT Pi's USB port, try /dev/ttyUSB0
# or /dev/ttyACM0
serial: /dev/ttyS0

Sau đó bấm Save & Restart và máy in của bạn sẽ được Klipper nhận.

Bạn sẽ thấy kiểu như vầy ở tab Dashboard:

Nếu bạn thấy lỗi như vậy, nghĩa là Klipper không kết nối được tới máy in qua UART.

Bạn có thể thử:

  • Đổi serial port trong file **printer.cfg**.
    Bạn có thể liệt kê các cổng UART có sẵn trên BTT Pi bằng lệnh sau (nhập trong SSH terminal, ví dụ Putty): ls /dev/ttyS0 /dev/ttyUSB* /dev/ttyACM* /dev/serial/by-id/*. Trường hợp của mình chỉ thấy /dev/ttyS0, nhưng nếu bạn dùng USB hoặc USB-to-TTL thì kết quả có thể khác.
  • Kiểm tra lại dây UART. RX phải nối với TX và ngược lại.
  • Kiểm tra độ dài dây UART. Dây đừng quá dài kẻo bị nhiễu điện từ.
  • Kiểm tra BTT Pi có đang dùng UART nội bộ trên GPIO cho mục đích khác không. Đảm bảo bạn đã sửa file BoardEnv.txt thành console=serial thay vì console=display.

Cấu hình slicer

Bạn có thể dùng profile mặc định của Elegoo Neptune 3 Pro trong slicer rồi đổi G-Code flavor từ Marlin sang Klipper. Đồng thời tắt Linear Advance/Pressure Advance trong slicer và tiến hành calibrate trên Klipper.

Hiệu chỉnh (calibration) máy in

Sau khi Klipper nhận máy in, bạn cần calibrate để máy hoạt động ổn định. Mình không mô tả phần này chi tiết ở trang này, nhưng bạn có thể theo các tài liệu sau:

  1. Configuration checks - Klipper documentation (xem thêm các mục khác như Bed Leveling, Resonance compensation, v.v.)
  2. Ellis’ Print Tuning Guide
  3. Mình cũng giảm max_velocity từ 500 xuống 270 vì nếu để vậy máy mình có tiếng lạ khi chạy trục Y (bàn nhiệt). Bạn có thể kiểm tra máy mình có bị tiếng này không bằng các lệnh sau sau khi homing: G1 Y0 F21000G1 Y120 F21000. Các lệnh này sẽ chạy bàn về Y=0 và Y=120 với tốc độ tối đa mà máy cho phép (tốc độ này bị giới hạn bởi max_velocity trong printer.cfg).

Một số addon hay khác nên xem qua

  1. Thiết lập macro START_PRINT/END_PRINT. Như vậy bạn có thể đổi Start/End G-Code mà không cần slice lại.
    1. klipper/config/sample-macros.cfg - thêm macro này vào printer.cfg
    2. Cách dùng macro này trong slicer
  2. kyleisah/Klipper-Adaptive-Meshing-Purging: A unique leveling solution for Klipper-enabled 3D printers!
  3. Dùng màn hình Elegoo với Klipper
    1. Bản đầy đủ tính năng của joakimtoe, cần hàn
    2. Bản của E4ST2W3ST bị giảm tính năng màn hình, nhưng cho phép dùng cổng màn hình zin trên máy in

Giấy phép

Tác phẩm này được cấp phép theo

Creative Commons — Attribution — Noncommercial

CC-BY-NC

Yêu cầu ghi công
Remix & phái sinh Được phép
Sử dụng thương mại Không được phép

File mô hình

TẤT CẢ FILE MÔ HÌNH (4 Tập tin)
Đang tải files, vui lòng chờ...
Vui lòng đăng nhập để bình luận.

Chưa có bình luận nào. Hãy là người đầu tiên!

Vui lòng đăng nhập để khoe bản in của bạn.

Chưa có bản in nào được khoe. Hãy là người đầu tiên!

Remix (0)