17

I want to build a mini multimedia system based on the raspberry pi B+, which has 2 display screens:

  1. The main screen (like a 42" LED TV), which plays the main video in Full HD.
    • HDMI
    • RCA/AV/Composite
  2. The control touch screen (like a 3~8" TFT/LCD/...), which displays the list of available videos, details of the currently playing video on the main screen, and some options and graphic icons to choose which video you want to be played in the main TV screen.

    • HDMI
    • RCA/AV/Composite
    • USB
    • GPIO (Parallel or Serial)
    • DSI
    • . . . .

    I searched a lot on this over several different forums; it was often noted that once the HDMI is plugged in, the RCA switches off, or vice versa (It it true?). Assuming this to be correct, then the only protocol options for the control screen are USB, GPIO, and DSI.

Now My questions are as follows:

  1. Is it possible to have 2 different display contents using only 1 raspberry pi B+?
  2. If yes, which protocol is best for the control touch screen? (HDMI / RCA / USB / GPIO / DSI / ...).

    And how should I handle these simultaneous display contents?

  3. If no, what do you suggest me to do?

    Are there any other options than using 2 raspberry pi B+ boards?

Thanks a lot for your time and help. It is highly appreciated.

Omid1989
  • 662
  • 2
  • 14
  • 29

5 Answers5

9

The Raspberry Pi Foundation claims unambiguously that a VGA adapter on the GPIO header "means you can use it as a secondary monitor alongside HDMI" (from here). You should certainly be able to do that via USB; for evidence of the the pi running multi-headed, see comments below. The exception, of course, is trying to use the HDMI and the RCA video simultaneously. I would guess this limitation has to do with the GPU only being able to handle one output. That USB video can't use the GPU is also an assumption but one I'm pretty sure of; the piTFT and other GPIO based touchscreens can't use it directly either. This is actually good if you want dual heads, because it means there should be two completely separate video systems and linux takes it from there.

If you run two displays under X, they will probably be mirrored by default, but other arrangements can be configured easily. I am not sure about the possibility of running X on one monitor and console framebuffer on the other, or of running two framebuffers. Although the latter is possible it may not be applicable to all setups.

goldilocks
  • 60,325
  • 17
  • 117
  • 234
1

OP did not provide enough information about the software being used to select videos, etc. So I suspect the desire is to have X running on two screens at once, with one controlling the other. In which case the answer is no, as far as I can determine

For other multi-screen functions, here is a quick rundown of what I have done:

1) On the first Rpi with the 3.5 inch touch screen screen I can hook up an HDMI screen and use it as a character-based terminal by pressing Ctrl-Alt-F2. The 3.5" screen freezes and you can do all the commands you want on the HDMI using the same keyboard and mouse. To get back to the 3.5" screen you press Ctrl-Alt-F7

2) On my other Rpi I have it boot to the HDMI in X. Then by using either PuTTY (character) or Remote Desktop (Graphic) or TightVNC (Graphic), I can have a second screen up and running that is invisible on the HDMI. Normal keyboard and mouse keep working on the HDMI. I use Bluetooth to get sound since my monitor is screen-only.

The PC's keyboard and mouse work in the remote access program. By far my favorite is Remote Desktop, but TightVNC makes file transfers easier.
In all cases, you will most likely want to also have FileZilla running for transfers, especially if your control PC is dual monitor itself.

More related to the OP's question, the only way I've found to control the boot HDMI from the remote access programs is through the camera functions. But there is a caveat.

HERE IS THE RUB: Whenever you use the camera functions, like raspivid, raspistill, etc., it ALWAYS displays on the HDMI output. And it isn't even polite enough to go full-screen which means you can still see your X desktop behind it. It seems to fit the display top-to-bottom, then when the camera functions complete the HDMI will either go back to the desktop or to black if you have exceeded the normal inactivity time that blanks the screen.

3) I have also booted my other Rpi to a 60 inch screen to show some tricks to the family and simply accepted the fact that they could see me invoke the functions. I just keep a small terminal window open (in the center of the screen so videos will overlay on top of it) to where I have some BASH scripts to issue whatever commands I need, (like to show them my latest timelapse or the critters the NoIR camera motion sensor caught in the yard at night) and the command part went over their heads. They just watched the videos.

If you are using a graphical interface on your music-selection program, so much the better, because then they would get to see what you are doing. Then they can ooh and ahhh about how you can make such a tiny computer do all that, genius that you are.

But for a bottom line in relation to the question, I sense the OP is thinking more along the lines of a business presentation environment. I submit that in that case there is no real substitute for a small notebook PC that can handle dual displays.

SDsolar
  • 2,378
  • 8
  • 26
  • 43
1

Just found a short video that shows how this guy was able to support two monitors by changing things in the Kernel. I can't comment on this other than to simply list the link:

https://www.youtube.com/watch?v=dTcU5YSq-Ww

SDsolar
  • 2,378
  • 8
  • 26
  • 43
0

There is one way but you have to do a little manual labour for that. It has been stated at the official site of the pi foundation that omxplayer is suitable for dual audio output, but you have to do it from the command line. Just type following command: omxplayer --display=5 [FILE PATHNAME]

This command will let you play videos on HDMI output with simultaneously using the touchscreen.

0

This is possible if you use the Kivy framework. You will be able code your UI in python (for the touchscreen), and then play videos independently via the HDMI output.

For a basic example of the code structure on a RPi3 with the official 7" touchscreen, go here.

Neex
  • 91
  • 1
  • 9