When on a lengthy drive with young children, Its nice to have a setup to keep all your passengers indulge in the same content on their personal screens while immersing themselves in the audio through the car's speaker system. This provides them with a cinematic experience on the move. Leveraging commercial off-the-shelf (COTS) hardware and open-source software, here is an attempt to build such a system.
Note: The list of items along with their respective models, prices, and online links provided in this table are from the the time when this was written. However, they are presented solely as a reference and may be subject to change in the future. It is advisable to conduct your own research and verify the current information before proceeding to build this setup.
Sr.No | Item | Quantity | Unit-Price(€) | Price(€) | Remarks | Link |
---|---|---|---|---|---|---|
1 | 12v-to-48v boostconverter | 1 | 24 | 24 | 48V 3A 144W | Link |
2 | TP-Link Gigabit PoE Switch | 1 | 36 | 36 | Unmanaged PoE 65W | Link |
3 | 5v PoE Splitter(MicroUSB) | 1 | 10 | 10 | 5V/2.4A Micro USB Plug | Link |
4 | GL.iNet GL-MT300N-V2 router | 1 | 30 | 30 | None | Link |
5 | 12v Car Plug extension | 1 | 7 | 7 | with DC 5.5mm connector | Link |
6 | 3Key USB keyboard | 1 | 25 | 25 | For sync trigger | Link |
7 | Aux Audio Jack Cable 3.5 mm | 1 | 6 | 6 | Display-to-Car-Audio feeder | Link |
8 | USB Flash drive | 1 | 10 | 10 | Capacity as per your media size | Link |
9 | Raspberry Pi-4 | 3 | 50 | 150 | Minimum 2GB Ram | Link |
10 | Raspberry Pi-4 Case | 3 | 13 | 39 | Passive cooled aluminium case | Link |
11 | 180° USB-C adapter | 3 | 8 | 24 | usb-c male to female | Link |
12 | 5v PoE Splitter(USB-C) | 3 | 15 | 45 | With USB-C connector | Link |
13 | 14" fullHD touch display | 3 | 110 | 330 | Price may vary | Link |
14 | Flexible flat ethernet cable | 3 | 5 | 15 | 5m or longer | Link |
15 | MicroHdmi-to-Hdmi cable | 3 | 9 | 27 | 0.3m | Link |
16 | Short USB to USB-C cable | 3 | 5 | 15 | 0.3m | Link |
17 | 180° HDMI adapter | 3 | 9 | 27 | Depends on your touch display | Link |
18 | MicroSD Card | 3 | 10 | 30 | 16GB or higher | Link |
As of writing this, total cost of building three screen infotainment setup is around 850€
Here is the picture showing the assembly of Raspberry-Pi, PoE-Splitter and touch-display(note: numbers marked on the parts are same as listed in the Bill-Of-Material).
As shown in this picture below, using Raspberry-Pi-Imager, prepare 3 micro-sd-cards by setting the correct hostname/user/pw(for pi user, feel free to choose your own password). Make sure to set hostname as media-mux-0001/media-mux-0002/media-mux-0003 and keep the user as pi.
Overwrite OEM firmware of pocket router with this image. Exact details of preparing pocket router as DLNA/DHCP server are available here in my blog(Make sure your media files are copied on a ntfs formatted flash drive).
- As shown in this picture below, connect your PC(or laptop) to the 5th ethernet port(Non-PoE) of the PoE switch and turn ON the +12Vdc to this setup. wait for about 1-2 minutes so that pocket-router and raspberry-pi's are done with booting(your laptop or pc will get the ip 192.168.20.x from the dhcp server of the pocket-router).
- From your PC(or laptop) ssh into the first Raspberry pi using putty.exe or ssh
ssh pi@media-mux-0001
- As shown in this picture below, run the commands:
git clone https://github.com/hackboxguy/media-mux.git
andcd media-mux
andsudo ./setup.sh -n 1
and finally reboot usingsudo reboot;exit
- Repeat the steps 2 and 3 by using next hostname(media-mux-0002/media-mux-0003) and using
sudo ./setup.sh -n 2
andsudo ./setup.sh -n 3
- After reboot, all 3 Raspi-Touch-Screens will automatically boot to kodi media player where you can browse your media files from Pocket-Router's DLNA server and play the content.
- The Raspi that is attached with 3Keyboard-usb-accessory will become a master device and by pressing the KEY_1 will play the same media of the master(by seeking the exact time of media) on to remaining two displays in a synchronized fashion.
- You are free to operate all 3 Raspi-Touch-Screens and play separate medias so that every passanger can enjoy their own content by attaching an audio-headset to their respective screens.
Depending on your car's seat headrest, there are numerous options available, particularly those designed for tablet mounting. Seek out the one that best fits your car and the size of your touchscreen display. While inexpensive holder clips (option-3) may be simple to hold the touch-display but they dont have a secure grip as other options.
setup.sh installs all the required sw components and media-mux-controller daemon is one of them. As shown here, upon detection of KEY_1 media-mux-sync-kodi-players.sh gets invoked as system() call. This script, using kodi-api, reads the current playing media and its location and sets the same file/location to remaining(two) displays. The main issue we see in the youtube-video that it takes multiple attemps to get the good level of sync and it is mainly due to play-pause-api-call which gets called sequentially on all 3 displays - if any of you kodi experts know how to fix this(or have other suggestion), would be a nice contribution to this project :-)