2024年7月17日 星期三

D-FORCE 3D印表機

D-FORCE 400 3D印表機

3D印表機,越玩越大

有人的機器壞了不想修,因為要送回公司修,運費太貴,3千元賣出。

實在太大,貨運行不收,叫回頭車送,運費4千。

提早下班,想辦法用可以爬樓梯的菜籃車,一個人把它拖上4樓。拖上來後,全身虛脫,感覺心臟快得好像要爆了


------------------
賣家的說明
------------------
售 D-FORCE 400 delta型
列印範圍 直徑400mm 高度500mm
自動校正壞掉了 因為我不會手動校正 所以便宜出售
此機台適合會手動校正的使用者購買  其他的功能都正常
電源供應器(明緯)已換新 我把它拉出來外面散熱比較好
馬達都有外加風扇散熱 擠出機馬達也有加風扇
熱床改成磁鐵+薄鐵鈑   原廠的玻璃都還在
之前有買一堆備用配件 全部都一併贈送
機台有點大 限自取
----------------

D-FORCE 300 3D印表機

其實是先看到這台,只是賣家在國外,要等回國才能處理。

D-FORCE 3D印表機相關資訊

D-force 的印表機已停產多年,在網路上找到的資料

D-force 系列功能比較

D-FORCE V3.0+ 3D印表機D-FORCE 400 3D印表機
外型尺寸
(高x寬)
83 x 46 (cm)130 x 65 cm
重量22.5kg46kg
底板直徑300mm420mm
最大列印直徑260mm380mm
最大成型高度295mm500mm
控制系統32bit 控制板
校正系統平台自動校正
動力系統42型L40步進馬達57型L40步進馬達
傳動系統GT2 6mm同步帶+上銀線相容線性滑軌(MGN12H)GT2 6mm同步帶+上銀線相容線性滑軌(MGN15H)
校正系統平台自動校正平台自動校正+多點幾何平台校正
韌體Marlin 2.x
LCD控制面板12864 LCD顯示+旋鈕控制器圖型式LCD顯示

在露天找到的更詳細的比較表,借用一下。


這台應是初代 D400,重量三十幾公斤,對我來說實在好重,縱使藉助拉車,還是搬得很辛苦。

控制板是 MKS GV1.4,16位元 MCU,對我來說沒啥用,會換成 32位元的。57型步進馬達,真的好大一顆,整個機構,光買零件就要上萬吧。

生產 DForce 印表機的公司

YouTube 上找到的資訊,https://www.youtube.com/@triangle-lab6335/videos

-----------------
簡介

Triangle-lab was founded in 2014 to develop and manufacture delta-type 3D printers with a triangular shape, hence the name "Triangle-lab".
We now focus on developing and manufacturing extrusion and hot-end systems for desktop and industrial grade 3D printers.
Our continued innovation and R&D efforts bring high performance, high quality and affordable parts to the 3D printing community.
"Triangle-lab" "D-froce" are our registered trademarks.

Official website: https://www.trianglelab.net (這網頁還存活著,2024-08-28)
Official AliExpress Website: https://trianglelab.aliexpress.com/store/1654223
Facebook: https://www.facebook.com/Trianglelab.org
Twitter: https://twitter.com/Triangle_lab
Mail:sales@trianglelab.net       support@trianglelab.net
------------------

關於舊機器的資訊不多,不肯提供自家生產過的產品的訊息,不是很可靠的公司。

Klipper

參考 [分享] delta 列印機安裝klipper







2024年6月16日 星期日

類 UM2 3D 印表機,改鋁型材框架

Ultimaker 在 2011 創立,於 2013 發表 Ultimaker 2,簡稱 UM2,採用 crossed gantry,因而也稱為 CroXY 架構。在 2015 - 2018 左右,有許多 UM2 的仿製機。有一些新設計,可參考下列資訊。

相關資訊,並不多,而且有點複雜,實在不想照做。倒是接收了2台類 UM2 的機器,一台鹿頭科技出的,收到時,壓克力外框已破掉,無法修復。在網路找到改鋁擠框架的資訊,資訊還蠻完整的,就照著改。

改裝完成的樣子如上,和先前的樣子完全不一樣。但感覺比較穩,可以減少機體共振吧。因此也想把更早收到,已改 Klipper 和 mini voron 列印頭的珍妮印表機,也改成鋁型材框架。

材料準備

原來機器的零件規格數量,若有缺或老化,要添購。或當切鋁型材長度的參考。

光軸
  • X 光軸*2,D: 8mm,L: 337mm
  • Y 光軸*2,D: 8mm,L: 348mm
  • Z 光軸*2,D: 12mm,L: 339mm。淘寶拍賣資訊 - 標準版 338mm,加高版 438mm。珍妮印表機,500mm
  • Print_Head_Shaft_X,打印頭 X 光軸,D: 6mm,L: 320mm (珍妮只有312mm?)。珍妮印表機的 X/Y 移動光軸比較粗,為 8mm 光軸,兩端切削成 6mm直徑。
  • Print_Head_Shaft_Y,打印頭 Y 光軸,D: 6mm,L: 300.5mm。
軸承
  • 軸承 Ball Bearing F688-2RS,內徑 8mm,外徑 16mm
    • 微型薄壁法兰挡边小轴承 F688Z ZZ, F618/8,内径8mm, 外径16mm, 厚度5mm
  • Sintered_Bushing *4,石墨軸承,內徑 8mm,外徑 11mm,L: 30mm -- 8*11*30mm
  • Linear Bearing LM6LUU,內徑 6mm,外徑 12mm -- 這個直徑好像較小,要確認 --6*12*35mm 
  • Square Flanged Linear Bearing LMK12LUU,Z軸軸承,內徑 12mm,長度 57mm

打印玻璃,257mm*229mm*4mm,破了,要補買

spacer,间隔柱
  • 8.2x10x5 -- *2
  • 8.2x10x10 -- *5
  • 8.2x10x25 -- *1
皮帶
  • GT2 皮帶 (pitch 2mm), 100齒,長 200mm,寬 6.5mm, *2
  • GT2 皮帶 305齒,長 610mm *4

熱床支撐板 -- 305*255*3.5mm

熱床 -- 24V, 165W, 3.5 Ohm,240x257x1.5mm

1159 Z-Motor with Trapezoidal Lead Srew, 4 separate threads,即 4頭,8導程

1187 Trapezoidal Lead Nut,改 T8 消間隙 8導程螺母

改 2020铝型材

欧标2020L电泳,切割下列尺寸和數量, 

  • X: 308mm *6, 
  • Y: 334mm *6, 
  • Z: 標準版 395mm *4,加高版 500mm *4,珍妮印表機,560mm *4。

珍妮印表機的 Z軸鋁型材長度計算如下。

  • 標準版,395mm  - 338mm = 57mm。
  • 加高版,500mm - 438mm = 62mm。
  • 珍妮印表機,500mm + 60mm = 560mm。

Z 光軸及Z步進馬達,不要使用列印件固定。Z 光軸使用立式支撑固定座光轴支架,12mm。Z步進馬達使用 42步进电机固定片安装支架

M6*16 10.9级盘头内六角螺栓 圆头螺钉 圆杯螺丝 手用丝锥 手用丝攻 M6 铝型材垂直打孔器沉头孔穿孔连接开孔定位器 (extrusion drill guide )

Aluminum Extrusion Drilling Jig



2024年5月12日 星期日

Making a Chromecast receiver

買一個 ChromeCast,很便宜,但使用起來讓人超不爽的。在 3代之後,廣告超多,這也就算了,遙控器按一按就好。讓人抓狂的是手機連不上,按了連接後,電視沒反應。更扯的是,電視一直播廣告,手機的影片時間也在跑,它把廣告當成我要看的影片唬弄我。

不只是我討厭,很多人都不爽吧,因此有人想要自己搞 ChromeCast,只是 Google 不一定准,會卡掉。

Making a Chromecast receiver,不太知道這個的用法,它是根據 "an Android app called AirReceiverLite which can act as a Chromecast receiver"。

從Linux安裝Chromecast,用 Linux 連 ChromeCast。

interfect/castanet.sh,問題是要怎麼找到 reset 後的 CHROMECAST_IP?

https://www.expressvpn.com/blog/chromecast-factory-reset/

Cannot SET UP Chromecast on Linux

How to set up a Chromecast without logging in to Google Home?

在 Linux 上使用的方式,Linux 使用 VLC 投放媒體至 Chromecast

1. 可能的作法

A simple solution (2019-Mar-15) I used successfully is to:

  1. Download an older portable version of Chrome (not sure about direct links posting rules here, a search for "portable chrome 71 stable" should get you there
  2. Extract and run this portable version
  3. Navigate to chrome://cast
  4. Setup should work

2. 需要專業技巧的作法 

Chromecast gen 3

I followed this post: https://superuser.com/a/1692253

tldr:wget https://gist.githubusercontent.com/interfect/5f68381d55658d334e2bc4619d796476/raw/1d16ead908a92742d5f22231a2611242d673654f/castanet.sh

chmod +x castanet.sh

CHROMECAST_IP=192.168.0.100 WIFI_SSID="foobar" WIFI_PASSWORD="hackme" ./castanet.sh

make sure you have jq and nodejs installed or the script doesn't work.

NOTE: to get the initial chromecast IP you have to connect to it's wifi hotspot (ChromeCastXXXX) and then use wireshark on your laptop/desktop's wifi interface to see it. Filter for arp requests. There will only be 2 IPs; your wifi interface and the Chromecast. Use the IP for the Chromecast in the spot above.

參考 瞭解詳情:找不到裝置,相關敘述 "連上與 Chromecast、內建 Chromecast 的電視/揚聲器、Google Home 或具備助理裝置的電視/揚聲器相同的 Wi-Fi 網路。尋找與 GoogleHomeXXXX 或 ChromecastXXXX 類似的名稱。"


2024年5月7日 星期二

珍妮 3D 打印機主控板 20160428Ver1.35B

從網友那裡接收一台淘寶的珍妮類 UltiMaker 2 印表機,使用珍妮自己的主控板。在網路上完全找不到該主控板的相關資料,但因為它使用 32位元的 MCU,所以就留著一直想要怎麼才能把它拿來使用。

後來找到可在 STM32 上跑的 Forth,再透過 Forth 兼具 compile 和 interactive 的特性,慢慢整理各控制腳的資料。

上圖是主控板的正面。

上圖是主控板的背面。標示公司網站 www.jennyprinter.com,但無法連上該網站。板子的相關資訊 JPBoard,20160428Ver1.35B,NO.160801060B。搜尋這些關鍵字都沒有結果。


使用的 MCU 是 STM32F407VET6。MKS Monster8 也是使用這一顆 MCU,但 Monster8 可接 8個步進馬達。從版本編號來看,是 2016 年出的板子,當初買這板子應該也蠻貴的吧,因此一直捨不得丟,想著要怎樣才能使用它。

從電路板的外觀來看,這板子是參考 RAMPS 1.4 設計的,那兩顆自恢復保險絲 (PPTC) 是 RAMPS 1.4 才有的,而且後來版本的 RAMPS 的接線座也改了。

後來找到可在 STM32 上執行的 Forth,板子上也有 ISP 腳位,可以燒寫 Firmware。就透過 Forth 慢慢收集各個控制的對應的 MCU PIN 腳。

把控制腳,如步進驅動的 DIR,接上 LED 和 電阻,再用 Forth 程式對所有的 PIN 輪流送出幾個方波,看到那一個腳 LED 會閃。刪開始,測試一個控制腳要花比較長的時間,後面可以把已知的腳去除,就快多了。就這樣,大致把所有腳位都確認了。

連接 12864 LCD 

不太熟悉這個規格,參考 Anycubic kossel Delta 的 Klipper 設定檔。其型式為  -- "RepRapDiscount 2004 Smart Controller" type displays,lcd_type: hd44780。

下圖 fysetc 的 EXP1/EXP2 的圖示。

若只要用 LCD,使用到的腳為 reset,enable, d4, d5, d6, d7,encoder1, encoder2, click,5V,GND。SD 卡的控制信號就不要管了。

關於 kill 信號,fysetc 的說明「為了兼容某些主板,如 RAMPS1.4,FYSETC mini12864 設置了 RST(R3) 和 KILL(R4) 的可選擇電阻。目前,有些主板(S6/Spider)将 KILL 换成 5V,此時,請確認 mini12864 上 R4 處於空贴狀態,否则按下屏幕上的按钮會致使 5V 与 GND 短路,長时間操作會導致主板損壞。」MKS 的板子則是將 KILL 信號接到 3.3V。

所以,kill 不要接,也不要用,設定裡也不要設定。

改靜音驅動 TMC2209

為了相容於以前的 A4988 和 RAMPS,各家的電路略微的不同,但最後大致改得差不多。

TMC2209 採用單線的 UART。若要變成兩條線,此信號為 RX,串一個電阻後,當成 TX。早期的 TMC2209 遵循此作法,如 MKS,pin-4 為 pdn_uart,即 RX,串一個1K電阻連到 pin-5,當作 tx。但有的主板 rx 和 tx 的腳位反過來,因此不同家的驅動插到別家的主板,會不能用。

但後來各家的驅動都直接把 pin-4 和 pin-5 短路,不管插那一家的主板都可以用。只是在舊的主板上使用,要注意有的直接設定 A4988 為 16微步,亦即將 MS1~MS3 全部接到 VCC。必須將 MS3 的腳拔起來不要接,不然可能燒掉驅動。

另外,RAMPS 控制板的 pin-5 和 pin-6 是短路的。所以,pin-4, pin-5, pin-6 實質上是短路的。

至於這塊珍妮的主板,只要 MS1~MS3 的跳線不要接就好。

關於 Klipper 安裝設定

編譯 Klipper firmware 的注意事項,因電路設計問題,在 reset 之後,熱床和列印頭可能直接加熱,直到開機完成,才會關閉。

設定如上,因為板子上的 USB 插座是 UART1,沒辦法透過 USB 燒寫 firmware,所以不用 bootloader。communication interface 就選 UART1。

另外,"GPIO pins to set at micro-controller startup" 項目要加入 "!PA3, !PB6, !PB9, !PB8, !PC7, !PC6, !PB13",前面加 '!' 表示要將輸出設為 Low。這個設定是將 P12 接頭的輸出全部關掉,包括加熱器和風扇。

PCB 上驅動熱床的 MOSFET,明顯比較大顆,IRF1010ES,Vds: 60V,170W,Gate Threshold Voltage 2V~4V。但不知是那邊的問題,在開機沒輸出時,G的電壓為 5V左右,MOSFET 會完全導通,熱床電壓為 24V。但在 klipper 啟動熱床時,G的電壓為 3.3V左右,MOSFET 不會完全導通,接 LED燈條,電壓約 15V,FET 的 DS 壓降為 8V左右。接熱床則量不到電壓。HE0, HE1 的輸出則能正常運作。只能用 HE1 輸出,外接 MOSFET 來驅動熱床。HE0, HE1 的 MOSFET - IRLR7843,Vds: 30V, 140W,Gate Threshold Voltage 1.5V~2.3V

參考 IRF1010E N-Channel MOSFET: Datasheet, Pinout, Equivalent,有一些使用上的說明。





2024年4月25日 星期四

Klipper 的 TMC 驅動設定

很辛苦的把舊的 3D 印表機改成 TMC2209 的靜音驅動,發現 microstep 仍然只能設到 16,噪音無法減少多少,有點失望。

不想換主板,因為這台機器會不會繼續用都不確定,因為已有太多機器了。只好細讀相關資料,看能有多大的改善。

MCU 是 ATmega2560,調到 64 microstep,一執行 home 功能,就出現像上面的錯誤。

TMC2209 靜音驅動的考量

參考 TMC drivers

  • StealthChop:是一种使用 PWM 电压而不是电流来驱动电机的技术。结果在低速时几乎听不见。StealthChop 具有较低的步进速度限制,如果您需要更快地移动,您可能需要使用 spreadCycle 或配置混合模式。
  • SpreadCycle:是另一种步进模式。驱动器将使用四个阶段将所需的电流驱动到步进电机中。SpreadCycle 提供更大的扭矩。缺点是噪音水平略高。

兩種模式不要混用。低速時用 StealthChop,安靜。高速時用 SpreadCycle,較有力,較吵。

8 位元 CPU,如 Atmega2560,microstep 只能設到 16。使用 TMC 驅動的好處,是能透過 interpolation 降低噪音。但是 Klipper 的指引建議關閉 interpolation,使用 spreadCycle 或 stealthChop,其中 spreadCycle 為優先。截錄說明如下


The TMC driver interpolate setting may reduce the audible noise of printer movement at the cost of introducing a small systemic positional error. This systemic positional error results from the driver's delay in executing "steps" that Klipper sends it. During constant velocity moves, this delay results in a positional error of nearly half a configured microstep (more precisely, the error is half a microstep distance minus a 512th of a full step distance). For example, on an axis with a 40mm rotation_distance, 200 steps_per_rotation, and 16 microsteps, the systemic error introduced during constant velocity moves is ~0.006mm.

For best positional accuracy consider using spreadCycle mode and disable interpolation (set interpolate: False in the TMC driver config). When configured this way, one may increase the microstep setting to reduce audible noise during stepper movement. Typically, a microstep setting of 64 or 128 will have similar audible noise as interpolation, and do so without introducing a systemic positional error.

If using stealthChop mode then the positional inaccuracy from interpolation is small relative to the positional inaccuracy introduced from stealthChop mode. Therefore tuning interpolation is not considered useful when in stealthChop mode, and one can leave interpolation in its default state.




2024年4月23日 星期二

Anycubic Kossel 整理及安裝 Klipper

參考 Anycubic Kossel Klipper guide

設定檔,klipper/config /printer-anycubic-kossel-plus-2017.cfg

機器簡要資料

此機器一般稱為 Anycubic Kossel Linear Plus 3D printer。控制板為 YJYGR 的 TriGorilla,為 Mega2560 & RAMPS1.4 相容板。電源輸入為 12-24V,有些說可以到 35V。有不同的版本,如下圖的標誌中沒有版本註記,為 Trigorilla 1.0。


這一台機器,中文資料不多,倒是英文資料慢慢挖可以找到不少。

先放上來參考。

改靜音驅動

沒找到詳細的資料,只有查到 Amazon 的商品簡介,有一個是配 FYSETC 的 TMC2209 (V2.0) 驅動,PIN 不太一樣。要支援 TMC2209 靜音驅動,必須自己修改,有點囉唆,看看是否改用 MKS Gen l v2.1,不用煩惱。

要接 TMC2209,使用 UART mode,可參考 UART This! Serial Control of Stepper Motors With the TMC2208, Ramps 1.4 and Marlin

MKS 和 FYSETC 的 TMC2209,PIN4-RX,PIN5-TX。TMC2209 只有一個 PIN,即 PIN14 為 PDN/UART,用 20K 的電阻 pull down,接到插槽的 PIN4-RX。插槽的 PIN4 和 PIN5 之間可能是短路,或經 1K 電阻接在一起。假如 PIN5 是要連到一般 UART 的 TX,就必須用 1K 電阻,不能直接短路。如上述文章使用 Marlin,serial_tx_pin 和 serial_rx_pin 都用到。至於 Klipper 只需定義一個 uart_pin,就直接短路吧。

參考 FYSETC 的 Spider 2.3 的說明,它連到 PIN5-TX,所以 PIN4 和 PIN5 短路的話,就可以正常運作。


比對 A4988 的 PIN,PIN4-RESET,PIN5-MS3。假如沒跳線的話,那就要把 PIN4 和 PIN5 都斷開。

因為電路板已固定為使用 16 microstep,亦即 MS1, MS2, M3 都接高電位。RESET 那一腳則未直接接地或高電位。我使用的是 TMC2226,和 TMC2209 相容,可把它們當成一樣。確定驅動板的 PIN4-PIN5短路。

對板子做了一些改造。只會使用 UART mode,確定 MS1 和 MS2 永遠不會用到,直接把 PIN 拔掉。有很多網路的作法是把 PIN4, PIN5 往上推到正面,但正面有很大的散熱片,感覺很不可靠。我是把 PIN4 彎90度,剪短,焊引線。PIN5則不處理。以後用在其他支援靜音驅動的板子上,大部份都把 UART 接到 PIN5,只要把引線解焊,PIN 做一下絕緣即可。

另外,在廠家提供的控制板的電路圖或說明書,有些會把 PIN5 標成 CS。

在 TriGorilla 的板子上,有一排 5組 PIN 的預留焊點,標示 servo,可能是有其他用途。把驅動的 UART 信號連到這 5組 PIN 的控制信號即可。上圖只改了 X, Y, Z 軸的驅動。

TriGorilla 的板子有不同的版本,那 5組 PIN 對應的信號有些不同。像我使用的板子只有 TriGorilla 的標誌,沒有版本標示,那就是 1.0 版了。

建立及燒錄 Firmware

$ cd klipper
$ make menuconfig

[*] Enable extra low-level configuration options
    Micro-controller Architecture (Atmega AVR)
    Processor model (atmega2560)

$ make
..........
  Building out/compile_time_request.o
Version: v0.12.0-171-g2f6e94c9
  Linking out/klipper.elf
  Creating hex file out/klipper.elf.hex

$ ls /dev/serial/by-id/*
/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0

$ make flash FLASH_DEVICE=/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0

重新啟動系統。

Atmega2560 的 PIN 對照


2024年4月15日 星期一

ADXL345谐振测量 - 各種派

參考網址

此文件是依購買套件所提供的文件整理的,方便自己參考。

这是什么?

一种可用于减少打印中震纹(也称为重影或波纹)的技术。震纹是一种表面打印缺陷。


震纹是由打印机中的机械振动引起的,原因是打印方向的快速变化。请注意,震纹通常有机械原因:打印机框架刚性不足、皮带不紧或弹性太大、机械部件对齐问题、移动质量大等。如果可能,应首先检查和修复这些问题。

谐振补偿是一种开环控制技术,它创建一个命令信号来取消其自身的振动。谐振补偿需要一些调整和测量才能启用。除了震纹之外,谐振补偿通常会减少打印机的振动和晃动,并且还可以提高 Trinamic 步进驱动器的 StealthChop 模式的可靠性。

以下将提供 ADXL345 模块进行谐振测量的教程

第一步,材料准备

ADXL345 加速度传感器一块

必须采购如上图所示的模块,其他模块可能无法识别。

第二步,安装及接线

这是官方的接线图,不过研究下来其实 3.3V 和 GND 可以直接图中箭头指的这两个,这样就可以直接压一个 4×2 的插头一次性解决了。板子上應有 5V-3.3V 的降壓 IC,可以用 5V 的電源。

Orange PI Zero 3 的 IO 接線。

ADXL 345 SPI PIN 對應

  • MISO - DO  - SDO
  • MOSI - DI  - SDA
  • SCK  - SCK - SCL
  • CS   - CS

安装位置可以参考這個


安装有幾個要注意的点:

1)具体安装位置其实没有太大講究,毕竟这个模块作用只是测试,测试好后可以拆掉,但是一定要尽量靠近喷嘴。

2)ADXL345 板子上有 XYZ 的方向指向,但是按照资料好像说方向不一定非要和打印机的方向一致,但是每个轴必须平行,譬如 ADXL345 板子上的 Z 轴可以对着打印机的 X 轴,但是 Z 轴和 X 轴平行。(轴方向不需要一致这一点其实不是非常确认,如果有不同意见的可以反馈)

第三步,配置树莓派

硬件接好之后就可以试着软件的安装了。

因为Klipper需要通过树莓派的SPI针脚读取加速度传感器的数据,所以需要先将树莓派变成klipper的一块mcu板子,这样klipper才能读取到加速度传感器的数据。这一步在klipper官方的教程中是没有的,所以很多人这一步会忽略。

下面的命令都是在树莓派系统中执行,使用 putty 软件登录树莓派按步骤执行以下命令

需先安装系统依赖库

sudo apt install python3-numpy python3-matplotlib libatlas-base-dev libopenblas-dev

首先安装 Python 的科学计算库,用作分析计算共振数据(实际执行的pip路径需要根据你klipper的venv环境的实际安装的路径来定,绝大部分情况是home目录下的klippy-env中)

~/klippy-env/bin/pip install -v "numpy<1.26"

上面的指令會安裝失敗,只好改成下面的指令,可以成功安裝 numpy-1.26.0。

~/klippy-env/bin/pip install -v "numpy<=1.26"

将树莓派变成 klipper 的一块 mcu,复制官方提供的系统启动脚本,并设置成系统自动启动

cd ~/klipper/
sudo cp "./scripts/klipper-mcu-start.sh" /etc/init.d/klipper_mcu
sudo update-rc.d klipper_mcu defaults

systemd 的環境,執行下列指令安裝 service

sudo cp ~/klipper/scripts/klipper-mcu.service /etc/systemd/system/
sudo systemctl enable klipper-mcu.service

配置并编译树莓派的固件

cd ~/klipper/
make menuconfig

配置的控制器类型的时候,切记得要选择Linux process的



配置完成后按 Q 键保存退出,就可以编译固件了

按顺序运行以下命令

$ sudo service klipper stop
$ make flash
  Flashing
  Installing micro-controller code to /usr/local/bin/
    => 檔名為 /usr/local/bin/klipper_mcu
$ sudo service klipper start
$ sudo usermod -a -G tty pi  (pi 為安裝 klipper 的普通使用者,依自己選擇修改,如 mks)

或者執行 sudo sh ./scripts/flash-linux.sh,也可以安裝。

树莓派必須再執行 raspi-config 打开的SPI的接口。其他各家相容的 pi,依相關說明做設定。

如 Orange Pi Zero3,修改 /boot/orangepiEnv.txt,加上 spi1 的 overlay 設定。

 ...
rootfstype=ext4
overlays=spi1-cs1-spidev
usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u

重開機後,就會出現 /dev/spidev1.1,因為 Orange Pi Zero3 的 IO 較少,只能用一個 spi port,假如使用 spi 連接 LCD,此時必須先將 LCD 取消掉。

Orange Pi Zero 3 無法啟動 klipper_mcu

無法啟動 klipper_mcu.service,沒有 /tmp/klipper_host_mcu 檔案,查看詳細的 systemctl log 如下。

 $ journalctl -u klipper-mcu | more
Oct 08 23:32:09 orangepizero3 systemd[1]: Started klipper-mcu.service - Starts the MCU Linux firmware for klipper on startup.
Oct 08 23:32:09 orangepizero3 klipper_mcu[615]: Got error -1 in sched_setscheduler: (1)Operation not permitted
Oct 08 23:32:09 orangepizero3 systemd[1]: klipper-mcu.service: Main process exited, code=exited, status=255/EXCEPTION
Oct 08 23:32:09 orangepizero3 systemd[1]: klipper-mcu.service: Failed with result 'exit-code'.
Oct 08 23:32:15 orangepizero3 systemd[1]: klipper-mcu.service: Scheduled restart job, restart counter is at 1.
Oct 08 23:32:15 orangepizero3 systemd[1]: Stopped klipper-mcu.service - Starts the MCU Linux firmware for klipper on startup.
Oct 08 23:32:15 orangepizero3 systemd[1]: Started klipper-mcu.service - Starts the MCU Linux firmware for klipper on startup.
Oct 08 23:32:15 orangepizero3 klipper_mcu[1249]: Got error -1 in sched_setscheduler: (1)Operation not permitted

參考下列說明,Klipper 討論 Orange pi zero 3 with ADXL,以及  Armbian kernel & Klipper host mcu: “Got error -1 in sched_setschedule”

執行下列指令。
$ sudo sysctl -w kernel.sched_rt_runtime_us=-1
$ echo "kernel.sched_rt_runtime_us = -1" | sudo tee /etc/sysctl.d/10-disable-rt-group-limit.conf

再重新啟動,即可成功啟動。

第四步,配置Klipper

在网页操作界面中打开Klipper的配置文件printe.cfg,在合适的地方加入下面的配置代码

[mcu rpi]
serial: /tmp/klipper_host_mcu

[adxl345]
cs_pin: rpi:None

[resonance_tester]
accel_chip: adxl345

probe_points:
    150,150,20  # 这个地方建议配置成热床的中间(此150参数配置为300热床)

MKS-Pi 的設定

[mcu rpi]
serial: /tmp/klipper_host_mcu

[adxl345]
cs_pin: rpi:None
spi_bus: spidev0.2

Fly-Pi 的設定

[mcu host]
serial: /tmp/klipper_host_mcu

[adxl345]
cs_pin: host:None
spi_bus: spidev1.1

配置完成后重启一下Klipper

在控制台中输入以下命令


ACCELEROMETER_QUERY 这个命令是查询加速器的参数,如果前面的软硬件安装正常的话,就会收到返回的加数据传感器参数,类似于下面内容……如果返回其他则可能是接线问题或adxl345模块问题

.....Recv: // adxl345 values (x, y, z): 470.719200, 941.438400, 9728.196800...

第五步,测试加速度

开始测试前,先把打印机的加速度配置调大(这个测试完之后可以还原回去)码

[printer]
max_accel: 7000
# max_accel_to_decel: 7000 # 停用
# minimum_cruise_ratio: 0.5  # 改用這個, default 0.5

如果你之前有配置过input_shaper的功能,需要先关掉之前配置好的参数

SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0

然后就开始可以测试共振了,比较省事的就是直接用自动测试配置命令

SHAPER_CALIBRATE

测试的时候,刀头会从 0MHz~120MHz 震动,逐渐测试 x轴和 y轴数据,期间声音会逐渐增大,如果机子组装过程没有太大问题的话,机子不应该会有太剧烈反应(如果有太剧烈的反应建议检查组装过程)

或手動分開執行。若不指定 AMPLITUDE,Klipper 通常會使用預設值(通常為 5 毫米或 10 毫米,取決於您的 Klipper 版本或配置)

TEST_RESONANCES AXIS=X 
TEST_RESONANCES AXIS=Y 
# M112 太劇烈的話,緊急停止

測試頻率,在 5Hz ~ 133Hz 之間。

測試後,會產生 /tmp/resonances_x_*.csv and /tmp/resonances_y_*.csv。用下列指令產生圖檔。

~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png
~/klipper/scripts/calibrate_shaper.py /tmp/resonances_y_*.csv -o /tmp/shaper_calibrate_y.png

完成测试后会进行一下计算,然后会显示出x轴和y轴推荐的配置方法和配置值,你可以根据这个配置方法和值手工配置 input_shaper 参数,类似这种

[input_shaper]
shaper_type_x = 3hump_ei
shaper_freq_x = 52.4
shaper_type_y = 2hump_ei
shaper_freq_y = 37.5

不过也能直接使用

SAVE_CONFIG

命令直接保存进配置文件

保存完毕后需要回到 printe.cfg 配置文件中,拉倒最底部可以找到被注释的内容,如下

#*# [input_shaper]
#*# shaper_type_x = mzv
#*# shaper_freq_x = 58.4
#*# shaper_type_y = mzv
#*# shaper_freq_y = 44.2

整个复制,替换原来的参数,并取消注释,最后保存并重启即可



網誌存檔