OctoScreen - a new software to use OctoPrint with LCD

Hi there. I want to share with you a new software for LCD for OctoPrint - OctoScreen:

OctoScreen is LCD touch interface for our OctoPrint based on GTK+3, that allows you to control your 3D Printer, like you can do with any LCD panel, but using OctoPrint and a Raspberry Pi.

It’s an X application that down't require browser so it consumes much less resources that TouchUI, so it works faster and more responsive.

Actually its a hard fork from Octoprint-TFT (maybe somebody have already tried it). Octoprint-TFT is an amazing plugin solution but no longer maintained.

What’s new:

  • New UI
  • Added wifi management screen
  • Added bed leveling screen
  • Preheat activation by clicking on extruders or bed icons
  • Completely fixed freezing problem
  • Added ToolChanger screen added

You can find more information on GitHub: https://github.com/Z-Bolt/OctoScreen

A short video about how it works:

8 Likes

Thanks, I was looking for a solution for the octoprint-tft freeze. I'll try this and provide feedback.

This might be a dumb question but can I use this as a second screen?
I use my pi 4 as a little desktop next to my 3D printer and would like to use this as a better printers display

Nice case, I didn't test it yet. As OctoScreen is a usual X server application it should be possible to run OctoScreen as a second screen. You will need to make some changes in file /lib/systemd/system/octoscreen.service to make it work.

1 Like

I'm on a longer print so I can't really test it right now but do your mean this part?

ExecStart=/usr/bin/xinit /usr/bin/OctoScreen -- :0 -nolisten tcp -nocursor
ExecStartPost=/bin/bash /etc/octoscreen/disablescreenblank.sh 0

Should I try something like :1 instead of :0 ?

Should I try something like :1 instead of :0

Maybe, but I think you will have to play with some extra xinit params.

Hello, I install this GUI on my raspberry pi 3b, bud I don't see everything on display. I have got this display: https://www.waveshare.com/wiki/3.5inch_RPi_LCD_(B)
Please help me how I can make this GUI on full screen

Hi, I recommend you to change software resolution from 480x320 to 800x533.
To do it, open file /boot/config.txt
sudo nano /boot/config.txt

find and update param hdmi_cvt:
hdmi_cvt 800 533 60 6 0 0 0

Then update OctoScreen config and set param OCTOSCREEN_RESOLUTION=800x533

Thank you for help. Now it looks much better.

What LCD screen are you using in the video?
and
where is the files to print out the monitor holder located at?

Looking at the github repository it looks like @Aleksei_Kvitinskii might be using this one.

https://www.waveshare.com/wiki/4.3inch_HDMI_LCD_(B)

1 Like

I'm slightly puzzled still. I have the exact same issue as martin_klims above, but if I set both /boot/config.txt and the OctoScreen config to 800x533, the interface just gets bigger, so I see even less. There doesn't appear to be any software scaling so I must be missing something...

I'm using the Adafruit PiTFT (480x320).

Ok, I figured this out. The Adafruit installer actually defaults the Xorg output directly to the TFT (on fb1), while still installing fbcp, which is confusing (as fbcp is completely bypassed that way). I've changed it to fb0 and now the TFT scales correctly.

It doesn't seem to want to do 800x533, as it falls back to 720x480 from that, but that's enough to make the interface usable.

1 Like

Nice !! just wanted to say thanks for this.
Just installed it (after having trouble with TouchUI following an update) and works nice so far. Looking forward to playing around with it and customizing some of the commands for my Tevo Little Monster

1 Like

Hi there!
I have the exact same problem and can't get it to work.
How exactly can I change from fb1 to fb0?

I'm using a 3.5 inch TFT from "kuman" over GPIO.

I also don't see the line with: hdmi_cvt... in / boot/config.txt
I added it myself but nothing happend.

Any help is gladly appreciated!

I changed it in the xorg config, which (in my case) was in /usr/share/X11/xorg.conf.d/99-fbdev.conf, but other distros might put it somewhere else. It fits reasonably well now, although not perfect as my pi reverts to 720x480 even if set too 800x533.

Ah OK will test it as soon as I come home! Thanks :+1:

That looks like an IKEA Lack (if I know my Swedish-designed furniture and I do). I might suggest something similar to my own setup, these multiple-monitor stands can be easily converted to hold multiple spools of filament. Another example The trick is to find one on Craig's List and buy it on the cheap.

Well spotted. I've only just started so am still building, and it's still messy. Will look into it.

2 Likes

Well I tested everything from the above and nothing worked for me.

So for everyone with the same problem, this is what I did after (a lot!) of research that worked.
It is going to be a little bit longer, but this should work for almost every TFT for raspberry.

After you installed everything for your LCD and octosreen:

Configure Octoscreen:

sudo nano /etc/octoscreen/config

OCTOSCREEN_RESOLUTION=800x533

Install fbcp to "clone" the HDMI output:

sudo apt-get -y install cmake && git clone https://github.com/tasanakorn/rpi-fbcp && cd rpi-fbcp && mkdir build && cd build && cmake .. && make && sudo install fbcp /usr/local/bin/fbcp

Make fbcp start on every boot:

sudo nano /etc/rc.local

-> Then, go at the end of file (but before the exit 0 ) and add a line where to find fbcp :

/usr/local/bin/fbcp &

Activate and setup HDMI:

sudo nano /usr/share/X11/xorg.conf.d/99-fbturbo.conf

-> set "fb1 to "fb0

sudo nano /boot/config.txt

disable_overscan=1
framebuffer_width=800
framebuffer_height=533
dtparam=spi=on
hdmi_cvt 800 533 60 6 0 0 0

Eliminate flickering of LCD:

sudo nano /boot/cmdline.txt

-> remove: "fbcon=map:10"

Additionally: Don't forget to callibrate yor touchscreen:

sudo apt-get install -y xinput-calibrator

sudo DISPLAY=:0.0 xinput_calibrator

Copy your results in this file:

-> etc/X11/xorg.conf.d/99-calibration.conf

I hope this helps someone... :+1:

1 Like