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+を制御した記録。 2024年9月に 24.04 LTS でもタブレットのみなら動くことを確認したので、更新。 2024年9月現在、24.04 LTS(のカーネル)とFMV-NDS35クレードルの相性が悪い。接続中にもかかわらずdisconnectになってしまう。 完全無保証。
他にUSBメモリスティックにisoイメージを書き込むためにLinuxかMacが必要。
- USBメモリスティック
- Ubuntu iso image ubuntu-ja-22.04-desktop-amd64.iso (24.04 LTS でもOK)
- FUJITSU ARROWS Tab Q508/SE
- 3Dプリンター
- USBケーブル
- ST-LINK v2
小学校などに配布されていた文教用タブレット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
- オールメタルフレーム
- ベッド: アルミ+強化ガラス
FMV-NDS35クレードルは2024年9月現在のUbuntu 22.04 または 24.04(のカーネル)では満充電か何かの拍子にdisconnectになってしまう。
sudo dmesg -e
で確認できる。ウチのクレードルが故障してるだけ?
- FMV-NDS35クレードルがあるとインストールやその後の設定のときに有線LAN, 外部ディスプレイ, USBマウス, USBキーボードを接続できて便利。
- クレードルから繋げられる外部ディスプレイは最大1920x1200か。
- ただしタブレットをクレードルに乗せたとき、本体側面のUSB Aコネクタおよびクレードルの3つのUSB AコネクタともET4+とのUSB接続が切れがち。
- ET4+を制御する時にはタブレット本体にACアダプターから直接電気を供給し、側面のUSB AコネクタとET4+を直接USBケーブルで接続すること。
- Appendix 1を見よ。
「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
(IPアドレスの固定をせず、マルチキャストDNS (mDNS) などを使う方法もある。)
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アドレスにFireFoxなどブラウザでアクセスする。 Mainsailの画面になるが、プリンタに接続できない旨のエラーになる。
KlipperScreenは設定が面倒なので使っていない。 必要な場合はQ508でFireFoxを起動して http://localhost/ にアクセスして3Dプリンターを制御している。
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を作ることはできなかった。
Q508と3DプリンターとをUSBケーブルで接続して、 再度、先に固定したIPアドレスにFireFoxなどブラウザでアクセスしてみる。 たいていプリンタに接続できるが printer.cfg に誤りがある旨のエラーになる。
現状の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"(またはフロッピーディスクのアイコン💾)をクリック。
ps
コマンドで見てもmoonrakerやklipperが走っていなさそうの時は
sudo systemctl status moonraker
sudo systemctl status klipper
などで確認する。
走ってなければ
sudo systemctl start moonraker
sudo systemctl start klipper
でサービスを起動する。
Q508のブート時にmoonrakerやklipperが自動的に起動してくれない場合は
sudo systemctl enable moonraker
sudo systemctl enable klipper
としてからQ508をリブートしてみる。
FUJITSU ARROWS TabはKlipperをホストして3Dプリンターを制御するには十分な能力を持つ。 Q506, Q507, Q508, Q509, Q5010, Q5011などがある。 Ubuntu 24.04 LTSが手軽にインストールできて便利。
FMV-NDS35クレードルがあると便利だが、 簡単なホルダー https://www.printables.com/model/851660-holder-stand-for-fujitsu-arrows-tablet-q506-q508-a を3Dプリントして利用することもできる。
Anet ET4+はKlipperで制御できなくもないが 印刷開始時のホットエンドのヒーターのON電流によりUSBインターフェースが不安定化してUSB接続が切れてしまうことがある。
KlipperのFAQ https://www.klipper3d.org/FAQ.html#i-keep-getting-random-lost-communication-with-mcu-errors
にあるとおり、3DプリンターとタブレットやPCをUSBケーブルで繋いだ場合、通信接続が切れがちになることがある。
Anet ET4+の場合、印刷開始時のホットエンドのヒーターのON電流によりUSBインターフェースが不安定化してUSB接続が切れてしまうことがある。
([extruder]
にmax_power: 0.5
を書き加えて、印刷開始時のホットエンドのヒーターを
Pulse Width Modulation (PWM) 制御の小電流でONにすれば防げるかもしれない。実はもうET4+を使っていないので確証がない。)
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メモリではQ508が起動直後に
Can not mount /dev/loop0 on /cow
のエラーを出して止まる。[Enter]を押してinitramfsのプロンプトを出して、
losetup
losetup -f
losetup -d /dev/loop0
exit
でUbuntuの起動が続行可能だった気がする。