OctoPrint on ODROID C4 for Ender 3

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.
2 Likes

Good job :+1:
I moved it to the guides section :slight_smile:

just curious if you tried using the octoprint_install script after installing a base OS on the odroid? I think it accounts for a lot of these steps you mention, just not sure about the kernel header symlink or not. .

I didn't try the install script. It might have worked fine, but I thought the chances were a bit lower with something like the ODROID. Maybe new users can give that a try before doing the manual process.

If it is running Ubuntu MATE or really any debian-based distro, octoprint_install should work fine.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.