2024年3月6日 星期三

Fly-3d pi 使用

3D 印表機要裝 Klipper,必須要多一個上位機,這個可以用各種不同相容的 pi 系統。先前買套件附的是 MKS PI,這次想找不同的更便宜的方案,試試看 Mellow-3D 出的 Fly pi。

先說一下使用後的想法,針對其包好的程序,說明詳細,提共各個板子的 Klipper 設定。但是,若想進一步了解板子的技術規格,幾乎找不到,甚至連板子外形和螺絲孔位的尺寸資料都沒有,對於想自己動手改的人來說,非常不便。

相對的來說,MKS 的文件算是比較有條理和完備,價格也不算太貴。另外,蜘蛛的板子價格較貴,但文件是一團混亂。

LCD 規格

文件很糟糕,相關的使用說明要到處收集,才能有一個全體的認識。在淘寶的購物網頁有比較詳細的說明。

解析度 480x320。

電容屏,板子上多一個晶片,選擇開關切換到 Cap,使用 16P 的 FPC 排線,只能接 V2 接口,而且要搭配 G2T 擴展板。螢幕使用 SPI 界面,觸控使用 I2C 界面。

電阻屏,選擇開關切換到 Resi,3 個接口都可以使用。使用 V1 接口,用 14P 的 FPC 排線。使用 V2 接口,要搭配 G2T 擴展板,用 16P 的 FPC 排線。板子上鈄線框框就是少掉的晶片。

FPC 排線,間距 0.5mm,長度 400mm。

從 fly 的 git 找到的接腳定義。

配套的 LCD 螢幕,LCD 的驅動是 ILI9488。觸控使用 XPT2046 ,是 TI 的 ADS7843 的相容 IC,可用 ADS7843 的驅動程式,但 mellow 使用 ads7846 的驅動。

驅動的設定可參考 FLY-TFT/rpi-overlays /fly-tft-v2.dts

反編譯 overlay 的 dtb,整理連接的 IO,

--------------
Fly PI 40 pin <-->  LCD 11 pin
Pin 23 - PH6  <-->  SPI1 SCK       & T_CLK
Pin 21 - PH8  <-->  SPI1 SDO<MISO> & T_DO
Pin 19 - PH7  <-->  SPI1 SDI<MOSI> & T_DIN
Pin 11 - PG7  <-->  DC
Pin 12 - PG6  <-->  RESET
Pin 8  - PA0  <-->  LED
Pin 13 - PA13 <-->  SPI1 CS    
Pin __ - PA19 <-->  Pin 9  T_CS
Pin 16 - PA1  <-->  Pin 10 T_IRQ
Pin 1  - 3.3V
Pin 6  - GND
--------------

開機及連線

Mellow 官方帳號 fly (或 root) /mellow,沒有網路時,可以使用 terminal 連線。

# minicom -b 115200 -D /dev/ttyUSB0

經過測試,不論是 MKS PI 或 Fly pi,或者說是執行 Armbian 的 pi,我找到便宜又能直接用的 wifi USB 卡是 Comfast 的 CF-WU810N,系統抓到使用的 driver 是 rtl8xxxu。

因為環境特殊,要用手動設定 IP,指令如下

# sudo nmcli con add con-name "Samsung-A50-cc" \
   type wifi ifname wlan0 \
   ssid "Samsung-A50-cc"  -- \
   wifi-sec.key-mgmt wpa-psk \
   wifi-sec.psk "wifi-password" \
   ipv4.method manual \
   ipv4.address 10.161.86.143/20 \
   ipv4.dns 8.8.8.8,8.8.8.4 \
   ipv4.gateway 10.161.80.1 \
   connection.autoconnect yes

檢視 CPU 溫度

$ cat /sys/class/thermal/thermal_zone0/temp 
36490
$ cat /sys/class/thermal/thermal_zone1/temp 
38991

大約 40度,相對於 MKS PI 大約在 70度,溫度真的很低。


編譯 Armbian image 

參考

因為沒有 USB wifi 網卡的驅動,而這個網卡在 MKS pi 是可以用的。比較差異,發現 fly-3d 提供的 image 是版本比較舊的。因此,試試看自己編譯 armbian 的 image。

因為 armbian 中沒有 fly-3d 板子的設定,必須打上網友提供的 patch。

# 下載 patch 檔
$ git clone https://github.com/reemo3dp/mellowfly-geminipi-armbian

# Check out armbian's build repository
$ git clone https://github.com/armbian/build/ armbian
$ cd armbian/

# Apply patches from this repository
$ git am ../mellowfly-geminipi-armbian/patches/*.patch

# Compile ubuntu jammy with default kernel config
$ ./compile.sh BOARD=mellowflygeminipi BRANCH=current RELEASE=jammy BUILD_MINIMAL=no BUILD_DESKTOP=no KERNEL_CONFIGURE=no INSTALL_HEADERS=yes

接下來就可以依據官方的文件,使用 compile.sh 建立 image 了。

其中,linux-complete.git.tar 超過 2.5GB,要下載很久,可以到目錄 armbian/cache/git-bundles/kernel/linux-complete.git.tar.oras.pull.tmp,看看下載的進度。不過,在 docker 下編譯失敗後,改在磁碟空間比較小的 VM 上編譯,則只會下載較小的 share 版本。

選擇 standard,image 約 2.4GB,改選 minimal,image 約 1.4GB。但是使用 minimal 的 image,要編譯 wifi 的 module,還要補裝好多東西,試了之後,還是改回 standard 吧。

經過幾次的測試後,比較好的版本是 https://github.com/lwfinger/rtl8188gu,可以順利的編譯完成安裝。

下載的 image,只能用 Win32DiskImager 來寫入 SD 卡,用 balenaEtcher 則會在驗證時失敗。但是自己建的 image,就可以用 Win32DiskImager 來寫入 SD 卡了。

無線網卡的安裝

無線網卡,是比較麻煩的部分,要找到 Linux 有支援的才行,這算是一種冒險吧。

在淘寶可以找到在 Windows 下免裝驅動程式的 USB 網卡,但有很多在 Linux 下很難裝起來。先前有失敗的例子,買來在 MKS PI 無法驅動。這次就找 MKS PI 附的同型網卡,COMFAST 的 CF-WU816N,結果還是不行,但還好後來解決了。

試了幾個,https://github.com/lwfinger/rtl8188gu 是比較新的,不用修改東西就能成功編譯安裝。在編譯時,可能會出現 "No rule to make target 'arch/aarch64/Makefile'" 的錯誤,要加上 ARCH 的選項,即 "make ARCH=arm64"。

$ git clone https://github.com/lwfinger/rtl8188gu
$ cd rtl8188gu
$ make ARCH=arm64
$ sudo make install
$ sudo depmod -a
$ sudo modprobe 8188gu

usb 網卡默認為 u盤模式。要用 usb_modeswitch 切換其模式。執行一次後,就可以保持此結果。

$ lsusb
Bus 009 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 114: ID 0bda:1a2b Realtek Semiconductor Corp. RTL8188GU 802.11n WLAN Adapter (Driver CDROM Mode)

# apt install usb-modeswitch 
# usb_modeswitch -KW -v 0bda -p 1a2b
Take all parameters from the command line


 * usb_modeswitch: handle USB devices with multiple modes
 * Version 2.6.1 (C) Josua Dietze 2017
 * Based on libusb1/libusbx

 ! PLEASE REPORT NEW CONFIGURATIONS !

DefaultVendor=  0x0bda
DefaultProduct= 0x1a2b

StandardEject=1

Look for default devices ...
  found USB ID 1d6b:0001
  found USB ID 1d6b:0002
  found USB ID 1d6b:0001
  found USB ID 0bda:b711
   vendor ID matched
  found USB ID 1d6b:0002
  found USB ID 1d6b:0001
  found USB ID 1d6b:0002
  found USB ID 1d6b:0001
  found USB ID 1d6b:0002
  found USB ID 1d6b:0002
 No devices in default mode found. Nothing to do. Bye!

~# lsusb
Bus 009 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 054: ID 0bda:b711 Realtek Semiconductor Corp. RTL8188GU 802.11n WLAN Adapter (After Modeswitch)

安裝好了之後,還要重裝 firmware。

[  299.156391] usb 3-1: new high-speed USB device number 3 using ehci-platform
[  299.313341] usb 3-1: New USB device found, idVendor=0bda, idProduct=b711, bcdDevice= 2.00
[  299.313369] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  299.313381] usb 3-1: Product: 802.11n WLAN Adapter
[  299.313391] usb 3-1: Manufacturer: Realtek
[  299.313400] usb 3-1: SerialNumber: 00E04CB82101
[  299.361219] usb 3-1: RTL8710BU rev A (SMIC) romver 1, 1T1R, TX queues 3, WiFi=1, BT=0, GPS=0, HI PA=0
[  299.361255] usb 3-1: RTL8710BU MAC: e0:e1:a9:99:33:d9
[  299.361268] usb 3-1: rtl8xxxu: Loading firmware rtlwifi/rtl8710bufw_SMIC.bin
[  299.361359] usb 3-1: Direct firmware load for rtlwifi/rtl8710bufw_SMIC.bin failed with error -2
[  299.361377] usb 3-1: request_firmware(rtlwifi/rtl8710bufw_SMIC.bin) failed
[  299.361389] usb 3-1: Fatal - failed to load firmware
[  299.361433] rtl8xxxu: probe of 3-1:1.0 failed with error -11
[  299.361548] RTW: 
               usb_endpoint_descriptor(0):
[  299.361556] RTW: bLength=7

..........


$ sudo apt install --reinstall linux-firmware
Recommended packages:
  firmware-sof-signed
The following packages will be REMOVED:
  armbian-firmware
The following NEW packages will be installed:
  linux-firmware
0 upgraded, 1 newly installed, 1 to remove and 0 not upgraded.
Need to get 266 MB of archives.

.......
[ 2055.140613] usb 3-1: USB disconnect, device number 4
[ 2055.419081] usb 3-1: new high-speed USB device number 5 using ehci-platform
[ 2055.575985] usb 3-1: New USB device found, idVendor=0bda, idProduct=b711, bcdDevice= 2.00
[ 2055.576015] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2055.576027] usb 3-1: Product: 802.11n WLAN Adapter
[ 2055.576036] usb 3-1: Manufacturer: Realtek
[ 2055.576045] usb 3-1: SerialNumber: 00E04CB82101
[ 2055.625487] usb 3-1: RTL8710BU rev A (SMIC) romver 1, 1T1R, TX queues 3, WiFi=1, BT=0, GPS=0, HI PA=0
[ 2055.625522] usb 3-1: RTL8710BU MAC: e0:e1:a9:99:33:d9
[ 2055.625535] usb 3-1: rtl8xxxu: Loading firmware rtlwifi/rtl8710bufw_SMIC.bin
[ 2055.625880] usb 3-1: Firmware revision 16.0 (signature 0x10b1)
[ 2057.333949] rtl8xxxu 3-1:1.0 wlxe0e1a99933d9: renamed from wlan0

對了,使用 minimal 的 image,也無法重裝 firmware,這是放棄的原因之一,反正 SD 卡的空間也很大。

要設定網卡,可安裝 network-manager,其將安裝 nmtui,即可使用 nmtui 來設定網卡,設定資料在重新開機後仍能保存。

安裝 Klipper

接下來只要參考 https://github.com/dw-0/kiauh 的說明,就可以很容易的安裝 Klipper。


沒有留言:

張貼留言

網誌存檔