{"id":721,"date":"2023-09-07T00:27:25","date_gmt":"2023-09-07T07:27:25","guid":{"rendered":"https:\/\/unclogged.rl-imaging.com\/?p=721"},"modified":"2023-09-25T00:58:13","modified_gmt":"2023-09-25T07:58:13","slug":"klipper-notes","status":"publish","type":"post","link":"https:\/\/unclogged.rl-imaging.com\/?p=721","title":{"rendered":"Klipper notes"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Setup<\/h2>\n\n\n\n<p>I have multiple printers connected to my PC running Klipper: Creality Ender 5+, CR6-SE and Ender 3 S1 Pro. <\/p>\n\n\n\n<p>I used <code><strong>kiauh<\/strong>, <a href=\"https:\/\/github.com\/dw-0\/kiauh\">GitHub - dw-0\/kiauh: Klipper Installation And Update Helper<\/a><\/code>, to install 3 instances of Klipper, Moonraker, Mainsail and Fluidd.<\/p>\n\n\n\n<p>I tried both Debian 12 and Ubuntu 22.04.3 LTS. <code>kiauh <\/code>successfully installed all of the packages on both OSes but I could not configure the USB ports correctly on Ubuntu. I didn&#8217;t capture the errors before I wiped the system and installed Debian. Will need to try again on a different system.<\/p>\n\n\n\n<p>I now have a directory for each printer:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>drwxr-xr-x 10 klipper klipper 4096 Sep 3 23:53 CR6SE_data<br>drwxr-xr-x 10 klipper klipper 4096 Sep 3 23:53 E3S1Pro_data<br>drwxr-xr-x 10 klipper klipper 4096 Sep 3 23:53 E5Plus_data<\/code><\/pre>\n\n\n\n<p>along with directories for the various components:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>drwxr-xr-x 5 klipper klipper 4096 Sep 3 23:54 fluidd\ndrwxr-xr-x 3 klipper klipper 4096 Sep 3 23:54 fluidd-config\ndrwxr-xr-x 4 klipper klipper 4096 Sep 3 23:54 kiauh-backups\ndrwxr-xr-x 11 klipper klipper 4096 Sep 3 23:36 klipper\ndrwxr-xr-x 5 klipper klipper 4096 Sep 3 23:50 klippy-env\ndrwxr-xr-x 5 klipper klipper 4096 Sep 3 23:54 mainsail\ndrwxr-xr-x 3 klipper klipper 4096 Sep 3 23:54 mainsail-config\ndrwxr-xr-x 8 klipper klipper 4096 Sep 3 23:53 moonraker\ndrwxr-xr-x 4 klipper klipper 4096 Sep 3 23:53 moonraker-env<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">USB ports<\/h2>\n\n\n\n<p>Each time the PC boots, it assigns a different USB port to each printer (only two are connected right now)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>klipper@klipper1:~$ sudo dmesg | grep ttyUSB<br>&#91; 5.580820] usb 1-2.4: FTDI USB Serial Device converter now attached to ttyUSB0<br>&#91; 5.581119] usb 1-2.2: ch341-uart converter now attached to ttyUSB1<br>&#91; 1213.719327] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0<br>&#91; 1215.624744] usb 1-2.4: FTDI USB Serial Device converter now attached to ttyUSB2<br>&#91; 2418.419348] ftdi_sio ttyUSB2: FTDI USB Serial Device converter now disconnected from ttyUSB2<br>&#91; 2420.328872] usb 1-2.4: FTDI USB Serial Device converter now attached to ttyUSB0<\/code><\/pre>\n\n\n\n<p>And the <code>\/dev\/ttyUSB<\/code> devices:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>klipper@klipper1:~$ ls -ld \/dev\/ttyUSB*<br>crw-rw----+ 1 root dialout 188, 0 Sep 6 23:19 \/dev\/ttyUSB0<br>crw-rw----+ 1 root dialout 188, 1 Sep 6 23:25 \/dev\/ttyUSB1<\/code><\/pre>\n\n\n\n<p>The problem was, I thought I was being smart by specifying the USB port in <code>printer.cfg<\/code>, but which learned is most probably wrong after a reboot. Ex. for the E5Plus:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>197 &#91;mcu]\n198 serial: \/dev\/ttyUSB2<\/code><\/pre>\n\n\n\n<p>And for the CR6-SE:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>195 &#91;mcu]\n196 serial: \/dev\/ttyUSB1\n197 restart_method: command<\/code><\/pre>\n\n\n\n<p>The correct thing to do is specify the<code> \/dev\/serial\/by-id<\/code><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>klipper@klipper1:\/dev\/serial\/by-id$ ls -l \/dev\/serial\/by-id<br>total 0<br>lrwxrwxrwx 1 root root 13 Sep 6 17:41 usb-1a86_USB_Serial-if00-port0 -&gt; ..\/..\/ttyUSB1<br>lrwxrwxrwx 1 root root 13 Sep 6 23:19 usb-FTDI_FT232R_USB_UART_AB0KE6G5-if00-port0 -&gt; ..\/..\/ttyUSB0<\/code><\/pre>\n\n\n\n<p>So for the E5Plus<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;mcu]<br>serial: \/dev\/serial\/by-id\/usb-FTDI_FT232R_USB_UART_AB0KE6G5-if00-port0<\/code><\/pre>\n\n\n\n<p>And the CR6-SE<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;mcu]<br>serial: \/dev\/serial\/by-id\/usb-1a86_USB_Serial-if00-port0<br>restart_method: command<\/code><\/pre>\n\n\n\n<p>I also discovered the <code><strong>udevadm <\/strong><\/code>command which provides a lot of information about a connected USB device<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>klipper@klipper1:~$ sudo udevadm info \/dev\/ttyUSB0<br>P: \/devices\/pci0000:00\/0000:00:14.0\/usb1\/1-2\/1-2.4\/1-2.4:1.0\/ttyUSB0\/tty\/ttyUSB0<br>M: ttyUSB0<br>R: 0<br>U: tty<br>D: c 188:0<br>N: ttyUSB0<br>L: 0<br>S: serial\/by-path\/pci-0000:00:14.0-usb-0:2.4:1.0-port0<br>S: serial\/by-id\/usb-FTDI_FT232R_USB_UART_AB0KE6G5-if00-port0<br>E: DEVPATH=\/devices\/pci0000:00\/0000:00:14.0\/usb1\/1-2\/1-2.4\/1-2.4:1.0\/ttyUSB0\/tty\/ttyUSB0<br>E: DEVNAME=\/dev\/ttyUSB0<br>E: MAJOR=188<br>E: MINOR=0<br>E: SUBSYSTEM=tty<br>E: USEC_INITIALIZED=2420730776<br>E: ID_BUS=usb<br>E: ID_MODEL=FT232R_USB_UART<br>E: ID_MODEL_ENC=FT232R\\x20USB\\x20UART<br>E: ID_MODEL_ID=6001<br>E: ID_SERIAL=FTDI_FT232R_USB_UART_AB0KE6G5<br>E: ID_SERIAL_SHORT=AB0KE6G5<br>E: ID_VENDOR=FTDI<br>E: ID_VENDOR_ENC=FTDI<br>E: ID_VENDOR_ID=0403<br>E: ID_REVISION=0600<br>E: ID_TYPE=generic<br>E: ID_USB_MODEL=FT232R_USB_UART<br>E: ID_USB_MODEL_ENC=FT232R\\x20USB\\x20UART<br>E: ID_USB_MODEL_ID=6001<br>E: ID_USB_SERIAL=FTDI_FT232R_USB_UART_AB0KE6G5<br>E: ID_USB_SERIAL_SHORT=AB0KE6G5<br>E: ID_USB_VENDOR=FTDI<br>E: ID_USB_VENDOR_ENC=FTDI<br>E: ID_USB_VENDOR_ID=0403<br>E: ID_USB_REVISION=0600<br>E: ID_USB_TYPE=generic<br>E: ID_USB_INTERFACES=:ffffff:<br>E: ID_USB_INTERFACE_NUM=00<br>E: ID_USB_DRIVER=ftdi_sio<br>E: ID_VENDOR_FROM_DATABASE=Future Technology Devices International, Ltd<br>E: ID_MODEL_FROM_DATABASE=FT232 Serial (UART) IC<br>E: ID_PATH=pci-0000:00:14.0-usb-0:2.4:1.0<br>E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_2_4_1_0<br>E: ID_FOR_SEAT=tty-pci-0000_00_14_0-usb-0_2_4_1_0<br>E: ID_MM_CANDIDATE=1<br>E: DEVLINKS=\/dev\/serial\/by-path\/pci-0000:00:14.0-usb-0:2.4:1.0-port0 \/dev\/serial\/by-id\/usb-FTDI_FT232R_USB_UART_AB0KE6G&gt;<br>E: TAGS=:uaccess:systemd:seat:<br>E: CURRENT_TAGS=:uaccess:systemd:seat:<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>klipper@klipper1:~$ sudo udevadm info \/dev\/ttyUSB1<br>P: \/devices\/pci0000:00\/0000:00:14.0\/usb1\/1-2\/1-2.2\/1-2.2:1.0\/ttyUSB1\/tty\/ttyUSB1<br>M: ttyUSB1<br>R: 1<br>U: tty<br>D: c 188:1<br>N: ttyUSB1<br>L: 0<br>S: serial\/by-path\/pci-0000:00:14.0-usb-0:2.2:1.0-port0<br>S: serial\/by-id\/usb-1a86_USB_Serial-if00-port0<br>E: DEVPATH=\/devices\/pci0000:00\/0000:00:14.0\/usb1\/1-2\/1-2.2\/1-2.2:1.0\/ttyUSB1\/tty\/ttyUSB1<br>E: DEVNAME=\/dev\/ttyUSB1<br>E: MAJOR=188<br>E: MINOR=1<br>E: SUBSYSTEM=tty<br>E: USEC_INITIALIZED=6202418<br>E: ID_BUS=usb<br>E: ID_MODEL=USB_Serial<br>E: ID_MODEL_ENC=USB\\x20Serial<br>E: ID_MODEL_ID=7523<br>E: ID_SERIAL=1a86_USB_Serial<br>E: ID_VENDOR=1a86<br>E: ID_VENDOR_ENC=1a86<br>E: ID_VENDOR_ID=1a86<br>E: ID_REVISION=0264<br>E: ID_TYPE=generic<br>E: ID_USB_MODEL=USB_Serial<br>E: ID_USB_MODEL_ENC=USB\\x20Serial<br>E: ID_USB_MODEL_ID=7523<br>E: ID_USB_SERIAL=1a86_USB_Serial<br>E: ID_USB_VENDOR=1a86<br>E: ID_USB_VENDOR_ENC=1a86<br>E: ID_USB_VENDOR_ID=1a86<br>E: ID_USB_REVISION=0264<br>E: ID_USB_TYPE=generic<br>E: ID_USB_INTERFACES=:ff0102:<br>E: ID_USB_INTERFACE_NUM=00<br>E: ID_USB_DRIVER=ch341<br>E: ID_USB_CLASS_FROM_DATABASE=Vendor Specific Class<br>E: ID_VENDOR_FROM_DATABASE=QinHeng Electronics<br>E: ID_MODEL_FROM_DATABASE=CH340 serial converter<br>E: ID_PATH=pci-0000:00:14.0-usb-0:2.2:1.0<br>E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_2_2_1_0<br>E: ID_FOR_SEAT=tty-pci-0000_00_14_0-usb-0_2_2_1_0<br>E: ID_MM_CANDIDATE=1<br>E: DEVLINKS=\/dev\/serial\/by-path\/pci-0000:00:14.0-usb-0:2.2:1.0-port0 \/dev\/serial\/by-id\/usb-1a86_USB_Serial-if00-port0<br>E: TAGS=:seat:uaccess:systemd:<br>E: CURRENT_TAGS=:seat:uaccess:systemd:<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Powering off the printers<\/h2>\n\n\n\n<p>If I power off the AC to the printers, the fans and motors turn off but their mainboards are still powered via the USB from the PC. The E5Plus&#8217; screen remains lit but the CR6SE&#8217;s screen flickers annoyingly. So, I unplug the USB cables from the PC. The PC detects the disconnect and removes the USB devices:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>klipper@klipper1:~$ <strong>sudo dmesg | grep USB<\/strong>\n...\n&#91; 7192.491354] ch341-uart ttyUSB1: usb_serial_generic_read_bulk_callback - urb stopped: -32\n&#91; 7192.491871] ch341-uart ttyUSB1: usb_serial_generic_read_bulk_callback - urb stopped: -32\n&#91; 7192.545458] usb 1-2.2: USB disconnect, device number 5\n&#91; 7192.548319] ch341-uart ttyUSB1: ch341-uart converter now disconnected from ttyUSB1\n&#91; 7193.313261] usb 1-2.4: USB disconnect, device number 6\n&#91; 7193.314428] ftdi_sio ttyUSB2: FTDI USB Serial Device converter now disconnected from ttyUSB2<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Changing the printer name in fluidd<\/h2>\n\n\n\n<p>By default, every printer is called <em>fluidd<\/em>, which is confusing because you have to remember which moonraker port each printer is connected to (7125, 7126, etc)<\/p>\n\n\n\n<p>In the web GUI, go to Settings (the gear icon):<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/unclogged.rl-imaging.com\/wp-content\/uploads\/2023\/09\/default-fluidd.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"261\" src=\"https:\/\/unclogged.rl-imaging.com\/wp-content\/uploads\/2023\/09\/default-fluidd-1024x261.png\" alt=\"\" class=\"wp-image-724\" srcset=\"https:\/\/unclogged.rl-imaging.com\/wp-content\/uploads\/2023\/09\/default-fluidd-1024x261.png 1024w, https:\/\/unclogged.rl-imaging.com\/wp-content\/uploads\/2023\/09\/default-fluidd-300x76.png 300w, https:\/\/unclogged.rl-imaging.com\/wp-content\/uploads\/2023\/09\/default-fluidd-768x196.png 768w, https:\/\/unclogged.rl-imaging.com\/wp-content\/uploads\/2023\/09\/default-fluidd-1536x392.png 1536w, https:\/\/unclogged.rl-imaging.com\/wp-content\/uploads\/2023\/09\/default-fluidd-624x159.png 624w, https:\/\/unclogged.rl-imaging.com\/wp-content\/uploads\/2023\/09\/default-fluidd.png 1887w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Then change the Printer Name:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/unclogged.rl-imaging.com\/wp-content\/uploads\/2023\/09\/renamed-fluidd.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"262\" src=\"https:\/\/unclogged.rl-imaging.com\/wp-content\/uploads\/2023\/09\/renamed-fluidd-1024x262.png\" alt=\"\" class=\"wp-image-723\" srcset=\"https:\/\/unclogged.rl-imaging.com\/wp-content\/uploads\/2023\/09\/renamed-fluidd-1024x262.png 1024w, https:\/\/unclogged.rl-imaging.com\/wp-content\/uploads\/2023\/09\/renamed-fluidd-300x77.png 300w, https:\/\/unclogged.rl-imaging.com\/wp-content\/uploads\/2023\/09\/renamed-fluidd-768x196.png 768w, https:\/\/unclogged.rl-imaging.com\/wp-content\/uploads\/2023\/09\/renamed-fluidd-1536x392.png 1536w, https:\/\/unclogged.rl-imaging.com\/wp-content\/uploads\/2023\/09\/renamed-fluidd-624x159.png 624w, https:\/\/unclogged.rl-imaging.com\/wp-content\/uploads\/2023\/09\/renamed-fluidd.png 1887w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>The change happens as soon as you hit return &#8211; there is no Save button.<\/p>\n\n\n\n<p>The printer name is stored in <code>~\/<em>printer<\/em>_data\/databases\/data.mdb<\/code>. I can see it with <code>strings<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>klipper@klipper1:~\/E5Plus_data\/database$ strings data.mdb\nfluidd\nauthorized_users\nupdate_manager\nhistory\nannouncements\nuiSettings{\"general\": {\"instanceName\": \"<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-blue-color\">E5Plus<\/mark>\"}}\nlayout\ncameras{}<\/code><\/pre>\n\n\n\n<p>But I cannot find it in the dump created by <code>mdb_dump<\/code>. First install <code>lmdb-utils<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>klipper@klipper1:~\/E5Plus_data\/database$ <strong>sudo apt install lmdb-utils<\/strong>\nReading package lists\u2026 Done\nBuilding dependency tree\u2026 Done\nReading state information\u2026 Done\nThe following packages were automatically installed and are no longer required:\nlibmdb3 libmdbsql3\nUse 'sudo apt autoremove' to remove them.\nThe following NEW packages will be installed:\nlmdb-utils\n0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.\nNeed to get 63.5 kB of archives.\nAfter this operation, 389 kB of additional disk space will be used.\nGet:1 http:\/\/deb.debian.org\/debian bookworm\/main amd64 lmdb-utils amd64 0.9.24-1 &#91;63.5 kB]\nFetched 63.5 kB in 0s (305 kB\/s)\nSelecting previously unselected package lmdb-utils.\n(Reading database \u2026 174663 files and directories currently installed.)\nPreparing to unpack \u2026\/lmdb-utils_0.9.24-1_amd64.deb \u2026\nUnpacking lmdb-utils (0.9.24-1) \u2026\nSetting up lmdb-utils (0.9.24-1) \u2026\nProcessing triggers for man-db (2.11.2-2) \u2026<\/code><\/pre>\n\n\n\n<p>Then run <code>mdb_dump<\/code>. Note the trailing period:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>klipper@klipper1:~\/E5Plus_data\/database$ cd ~\/E5Plus_data\/database\nklipper@klipper1:~\/E5Plus_data\/database$ ls -l\ntotal 88\n-rw-r--r-- 1 klipper klipper 81920 Sep 6 23:00 data.mdb\n-rw-r--r-- 1 klipper klipper 8192 Sep 7 00:07 lock.mdb\nklipper@klipper1:~\/E5Plus_data\/database$ <strong>mdb_dump -f moonraker.txt -a .<\/strong>\nklipper@klipper1:~\/E5Plus_data\/database$ fgrep E5Plus moonraker.txt\nklipper@klipper1:~\/E5Plus_data\/database$ fgrep uiSetting moonraker.txt\nklipper@klipper1:~\/E5Plus_data\/database$<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Setup I have multiple printers connected to my PC running Klipper: Creality Ender 5+, CR6-SE and Ender 3 S1 Pro. I used kiauh, GitHub &#8211; dw-0\/kiauh: Klipper Installation And Update Helper, to install 3 instances of Klipper, Moonraker, Mainsail and Fluidd. I tried both Debian 12 and Ubuntu 22.04.3 LTS. kiauh successfully installed all of [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[106,105],"tags":[104,112,111,109,110],"class_list":["post-721","post","type-post","status-publish","format-standard","hentry","category-fdm","category-make","tag-3d-printing","tag-debian","tag-fluiid","tag-klipper","tag-moonraker"],"_links":{"self":[{"href":"https:\/\/unclogged.rl-imaging.com\/index.php?rest_route=\/wp\/v2\/posts\/721","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unclogged.rl-imaging.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unclogged.rl-imaging.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unclogged.rl-imaging.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/unclogged.rl-imaging.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=721"}],"version-history":[{"count":10,"href":"https:\/\/unclogged.rl-imaging.com\/index.php?rest_route=\/wp\/v2\/posts\/721\/revisions"}],"predecessor-version":[{"id":736,"href":"https:\/\/unclogged.rl-imaging.com\/index.php?rest_route=\/wp\/v2\/posts\/721\/revisions\/736"}],"wp:attachment":[{"href":"https:\/\/unclogged.rl-imaging.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=721"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unclogged.rl-imaging.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=721"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unclogged.rl-imaging.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=721"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}