練習的作品,銑刀工具盒。材料 婆羅洲鐵木。
尺寸圖
刀具設定,只用一把雙刃平底銑刀,刃徑 4mm,刃長 20mm,柄徑 4mm,長度 48mm。
因為 FreeCAD 無法在 operation 裡設定轉速和進給,所以同一把刀,不同轉速和進給都建一個 tool。如下圖。
銑切摘要
在 AI 的協助下,大約花了3天的時間,把板子裝上最新的 Armbian OS。啟動後的畫面如下。
這塊主板上的標示為 "Raise3d Controller v2.0",自己 Google 找不到相關的資料,但 Gemini 就有,只能靠它了。
原來的系統是 Yocto,用在嵌入式系統中。在確認新的 Armbian OS 可以成功啟動後,把原來的 emmc 備份後,就整個刪除,只留 uboot 的部分。
最初,藉著 AI 的協助,進入原系統,修改密碼。因為能夠進入舊系統,在後來啟動 Armbian 上,也很有幫助。
這是我第一次進入 uboot,以往從來不知在啟動時,按任何鍵,就能進入 uboot,因為那時機,可能不到 5秒。最主要的是,進到 uboot 後,也不知能幹嘛。
因為這個舊 uboot 沒有支援 ext4,所以要將 SD 另外切出 FAT 格式的 boot partition,然後將開機所需的檔,放在這個 partition。
到 Armbian 的 SoC: i.MX 6 網頁,下載 image。沒有為這塊板子建的 image,可下載 Cubox-i 的 image。
必要時,要用舊系統開機,如確定原本的設定,可以使用備份的 image,依上述步驟,建立開機的 SD卡。
進入 uboot,能指定開機裝置,載入 kernel image,ramdisk image,dtb 檔,然後就能用 ramdisk 開機。ramdisk 開機後,就能執行 linux 的指令。若無法正常開機,如缺少需要的 module,可以重包 ramdisk image。
設備樹可以用 imx6q-sabresd.dtb。但是下載的 image,uInitrd 中,缺少啟動 mmc 裝置的 module。所以把 uInitrd 展開後,加入所需的 module 後,再重新打包。
缺少的 module,包括 mmc/core/mmc_block.ko,以及 mmc/host 目錄下的 sdhci.ko,cqhci.ko,sdhci-pltfm.ko,sdhci-esdhc-imx.ko。
確認可從 SD 開機後,再把原來 EMMC 上的 root partition,format 成 ext4 格式,再用 rsync 把檔案都複製到 emmc 上。然後修改 boot 資料,即可順利自動啟動。
改用
修改 /etc/netplan/armbian.yaml,將 renderer 改為 NetworkManager。
移除 systemd-networkd-wait-online.service,不然沒連網路線時,開機要等 3分鐘。
收了一台 2017 年的 Raise3D N2 3D 印表機,拆下的主板。
原登入資訊,Poky (Yocto Project Reference Distro) 1.7 imx6qdlsolo ,在 Gemini AI 的協助引導之下,修改 root 密碼,成功進入系統。
重開後,看到 U-Boot 訊息(Hit any key to stop autoboot: 0)就代表你已經掌握了這台機器的「生殺大權」。既然不知道 Linux 層級的帳號密碼,我們可以繞過登入程序,直接從 U-Boot 進入 Single User Mode 來重設密碼。
1. 進入 U-Boot 指令模式
將板子重啟(斷電再通電)。
在看到 Hit any key to stop autoboot 倒數到 0 之前,趕快在鍵盤按下 任意鍵(通常是 Enter 或空白鍵)。
如果成功,提示字元會變成 MX6-SabreSD>(或是類似的標籤)。
使用 printenv 列出環境變數。
出現 Bad Linux ARM zImage magic! 這個錯誤,通常是因為 U-Boot 在載入核心鏡像(zImage)時發生了位移或是抓錯了檔案位置。
觀察你的 printenv,這塊板子預設會先執行 loadbootscript(去讀 SD 卡或 eMMC 上的 boot.scr)。當我們手動改動 mmcargs 並執行 run mmcboot 時,可能因為環境變數中的位址(如 ${loadaddr})與實際檔案不匹配,導致 U-Boot 讀到了破碎的資料。
既然自動腳本 run mmcboot 失敗,我們改用最原始、最手動的方式來載入核心,這樣最精準。
修改密碼,重新啟動。
重啟後,就可以進入了。
現代電腦(SSH 客戶端)認為 ssh-rsa(基於 SHA-1)已經不夠安全,所以預設停用了它;而這塊板子上的 Dropbear 版本較舊,只提供這種加密方式。
猜舊密碼
備份前,先在剩餘空間塞 '0',提高壓縮率。進行全磁碟填零會消耗快閃記憶體的寫入壽命,但如果只是為了換系統前做一次性備份,那是沒問題的。塞滿後,會出現 dd: writing '/zero_file': No space left on device 是正常的,接著執行 rm 即可。
整體執行步驟如下。
Poky 1.7 內建的 dd 通常版本較舊,不支援 status=progress 參數。如果你想知道備份跑了多少,可以另開一個視窗執行下面的指令。這會每 5 秒叫 dd 在它原本的視窗印出目前的傳輸進度。
這是和 AI 討論後,所決定的潤滑保養方式。
這是最普遍可以買到的潤滑油。可以到中油加油站的複合商店買到,便宜又大罐。
適合清洗舊油,光軸潤滑。
中油加油站的複合商店有賣,不貴,大約一百多。但不是每家都有進,要多跑幾家才能買到,我就跑了五個加油站才買到。
不要買高溫,也不要買極壓的,它的添加物,像 鉬,會造成問題。
這是普遍使用的潤滑脂,比一般的黃油稀很多。
線軌會生鏽,若不保養,會鏽到慘不忍睹。但那只是表面,線軌要潤滑的是滑塊內的鋼珠。
潤滑脂可由側面的孔注入,使用的 #0 潤滑脂,比較適合。但潤滑脂不是想買就有,最普遍使用,號稱萬用的二號滑脂,都不容易找到了。曾在蝦皮買過白色鋰基潤滑油,後來細看規格,才知道是 #3 潤滑脂,用了會讓線軌跑不動。
在 AI 的指導之下,使用 2號滑脂與針車油混合,調出不同黏度的滑脂。
如 脂 : 油 比例 為 8 : 2,可得到 "像軟質面霜 的 1 號脂",適合 Z 軸,或全新的線軌。
脂 : 油 比例 為 6 : 4 ,可得到 "像濃稠煉乳的 0 號脂",適合有傷痕、需翻新的 X/Y 軸。
省事的話,就用 6:4 的 0號脂吧。調法,先脂後油,先量 6g的2號脂,再加入 4g的針車油,調到完全混合。
注意,只用中油的這兩種油可以混,其他不知成份的,不要亂混。
Z軸的螺桿,速度較慢,直接使用 2號脂即可。
使用針車油。
參考 (grblHAL) Additional or extended settings
下圖是控制箱的內部。
控制程式是 MACH3,透過 printer port 連接控制箱。控制箱有 MACH3 BOB 做訊號轉換,連接 CWD556 步進馬達驅動器,台達 1.5KW 變頻器,以及限位開關信號輸入。
配備一台具備 Printer port 的筆電,執行 XP。現在已很難找到有 printer port 的電腦,而且 MACH3 的授權也是問題,雖可用,但不喜歡。因此想把控制改成開源的 grbl 控制。
grbl,有人把它 port 到 STM32F103 上,但測過以後,發現少了 G83 之類的 Drilling cycle 指令,不太方便,而且幾乎沒有再改進。後來找到 grblHAL,目前尚在活躍的開發,而且支援多種 32bit 的 MCU。
參考網路上的 PicoBOB,再由 Gemini 的協助,自行設計 BOB電路板。選擇 STM32F411 來執行 grblHAL。
操作界面,使用 Orange Pi One 單板電腦,在其上安裝 cncjs。
原來使用的主軸為昌盛 2.2KW 水冷主軸。嫌水冷麻煩,買了 1.5KW 風冷主軸,測試後,發現風冷主軸實在是非常吵。只好買電腦水冷散熱套件來裝,測試原來的主軸,發現可能軸承已磨損,振動非常大,又再買一個 1.5KW 水冷主軸,多花了不少錢啊。
原培帝的 V-F 設定,P 06 中間頻率選擇: 1.5,P 07 中間電壓選擇: 10.0,P 08 最低輸出頻率選擇: 1.50 ,P 09 最低輸出電壓選擇: 10.0。
理想的 V-F 設定,400Hz 時給 220V,則 100Hz (6000轉) 時應該只給 55V。此設定會使得在頻率為 100時,電壓過高,使得馬達內部的矽鋼片會發生磁飽和。此時,多餘的電能無法轉換為磁場,而是直接轉換為熱能,導致電流異常飆升。
實際測試的值如下,1.5KW 水冷主軸。
修改 V-F 設定,P 06 中間頻率選擇: 100,P 07 中間電壓選擇: 55,P 08 最低輸出頻率選擇: 20 ,P 09 最低輸出電壓選擇: 11。
MACH3 設定
Steps per (mm) = 馬達旋轉一圈總步數 * 減速比 / 螺桿導程
其中,馬達旋轉一圈總步數,由驅動器 DIP 決定。減速比,若直連則為 1。螺桿導程,轉一圈移動多少 mm。
在培帝的控制系統,找到 X,Y,Z 的 [Steps per] 的設定值皆為 200,驅動器的 DIP 設定為 1000,反推 [螺桿導程] 為 1000 / 200 = 5。
grblHAL 的 $100 (X軸), $101 (Y軸), $102 (Z軸) 的設定方式,和 MACH3 完全相同,一樣是 200。
在 Arch Linux,已發生此問題,一直以為是顯卡的問題。
直到 Gentoo,也升級到新版後,發生閃爍的問題。降回舊版驅動,就沒有此問題,因此確定是新版驅動的問題。
---------------------
---------------------
參考 https://github.com/grblHAL/core/wiki/Compiling-GrblHAL
git clone --recurse-submodules https://github.com/grblHAL/STM32F4xx.git