Failed to autodetect but Additional Serial Ports not showing up in the dropdown

#1

What is the problem?
I cannot connect my CR-10 Mini to Octoprint. Error: "Failed to autodetect serial port, please set it manually." Even after entering the additional serial port, all that shows is "Auto" when I select the dropdown.

What did you already try to solve it?
From other posts regarding CR-10, I am pretty sure that the "/dev/ttyUSB0" port will solve my problem. I have entered that in the space for "additional Serial Ports" in Settings > Serial Connection. I saved and refreshed, turned printer off/on, sudo reboot on my Pi, restarted the server. It seems I am doing everything right, but there is still nothing in the dropdown when I go to select something other than Auto.

Additional information about your setup (OctoPrint version, OctoPi version, printer, firmware, octoprint.log, serial.log or output on terminal tab, ...)

Running most recent release of Octopi on RPi 3B+. Octoprint itself is working great with webcam all set up, HAProxy and DDNS all set up. the 3d printer works great on regular prints, just can't connect to Octoprint... Any ideas?

#2

Also, I have tried to enter in other ports including, /dev/ttyUSB* , /dev/ttyACM* , /dev/tty.usb* , /dev/cu.* , /dev/cuaU* and /dev/rfcomm*. None show up except /dev/ttyACM*. All were entered without single quotes, no spaces, one per line as directed.

#3

Update: on Auto/Auto with '/dev/ttyAMA*' entered into the additional ports (but not selected), this came up on the terminal. I was still unable to control the printer in any way.

Terminal:
Changing monitoring state from "Offline" to "Detecting serial port"
Serial port list: ['/dev/ttyAMA0']
Connecting to: /dev/ttyAMA0
Changing monitoring state from "Detecting serial port" to "Opening serial port"
Connected to: Serial<id=0x72e8cdf0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=10.0, xonxoff=False, rtscts=False, dsrdtr=False), starting monitor
Starting baud rate detection...
Changing monitoring state from "Opening serial port" to "Detecting baudrate"
Trying baudrate: 115200

#4

If that's the port you think it is then select that in the Connection side panel widget and also set the baudrate to 115200 and see if it will work.

You might also want to verify that your serial cable has an internal metallic shielding or it has a ferrite core.

#5

Thanks for the reply! Are you talking about setting it here? I am unable to select it. It simply isn't there. This is after I saved and reopened the Settings window.

I am using the cable that came in the box. I'm sure it's pretty cheap, but it seems to be recognizing the printer in some way. I don't think it would work only halfway would it?

#6

It really depends upon your firmware (whatever baudrate has been selected there). You successfully added the first /dev/ttyAMA* pattern in the Additional serial ports section and it seems to have found /dev/ttyAMA0 in that pull-down list. You should be able to select this port from there rather than AUTO. And then, you can manually set the baudrate to this value, to something higher or lower to see if it will connect.

#7

@foosel Is this some kind of software glitch? It seems that if I put the port on the list, it should show up for selection. Is there something you can think of that I'm missing?

#8

The only thing in the pull-down selection is what was discovered. If you do an ls /dev on your Raspi you'll see that there are lots of devices that could potentially be your printer. The Additional Ports section is to help if the port wasn't discovered via the default search list, I'd guess.

OctoPrint will probably test something like this list automatically since it's in the comm.py file:

			   + glob.glob("/dev/ttyUSB*") \
			   + glob.glob("/dev/ttyACM*") \
			   + glob.glob("/dev/tty.usb*") \
			   + glob.glob("/dev/cu.*") \
			   + glob.glob("/dev/cuaU*") \
			   + glob.glob("/dev/rfcomm*")

From whatever list of potential ports are available, it looks like she uses the avrdude class stk500v2.Stk500v2() to walk through those and see if any are programmable (an Arduino board, in other words).

Having found the first board like this, she then tries to connect to it and determine the baudrate by saying hello, basically, and looking for a recognizable response.

#9

The additional ports setting allows you to add additional search patterns. It doesn't make ports appear magically that the underlying operating system doesn't see.

/dev/ttyAMA0

This is your RaspberryPi's own GPIO serial port and certainly not your printer unless you've wired it up there (and also jumped through some hoops to make that even possible).

If you plug your printer into the USB port, it should usually show up either as a ttyACM or a ttyUSB device. If it doesn't, you need to figure out why.

Unplug the printer. SSH into the machine. Run dmesg. Plug the printer in (make sure it's powered up too!). Run dmesg again. Share the lines that got added.