[How To] KlipperScreen on Android Smart Phones

Thank you so much JHS!! a titanic effort that I greatly appreciate. I test as soon as I can all this process, I think the detail was necessary for new users.
Thanks thanks…

I have checked my shell script for the WorkingDirectory line and it is correct.

when I input ls -l from the KlipperScreen Directory it returns:

pi@fluiddpiender5:~/KlipperScreen $ ls -l
total 108
drwxr-xr-x 3 pi pi  4096 Jan 15 22:15 docs
drwxr-xr-x 5 pi pi  4096 Jan 15 23:03 ks_includes
-rwxr-xr-x 1 pi pi   895 Jan 16 11:45 lauch_klipperscreen.sh
-rw-r--r-- 1 pi pi 33888 Jan 15 22:15 LICENSE
-rw-r--r-- 1 pi pi   284 Jan 15 22:15 mkdocs.yml
drwxr-xr-x 3 pi pi  4096 Jan 15 23:03 panels
-rw-r--r-- 1 pi pi   864 Jan 15 22:15 README.md
-rw-r--r-- 1 pi pi 37737 Jan 15 22:15 screen.py
drwxr-xr-x 2 pi pi  4096 Jan 15 22:15 scripts
drwxr-xr-x 7 pi pi  4096 Jan 15 22:15 styles

Sending the command:

DISPLAY=:100 /home/pi/.KlipperScreen-env/bin/python screen.py

Just returns, after some time:

Illegal instruction

:astonished: Naughty!

How do we troubleshoot from here? Thanks again for all the help. :grinning:

Okay lets try to compare which version are used. First what linux are you on?

pi@prusabear:~ $ cat /etc/issue
Raspbian GNU/Linux 10 \n \l

pi@prusabear:~ $ uname -a
Linux prusabear 5.10.63-v7l+ #1496 SMP Wed Dec 1 15:58:56 GMT 2021 armv7l GNU/Linux

I use kiauh and everthing on the system is up to date

/=======================================================\
|     ~~~~~~~~~~~~~~~~~ [ KIAUH ] ~~~~~~~~~~~~~~~~~     |
|        Klipper Installation And Update Helper         |
|     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     |
\=======================================================/
/=======================================================\
|     ~~~~~~~~~~~~~~~ [ Main Menu ] ~~~~~~~~~~~~~~~     |
|-------------------------------------------------------|
|  0) [Upload Log]     |       Klipper: Installed: 1    |
|                      |        Branch: master          |
|  1) [Install]        |                                |
|  2) [Update]         |     Moonraker: Installed: 1    |
|  3) [Remove]         |                                |
|  4) [Advanced]       |      Mainsail: Installed!      |
|  5) [Backup]         |        Fluidd: Installed!      |
|                      | KlipperScreen: Installed!      |
|  6) [Settings]       |  Telegram Bot: Not installed!  |
|                      |                                |
|                      |          DWC2: Not installed!  |
|  v3.1.0-90           |     Octoprint: Not installed!  |
|-------------------------------------------------------|
|                        Q) Quit                        |
\=======================================================/

And installed versions are:

please compare and see if there are any differneces.

What I found on the web is:
An “Illegal instruction” is usually an indication of a corrupt sd card.
not sure if that is your problem.

Curious! It’s a SanDisk card, it has the rest of the system, klipper fluidd etc. on it and that’s all working just fine. I have a job running at the moment. The card is a micro SD in an adapter (because I’m using og pi 1 and who has normal sized sd cards these days!?), I wonder if that has any impact.

I should probably just go the whole hog and install everything on the phone per the other instructions on this thread, the oneplus3 will probably outperform a pi1. Since I already had everything set up on the pi, I figured the path of least resistance would be to simply add the phone as a screen. I do like the idea of less cables and I can free up the tired old pi to run klipper on another machine. I may do some further tinkering and I’ll update here if I find a solution to the illegal operation error. I doubt I have much luck as my Linux knowledge is next to nothing. It’s more likely I’ll be bothering for tips on getting klipper set up on the phone! :sweat_smile:

Just noticed your first reply. I’ll take a look at my versions, confirm I’m up to date and see if there’s any differences between our setups. I should be up to date as I only set klipper up on this machine a week ago with a fresh fluiddpi install…

Well, I use a raspberry pi 4 so that is the first major difference :wink:

Alright, fancypants! No need to brag about it! :stuck_out_tongue:

We’re on the same Raspian/Linux build, except mine is complied for my vastly inferior hardware! My main machines are on pi3s but I figured since Klipper is so efficient and is such nice firmware, I would put this tired old pi to use, the same rationale as digging out my old phones to use as touchscreens. I hate to see stuff go to waste. It’s struggling though. After installing KlipperScreen and adb I had to overclock it to the max to avoid the “timer too close” errors stopping me from connecting to the printer. :grimacing:

everything (Klipper, moonraker, etc.) appears to be up to date, looking in fluidd’s settings pane.

Given what your googling of Illegal instruction returned, I’m going to suspect the card reader as the culprit here. Alas I’ve no bigboy cards to test, I could try a different reader after this job finishes and see if that helps but it’s the one that came with the microSD card that I’m using, so I don’t hold out much hope for that changing anything.

Thanks again for all your efforts in helping me. :slight_smile:

Strangely though I don’t see KlipperScreen in the list of things I can check for updates for. Guessing your screenshot is from mainsail? My updates section of fluid doesn’t list it. I wonder if some things went awry during the KlipperScreen install? :thinking:

You are correct. The screenshot is from mainsail. I am not sure if fluidd lists KlipperScreen version, at least there is no version in fluidd screenshot at Automated - Fluidd.

The update manager is a feature of Moonraker. If you want KlipperScreen to appear in the update manager, you need to add it to your moonraker.conf file and restart Moonraker.

[update_manager KlipperScreen]
type: git_repo
path: ~/KlipperScreen
origin: https://github.com/jordanruthe/KlipperScreen.git
env: ~/.KlipperScreen-env/bin/python
requirements: scripts/KlipperScreen-requirements.txt
install_script: scripts/KlipperScreen-install.sh

Yeah, that’s right, jakep. You have to add those lines to moonraker.conf to manage updates for klipperscreen through fluid. I neglected to do that when I was installing on this machine! :sweat_smile: sorted it now but it was up to date anyway so that’s not my issue.

I started working my way through the troubleshooting guide for Klipperscreen, there’s no sign of the logfile it mentions to look for so I ran

journalctl -xe -u KlipperScreen

Jan 17 19:26:40 fluiddpiender5 lauch_klipperscreen.sh[8466]: * daemon not running; starting now at tcp:5037
Jan 17 19:26:43 fluiddpiender5 lauch_klipperscreen.sh[8466]: * daemon started successfully
Jan 17 19:26:44 fluiddpiender5 lauch_klipperscreen.sh[8466]: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=x.org.server/.MainActivity }
Jan 17 19:26:44 fluiddpiender5 lauch_klipperscreen.sh[8466]: Warning: Activity not started, its current task has been brought to the front
Jan 17 19:26:46 fluiddpiender5 lauch_klipperscreen.sh[8466]: Waiting for x-server to be ready .
Jan 17 19:26:53 fluiddpiender5 lauch_klipperscreen.sh[8466]: /home/pi/KlipperScreen/lauch_klipperscreen.sh: line 40:  8514 Illegal instruction     DISPLAY=:100 /home/pi/.KlipperScreen-env/bin/python screen.py
Jan 17 19:26:53 fluiddpiender5 systemd[1]: KlipperScreen.service: Succeeded.
-- Subject: Unit succeeded
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- The unit KlipperScreen.service has successfully entered the 'dead' state.
Jan 17 19:26:54 fluiddpiender5 systemd[1]: KlipperScreen.service: Service RestartSec=1s expired, scheduling restart.
Jan 17 19:26:54 fluiddpiender5 systemd[1]: KlipperScreen.service: Scheduled restart job, restart counter is at 1215.
-- Subject: Automatic restarting of a unit has been scheduled
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Automatic restarting of the unit KlipperScreen.service has been scheduled, as the result for
-- the configured Restart= setting for the unit.
Jan 17 19:26:54 fluiddpiender5 systemd[1]: Stopped KlipperScreen.
-- Subject: A stop job for unit KlipperScreen.service has finished
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- A stop job for unit KlipperScreen.service has finished.
--
-- The job identifier is 73826 and the job result is done.

Klipperscreen just appears to be starting and stopping on a constant loop. We see the illegal operation error relating to forwarding the display to the phone which we’d already discovered. It appears to have a problem with line 40 of the lauch_klipperscreen.sh, which is just the end of an if statement by the looks of things the line just contains fi. :person_shrugging:

The guide also says to check the xorg log:

[ 42547.713] 
X.Org X Server 1.20.4
X Protocol Version 11, Revision 0
[ 42547.717] Build Operating System: Linux 5.10.17-v8+ aarch64 Raspbian
[ 42547.717] Current Operating System: Linux fluiddpiender5 5.10.63+ #1496 Wed Dec 1 15:57:05 GMT 2021 armv6l
[ 42547.717] Kernel command line: coherent_pool=1M snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708_fb.fbswap=1 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000  console=ttyAMA0,115200 console=tty1 root=PARTUUID=77f5cc82-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
[ 42547.718] Build Date: 19 April 2021  03:23:36PM
[ 42547.718] xorg-server 2:1.20.4-1+rpt3+deb10u3 (https://www.debian.org/support) 
[ 42547.719] Current version of pixman: 0.36.0
[ 42547.719] 	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
[ 42547.719] Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 42547.727] (==) Log file: "/var/log/Xorg.0.log", Time: Sun Jan 16 12:56:27 2022
[ 42547.728] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[ 42547.739] (==) No Layout section.  Using the first Screen section.
[ 42547.739] (==) No screen section available. Using defaults.
[ 42547.739] (**) |-->Screen "Default Screen Section" (0)
[ 42547.739] (**) |   |-->Monitor "<default monitor>"
[ 42547.754] (==) No device specified for screen "Default Screen Section".
	Using the first device section listed.
[ 42547.754] (**) |   |-->Device "Allwinner A10/A13 FBDEV"
[ 42547.754] (==) No monitor specified for screen "Default Screen Section".
	Using a default monitor configuration.
[ 42547.754] (==) Automatically adding devices
[ 42547.754] (==) Automatically enabling devices
[ 42547.755] (==) Automatically adding GPU devices
[ 42547.755] (==) Max clients allowed: 256, resource mask: 0x1fffff
[ 42547.755] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[ 42547.755] 	Entry deleted from font path.
[ 42547.755] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[ 42547.756] 	Entry deleted from font path.
[ 42547.756] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[ 42547.756] 	Entry deleted from font path.
[ 42547.756] (WW) The directory "/usr/share/fonts/X11/Type1" does not exist.
[ 42547.756] 	Entry deleted from font path.
[ 42547.756] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist.
[ 42547.756] 	Entry deleted from font path.
[ 42547.756] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
[ 42547.757] 	Entry deleted from font path.
[ 42547.757] (==) FontPath set to:
	/usr/share/fonts/X11/misc,
	built-ins
[ 42547.757] (==) ModulePath set to "/usr/lib/xorg/modules"
[ 42547.757] (II) The server relies on udev to provide the list of input devices.
	If no devices become available, reconfigure udev or disable AutoAddDevices.
[ 42547.757] (II) Loader magic: 0x1fdf80
[ 42547.757] (II) Module ABI versions:
[ 42547.757] 	X.Org ANSI C Emulation: 0.4
[ 42547.757] 	X.Org Video Driver: 24.0
[ 42547.758] 	X.Org XInput driver : 24.1
[ 42547.758] 	X.Org Server Extension : 10.0
[ 42547.767] (--) using VT number 2

[ 42547.767] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[ 42547.768] (II) no primary bus or device found
[ 42547.769] (II) LoadModule: "glx"
[ 42547.773] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[ 42547.787] (II) Module glx: vendor="X.Org Foundation"
[ 42547.787] 	compiled for 1.20.4, module version = 1.0.0
[ 42547.787] 	ABI class: X.Org Server Extension, version 10.0
[ 42547.787] (II) LoadModule: "fbturbo"
[ 42547.788] (II) Loading /usr/lib/xorg/modules/drivers/fbturbo_drv.so
[ 42547.789] (II) Module fbturbo: vendor="X.Org Foundation"
[ 42547.790] 	compiled for 1.20.3, module version = 0.5.1
[ 42547.790] 	Module class: X.Org Video Driver
[ 42547.790] 	ABI class: X.Org Video Driver, version 24.0
[ 42547.790] (II) FBTURBO: driver for framebuffer: fbturbo
[ 42547.797] (WW) Falling back to old probe method for fbturbo
[ 42547.798] (II) Loading sub module "fbdevhw"
[ 42547.798] (II) LoadModule: "fbdevhw"
[ 42547.798] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
[ 42547.800] (II) Module fbdevhw: vendor="X.Org Foundation"
[ 42547.801] 	compiled for 1.20.4, module version = 0.0.2
[ 42547.801] 	ABI class: X.Org Video Driver, version 24.0
[ 42547.802] (II) FBTURBO(0): using /dev/fb0
[ 42547.802] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[ 42547.802] (II) FBTURBO(0): Creating default Display subsection in Screen section
	"Default Screen Section" for depth/fbbpp 24/32
[ 42547.803] (==) FBTURBO(0): Depth 24, (==) framebuffer bpp 32
[ 42547.803] (==) FBTURBO(0): RGB weight 888
[ 42547.803] (==) FBTURBO(0): Default visual is TrueColor
[ 42547.803] (==) FBTURBO(0): Using gamma correction (1.0, 1.0, 1.0)
[ 42547.803] (II) FBTURBO(0): hardware: BCM2708 FB (video memory: 1066kB)
[ 42547.804] (DB) xf86MergeOutputClassOptions unsupported bus type 0
[ 42547.804] (**) FBTURBO(0): Option "fbdev" "/dev/fb0"
[ 42547.804] (**) FBTURBO(0): Option "SwapbuffersWait" "true"
[ 42547.805] (II) FBTURBO(0): processor: ARM1176
[ 42547.805] (II) FBTURBO(0): checking modes against framebuffer device...
[ 42547.805] (II) FBTURBO(0): checking modes against monitor...
[ 42547.806] (II) FBTURBO(0): Virtual size is 656x416 (pitch 656)
[ 42547.806] (**) FBTURBO(0):  Built-in mode "current"
[ 42547.806] (==) FBTURBO(0): DPI set to (96, 96)
[ 42547.806] (II) Loading sub module "fb"
[ 42547.806] (II) LoadModule: "fb"
[ 42547.807] (II) Loading /usr/lib/xorg/modules/libfb.so
[ 42547.809] (II) Module fb: vendor="X.Org Foundation"
[ 42547.809] 	compiled for 1.20.4, module version = 1.0.0
[ 42547.809] 	ABI class: X.Org ANSI C Emulation, version 0.4
[ 42547.811] (II) FBTURBO(0): using backing store heuristics
[ 42547.845] (II) FBTURBO(0): can't load 'g2d_23' kernel module
[ 42547.845] (II) FBTURBO(0): failed to enable the use of sunxi display controller
[ 42547.846] (II) FBTURBO(0): No sunxi-g2d hardware detected (check /dev/disp and /dev/g2d)
[ 42547.846] (II) FBTURBO(0): G2D hardware acceleration can't be enabled
[ 42547.846] (II) FBTURBO(0): enabled fbdev copyarea acceleration
[ 42547.846] (==) FBTURBO(0): Backing store enabled
[ 42547.849] (==) FBTURBO(0): DPMS enabled
[ 42547.849] (II) FBTURBO(0): failed to enable hardware cursor
[ 42547.849] (II) FBTURBO(0): no 3D acceleration because the driver has been compiled without libUMP
[ 42547.849] (II) FBTURBO(0): if this is wrong and needs to be fixed, please check ./configure log
[ 42547.849] (II) Initializing extension Generic Event Extension
[ 42547.852] (II) Initializing extension SHAPE
[ 42547.854] (II) Initializing extension MIT-SHM
[ 42547.856] (II) Initializing extension XInputExtension
[ 42547.859] (II) Initializing extension XTEST
[ 42547.861] (II) Initializing extension BIG-REQUESTS
[ 42547.864] (II) Initializing extension SYNC
[ 42547.878] (II) Initializing extension XKEYBOARD
[ 42547.885] (II) Initializing extension XC-MISC
[ 42547.888] (II) Initializing extension SECURITY
[ 42547.890] (II) Initializing extension XFIXES
[ 42547.892] (II) Initializing extension RENDER
[ 42547.896] (II) Initializing extension RANDR
[ 42547.900] (II) Initializing extension COMPOSITE
[ 42547.903] (II) Initializing extension DAMAGE
[ 42547.905] (II) Initializing extension MIT-SCREEN-SAVER
[ 42547.907] (II) Initializing extension DOUBLE-BUFFER
[ 42547.909] (II) Initializing extension RECORD
[ 42547.912] (II) Initializing extension DPMS
[ 42547.914] (II) Initializing extension Present
[ 42547.916] (II) Initializing extension DRI3
[ 42547.916] (II) Initializing extension X-Resource
[ 42547.918] (II) Initializing extension XVideo
[ 42547.921] (II) Initializing extension XVideo-MotionCompensation
[ 42547.921] (II) Initializing extension SELinux
[ 42547.921] (II) SELinux: Disabled on system
[ 42547.922] (II) Initializing extension GLX
[ 42547.924] (II) AIGLX: Screen 0 is not DRI2 capable
[ 42548.957] (II) IGLX: Loaded and initialized swrast
[ 42548.957] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[ 42548.958] (II) Initializing extension XFree86-VidModeExtension
[ 42548.967] (II) Initializing extension XFree86-DGA
[ 42548.970] (II) Initializing extension XFree86-DRI
[ 42548.970] (II) Initializing extension DRI2
[ 42557.414] (II) Server terminated successfully (0). Closing log file.

None of this makes a great deal of sense to me, not being well versed in Linux, but maybe someone with experience can decrypt it.

I think I’ll have a go at running everything on the phone anyway and hopefully, that’ll just work so I don’t have to troubleshoot this anymore. :crossed_fingers:

So. Another wall…

ERROR: Failed building wheel for numpy
Failed to build numpy
ERROR: Could not build wheels for numpy, which is required to install pyproject.toml-based projects
Error: pip install exited with status code 0
Unable to install dependencies, aborting install.

Anyone? Im a bit stumped xD

Is this for installing Klipperscreen on a linuxdeploy container on the phone? I’m getting similar errors when I run the script Alexandr1530 provided. Some things install just fine. After it’s finished I can run KIAUH and see that klipper is successfully installed. Moonraker is listed as incomplete as is klipperscreen, but if I run the install for moonraker again from within KIAUH, it says moonraker is installed despite exiting with an error. I can install fluid. I’ve not checked to see if I can access the web interface yet.

All the errors are relating to building wheels for installing pyproject.toml-based projects. Permission is being denied for installing to the home folder by the looks of things!? I thought that folder was fair game for the user to write to. I read that using the --user option on the install command would cure this error. In the cases I read about, it was usually to avoid writing to the system folders, i.e. the installer would use the home folder instead, but we’re already doing that. I tried specifying that option with the command to launch KIAUH and when installing Klipperscreen again, it errored out but on a different package this time. Still the same error though!

I’ve been through the setup and installation of the debian image on linuxdeploy a few times to be certain I have everything configured correctly but clearly, something is amiss.

Any progress with the issue yourself, Orin?

Well. I am not a Linux expert but to mee seems that I have phyton issues. Taking new aproach now. I will flash MainsailOS, configure Klipper and Moonraker without doíng updates on system or modules and than will see if I can get KlipperScreen to install without errors.

Succes with installation!
Install MainsailOS, DO NOT UPGRADE, run KIAUH, install KlipperScreen without errors.

Edit: install succes, Screen not working. I get xeyes on display but klipperscreen is not comming.

Edit 2: running!!!

@jhs , you have some typo in turorial, mainly, you left “n” out of launch xD
bassicaly, we noobs with copy/paste commands are using commands as it is and that makes us to generate errors on normaly great tutorial!

@Lionel_Glitchy just to make sure that you read my comment :wink:

Hey @Orin,

I think we’re doing different things here, I’m working on Alex’s method for running klipper, moonraker, fluidd and klipperscreen entirely on the phone as my SBC rather than the raspberry pi.

I made similar progress myself last night, although I think my method was a little more long winded. I was able to get all the python libraries, modules etc to correctly install by using individual commands for pip and pip3 to install the troublesome packages. Eventually I had everything I needed for klipperscreen to fully install through KIAUH. After that I had klipperscreen show up on XSDL without any further intervention. I was already able to access the web interface through Fluidd as expected.

The problem I’m having now is getting klipper to see the MCU on the printer control board! The real basic stuff that usually just works flawlessly, just my luck! Using lsusb I can see that when I connect the controller to the phone over USB, it’s serial port (CH340) is being seen by Linux so I know my cabling/OTG etc is all good. When I run the command to find the address for the MCU, so I can set it up in my printer config, I’m told that the location doesn’t exist, which I’ve confirmed by navigating there in WinSCP. I’ve tried recompiling the firmware for my Creality 4.2.7 board in case there’s been an update to klipper since I last flashed it, but I’m confident in my makemenu config being just fine, because it was working when I had things set up on the raspberry pi. No dice after a fresh flash though! :weary:

If anyone has any bright ideas as to why the printer isn’t showing up properly as a device klipper can communicate with, other than dodgy usb cable or improperly configured printer board firmware, I’m all ears. :ear:

Yeah, we are doing different things, I am trying to do it with RP 3 B.

I am now stuck with non-working script. I can start KlipperScreen manualy, but it wont start automatically. It looks like that my adb service dont start automatic because of udev rules. As i am not Linux guy, it takes time to find and resolve issues, but its a great learning process.

To your problem now.

ls /dev/serial/by-id/* gives you "location doesn´t exist?

I was getting some errors with JHS script for an ADB command, namely the line:

adb shell am start-activity x.org.server/.MainActivity

it seems, in my case at least, that ‘start-activity’ was not a valid use of activity manager, a list of valid uses was displayed below the error, ‘start’ was a valid option so I simply removed the -activity part and the error went away, not sure if the code worked as intended after this, because I later abandoned this route in favour of the method I’m trying to get working now. You could try that edit to the shell script though.

Yep that’s the issue I’m having. Seems to be a problem with a missing kernel module for linux, so it’s having issues properly communicating with the serial interface on the printer’s control board. I tried reinstalling a generic version of the kernel in hopes that the required module would be installed. Alas my linux deploy image wasn’t large enough to accommodate the install and it errored out. This left me in some sort of limbo. I tried increasing the size of the image with the resize commands from the tut on somekev’s page but it wasn’t helping. In the end I inadvertently consumed all the space on my phone, couldn’t shrink it again so my only choice seemed to be to nuke the linux image I’d been working on and start from scratch! :man_facepalming: Now I’m at the point of struggling with getting the python modules for klipperscreen installed again. it was 2am by this point so I had to abandon it. I made the image larger at the point of install this time so hopefully when I get back to the same point again I’ll be able to get the module I need installed without breaking everything! Having all the fun here! :joy:

Done it. :grin:

Issues in my case.
1.Typo in tutorial, lauch intead of launch
2.adb didnt start witrh needed privileges
3. Trouble with KlipperScreen.service

    • @jhs need to update spelling :joy:
  1. Old Linux ppl know this butg for us noobs:
    /etc/systemd/system/KlipperScreen.service is not editable without systemclt command.
    Use “sudo systemctl edit --full KlipperScreen.service” command to edit KlipperScreen.service, beware of “launch” typo.
    Reload with “sudo systemctl daemon-reload”

Issues to solve.

  1. Moonraker after pi reboot needs to be reinstaled :face_with_raised_eyebrow: (dont know how I have messed up that)
  2. Dont have option “Desktop-no emulation” in mouse emulation menu in XSDL

Now I have a lot of commisioned prints, need to tackle issues after couple of days.

Glad you solved your problem, I don’t think it matters about the name of the shell script, so long as the line in the KlipperScreen.service to execute it is correct and it is indeed located at the specified path. You could call it Big_Hairy_Balls.sh and change the following line to:

ExecStart=/home/pi/KlipperScreen/Big_Hairy_Balls.sh

Maybe it was JHS’ intention to call the script lauch_klipperscreen.sh. I’ve never been much of a fan of the letter ‘n’ myself; I called mine lauch_klipperscree.sh.

My problem with that method could have been related to adb’s permissions. worth exploring if my endeavors with android and linux deploy are fruitless.

I was always able to edit the KlipperScreen.service, without that systemctl command. I just had to edit with nano over ssh.

Not sure about your moonraker getting borked on reboots. I started from a fresh fluiddpi image, it was already installed and worked flawlessly,

For me at least, when I start XSDL, I enter the menu from the splash screen by tapping the bar at the top that says change device configuration. Then it’s Mouse Emulation>>>Mouse Emulation Mode>>>Desktop, No Emulation.


My problem isn’t with the linux kernel as I assumed. Android is the one taking care of the handshake with the printer’s serial port and it seems the kernel module for the CH340 on my Creality v4.2.7 isn’t commonly included in android kernels. If it is there, it’s often not enabled. So now I have to back up my working debian.img and hunt for a ROM for the OnePlus3 that can run a custom kernel with the module included, or, more than likely, compile my own. Hopefully there’s one out there as I’m already out of my depth! :sweat_smile: I also suspect I’m going to run into issues with the OTG cable being able to both charge the phone and connect to the printer simultaneously. (an issue Somekev ran into with the octoprint install he did initially on his S5 - solved with wireless charging on his S6; apparently, there’s a workaround for that too) Probably another couple of days of banging my head against this problem until I have it sorted!