いんくらyochさんの日記

興味あることの忘備録

wobblex投入

プリンタ3号機はZ軸にボールネジを使用しているため、wobble除去用に鋼球でベッドを支える仕組みを採用していたが、効果が少ないようなのでHevORTで知ったwobblexをZ軸に投入してみた。

wobblexのサイズはWS8を購入したが、軸との隙間に余裕が無いのでws12が良かったかも。
受け側はFusion360モデリングし、白のPAフィラメントで印刷したもので挟み込んでいる。
wobblex投入前後での比較が以下。

上の眼鏡ケースはボールネジの間隔に合わせて縞模様が見て取れるが、下の円柱は縞模様は消えている。フィラメントは双方ともPETG。

www.youtube.com

プリンタ3号機のY軸延長化

プリンタ3号機はイレクターで組んだ台車に乗っているのだが、台車の幅に少し余裕があるのでY軸を延長して印刷範囲を拡大化できるか検討した結果、40mmほど伸ばせそうなので改造に取り掛かった。
意図して組み立てた訳では無いのだが、ちょうどY軸方向のアルミフレームだけ延長すれば簡単に済むことが分かり、部材を入手して工事に取り掛かった結果、写真の通りである。
[:W800]
チャンバーとなるよう上面に蓋を付けているのだが、付け足した蓋の分だけY軸が伸ばせた。

ラズパイ4Bでserial/by-idが無くなる件

プリンタ3号機のcoreXYを起動させたところ、LCDが無表示でklipperがMCUと通信していない症状に出くわした。
初めはラズパイそのものか、ホストのDUEが壊れたのかと思って調べていたところ、/dev/serialの配下にはby-pathしか無いことが分かり、ラズパイとMCUであるDUEの接続が失われていることが判明した。
by-idでグーグル先生したところ4Bで同じ症状のブログを発見。リンク先のredditの記事を試行したところ復旧した。
lab.sasapea.mydns.jp
udevのrulesを書き換えるとのことで、以下のように修正した。
raspibianはbullseyeで、カーネルは6.1.21-v8+ #1642、udevは247.3-7+rpi1+deb11u2の状態である。

$ sudo cat /usr/lib/udev/rules.d/60-serial.rules
# do not edit this file, it will be overwritten on update

ACTION=="remove", GOTO="serial_end"
SUBSYSTEM!="tty", GOTO="serial_end"

SUBSYSTEMS=="pci", ENV{ID_BUS}="pci", ENV{ID_VENDOR_ID}="$attr{vendor}", ENV{ID_MODEL_ID}="$attr{device}"
# We already ran the hwdb builtin for devices with MODALIAS in 50-default.rules.
# Let's cover the remaining case here, where we walk up the tree to find a node with $MODALIAS.
ENV{MODALIAS}=="", SUBSYSTEMS=="pci", IMPORT{builtin}="hwdb --subsystem=pci"

# /dev/serial/by-path/, /dev/serial/by-id/ for USB devices
KERNEL!="ttyUSB[0-9]*|ttyACM[0-9]*", GOTO="serial_end"

SUBSYSTEMS=="usb-serial", ENV{.ID_PORT}="$attr{port_number}"

IMPORT{builtin}="path_id"
ENV{ID_PATH}=="?*", ENV{.ID_PORT}=="", SYMLINK+="serial/by-path/$env{ID_PATH}"
ENV{ID_PATH}=="?*", ENV{.ID_PORT}=="?*", SYMLINK+="serial/by-path/$env{ID_PATH}-port$env{.ID_PORT}"

IMPORT{builtin}="usb_id"
#ENV{ID_SERIAL}=="", GOTO="serial_end"
ENV{ID_USB_INTERFACE_NUM}=="", GOTO="serial_end"
#SUBSYSTEMS=="usb", ENV{ID_USB_INTERFACE_NUM}="$attr{bInterfaceNumber}"
SUBSYSTEMS=="usb", ENV{ID_BUS}="usb"
#ENV{.ID_PORT}=="", SYMLINK+="serial/by-id/$env{ID_BUS}-$env{ID_SERIAL}-if$env{ID_USB_INTERFACE_NUM}"
#ENV{.ID_PORT}=="?*", SYMLINK+="serial/by-id/$env{ID_BUS}-$env{ID_SERIAL}-if$env{ID_USB_INTERFACE_NUM}-port$env{.ID_PORT}"
ENV{.ID_PORT}=="", SYMLINK+="serial/by-id/$env{ID_BUS}-$env{ID_USB_SERIAL}-if$env{ID_USB_INTERFACE_NUM}"
ENV{.ID_PORT}=="?*", SYMLINK+="serial/by-id/$env{ID_BUS}-$env{ID_USB_SERIAL}-if$env{ID_USB_INTERFACE_NUM}-port$env{.ID_PORT}"
LABEL="serial_end"

$
$ sudo udevadm control --reload-rules && sudo udevadm trigger