Other Single Board Computers (SBC) apart from Raspberry Pis
General
- Klipper will run on almost any recent SBC, or for this matter, any machine running Linux
- Klipper’s hardware requirements are very low:
- A Raspberry Pi (first generation - RPi0) is considered the lowest possible end (without webcam or OctoPrint)
- From Raspberry Pi 3 and onward, no performance issues are to be expected, even with User Interfaces or webcams
- Running a User Interface (especially OctoPrint) or a webcam might significantly increase RAM and CPU requirements
- Klipper will in no way profit from high power CPUs or dozens of GB RAM
- It is recommended to use the SBC dedicatedly for Klipper and not run any other services on it
Which one to choose
- The biggest advantage of the Raspberry Pi ecosystem is its excellent Linux / Kernel support
- Many alternative boards have an abysmal support in terms of Linux (outdated, buggy or both)
- A SBC that has a solid support in the Armbian community is a good start
- Consult the Armbian download page and search their forum before buying as there might be relevant limitations already known
- GadgetVersus offers an excellent comparison of different CPU performances that are commonly used on such SBCs, e.g.
Potential Pitfalls
- A pure Klipper should be able to run on any board with almost any distribution
- Connecting additional hardware to the pin-headers then depends on how good the support of the Linux distribution is
- Problems may especially arise around:
- Stability
- GPIO support
- I2C support
- SPI support
- Klipper’s install scripts are heavily focused on Debian like distributions. Other distributions might need manual installation, which requires some Linux admin knowledge
- Some distributions might require to add the user running Klipper to the
dialout
system group:sudo usermod -a -G dialout <user_here>
- Some distributions install services that might interfere with Klipper. Most noteworthy are
- ModemManager
- BRLTTY
# List all brltty services (replace with "modemmanger" to check this) sudo systemctl list-units | grep -i brltty # For each item in the result list of the above command run sudo systemctl mask brltty.path sudo systemctl stop brltty.path # "brltty.path" is only an example. Replace it with the first command's output