Octoprint
There are three ways to install OctoPrint on a Raspberry Pi:
1.Our Customized OctoPi
2.guysoft/OctoPi
3.Install OctoPrint from source on a Raspberry Pi.
Our Customized OctoPi
This is the easiest way to use OctoPrint on a Raspberry Pi
1.Download Image
2.Install image tool
Download the latest version of Raspberry Pi Imager and install it.
3.Flash image
Then:
- Connect an SD card reader with the SD card inside.
- Open Raspberry Pi Imager and choose the Customized OctoPi.
- Choose the SD card you wish to write your image to.
- Review your selections and click on the Write button to begin writing data to the SD Card.
4.Connect Printer
guysoft/OctoPi
The latest version of OctoPi is 0.18.0 released on Jan 25, 2021. This version of OctoPi needs to update the serial driver of ch340/ch341.
1.Install Image
Unzip the guysoft/OctoPi image and install it to an sd card according to the installation instructions of guysoft/OctoPi.
2.Login
3.Delete the older ch340/ch341 serial driver
Check if the ch340/ch341 serial driver already exists:
ls /lib/modules/$(uname -r)/kernel/drivers/usb/serial/
Delete it:
sudo rm /lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch341.ko
4.Build the newer serial driver and install it:
a)Install the Linux kernel header file:
The Linux kernel version of OctoPi V0.18.0 is 5.4.79, so we download the corresponding header file installation package.
wget http://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-firmware/raspberrypi-kernel-headers_1.20201126-1_armhf.deb
(If your Linux kernel version is not 5.4.79, download the corresponding one from http://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-firmware/ ;
Use this command to check which version of your Linux kernel is: uname -r )
Install the header file :
sudo dpkg -i ./raspberrypi-kernel-headers_1.20201126-1_armhf.deb
b)Download the CH340/CH341 serial driver source code and unzip it
wget http://www.weedo3dprinter.com/lib/exe/fetch.php/firmware/ch341ser_linux-kernel5.4.79.zip unzip ch341ser_linux-kernel5.4.79.zip
c)Build it:
d)Install it:
5.Change OctoPrint source file
a)Test Connection
If you can connect the printer,skip to section 6.
If you can not connect the printer, you need to change the serial communication python file.
b)change the serial communication python file
Open the serial communication python file.
Its path seems like this:
/home/pi/oprint/lib/python3.7/site-packages/octoprint/util/comm.py
If your python version is not python3.7, just replace “python3.7” with your real version.
Write this code after opening the serial port and save it:
#set default serial_obj.setDTR(False) serial_obj.setRTS(False) serial_obj.oopen() # force reboot printer time.sleep(0.1) serial_obj.setDTR(True) serial_obj.setRTS(True) time.sleep(1) serial_obj.setDTR(False) serial_obj.setRTS(False) # wait time.sleep(3)
(Be careful, the OctoPrint source file uses spaces as indent.)
6.Reboot your Raspberry Pi and Connect the printer with its baud rate
a)Reboot your Raspberry Pi, then add tina2 settings to the profile.
b)Connect printer with 1000000 baud rate
Install OctoPrint from source on a Raspberry Pi
This installation method is a bit complicated, if you do not have programming skills, we do not recommend you to use this method
1.Install OctoPrint
Install OctoPrint following the OctoPrint community documents.
If you can connect the printer by baud rate 1000000, skip to section 4.
If you can not connect the printer with OctoPrint, continue with section 2 to update the serial driver of CH341:
2.Update serial driver
a)Update your Linux kernel
sudo apt-get update sudo apt-get install raspberrypi-bootloader raspberrypi-kernel sudo reboot
b)Install your Linux kernel header package
sudo apt install raspberrypi-kernel-headers
c)Download the CH340/CH341 serial driver source code and unzip it
wget http://www.weedo3dprinter.com/lib/exe/fetch.php/firmware/ch341ser_linux-kernel5.4.79.zip unzip ch341ser_linux-kernel5.4.79.zip
d)Build it:
e)Install it:
3.Change OctoPrint source file
a)Test Connection
If you can connect the printer,skip to section 4.
If you can not connect the printer, you need to change the serial communication python file.
b)change the serial communication python file
Open the serial communication python file which is usually placed in the site-packages of the python directory.
{your python installed directory}/site-packages/octoprint/util/comm.py
Write this code after opening the serial port and save it:
time.sleep(0.5) serial_obj.setDTR(False) serial_obj.setRTS(False)
(Be careful, the OctoPrint source file uses spaces as indent.)