Atom x7-Z8700 1.6GHz/RAM:4GB/SSD:128GB/10.1インチなタブレットPC FUJITSU ARROWS Tab Q508/SE に Ubuntu 22.04 LTS 日本語 Remix という GNU/Linux をインストールして Klipper, Moonraker, Mainsailをインストールして 3DプリンターAnet ET4+を制御した記録。 2023年6月に書いている。 完全無保証。 書きかけ。
他にUSBメモリスティックにisoイメージを書き込むためにLinuxかMacが必要。
- USBメモリスティック
- Ubuntu iso image ubuntu-ja-22.04-desktop-amd64.iso
- FUJITSU ARROWS Tab Q508/SE
- 3Dプリンター
- USBケーブル
- ST-LINK v2
- FMV-NDS35クレードルがあるとインストールやその後の設定のときに有線LAN, 外部ディスプレイ, USBマウス, USBキーボードを接続できて便利。
- クレードルから繋げられる外部ディスプレイは最大1920x1200か。
- ただしタブレットをクレードルに乗せたとき、本体側面のUSB Aコネクタおよびクレードルの3つのUSB AコネクタともET4+とのUSB接続が切れがち。
- ET4+を制御する時にはタブレット本体にACアダプターから直接電気を供給し、側面のUSB AコネクタとET4+を直接USBケーブルで接続すること。
- Appendix 1を見よ。
小学校などに配布されていた文教用タブレットPC。 参考→ https://jp.fujitsu.com/platform/pc/product/arrowstab/1801/q508se/
- 型式: ARROWS Tab Q508/SE
- メモリ: 4GB
- SSD: 128 GB
- 無線LAN: IEEE 802.11a/b/g/n/ac準拠(5GHz帯チャンネル:W52/W53/W56)
- Bluetooth
- USB3.0×1、USB3.1(Type-C)×1
- カメラ×2 イン、アウト(いまのところLinuxから使うことはできない)
"ET4+" は "アップグレード版ET4" の習慣的な呼称。 本体側面のプレートには "ET4" と書かれている。 "ET4+" は "初代ET4" のノズル横に金属探知式レベリングセンサが加わったもの。 参考→ https://anet3d.com/blogs/et-series/firmware-upgrade
- 門型: 20x20, 40x20 アルミフレーム
- 造形範囲体積: 220mm×220mm×250mm
- 積層厚: 0.1-0.3mm
- フィラメント径: 1.75mm
- 標準ノズル径: 0.4mm
- 最大ベッド温度: 100°C
- 最大ノズル温度: 250°C
- オールメタルフレーム
- ベッド: アルミ+強化ガラス
「BIOSの『変更を保存して終了』した直後にのみUSBメモリから起動がされる」がキモ。
- LinuxだかmacOSだかで
sudo dd if=ubuntu-ja-22.04-desktop-amd64.iso of=/dev/sdX
などと3.2 GBほどのisoイメージを書き込んだUSBメモリスティックを用意。 - そのUSBメモリをタブレットに挿して音量のマイナスボタンを押しながら電源オン。
- BIOSの『セキュリティメニュー』で「セキュアブート機能」が「使用しない」設定になっていることを確認。
- BIOSの『起動メニュー』挿入してあるUSB HDDから起動されるように優先順位を変更。
- BIOSの『変更を保存して終了する』。この『変更を保存して終了』した直後にのみUSBメモリから起動がされるようである。
- ユーザ名はtakeshiなどなんでもよい。piにしておくとデフォルト値が使えることが多い。
- あとは普通にUbuntuをインストール。
- タッチパネルははじめから使えるようになる。
- スクリーンキーボードはメニューバーの人間アイコンをクリックすると現れるメニューでON/OFFできる。
- WiFiは使える。
- Bluetoothは接続が切れがちという報告があるが未確認。
- インアウトともカメラは今のところLinuxからは使えない。
さらに
sudo apt remove brltty
sudo apt update
sudo apt upgrade
sudo apt install openssh-server
として再起動した後、YouTubeなどの再生音が出るようになった。
brlttyパッケージを削除するのはAnet ET4+をUSBケーブルでQ508に接続した時に ch341-uartのシリアル通信を使えるようにするため。 参考 → https://stackoverflow.com/questions/70123431/why-would-ch341-uart-is-disconnected-from-ttyusb
さらにのちのちのためsshでログインできるようにしておいた。
WiFiのアクセスポイントのWebページの詳細設定からDHCP固定割り当て設定で Q508のMACアドレスに対して固定のIPアドレスが割り当てられるようにする。 例えば 192.168.10.111 。
UbuntuでマシンのMACアドレスを表示するコマンドは
ip a
KIAUH (Klipper Installation And Update Helper) https://github.com/th33xitus/kiauh を使って Klipper https://github.com/Klipper3d/klipper Moonraker https://github.com/Arksine/moonraker Mainsail https://github.com/mainsail-crew/mainsail をQ508にインストール。
参考 → Klipper用にタブレットPCの中古をぽちった その3 https://note.com/boyon/n/n4e592b4d242b
sudo apt-get install git
git clone https://github.com/th33xitus/kiauh.git
./kiauh/kiauh.sh
あとはメニューにしたがってインストールしてゆく。 たぶんクロスコンパイラなどもインストールしてくれる。 インストール後、先に固定したIPアドレスにアクセスすると Mainsailの画面になるが、プリンタに接続できない旨のエラーになっている。
micor-controllerをビルドしてET4+に書き込む。
参考 → https://www.klipper3d.org/Installation.html
参考 → HowTo Setup and Flash Klipper on Anet ET4/Pro/X https://3dprint.wiki/reprap/anet/et4/setup-and-flash-klipper CONFIG_SERIAL_BAUD 誤: 112500 正: 115200
参考 → Klipper用にタブレットPCの中古をぽちった その4 https://note.com/boyon/n/n4e592b4d242b
cd klipper
make menuconfig # .config ができる dot.config としてGistにおいてある。
make
できあがったklipper.bin
をST-LINK v2でET4+に書き込む。
液晶画面は真っ白になってしまう。
注意!再度ET4+にfirmwareを書き込むことができなくなってしまった。 再書き込みにはどこかのピンのショートによるリセットが必要か? 今のところ動いているからよいけど。
なお、ET4+にインストールした OpenBLT https://github.com/davidtgbe/openblt で読み込めるfirmwareを作ることはできなかった。
現状のprinter.cfgをGistに置いてある。 /home/takeshi/printer_data/config/printer.cfg に置く。固有の設定は [virtual_sdcard] path: /home/takeshi/printer_data/gcodes と [mcu] baud: 115200 serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 のあたりか。
フィラメントの流量を [extruder] gear_ratio: 70:100 で調節する必要があった。
3DプリンターAnet ET4+はレベルセンサ付。Klipper/Moonraker/Mainsailでprinter.cfcに
[bed_mesh]
speed: 120
horizontal_move_z: 5
mesh_min: 30, 20
mesh_max: 225, 215
probe_count: 5, 5
として、コンソールからBED_MESH_CALIBRATE
→SAVE_CONFIG
。
実際はprinter.cfgの最後に追加される。
Mainsailの左上のメニューからHEIGHTMAPを選んで "CALIBRATE" をクリック。
BED_MESH_CALIBRATE
と同様にベッドの25点を計測、その後HEIGHTMAPが表示される。
高さ調節とCALIBRATEを繰り返して、HEIGHTMAPに満足がいったら
最上部の "SAVE CONFIG"(またはフロッピーディスクのアイコン💾)をクリック。
KlipperのFAQ https://www.klipper3d.org/FAQ.html#i-keep-getting-random-lost-communication-with-mcu-errors にあるとおり、3DプリンターとタブレットやPCをUSBケーブルで繋いだ場合、通信接続が切れがちになることがある。 Anet ET4+の場合、印刷開始時のホットエンドのヒーターのON電流により電源が不安定化してUSB接続が切れてしまうことがある。 (印刷開始時のホットエンドのヒーターを Pulse Width Modulation (PWM) 制御で少しずつONにすれば防げるかもしれない。)
Q508タブレットはそれをクレードルに乗せたとき、本体側面のUSB Aコネクタおよびクレードルの3つのUSB AコネクタともET4+とのUSB接続が切れがちになる。 ET4+を制御する時にはタブレット本体にACアダプターから直接電気を供給し、側面のUSB AコネクタとET4+を直接USBケーブルで接続すること。
接続が切れた時のエラーは
sudo dmesg -e
で見ることができる。Linux kernelのバージョンや状況によって
device descriptor read/64, error -110
device not accepting address 7, error -110
とか
ch341-uart ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32
usb 1-4-port1: disabled by hub (EMI?), re-enabling...
usb 1-4.1: USB disconnect, device number 6
ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
ch341 1-4.1:1.0: device disconnected
とか
USB port nn disabled by hub (EMI?), re-enabling
などのエラーが記録されている。
Ubuntuインストール後の設定そのままでプリンタのコントロールは間に合っていそうなので、 リアルタイムカーネルは必要なさそう。
Debianなら
sudo apt install linux-image-rt-amd64
Ubuntuなら
sudo apt install linux-lowlatency
でリアルタイムカーネルをインストールできるらしい。 Klipperの対応状況 → Klipper3d/klipper#485
Linuxインストールのとき、Rufusで作った起動用USBメモリではうまくブートしなかった。
UUIで作った起動用USBメモリでは起動直後に
Can not mount /dev/loop0 on /cow
のエラーが出て止まる。[Enter]を押してinitramfsのプロンプトを出して、
losetup
losetup -f
losetup -d /dev/loop0
exit
でUbuntuの起動が続行可能だった気がする。