What is the problem?
I'm trying to run Octoprint using just the Pi's GPIO pins - my build doesn't have much spare space for cables.
The device is a Pi 3B. 5V power coming in from a buck converter is on GPIO 4 and 6, and the serial connection to the printer is on GPIO 8, 10, and 14. The printer runs on a BigTreeTech SKR v1.4 Turbo, and it's connected to the Pi using the middle three pins of its TFT port.
I made the config changes required for serial over GPIO on the Pi, and this setup worked until I changed out the connector on the serial cable. Now, Octoprint does not recognize the GPIO serial connection. It still connects properly over a USB cable, but the case won't accommodate a USB connection on the mainboard.
What did you already try to solve it?
I switched to a fresh set of cables to connect everything. After that, I worried I'd screwed up some config in Octoprint, so I did a clean reinstall. I have checked and triple-checked my cable routing - RX to TX, TX to RX, GND to GND.
Applicable config changes from this Prusa article have been done to make the UART accessible for serial and disable the serial console.
This is the Pi's output when ls -l /dev
is run:
pi@octopi:~ $ ls -l /dev
total 0
crw-r--r-- 1 root root 10, 235 Apr 3 23:17 autofs
drwxr-xr-x 2 root root 580 Apr 3 23:17 block
crw------- 1 root root 10, 234 Apr 3 23:17 btrfs-control
drwxr-xr-x 3 root root 60 Jan 1 1970 bus
crw------- 1 root root 10, 63 Apr 3 23:17 cachefiles
drwxr-xr-x 2 root root 2700 Apr 3 23:17 char
crw------- 1 root root 5, 1 Apr 4 00:43 console
crw------- 1 root root 10, 62 Apr 3 23:17 cpu_dma_latency
crw------- 1 root root 10, 203 Apr 3 23:17 cuse
drwxr-xr-x 7 root root 140 Apr 3 23:17 disk
crw-rw---- 1 root video 29, 0 Apr 3 23:17 fb0
lrwxrwxrwx 1 root root 13 Feb 14 2019 fd -> /proc/self/fd
crw-rw-rw- 1 root root 1, 7 Apr 3 23:17 full
crw-rw-rw- 1 root root 10, 229 Apr 3 23:17 fuse
crw-rw---- 1 root gpio 254, 0 Apr 3 23:17 gpiochip0
crw-rw---- 1 root gpio 254, 1 Apr 3 23:17 gpiochip1
crw-rw---- 1 root gpio 254, 2 Apr 3 23:17 gpiochip2
crw-rw---- 1 root gpio 247, 0 Apr 3 23:17 gpiomem
crw------- 1 root root 10, 183 Apr 3 23:17 hwrng
lrwxrwxrwx 1 root root 12 Feb 14 2019 initctl -> /run/initctl
drwxr-xr-x 2 root root 60 Jan 1 1970 input
crw-r--r-- 1 root root 1, 11 Apr 3 23:17 kmsg
lrwxrwxrwx 1 root root 28 Feb 14 2019 log -> /run/systemd/journal/dev-log
brw-rw---- 1 root disk 7, 0 Apr 3 23:17 loop0
brw-rw---- 1 root disk 7, 1 Apr 3 23:17 loop1
brw-rw---- 1 root disk 7, 2 Apr 3 23:17 loop2
brw-rw---- 1 root disk 7, 3 Apr 3 23:17 loop3
brw-rw---- 1 root disk 7, 4 Apr 3 23:17 loop4
brw-rw---- 1 root disk 7, 5 Apr 3 23:17 loop5
brw-rw---- 1 root disk 7, 6 Apr 3 23:17 loop6
brw-rw---- 1 root disk 7, 7 Apr 3 23:17 loop7
crw-rw---- 1 root disk 10, 237 Apr 3 23:17 loop-control
drwxr-xr-x 2 root root 60 Apr 3 23:17 mapper
crw-rw---- 1 root video 241, 0 Apr 3 23:17 media0
crw-r----- 1 root kmem 1, 1 Apr 3 23:17 mem
crw------- 1 root root 10, 59 Apr 3 23:17 memory_bandwidth
brw-rw---- 1 root disk 179, 0 Apr 3 23:17 mmcblk0
brw-rw---- 1 root disk 179, 1 Apr 3 23:17 mmcblk0p1
brw-rw---- 1 root disk 179, 2 Apr 3 23:17 mmcblk0p2
drwxrwxrwt 2 root root 40 Jan 1 1970 mqueue
drwxr-xr-x 2 root root 60 Apr 3 23:17 net
crw------- 1 root root 10, 61 Apr 3 23:17 network_latency
crw------- 1 root root 10, 60 Apr 3 23:17 network_throughput
crw-rw-rw- 1 root root 1, 3 Apr 3 23:17 null
crw------- 1 root root 108, 0 Apr 3 23:17 ppp
crw-rw-rw- 1 root tty 5, 2 Apr 4 2021 ptmx
drwxr-xr-x 2 root root 0 Feb 14 2019 pts
brw-rw---- 1 root disk 1, 0 Apr 3 23:17 ram0
brw-rw---- 1 root disk 1, 1 Apr 3 23:17 ram1
brw-rw---- 1 root disk 1, 10 Apr 3 23:17 ram10
brw-rw---- 1 root disk 1, 11 Apr 3 23:17 ram11
brw-rw---- 1 root disk 1, 12 Apr 3 23:17 ram12
brw-rw---- 1 root disk 1, 13 Apr 3 23:17 ram13
brw-rw---- 1 root disk 1, 14 Apr 3 23:17 ram14
brw-rw---- 1 root disk 1, 15 Apr 3 23:17 ram15
brw-rw---- 1 root disk 1, 2 Apr 3 23:17 ram2
brw-rw---- 1 root disk 1, 3 Apr 3 23:17 ram3
brw-rw---- 1 root disk 1, 4 Apr 3 23:17 ram4
brw-rw---- 1 root disk 1, 5 Apr 3 23:17 ram5
brw-rw---- 1 root disk 1, 6 Apr 3 23:17 ram6
brw-rw---- 1 root disk 1, 7 Apr 3 23:17 ram7
brw-rw---- 1 root disk 1, 8 Apr 3 23:17 ram8
brw-rw---- 1 root disk 1, 9 Apr 3 23:17 ram9
crw-rw-rw- 1 root root 1, 8 Apr 3 23:17 random
drwxr-xr-x 2 root root 60 Jan 1 1970 raw
crw-rw-r-- 1 root netdev 10, 57 Apr 3 23:17 rfkill
lrwxrwxrwx 1 root root 7 Apr 3 23:17 serial0 -> ttyAMA0
lrwxrwxrwx 1 root root 5 Apr 3 23:17 serial1 -> ttyS0
drwxrwxrwt 2 root root 40 Feb 14 2019 shm
drwxr-xr-x 3 root root 180 Apr 3 23:17 snd
lrwxrwxrwx 1 root root 15 Feb 14 2019 stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root root 15 Feb 14 2019 stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root 15 Feb 14 2019 stdout -> /proc/self/fd/1
crw-rw-rw- 1 root tty 5, 0 Apr 3 23:17 tty
crw--w---- 1 root tty 4, 0 Apr 3 23:17 tty0
crw--w---- 1 root tty 4, 1 Apr 4 00:42 tty1
crw--w---- 1 root tty 4, 10 Apr 3 23:17 tty10
crw--w---- 1 root tty 4, 11 Apr 3 23:17 tty11
crw--w---- 1 root tty 4, 12 Apr 3 23:17 tty12
crw--w---- 1 root tty 4, 13 Apr 3 23:17 tty13
crw--w---- 1 root tty 4, 14 Apr 3 23:17 tty14
crw--w---- 1 root tty 4, 15 Apr 3 23:17 tty15
crw--w---- 1 root tty 4, 16 Apr 3 23:17 tty16
crw--w---- 1 root tty 4, 17 Apr 3 23:17 tty17
crw--w---- 1 root tty 4, 18 Apr 3 23:17 tty18
crw--w---- 1 root tty 4, 19 Apr 3 23:17 tty19
crw--w---- 1 root tty 4, 2 Apr 3 23:17 tty2
crw--w---- 1 root tty 4, 20 Apr 3 23:17 tty20
crw--w---- 1 root tty 4, 21 Apr 3 23:17 tty21
crw--w---- 1 root tty 4, 22 Apr 3 23:17 tty22
crw--w---- 1 root tty 4, 23 Apr 3 23:17 tty23
crw--w---- 1 root tty 4, 24 Apr 3 23:17 tty24
crw--w---- 1 root tty 4, 25 Apr 3 23:17 tty25
crw--w---- 1 root tty 4, 26 Apr 3 23:17 tty26
crw--w---- 1 root tty 4, 27 Apr 3 23:17 tty27
crw--w---- 1 root tty 4, 28 Apr 3 23:17 tty28
crw--w---- 1 root tty 4, 29 Apr 3 23:17 tty29
crw--w---- 1 root tty 4, 3 Apr 3 23:17 tty3
crw--w---- 1 root tty 4, 30 Apr 3 23:17 tty30
crw--w---- 1 root tty 4, 31 Apr 3 23:17 tty31
crw--w---- 1 root tty 4, 32 Apr 3 23:17 tty32
crw--w---- 1 root tty 4, 33 Apr 3 23:17 tty33
crw--w---- 1 root tty 4, 34 Apr 3 23:17 tty34
crw--w---- 1 root tty 4, 35 Apr 3 23:17 tty35
crw--w---- 1 root tty 4, 36 Apr 3 23:17 tty36
crw--w---- 1 root tty 4, 37 Apr 3 23:17 tty37
crw--w---- 1 root tty 4, 38 Apr 3 23:17 tty38
crw--w---- 1 root tty 4, 39 Apr 3 23:17 tty39
crw--w---- 1 root tty 4, 4 Apr 3 23:17 tty4
crw--w---- 1 root tty 4, 40 Apr 3 23:17 tty40
crw--w---- 1 root tty 4, 41 Apr 3 23:17 tty41
crw--w---- 1 root tty 4, 42 Apr 3 23:17 tty42
crw--w---- 1 root tty 4, 43 Apr 3 23:17 tty43
crw--w---- 1 root tty 4, 44 Apr 3 23:17 tty44
crw--w---- 1 root tty 4, 45 Apr 3 23:17 tty45
crw--w---- 1 root tty 4, 46 Apr 3 23:17 tty46
crw--w---- 1 root tty 4, 47 Apr 3 23:17 tty47
crw--w---- 1 root tty 4, 48 Apr 3 23:17 tty48
crw--w---- 1 root tty 4, 49 Apr 3 23:17 tty49
crw--w---- 1 root tty 4, 5 Apr 3 23:17 tty5
crw--w---- 1 root tty 4, 50 Apr 3 23:17 tty50
crw--w---- 1 root tty 4, 51 Apr 3 23:17 tty51
crw--w---- 1 root tty 4, 52 Apr 3 23:17 tty52
crw--w---- 1 root tty 4, 53 Apr 3 23:17 tty53
crw--w---- 1 root tty 4, 54 Apr 3 23:17 tty54
crw--w---- 1 root tty 4, 55 Apr 3 23:17 tty55
crw--w---- 1 root tty 4, 56 Apr 3 23:17 tty56
crw--w---- 1 root tty 4, 57 Apr 3 23:17 tty57
crw--w---- 1 root tty 4, 58 Apr 3 23:17 tty58
crw--w---- 1 root tty 4, 59 Apr 3 23:17 tty59
crw--w---- 1 root tty 4, 6 Apr 3 23:17 tty6
crw--w---- 1 root tty 4, 60 Apr 3 23:17 tty60
crw--w---- 1 root tty 4, 61 Apr 3 23:17 tty61
crw--w---- 1 root tty 4, 62 Apr 3 23:17 tty62
crw--w---- 1 root tty 4, 63 Apr 3 23:17 tty63
crw--w---- 1 root tty 4, 7 Apr 3 23:17 tty7
crw--w---- 1 root tty 4, 8 Apr 3 23:17 tty8
crw--w---- 1 root tty 4, 9 Apr 3 23:17 tty9
crw-rw---- 1 root dialout 204, 64 Apr 4 02:44 ttyAMA0
crw------- 1 root root 5, 3 Apr 3 23:17 ttyprintk
crw-rw---- 1 root dialout 4, 64 Apr 4 02:45 ttyS0
crw------- 1 root root 10, 239 Apr 3 23:17 uhid
crw------- 1 root root 10, 223 Apr 3 23:17 uinput
crw-rw-rw- 1 root root 1, 9 Apr 3 23:17 urandom
drwxr-xr-x 3 root root 60 Apr 3 23:17 v4l
crw-rw---- 1 root video 243, 0 Apr 3 23:17 vchiq
crw-rw---- 1 root video 248, 0 Apr 3 23:17 vcio
crw------- 1 root root 249, 0 Apr 3 23:17 vc-mem
crw-rw---- 1 root tty 7, 0 Apr 3 23:17 vcs
crw-rw---- 1 root tty 7, 1 Apr 3 23:17 vcs1
crw-rw---- 1 root tty 7, 2 Apr 3 23:17 vcs2
crw-rw---- 1 root tty 7, 3 Apr 3 23:17 vcs3
crw-rw---- 1 root tty 7, 4 Apr 3 23:17 vcs4
crw-rw---- 1 root tty 7, 5 Apr 3 23:17 vcs5
crw-rw---- 1 root tty 7, 6 Apr 3 23:17 vcs6
crw-rw---- 1 root tty 7, 128 Apr 3 23:17 vcsa
crw-rw---- 1 root tty 7, 129 Apr 3 23:17 vcsa1
crw-rw---- 1 root tty 7, 130 Apr 3 23:17 vcsa2
crw-rw---- 1 root tty 7, 131 Apr 3 23:17 vcsa3
crw-rw---- 1 root tty 7, 132 Apr 3 23:17 vcsa4
crw-rw---- 1 root tty 7, 133 Apr 3 23:17 vcsa5
crw-rw---- 1 root tty 7, 134 Apr 3 23:17 vcsa6
crw-rw---- 1 root video 244, 0 Apr 3 23:17 vcsm
crw-rw-rw- 1 root root 10, 58 Apr 3 23:17 vcsm-cma
crw-rw---- 1 root tty 7, 64 Apr 3 23:17 vcsu
crw-rw---- 1 root tty 7, 65 Apr 3 23:17 vcsu1
crw-rw---- 1 root tty 7, 66 Apr 3 23:17 vcsu2
crw-rw---- 1 root tty 7, 67 Apr 3 23:17 vcsu3
crw-rw---- 1 root tty 7, 68 Apr 3 23:17 vcsu4
crw-rw---- 1 root tty 7, 69 Apr 3 23:17 vcsu5
crw-rw---- 1 root tty 7, 70 Apr 3 23:17 vcsu6
crw------- 1 root root 10, 137 Apr 3 23:17 vhci
crw-rw---- 1 root video 81, 0 Apr 3 23:17 video10
crw-rw---- 1 root video 81, 1 Apr 3 23:17 video11
crw-rw---- 1 root video 81, 2 Apr 3 23:17 video12
crw------- 1 root root 10, 130 Apr 3 23:17 watchdog
crw------- 1 root root 251, 0 Apr 3 23:17 watchdog0
crw-rw-rw- 1 root root 1, 5 Apr 3 23:17 zero
This is what dmesg
displays when the SKR board is connected via USB:
[ 782.045546] usb 1-1.2: new full-speed USB device number 4 using dwc_otg
[ 782.179166] usb 1-1.2: New USB device found, idVendor=1d50, idProduct=6029, bcdDevice= 1.00
[ 782.179181] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 782.179191] usb 1-1.2: Product: Marlin USB Device
[ 782.179200] usb 1-1.2: Manufacturer: marlinfw.org
[ 782.179210] usb 1-1.2: SerialNumber: 19005005AF6A84A95E5501FBF50020C7
[ 782.180808] usb-storage 1-1.2:1.2: USB Mass Storage device detected
[ 782.189370] scsi host0: usb-storage 1-1.2:1.2
[ 782.238245] cdc_acm 1-1.2:1.0: ttyACM0: USB ACM device
[ 782.239296] usbcore: registered new interface driver uas
[ 782.239310] usbcore: registered new interface driver cdc_acm
[ 782.239318] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[ 783.258110] scsi 0:0:0:0: Direct-Access Marlin SDCard 01 1.0 PQ: 0 ANSI: 0 CCS
[ 783.280844] sd 0:0:0:0: Attached scsi generic sg0 type 0
[ 783.316493] sd 0:0:0:0: [sda] Attached SCSI removable disk
Nothing is added to the output of dmesg
when the printer is connected via GPIO.
The USB connection shows as /dev/ACM0
on Octoprint. Octoprint has access to /dev/ttyACM*
, /dev/ttyAMA*
, /dev/ttyS*
, and /dev/serial*
. When it was working properly, it only had /dev/ttyAMA0
, but I added the others in an effort to get it connecting.
I'd appreciate any help you folks can give - I've been all over 3D printing Discords with no luck.
Additional information about your setup (OctoPrint version, OctoPi version, printer, firmware, what kind of hardware precisely, ...)
Raspberry Pi 3B running Octoprint v. 1.5.3
SKR v 1.4 T running Marlin v. 2.0.7.2
Modified Ender 5 Pro