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

Greetings!

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.

P.S.
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.

Is there any information anywhere?

Hello @jharris1993

Is seem to be possible to do, you can try by trial and error…

Yes, the VMP400 can be used as an independent second display on a Raspberry Pi 4 / 5. Here’s a step-by-step guide to set it up:

  1. Connect the VMP400:
  • Attach the VMP400 to the GPIO pins on your Raspberry Pi.
  1. Install the Necessary Drivers:

datasheet: https://cdn.velleman.eu/downloads/29/infosheets/ili9486_datasheet.pdf?_gl=1*kjx6kg*_gcl_au*MjAxMDk4Njg4MC4xNzI1OTQ5NjE5

  • Follow the instructions to install the drivers. This usually involves running a script or copying files to specific directories.
  1. Configure the Display:
  • Edit the /boot/config.txt file to include the necessary parameters for the VMP400. You might need to add lines like:
dtparam=i2c_arm=on
dtparam=spi=on
dtoverlay=tft35a:rotate=90
  • Save the changes and reboot your Raspberry Pi.
  1. Set Up Dual Display:
  • Once the VMP400 is recognized, you can configure it as a second display. [Use the Screen Configuration tool in Raspbian to set up the layout of your displays] (Running two monitors with a Raspberry Pi 4 | The Pi Hut).

  • You can access this tool by clicking on the Raspberry Pi logo, navigating to Preferences, and selecting Screen Configuration.

  1. Direct Output to the VMP400:
  • If you want to use the VMP400 as a text-only display, you can write scripts to direct specific outputs to it. For example, you can use the fbcon framebuffer console to send text output to the VMP400.

Best Regards,
Velleman Support

1 Like

Thank you!

Is there a schematic available?

Can you tell me what SPI channel it uses? (CS-1 or CS-2?)

Can you tell me what i2c addresses it uses?

I am planning to use this with a Raspberry Pi controlled robot and I want to ensure that it interfaces correctly.

Thanks again for all your help!

hello @jharris1993

The VMP400 display typically uses CS-1 for its SPI channel.
As for the I2C address, it generally uses 0x3C

user manual:

Datasheet:

Best Regards,
Velleman Support