Bad printing quality through USB

Not all printers are built the same and this means that you can experience different print quality from printer to printer, not just because of the mechanics of the printer but also the printer's way of receiving information. Most printer motherboards are not built to receive printer commands through the USB port very well. They can easily print from this port but it can be limited, how many commands it can handle at a time, and thus how fast you can print. The printer will often start showing irregularities like patches of plastic all over the model. These patches occur because the printer's memory becomes full and therefore cannot take in any more information and the print head will momentarily stop. It is still unknown exactly what the solution to this problem is but there are some suggestions to try out.

 

Bad cable

There are several types of USB cables and they are not all built equally. Many Micro USB cables are made solely to charge gadgets like phones and headsets. This prevents the cable from transmitting data that the printer needs. If the cable is very thin, it is a good sign that it does not have all the conductors needed to transfer data.

 

When using a cable that needs to transfer data around a 3D printer, the problem with the cable can occur due to all the motors being under high voltage. They create magnetic fields that can interfere with the signal through the cable and therefore we shout that you use a shielded cable. These cables have a layer of metal around the conductors inside the cable and are generally a lot thicker than the "normal" cables. This keeps the motors and wires from interfering with the data moving through the cable.

 

Incorrect USB port (Pi 4)

The new Raspberry Pi 4 has 2 types of USB ports you can connect your printer to. There are 2 blue and 2 black ports. The blue ports are USB 3.0 and are a newer standard than the old USB 2.0 as the black ports would be. Some older printers have trouble talking to the USB 3.0 standard. Try plugging the USB connector into one of the black USB ports and see if that solves the problem. On the other hand, the blue ports are good for attaching cameras

 

Try a higher baud rate

When the printer and your raspberry has to talk to each other, they need to agree on the speeds of which they will do that. This is called the "baud rate" and is set when connections are established. It will typically be the motherboard in your 3D printer that sets the limit on how fast they can communicate, but if you have the option to set the baud rate higher then give it a try. To set the baud rate, go to your SimplyPrint printer settings and turn off “Automatic printer connection”. (if you do not do this you will not be able to adjust the baud rate before OctoPrint connects to the printer again). Go into OctoPrint and the "Connection tab" on the left. Press "Disconnect" and under baud rate, up the value one step at a time, and see if it will connect like this.

 

Disable bigger plugins

The problem may also lie with your Raspberry Pi, especially if you are running a slightly older version (Pi 2 and 3B). The small computer has to handle a lot of things while your printer is running and it can become too much for the thing. If it is running too many things at once, it may have a hard time keeping the printer fed with information. If you have some bigger plugins, you can try by disabling them while performing a test print. You can disable plugins by opening OctoPrint and finding the wrench at the top of the page. Find “plugin Manager” on the list on the left. Here you can turn off plugins by clicking on the small icon on the right which looks like a small slider.

 

Start OctoPrint in safe mode

To test if it is your raspberry that is causing problems, try starting it up in "Safe mode" which deactivates everything but the pure OctoPrint install. Open OctoPrint and find the "on / off" button at the top of the page and press "Restart OctoPrint in safe mode". Run a test print directly through OctoPrint as SimplyPrint cannot talk to OctoPrint with safe mode enabled. If this does not provide any improvement, the issue may not be OctoPrint related.

 

Install arc-welder

Since the problem occurs because too many commands are sent to printers at once, it makes sense to remove some of the many commands. The OctoPrint plugin “Arc-welder” reduces the amount of data by combining several commands into one, without reducing the quality of the print very much. This can increase how fast your printer can print through SimplyPrint and OctoPrint. See the article called “How to install an OctoPrint plugin” for a guide on how to install this.

 

Firmware edits

The firmware may limit the amount of data that can be stored on the printer at one time. If everything else fails, firmware can be updated on the machine where the buffer may be made a little bigger and thus keep the printer fed with commands. This will only work for marlin firmware which is fortunately very common.


Find the firmware you need, if you do not know which firmware you have on your printer, you can usually search for the name of your printer, followed by "firmware". Once you have found the version you want, you can open the file called “Configuration_adv.h” in a program like Arduino IDE and search for “BLOCK_BUFFER_SIZE” and set the value that comes right after 128. Now search for “BUFSIZE 32” and set the value that comes after it to 32. Save the file and transfer the firmware to your printer. A guide on how to flash new firmware on your printer will come in the near future.