Raspberry Pi: Using the VMP400 as an independent second display?


I have a Vellman VMP400 3.5" touchscreen that I’d like to use with a Raspberry Pi-4 controlled robot.

First of all, when configured as noted in the user manual for this device it works as expected.

  • LCD35-show, (and a reboot), causes the primary display to shift to the Vellman touchscreen.
  • LCD-hdmi, (and a reboot), reverts the display back to the original configuration using the HDMI port.

What I want to do is:

  1. Maintain the functionality of the HDMI port where it displays the desktop as it normally would.  This would be used as the main development environment for the robot as it is used now.
  2. Establish the Vellman VMP400 as a second, independent, display that is active at the same time as the HDMI display port.  I want to use the VMP400 to display system/software status information such as a “Battery Low” or “Cannot find dock”, or the current state/status of the robot while running.  Later on, I want to put things like graphical buttons on the screen so the user can interact with the robot while it is functioning independently.  (i.e.  A STOP! button, or something else necessary.)

In order to do this I need to create a separate addressable screen that I can programmatically send information/data to, independently of the main display.  I do NOT want an “extended” display, I want them to be entirely separate if at all possible.

It is perfectly fine if all I can send is text, but it would be nice to colorize it and/or change the type size, but that would be a “nice to have” - likewise the graphical capability.

I have been reading the LCD35-show script, but it mostly looks like a “make” file for some software and it writes things to the config files to appropriate the display for itself.

Is this possible?  How exactly would I go about doing it?

Thank you in advance for any help you can provide.

I have already tried using a Waveshare e-Paper display and it works wonderfully as an independent display except that:

  • It takes something like 10 seconds to refresh the display.
  • It can only be refreshed so often as it is intended to spend the majority of its time powered-down in “sleep” mode
  • It is obviously intended for a static, seldom changing, display, not something that can be used as a dynamically updating status display.