Cura developer is not recommend printing though USB anymore. This part of function is now working as plugins module.
USB printing not working on Cura 2.3
Original USB Printing plugins will communicate with stk500, which is a firmware update program for avr. However, this program does not close serial port correctly before plugins started baud rate detection. This problem will cause USB port cannot open and failed detecting USB printer.
Comment out firmware update will solve. File: C:\Program Files\Cura 2.3\plugins\USBPrinting\USBPrinterOutputDevice.py, Line 301:
## Private connect function run by thread. Can be started by calling connect. def _connect(self): Logger.log("d", "Attempting to connect to %s", self._serial_port) self.setConnectionState(ConnectionState.connecting) #programmer = stk500v2.Stk500v2() ## PLEASE COMMENT THIS LINE ## try: programmer.connect(self._serial_port) # Connect with the serial, if this succeeds, it's an arduino based usb device. self._serial = programmer.leaveISP() except ispBase.IspError as e: Logger.log("i", "Could not establish connection on %s: %s. Device is not arduino based." %(self._serial_port,str(e))) except Exception as e: Logger.log("i", "Could not establish connection on %s, unknown reasons. Device is not arduino based." % self._serial_port)
You can also download modified file USBPrinterOutputDevice.py and overwrite.
Connect printer via USB, start Cura app. You can find both “USB Printing” and “Save to file” button on right bottom.