Octoprint disconnects from printer within about the first hour of printing

I have been using Octoprint for a few months, and it has been working very reliably. Recently, however, the print has randomly stopped during a print. This issue has been happening for about a month, and I have not been able to get a complete print since. It also does not always stop at the same spot. I am currently running Octoprint 1.3.12 on a Raspberry Pi 3 B+. I print from an Ender 3 Pro. To fix the issue, I first tried using a shorter shielded USB cable with a ferrite core. This did not work, so I thought there might be interference from the stepper motors. I moved the printer from a desk with an enclosed back into an open area, but the print still failed. I increased the communication time out time, but that did not work. I have no idea what to try now.

I don't know if this has anything to do with the problem, but the only option for the serial port says /dev/ttyUSB0. It did not used to say that.

Here is the last part of the terminal output before it fails:

...
Send: N33650 G1 X77.814 Y77.039 E3763.61383*88
Recv: ok
Send: N33651 G1 X79.897 Y73.543 E3763.74918*92
Recv: ok
Send: N33652 G1 X81.164 Y71.612 E3763.826*87
Recv: ok
Send: N33653 G1 X84.503 Y66.519 E3763.95369*84
Recv: ok
Send: N33654 G1 X86.002 Y64.235 E3763.97278*93
Recv: ok
Send: N33655 G1 X86.246 Y63.971 E3763.97387*83
Recv:  T:200.00 /200.00 B:49.79 /50.00 @:75 B@:127
Communication timeout while printing, trying to trigger response from printer. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.
Send: N33656 M105*34
Communication timeout while printing, trying to trigger response from printer. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.
Send: N33657 M105*35
Communication timeout while printing, trying to trigger response from printer. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.
Send: N33658 M105*44
Communication timeout while printing, trying to trigger response from printer. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.
Send: N33659 M105*45
Communication timeout while printing, trying to trigger response from printer. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.
Send: N33660 M105*39
No response from printer after 6 consecutive communication timeouts, considering it dead. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.
Changing monitoring state from "Printing" to "Offline (Error: Too many consecutive timeouts, printer still connected and alive?)"
Connection closed, closing down monitor

Ender 3 Pro
Raspberry Pi 3 B+
Octoprint 1.3.12
(Canakit power supply)

I can always print from the SD card, but I really like Octoprint and all of its features.

I got rid of a similar problem with replacing the creality firmware with my own marlin (marlin 1.1.9 with ender 3 example config from github with minor edits)

Ok thank you. I'll try that soon, but I don't understand why it would break when it was working fine.