Jump to content
Ultimaker Community of 3D Printing Experts
boelle

cura 2.1.2 cant find printer

Recommended Posts

Cura tries to check all com ports and all possible baud rates. At that point it asks for the temperature a few times. If it also gets a correct answer, it adds the printer to be used with USB printing.

So if it's not found, your printer did not give the right answers.

  • Like 1

Share this post


Link to post
Share on other sites

Is there any way to disable auto-detection and manually set the port and speed (like there is in 15.04.6)?

No, there is not. It may return in a future version. Both my printers are detected just fine, so it is hard for us to improve this without being able to test it.

Share this post


Link to post
Share on other sites

What printers do you guys have that does not detect?

I have a JG Aurora A3 which is (as far as I can tell) a RepRap variant.

It's on COM9, not sure what the serial port speed is.  If I set the COM port to "auto", Cura 15.04.6 doesn't find the printer.  If I set the port manually to COM9, it works very reliably.

OS is Windows 10, fully updated.

Share this post


Link to post
Share on other sites

So... found the problem. Windows is enumerating my serial ports as:

2016-10-14 22:48:12,604 - DEBUG - Considering serial port \Device\Serial0 -> COM1.

2016-10-14 22:48:12,604 - DEBUG - Considering serial port \Device\VCP0 -> COM9.

By default, the code in USBPrinterManager.py only lists what it thinks are USB ports, and it does this by checking the name contains the string "USBSER". My USB serial port is named "VCP0" (virtual communications port #0) so doesn't match. If you change the code in _updateThread() to have:

result = self.getSerialPortList(only_list_usb = False)

then this filter is removed and the printer appears.

Now I can print.

Except that the printer control panel has disappeared. All I get is a minimal display with the temperatures and a progress bar. Now to go and get the "pronterface UI" back.

So far, for me, Cura 2.x is a massive step backwards... configuring the printer was a massive PITA compared to Cura 1.x, then the issue with the detection, now the removal of the decent printer control UI. Not a good experience and definitely doesn't feel like an upgrade.

Share this post


Link to post
Share on other sites

So... found the problem.  Windows is enumerating my serial ports as:

2016-10-14 22:48:12,604 - DEBUG - Considering serial port \Device\Serial0 -> COM1.

2016-10-14 22:48:12,604 - DEBUG - Considering serial port \Device\VCP0 -> COM9.

By default, the code in USBPrinterManager.py only lists what it thinks are USB ports, and it does this by checking the name contains the string "USBSER".  My USB serial port is named "VCP0" (virtual communications port #0) so doesn't match.  If you change the code in _updateThread() to have:

   result = self.getSerialPortList(only_list_usb = False)

then this filter is removed and the printer appears.

Now I can print.

Except that the printer control panel has disappeared.  All I get is a minimal display with the temperatures and a progress bar.  Now to go and get the "pronterface UI" back.

So far, for me, Cura 2.x is a massive step backwards...  configuring the printer was a massive PITA compared to Cura 1.x, then the issue with the detection, now the removal of the decent printer control UI.  Not a good experience and definitely doesn't feel like an upgrade.

Share this post


Link to post
Share on other sites

So far, for me, Cura 2.x is a massive step backwards...  configuring the printer was a massive PITA compared to Cura 1.x, then the issue with the detection, now the removal of the decent printer control UI.  Not a good experience and definitely doesn't feel like an upgrade.

 

It's only fair that Ultimaker developers (who do 90-95% of the work) focus on getting the experience right with Ultimaker machines. We've tried getting in contact with other printer companies if they also want to develop for Cura, with very limited success.

So if you want your printer to work you can do two things;

- Send one of the Cura devs the printer, so we can actually test (If I get a free printer, I'm going to spend some of my own time on this ;)).

- Convince the people who made the printer in the first place to put some resources towards fixing it.

  • Like 1

Share this post


Link to post
Share on other sites

Nallath, I completely understand the focus on Ultimaker machines, that's completely reasonable.

What I don't like is how much harder it is to add a 3rd party printer - it used to be easy but the UI that made it possible has been removed.

I understand that Ultimaker test with their own printers - that's why I took the effort to debug the code and post the fix above.  I'll also post the printer definition including the STL structure when I get a chance (probably by forking the github then sending a pull request).

If that had been all that was wrong then I'd have said "OK, you've only focused on Ultimaker..." and kept going.

BUT I really like the pronterface UI.  I like being able to manually control the printer from it.  I find it much easier to level the bed using the pronterface UI than I can using the controls on the printer - the pronterface UI is much more precise.  I'm not pleased that this has gone.

I also really like being able to directly edit the G-code for the start and end of the print.  I don't do it very often, but when I do it's brilliant.  Trying to change the G-code in the JSON file is horrible.  I'm not pleased that this has gone either.

Version 2 has a flashier UI, with the STL definitions for the printer appearance, more control over the slicer (which seems to have very different slicer algorithms), etc. but losing the pronterface UI and G-code editing is a deal breaker for me and I'm sticking with the the 15.x series until the v2 series gets feature parity with 15.x in these areas (or someone writes plugins that do the equivalent).

Share this post


Link to post
Share on other sites

BUT I really like the pronterface UI. I like being able to manually control the printer from it. I find it much easier to level the bed using the pronterface UI than I can using the controls on the printer - the pronterface UI is much more precise. I'm not pleased that this has gone.

 

Don't worry. There are people working on putting back manual jogging & control of the printer both on USB and through the network connection of the UM3.

  • Like 2

Share this post


Link to post
Share on other sites

 If you change the code in _updateThread() to have:

   result = self.getSerialPortList(only_list_usb = False)

then this filter is removed and the printer appears.

Now I can print.

 

Thank you! I have been searchng all morning for a resolution to the same problem  and this worked perfectly!

I am running Windows 10 x64 with a Prusa i3 printer on COM7.

Share this post


Link to post
Share on other sites

Hi,

Impossible for me to connect my Anet A8 to USB with cura 2.3.1 or cura 2.4

With cura 15.07 all is good if i configure manually with com4 and baudrate 115200.

So, i change this line in USBPrinterOutputDeviceManager.py

 

result = self.getSerialPortList(only_list_usb = True)

 

-->

by

 

result = self.getSerialPortList(only_list_usb = False)

 

But still not work:

Cura.log say:

 

2017-01-15 11:40:12,144 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin FileLogger2017-01-15 11:40:12,162 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin GCodeProfileReader2017-01-15 11:40:12,178 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin GCodeWriter2017-01-15 11:40:12,201 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin ImageReader2017-01-15 11:40:12,239 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin LayerView2017-01-15 11:40:12,258 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin LegacyProfileReader2017-01-15 11:40:12,282 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin LocalFileOutputDevice2017-01-15 11:40:12,311 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin MachineSettingsAction2017-01-15 11:40:12,336 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin PerObjectSettingsTool2017-01-15 11:40:12,358 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin PostProcessingPlugin2017-01-15 11:40:12,391 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin RemovableDriveOutputDevice2017-01-15 11:40:12,429 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin SliceInfoPlugin2017-01-15 11:40:12,450 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin SolidView2017-01-15 11:40:12,468 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin CameraTool2017-01-15 11:40:12,509 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin MirrorTool2017-01-15 11:40:12,547 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin RotateTool2017-01-15 11:40:12,580 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin ScaleTool2017-01-15 11:40:12,600 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin SelectionTool2017-01-15 11:40:12,625 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin TranslateTool2017-01-15 11:40:12,665 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin UltimakerMachineActions2017-01-15 11:40:12,787 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin UM3NetworkPrinting2017-01-15 11:40:12,894 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin UpdateChecker2017-01-15 11:40:12,898 - INFO - UpdateChecker.UpdateChecker.run [40]: Checking for new version of cura2017-01-15 11:40:13,045 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin USBPrinting2017-01-15 11:40:13,084 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin VersionUpgrade21to222017-01-15 11:40:13,124 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin VersionUpgrade22to242017-01-15 11:40:13,175 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin SimpleView2017-01-15 11:40:13,198 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin WireframeView2017-01-15 11:40:13,220 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin X3DReader2017-01-15 11:40:13,252 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin XmlMaterialProfile2017-01-15 11:40:13,283 - INFO - UM.PluginRegistry.loadPlugin [100]: Loaded plugin XRayView2017-01-15 11:40:13,287 - INFO - UM.Qt.QtApplication.__init__ [90]: Command line arguments: {'external-backend': False, 'file': [], 'disable-textures': False}2017-01-15 11:40:13,308 - INFO - UM.VersionUpgradeManager.upgrade [100]: Looking for old configuration files to upgrade.2017-01-15 11:40:13,309 - DEBUG - USBPrinting.USBPrinterOutputDevice._connect [298]: Attempting to connect to COM42017-01-15 11:40:13,327 - WARNING - UM.Logger.logException [65]: Exception: Exception in machine_instance upgrade with VersionUpgrade22to24.VersionUpgrade: Traceback (most recent call last): File "D:\2.4\build\inst\lib\python3.5\site-packages\UM\VersionUpgradeManager.py", line 310, in _upgradeFileTypeError: 'NoneType' object is not iterable2017-01-15 11:40:13,331 - WARNING - UM.Logger.logException [69]: Traceback (most recent call last):2017-01-15 11:40:13,334 - WARNING - UM.Logger.logException [69]:   File "D:\2.4\build\inst\lib\python3.5\site-packages\UM\VersionUpgradeManager.py", line 310, in _upgradeFile2017-01-15 11:40:13,336 - WARNING - UM.Logger.logException [69]: TypeError: 'NoneType' object is not iterable2017-01-15 11:40:13,469 - DEBUG - UM.Backend.Backend._logSocketState [167]: Socket state changed to Listening2017-01-15 11:40:13,498 - INFO - UM.Backend.Backend.startEngine [71]: Started engine process: C:\Program Files\Cura 2.4\CuraEngine.exe2017-01-15 11:40:13,501 - DEBUG - UM.Backend.Backend._backendLog [89]: [backend] Calling engine with: ['C:\\Program Files\\Cura 2.4\\CuraEngine.exe', 'connect', '127.0.0.1:49674', '-j', 'C:\\Program Files\\Cura 2.4\\resources\\definitions\\fdmprinter.def.json', '']2017-01-15 11:40:13,506 - WARNING - UM.OutputDevice.OutputDeviceManager.removeOutputDevice [125]: Could not find output device with id COM4 to remove2017-01-15 11:40:13,851 - DEBUG - MachineSettingsAction.MachineSettingsAction._onContainerAdded [69]: Not attaching MachineSettingsAction to ultimaker_original_dual; Multi-extrusion printers are not supported2017-01-15 11:40:14,001 - DEBUG - MachineSettingsAction.MachineSettingsAction._onContainerAdded [69]: Not attaching MachineSettingsAction to punchtec_connect_xl; Multi-extrusion printers are not supported2017-01-15 11:40:14,344 - DEBUG - UM.Backend.Backend._backendLog [89]: [backend] 2017-01-15 11:40:14,351 - DEBUG - UM.Backend.Backend._backendLog [89]: [backend] Cura_SteamEngine version DEV2017-01-15 11:40:14,361 - DEBUG - UM.Backend.Backend._backendLog [89]: [backend] Copyright © 2014 David Braam2017-01-15 11:40:14,368 - DEBUG - UM.Backend.Backend._backendLog [89]: [backend] 2017-01-15 11:40:14,383 - DEBUG - UM.Backend.Backend._backendLog [89]: [backend] This program is free software: you can redistribute it and/or modify2017-01-15 11:40:14,396 - DEBUG - UM.Backend.Backend._backendLog [89]: [backend] it under the terms of the GNU Affero General Public License as published by2017-01-15 11:40:14,404 - DEBUG - UM.Backend.Backend._backendLog [89]: [backend] the Free Software Foundation, either version 3 of the License, or2017-01-15 11:40:14,416 - DEBUG - UM.Backend.Backend._backendLog [89]: [backend] (at your option) any later version.2017-01-15 11:40:14,425 - DEBUG - UM.Backend.Backend._backendLog [89]: [backend] 2017-01-15 11:40:14,439 - DEBUG - UM.Backend.Backend._backendLog [89]: [backend] This program is distributed in the hope that it will be useful,2017-01-15 11:40:14,446 - DEBUG - UM.Backend.Backend._backendLog [89]: [backend] but WITHOUT ANY WARRANTY; without even the implied warranty of2017-01-15 11:40:14,452 - DEBUG - UM.Backend.Backend._backendLog [89]: [backend] MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the2017-01-15 11:40:14,458 - DEBUG - UM.Backend.Backend._backendLog [89]: [backend] GNU Affero General Public License for more details.2017-01-15 11:40:14,461 - DEBUG - UM.Backend.Backend._backendLog [89]: [backend] 2017-01-15 11:40:14,467 - DEBUG - UM.Backend.Backend._backendLog [89]: [backend] You should have received a copy of the GNU Affero General Public License2017-01-15 11:40:14,471 - DEBUG - UM.Backend.Backend._backendLog [89]: [backend] along with this program.  If not, see .2017-01-15 11:40:14,542 - DEBUG - MachineSettingsAction.MachineSettingsAction._onContainerAdded [69]: Not attaching MachineSettingsAction to ultimaker3; Multi-extrusion printers are not supported2017-01-15 11:40:14,689 - DEBUG - MachineSettingsAction.MachineSettingsAction._onContainerAdded [69]: Not attaching MachineSettingsAction to ord; Multi-extrusion printers are not supported2017-01-15 11:40:14,989 - INFO - USBPrinting.USBPrinterOutputDevice._connect [305]: Could not establish connection on COM4: 'Timeout'. Device is not arduino based.2017-01-15 11:40:14,991 - DEBUG - USBPrinting.USBPrinterOutputDevice._connect [312]: Attempting to connect to printer with serial COM4 on baud rate 1152002017-01-15 11:40:15,004 - DEBUG - USBPrinting.USBPrinterOutputDevice._connect [318]: Could not open port COM42017-01-15 11:40:15,013 - DEBUG - USBPrinting.USBPrinterOutputDevice._connect [312]: Attempting to connect to printer with serial COM4 on baud rate 2500002017-01-15 11:40:15,026 - DEBUG - USBPrinting.USBPrinterOutputDevice._connect [318]: Could not open port COM42017-01-15 11:40:15,031 - DEBUG - USBPrinting.USBPrinterOutputDevice._connect [312]: Attempting to connect to printer with serial COM4 on baud rate 2304002017-01-15 11:40:15,035 - DEBUG - USBPrinting.USBPrinterOutputDevice._connect [318]: Could not open port COM42017-01-15 11:40:15,035 - DEBUG - USBPrinting.USBPrinterOutputDevice._connect [312]: Attempting to connect to printer with serial COM4 on baud rate 576002017-01-15 11:40:15,036 - DEBUG - USBPrinting.USBPrinterOutputDevice._connect [318]: Could not open port COM42017-01-15 11:40:15,037 - DEBUG - USBPrinting.USBPrinterOutputDevice._connect [312]: Attempting to connect to printer with serial COM4 on baud rate 384002017-01-15 11:40:15,049 - DEBUG - USBPrinting.USBPrinterOutputDevice._connect [318]: Could not open port COM42017-01-15 11:40:15,060 - DEBUG - USBPrinting.USBPrinterOutputDevice._connect [312]: Attempting to connect to printer with serial COM4 on baud rate 192002017-01-15 11:40:15,072 - DEBUG - USBPrinting.USBPrinterOutputDevice._connect [318]: Could not open port COM42017-01-15 11:40:15,081 - DEBUG - USBPrinting.USBPrinterOutputDevice._connect [312]: Attempting to connect to printer with serial COM4 on baud rate 96002017-01-15 11:40:15,088 - DEBUG - USBPrinting.USBPrinterOutputDevice._connect [318]: Could not open port COM42017-01-15 11:40:15,089 - ERROR - USBPrinting.USBPrinterOutputDevice._connect [350]: Baud rate detection for COM4 failed2017-01-15 11:40:15,089 - DEBUG - USBPrinting.USBPrinterOutputDevice.close [364]: Closing the USB printer connection.2017-01-15 11:40:15,090 - DEBUG - USBPrinting.USBPrinterOutputDevice.close [369]: PrinterConnection.close: cannot join current thread (expected)2017-01-15 11:40:16,072 - DEBUG - MachineSettingsAction.MachineSettingsAction._onContainerAdded [69]: Not attaching MachineSettingsAction to ultimaker3_extended; Multi-extrusion printers are not supported2017-01-15 11:40:32,276 - DEBUG - UM.Backend.Backend._logSocketState [171]: Socket state changed to Connected2017-01-15 11:40:32,278 - DEBUG - UM.Backend.Backend._onSocketStateChanged [161]: Backend connected on port 496742017-01-15 11:40:32,284 - WARNING - UM.OutputDevice.OutputDeviceManager.removeOutputDevice [125]: Could not find output device with id COM4 to remove2017-01-15 11:40:32,287 - DEBUG - UM.Controller.setActiveView [81]: Setting active view to SolidView2017-01-15 11:40:32,297 - WARNING - cura.Settings.ExtruderManager.getMachineExtruders [375]: Tried to get the extruder trains for machine Custom FDM printer, which doesn't exist.2017-01-15 11:40:32,300 - WARNING - cura.Settings.ExtruderManager.getMachineExtruders [375]: Tried to get the extruder trains for machine Custom FDM printer, which doesn't exist.2017-01-15 11:40:36,260 - DEBUG - UM.Qt.Bindings.Theme.load [126]: Loading theme file: C:\Program Files\Cura 2.4\resources\themes\cura\theme.json2017-01-15 11:40:36,831 - DEBUG - UM.Qt.Bindings.Theme.load [186]: Loaded theme C:\Program Files\Cura 2.4\resources\themes\cura2017-01-15 11:40:38,794 - DEBUG - UM3NetworkPrinting.DiscoverUM3Action._createAdditionalComponentsView [134]: Creating additional ui components for UM3.2017-01-15 11:40:38,923 - DEBUG - CuraEngineBackend.CuraEngineBackend.slice [152]: Starting slice job...2017-01-15 11:40:39,476 - DEBUG - UM.Qt.GL.QtOpenGL.__init__ [57]: Initialized OpenGL subsystems.2017-01-15 11:40:39,480 - DEBUG - UM.Qt.GL.QtOpenGL.__init__ [58]: OpenGL Version:  3.3.02017-01-15 11:40:39,483 - DEBUG - UM.Qt.GL.QtOpenGL.__init__ [59]: OpenGL Vendor:   NVIDIA Corporation2017-01-15 11:40:39,485 - DEBUG - UM.Qt.GL.QtOpenGL.__init__ [60]: OpenGL Renderer: GeForce 315/PCIe/SSE22017-01-15 11:40:49,855 - DEBUG - AutoSave.AutoSave._onTimeout [48]: Autosaving preferences, instances and profiles2017-01-15 12:05:07,159 - DEBUG - UM.Qt.QtApplication.windowClosed [198]: Shutting down cura2017-01-15 12:05:09,272 - DEBUG - CuraEngineBackend.CuraEngineBackend._terminate [197]: Attempting to kill the engine process2017-01-15 12:05:09,272 - DEBUG - CuraEngineBackend.CuraEngineBackend._terminate [203]: Killing engine process2017-01-15 12:05:09,284 - DEBUG - CuraEngineBackend.CuraEngineBackend._terminate [206]: Engine process is killed. Received return code 1

 

Share this post


Link to post
Share on other sites

A cleaner way to reintroduce other printers is to modify the getSerialPortList function in USBPrinterOutputDeviceManager.py.

Around line 263:

- if not only_list_usb or "USBSER" in values[0]:

+ if not only_list_usb or "USBSER" or "VCP" in values[0]:

This simply lets Cura accept both USBSER and VCP as valid port types.

  • Like 2

Share this post


Link to post
Share on other sites

A cleaner way to reintroduce other printers is to modify the getSerialPortList function in USBPrinterOutputDeviceManager.py.

Around line 263:

-                    if not only_list_usb or "USBSER" in values[0]:

+                    if not only_list_usb or "USBSER" or "VCP" in values[0]:

This simply lets Cura accept both USBSER and VCP as valid port types.

 

Many thanks for sharing this. My Anet A8 is now recognized with Cura 2.5

By the way, the file is in /plugin/usbprinting/

  • Like 1

Share this post


Link to post
Share on other sites

A cleaner way to reintroduce other printers is to modify the getSerialPortList function in USBPrinterOutputDeviceManager.py.

Around line 263:

-                    if not only_list_usb or "USBSER" in values[0]:

+                    if not only_list_usb or "USBSER" or "VCP" in values[0]:

This simply lets Cura accept both USBSER and VCP as valid port types.

For Anycubic Prusa i3 Printer I used :

+ if not only_list_usb or "USBSER" or "VCP" or "SILABSER" in values[0]:

It worked nice on Win 10 even for USB printing.

Thank you for your help.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!