2022年11月15日 星期二

CoreXY 3D 印表機改機

 為了印 80%鍵盤的外殼,不要拆分列印,把 300x300 的列印範圍改成 400x250。改這個尺寸是因為淘寶只找得到這個尺寸。

控制程式改用 Klipper,為此多買了 MKS pi 當控制器,也多買了一個 MKS Gen-L 2.0,再把步進馬達控制器改成 TMC 2109,可以使用 UART 控制。

雙Z軸,可以使用 Bed Screws Helper、Bed Screws Tilt adjust Helper、Z Tilt 來協助調整列印平台的螺絲以及兩邊Z軸的高度。參考  Klipper -- Configuration reference 及 Klipper -- G-Code commands。


參考 TMC drivers,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.

stealthChop 力矩較小較不精確,但較安靜。It is recommended to always use "spreadCycle" mode (by not specifying stealthchop_threshold) or to always use "stealthChop" mode (by setting stealthchop_threshold to 999999). Unfortunately, the drivers often produce poor and confusing results if the mode changes while the motor is at a non-zero velocity.


購買清單及報價 (RMB) 如下

  1. Z軸的鋁板 x2 和轴承 x4,共58元
  2. X軸線軌,558mm*1,滑塊 *1,共72元
  3. 2020 鋁材,長 575mm*5,共50元
  4. 1020 鋁材,長 575mm*4,共30元
  5. 皮帶 10米,3元/米
  6. 运费,15元




2022年11月2日 星期三

Arch Linux - xrdp 無法啟動 xfce4

Arch Linux - xrdp 無法啟動 xfce4,錯誤訊息包括 "unable to contact setting server","could not connect: connection refused","could not connect: no such file or directory"。

後來隨意測試,使用 lxqt 可以登入,在 terminal 輸入 startxfce4 後,原來是無法連接 /tmp/dbus-xxxxxxx。

找了一些解決定辦法,最後在 ~/.xinitrc 加入下面的指令,就成功執行了。

exec dbus-launch --sh-syntax startxfce4


2022年10月26日 星期三

ThinkPad 電池

 用一百和網友買來的舊電池

---
$ upower -i /org/freedesktop/UPower/devices/battery_BAT0
  native-path:          BAT0
  vendor:               SANYO
  model:                42T4861
  serial:               11028
  power supply:         yes
  updated:              2022年10月26日 (週三) 23時24分25秒 (21 seconds ago)
  has history:          yes
  has statistics:       yes
  battery
    present:             yes
    rechargeable:        yes
    state:               pending-charge
    warning-level:       none
    energy:              20.4573 Wh
    energy-empty:        0 Wh
    energy-full:         21.0456 Wh
    energy-full-design:  62.16 Wh
    energy-rate:         0 W
    voltage:             12.408 V
    percentage:          97%
    capacity:            33.8571%
    technology:          lithium-ion
    icon-name:          'battery-full-charging-symbolic'
  History (charge):
    1666797865 0.000 unknown
  History (rate):
    1666797865 0.000 unknown
----------

-------------



2022年10月19日 星期三

VMware安裝Android x86虛擬機

 https://www.cnblogs.com/Summer6/p/13696468.html

https://ppfocus.com/0/mi90110ab.html

https://blog.csdn.net/qq_29667985/article/details/106299924

2022年10月10日 星期一

Prusa i3 3D 印表機 DIY

先前買了一台 300X300 的Ender 3 Max,聽說 CoreXY 的3D印表機比較好,又DIY 了一台 300x300 的  CoreXY 的3D印表機。但面積實在好大,熱床要升到設定的溫度要花蠻久的時間,就想買一台小一點的,買了下面這台,Prusa i3 clone 3D 印表機。大約折合台幣 4,500元。組裝好以後,小後多,只用一個 12V的電源。那台 Ender 3 Max 打算送我弟弟玩了。


規格

因為淘寶的產品已下架,把原來的網頁說明留存下來當參考

  • X軸和Y軸升級為線軌;擠出機升級為Titan/泰坦擠出機;打印頭升級為近程MK8打印頭,支持打印 TPU 軟性耗材;性能更為穩定,打印質量更高。


組裝

在組過 CoreXY 後,組這台就變得相對簡單,大約一個晚上基本上就組好了。除了有一些不確定的地方,另外,賣家給的百度網盤連結也是 CoreXY 的連結,又花了一些時間聯繫,但結果還是一樣。

安裝說明沒有說斷料檢測該接那裡,但不接是不會動作的。還好它用的控制板和先前的 CoreXY 是一樣的,照著接上就可以印了。它的熱床直接接在控制板上的輸出,怕把控制板燒掉,把先前買來要改 CoreXY 的 MOS控制板拿來用。又接了個 LED 當指示燈,可以看熱床的加熱情形。

基本上,裝好就可以順利使用。只是印ABS還是會黏不住,還是用老方法,塗一堆口紅膠,就可以正常列印。可能是皮帶沒有調緊,列印成品算普通,或是不太好吧,但終究能用,就這樣繼續往前走吧。

剛裝好,Z軸往下移,會有很大的異音,想了好幾天,仔細觀察,發現兩邊Z軸螺桿和光桿並不平行,上面較寬,下面較窄。仔細的看個結構,再計算各構件之間的相關位置,還有構件本身的尺寸,確定各個固定點的位置。把固定螺絲鬆開,調整位置,再重新固定,情況就好很多。

在DIY 的過程中,發現問題,修正問題,想如何做一些改進,然後動手。從這些過程中,慢慢學習累積了不少經驗。

改 micro SD卡

在淘寶買的散裝DIY 3D印表機,顯示器是 MKD TFT24,使用大大的 SD卡,一直想把它換成TF卡,也就是MicroSD。
搜集比對資料,確認接腳定義完全一樣。買來轉接板,用排線焊好後,很高興,測試功能正常。
最後就用熱熔膠把轉接板直接粘在SD卡座上。











2022年10月5日 星期三

Voron 2.4 r2 設定調整

相對於 Marlin 的手動調整,Klipper 的調整就很不直覺。必須看各種教材,瞭解 printer.cfg 中各種參數的意義,有種又回到設定網站伺服器的感覺,有時為了解決一個困擾,要爬好久的網路,結果不過就是改變一個設定,真的是說破不值錢。在調整的過程中,還會一直不停的讓列印頭去撞列印平台,真慘。

到了最後想要開始印,但調了好久,列印頭還是停在半空中,從半空中開始印。後來又回頭來仔細研讀一下 Z Endstop Configuration 這一段說明。

後來發現死在這裡 protoloft / klipper_z_calibration,這是額外加裝的。唉,要讀的資料實在太多,而且有點零散。

一些指令

  • STEPPER_BUZZ STEPPER=stepper_z,讓 Z 步進馬達前後轉動 10次,確認馬達接線正確
  • QUERY_ENDSTOPS,回傳限位開關狀態,例如 x:open y:TRIGGERED z:open
  • Query_Probe,回傳 klicky probe 的狀態,例如 probe: TRIGGERED
  • PID_CALIBRATE HEATER=heater_bed TARGET=60
  • PID_CALIBRATE HEATER=extruder TARGET=170
  • M106 S127, 設定 PCF 速度 50%。數值 0~255
  • G91, G1 E50 F60, 擠出機測試
  • FORCE_MOVE STEPPER=stepper_z DISTANCE=10 VELOCITY=10
  • SET_KINEMATIC_POSITION X=0 Y=0 Z=0 => G0 Z10 F600
  • SCREWS_TILT_CALCULATE,熱床調平

ToolHead 接頭

列印頭常常拆裝,或換主板,都要確認連線才能完成,把接頭放在這,方便參考。

手動校準距離 switch_offset

透過 Klippy probe 與噴嘴和 endstop 的相對位置,可以自動算出噴嘴的位置,完全不用手動調平。

參考 protoloft / klipper_z_calibration 的 How To Test It,使用 G-code 指令慢慢測試,來校準 switch_offset。依據 Omron D2F-5 的規格計算或測量得到的 switch_offset,並不太準,間隙可能過大或過小。使用 G-code 指令調到噴頭和平台的距離約等於一張紙的厚度。

----------------------
> CALIBRATE_Z
> Z-CALIBRATION: probe=3.093 - (switch=2.370 - nozzle=-0.267 + switch_offset=0.466) --> new offset=-0.010000
> GET_POSITION
> mcu: stepper_x:17085 stepper_y:15625 stepper_z:-51454 stepper_z1:-51454 stepper_z2:-51454 stepper_z3:-51454
> stepper: stepper_x:552.500000 stepper_y:-47.500000 stepper_z:10.022500 stepper_z1:10.022500 stepper_z2:10.022500 stepper_z3:10.022500
> kinematic: X:252.500000 Y:300.000000 Z:10.022500
> toolhead: X:252.500000 Y:300.000000 Z:10.021472 E:0.000000
> gcode: X:252.500000 Y:300.000000 Z:9.990000 E:0.000000
> gcode base: X:0.000000 Y:0.000000 Z:-0.010000 E:0.000000
> gcode homing: X:0.000000 Y:0.000000 Z:-0.010000

## 調到紙稍微卡
> G90
> G0 Z5
> G0 Z3
> G0 Z1
> G0 Z0.5
> G0 Z0.3
> G0 Z0.1
----------------------

參考 protoloft / klipper_z_calibration 的 How To Use It 的 Command CALCULATE_SWITCH_OFFSET 段落, 可以用 CALCULATE_SWITCH_OFFSET 計算 switch_offset. 

--------------------------
先執行 home, CALIBRATE_Z, 再將噴頭降到 0.1 的位置, 再執行 CALCULATE_SWITCH_OFFSET

12:19:13 // CALCULATE_SWITCH_OFFSET: switch_offset=0.500 - (current_z=0.100 - z_offset=0.167) --> new switch_offset=0.567
--------------------------

要調到 Z 為 0 時,紙稍微卡,即間隙差不多為 0.1mm。再和原來的數值做比較,修改 switch_offset。switch_offset 值增加,噴頭降低。

要用絕對座標,可以看到下指令的 Z 的座標值,和顯示的不同。因此,換不同厚度的列印板,只要跑過 CALIBRATE_Z,就可以直接印,不用再手動調平。

z_virtual_endstop

雖然,使用 CALIBRATE_Z,換噴嘴和列印平台,都不用再校正。但是噴嘴有殘膠時,會影響噴嘴接觸 endstop 的間隙。一定要降溫到膠軟化但不會流動的溫度,把噴嘴清乾淨,實在有點累。使用 z_virtual_endstop,可以用不同厚度的列印平台,但換噴嘴的話,要重新校正。終究很少換噴嘴,還是用 z_virtual_endstop 比較方便。

使用 z_virtual_endstop,先使用紙畫點,來決定 x 和 y 的 offset。然後再用 PROBE_CALIBRATE 來調整 z_offset。

先把 probe 移到要測間距的位置,然後執行 PROBE_CALIBRATE 指令,透過畫面,把噴嘴移到間隙為一張紙的距離。


流量測試

參考 Determining Maximum Volumetric Flow Rate。流量的大小決定列印的速度。

These approximate values assume a standard 0.4mm brass nozzle.

HotendFlow Rate (mm3/s)
E3D V611
E3D Revo11
Dragon SF15
Dragon HF24
Dragonfly BMO13
Rapido HF24
Mosquito20
Mosquito Magnum30


2022年9月30日 星期五

使用電腦執行 Klipper 控制 MKS Gen_L V2.1

想使用 docker 來測試 klipper,參考 https://github.com/mkuf/prind。


那個 type-B 的 USB 接頭實在很煩,線又很短,有空來換成 type-c 的接頭吧。連上後,使用 dmesg 顯示訊息如下。

------------------------------------
[   55.491549] usb 2-1.1: new full-speed USB device number 4 using ehci-pci
[   55.601246] usb 2-1.1: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice=81.34
[   55.601265] usb 2-1.1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[   55.601272] usb 2-1.1: Product: USB Serial
[   55.601901] ch341 2-1.1:1.0: ch341-uart converter detected
[   55.606120] usb 2-1.1: ch341-uart converter now attached to ttyUSB0
-----------------------------------

使用 Gentoo,必須設定和編譯 Kernel,新增 module「USB Winchiphead CH341 Single Port Serial Driver (USB_SERIAL_CH341)」。

--------------------
mks@mkspi:~/klipper$ make flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
  Flashing out/klipper.elf.hex to /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 via avrdude

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9801 (probably m2560)
avrdude: reading input file "out/klipper.elf.hex"
avrdude: writing flash (30148 bytes):

Writing | ################################################## | 100% 4.83s

avrdude: 30148 bytes of flash written
avrdude: verifying flash memory against out/klipper.elf.hex:
avrdude: load data flash data from input file out/klipper.elf.hex:
avrdude: input file out/klipper.elf.hex contains 30148 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 3.68s

avrdude: verifying ...
avrdude: 30148 bytes of flash verified

avrdude: safemode: Fuses OK (E:FD, H:D8, L:FF)

avrdude done.  Thank you.

--------------------

從 MKS 的文件找到的 PIN 腳圖,把用到的 PIN 腳改成 Klipper 使用的標號。




網誌存檔