Duet 3 + Pi HDMI Touchscreen

  • Several others have mentioned this in various places, starting a dedicated thread because I have a couple of questions: Obtained this for Duet 3 + Pi. Plugs in to HDMI and USB and is a display that emulates a mouse when you touch it. Works very well, just plugged in and immediately started working.


    Question 1: The default DWC layout is small on this screen. Both hard to read and hard to hit the right button when they are crowded. Has anyone found an easy way to make the DWC layout larger?

    Question 2: Anyone have the STL for a case?


  • I don't use the DuetPi distribution so I can't say exactly but playing with the DPI setting somewhere in the desktop settings should do it.

  • @gtj0 no hast not the case.
    the question is of an alternative DWC layout which is more adopted to the screen size and touch.

  • DPI settings should remedy the two issues Danal mentione. Difficult to read and hard to touch - but if the screen is too small to fit DWC at a readable and touchable size, then the issue becomes removing stuff from the DWC layout not just making it bigger.

    I took half a glance at it a while ago, but i'm just not familiar enough with the framework used

  • administrators

    It's quite unfortunate that either Raspbian does not set the actual display DPI or that Chromium just doesn't respect this setting on Linux. It's worth trying to set the DPI via xrandr/xorg.conf.d (xrandr --dpi <actual DPI>) or to simply start Chromium with --force-device-scale-factor=1.25 where 1.25 is the zoom factor in per cent.

    I haven't tried it yet but it's probably what I'll do next for my own test setup. FYI the script that invokes Chromium on DuetPi is /usr/bin/launch-dwc.

  • Chris, perfect, THANKS... I will try a couple of those things. Especially because changing pixel (screen) size seems to have no effect when this monitor is plugged in.

    My usual ways are:

    \# uncomment to force a specific HDMI mode (this will force VGA)
    hdmi_mode=nn   (85 is 1280x1024, for bigger icons I was trying 4 for 640x480)


    \# uncomment to force a console size. By default it will be display's size minus
    \# overscan.

    and those do not change anything with this touchscreen plugged in.

  • @chrishamm I went the scale factor route, and that works quite well. I ended up at 2.

  • @Danal would you mind showing a pic of the screen with the interface on? I'd like to run a screen on mine but 7in is quite massive on the printer; I'd rather have a smaller 5 or even 3.5in on it

  • Sure!

    It is not mounted at the moment, I tend to just use web... but I'll be happy to mount it and get a pic later today.

  • Here is a photo of what I'm using.

  • Were you able to keep the screen from going blank after a few minutes. Or rather keep the screen on always?

  • Yes. I was able to find a way to keep the screen on.

    When you search this for Pi in general, there are many solutions, and quite a bit of conflicting info. I think this has to do with different distros for Pi, and/or different releases of the same distro, such as Raspbian Jessie v Stretch, or whatever. I had to try several before I found one that worked.

    And... I have a log (or checklist) of everything I do to build a Pi for a Duet.

    Unfortunately, what I did to keep the screen on, is missing from that log. 😞

    What is in this log, related to touchscreen, is:

    • The mode and hotplug you should force.
    • A way to invert the display and the touch mouse if something about brackets or cabling requires you to mount the display "upside down".
    • How to make the DWC display bigger, 'zoomed in' so to speak, if you so desire.

    These are all near the bottom.

    # Get your Pi booted and on your network:
    # Download image (not lite) from https://duet3d.dozuki.com/Wiki/Getting_Started_With_Duet_3#Section_DuetPi
    # Do not unzip it. 
    # Etch image to SD card. (search google for balena etcher) 
    # Ignore windows error messages for the next drive letter after your SD.  DO NOT format. 
    # On the SD card, edit wpa_supplicant.conf for your network
    # On the SD card, create a file named 'ssh'.  Empty is fine. 
    # Insert SD in Pi and power up. First boot takes an extra minute or two. 
    # Find IP address (varies a lot by router)  or try "duet3.local"
    # From your PC, enter:
    ssh pi@x.x.x.x
    # Default password is raspberry  CHANGE IT after you connect for the first time!
    # From the Pi command prompt:
    #You now have a running Pi, but it is not completely built 
    # to run a Duet 3 printer yet. 
    #Set up OS options for Duet Software Framework:
    sudo raspi-config 
    # Navigate to 5 interface options, then P4 SPI, and 5 again, P3 VNC
    # Verify via 
    ls /dev/spidev* 
    # Look for /dev/spidev0.0
    # You may also wish to set country, time zone, etc. with raspi-config
    # Now complete setup for duetsoftwareframework. 
    wget -q https://pkg.duet3d.com/duet3d.gpg
    wget -q https://pkg.duet3d.com/duet3d-unstable.list
    sudo mv duet3d.gpg /etc/apt/trusted.gpg.d/
    sudo mv duet3d-unstable.list /etc/apt/sources.list.d/duet3d-unstable.list
    sudo chown root:root /etc/apt/trusted.gpg.d/duet3d.gpg
    sudo chown root:root /etc/apt/sources.list.d/duet3d-unstable.list
    sudo apt-get update
    sudo apt-get install apt-transport-https
    sudo apt-get install duetsoftwareframework
    # Verify you can connect to DWC via web server. 
    # If you have configuration files (config.g, tool macros, etc) use DWC to upload them now. 
    # Update the Pi itself:
    sudo apt-get update
    sudo apt-get upgrade  (this may take 15 to 60 minutes)
    # Reboot is not absolutely required... but... 
    sudo reboot
    # End of required install for Duet 3 Pi #
    # If you want to be able to edit files on the Pi from windows, via a netshare (not a mapped drive):
    sudo apt-get install samba
    sudo smbpasswd -a pi
    sudo nano /etc/samba/smb.conf   # and change 'read only = yes' to no. 
    # Then use a UNC like '\\\pi' in a file open in your favorite editor. 
    # If you ever want to flash a Duet board or PanelDue with BOSSA (an emergency recovery utility):
    # It is a good idea to pre-install this just in case you ever need it. 
    sudo apt-get install git
    sudo apt update && sudo apt install -y libwxgtk3.0-dev libreadline-dev
    git clone https://github.com/shumatech/BOSSA
    cd BOSSA
    cd ~
    # If you plan to use a camera on the Pi for anything involving scripting or machine vision:
    git clone https://github.com/DanalEstes/installOpenCV
    chmod 744 ./installOpenCV/installOpenCV.sh
    sudo ./installOpenCV/installOpenCV.sh  (this may take several hours, be sure the Pi doesn't sleep
    # If you have a touchscreen plugged into HDMI and USB (for mouse emulation):
    sudo sed -i "s/#hdmi_force_hotplug=./hdmi_force_hotplug=1/" /boot/config.txt
    sudo sed -i "s/#hdmi_group=./hdmi_group=1/" /boot/config.txt
    sudo sed -i "s/#hdmi_mode=./hdmi_mode=3/" /boot/config.txt
    # This one IS required, because you've changed stuff about the screen that happens at boot. 
    sudo reboot
    # If your touchscreen is displaying upside down:
    sudo sed -i "\$adisplay_rotate=2" /boot/config.txt
    sudo bash -c 'echo "Section \"InputClass\"" > /usr/share/X11/xorg.conf.d/99-libinput.conf'
    sudo bash -c 'echo "  Identifier \"libinput touchscreen catchall\"" >> /usr/share/X11/xorg.conf.d/99-libinput.conf'
    sudo bash -c 'echo "  MatchDevicePath \"/dev/input/event0\"" >> /usr/share/X11/xorg.conf.d/99-libinput.conf'
    sudo bash -c 'echo "  Driver \"libinput\"" >> /usr/share/X11/xorg.conf.d/99-libinput.conf'
    sudo bash -c 'echo "  Option \"TransformationMatrix\" \"-1 0 1 0 -1 1 0 0 1\"" >> /usr/share/X11/xorg.conf.d/99-libinput.conf'
    sudo bash -c 'echo "EndSection" >> /usr/share/X11/xorg.conf.d/99-libinput.conf'
    # Again, required. 
    sudo reboot
    # If you want to make the DWC on your attached touchscreen bigger:
    sudo nano /usr/bin/launch-dwc
    # Add this at the end of the line
    # You can use fractions, like 2.5.  Change and reboot until it looks good to you. 
    # If you wish to be able to backup the entire SD card to a CIFS (i.e. windows) mounted shared drive:
    # (Not recommended at the moment, this disrupts the Pi during backups.)
    # One time:
    sudo apt-get install pv
    git clone https://github.com/lzkelley/bkup_rpimage.git
    //USDNLW11/RPiBackups /RPiBackups cifs user=pi,password=raspberry 0 0
    # Each Time, to run a backup:
    sudo mount RPiBackups
    sudo sh ./bkup_rpimage/bkup_rpimage.sh start -cz /RPiBackups/$(uname -n).img

  • @baird1fa
    With the default installation (in regards to my setup with the 7" Pi touchscreen display) - the screen doesn't blank; however, it will blank after installing xscreensaver

    sudo apt install xscreensaver

    In the desktop -> preferences -> screensaver application/setting
    you can pick a few default screen savers, I use the Mode -> blank display only (with a 5 min timeout). This uses the least CPU and frankly saves screen burn in (what I needed).

    Note: If the Duet 3 is only running from 5V USB input, the display blanks, but the Duet still draws a yellow lightening bolt in the upper right corner to let you know the board is still not powered by the main supply. If the main supply is powered on, the display blanks fully (aka no yellow lightening bolt)

Log in to reply