After a lot of headscratching, I got Octoprint running on an ODROID C4 to connect to my Ender 3. The C4 is similar to a Raspberry Pi 4 in specs. I'm posting what I did here in case anyone else needs help (It won't let me post a new topic in guides).
Step 1
The ODROID came pre-installed with Ubuntu MATE 20.04.6 on an eMMC.
- Logged in and connected to local wifi.
- Setup an ssh server.
- Set the server to load into a terminal rather than MATE since it will run headless:
sudo systemctl set-default multi-user.target
- Rebooted and logged into server over SSH
Step 2
Installed OctoPrint using this excellent guide
- Followed the steps for Basic Installation and Automatic Start Up
- Followed the steps for Optional: Webcam with slight changes. The last three needed to be installed individually.
sudo apt install subversion libjpeg62-dev imagemagick libv4l-dev cmake
sudo apt install ffmpeg
sudo apt install libsdl2-2.0-0
sudo apt install libavdevice58
Step 3
Octoprint loaded in the browser and connected at 115200 baud, but the Terminal window showed garbage coming from the printer.
- Uninstalled
blrtty
as this guide mentions it can interfere with serial connections. This did not fix the problem so I can't say if this step was necessary in the end. -
dmesg
showed that my Ender 3 is using a CH341 UART bridge chip. - This link explains how to install a new CH341 driver on Linux.
-
make
failed when building the driver:
make failed: make[1]: *** /lib/modules/4.9.337-90/build: No such file or directory. Stop.
directory exists but build is broken symbolic link to ../../../../../src/linux-4.9.337-90
- Guides online explain that this problem can be fixed by installing kernel headers, but
apt search linux-headers-
showed only headers for 5.x and nothing for 4.9.337-90. The directory /usr/src/linux-4.9.337-90 appears to already contain headers. - Saved broken build symlink just in case
cd /lib/modules/4.9.337-90/
mv build build.old
- Updated symlink
cd /lib/modules/4.9.337-90/
sudo ln -sfn /usr/src/linux-4.9.337-90/ .
sudo mv linux-4.9.337-90 build
- Finished building and installing driver. OctoPrint connects at 115200 baud and works correctly. Terminal shows expected output rather than garbage.