Raspberry Pi/Projects/Wallboards

From r00tedvw.com wiki
(Difference between revisions)
Jump to: navigation, search
(Remove black borders)
(Remove black borders)
Line 51: Line 51:
 
  ~$ nano /boot/config.txt
 
  ~$ nano /boot/config.txt
 
  Find #disable_overscan=1 and remove the pound (#). If disable_overscan=0, change it to 1
 
  Find #disable_overscan=1 and remove the pound (#). If disable_overscan=0, change it to 1
 +
Now reboot the device to apply.
 +
~$ sudo reboot
  
 
====Set Resolution to 1080p====
 
====Set Resolution to 1080p====

Revision as of 20:55, 19 March 2015

Contents

Overview

Project was tasked to create a replacement solution for a grid of 6x1 100" projector screens displaying a shoretel call center queue and details.
New office space does not have a NOC, only an 8ft ceiling, and the call center cubicles are surrounded by a glass wall to the outside, allowing lots of sunlight. This would prevent projectors from being used.
The shoretel application on runs on Windows.
It was thought that the shoretel API may be able to be utilized, but unfortunately it alone does not provide enough access to information and direct calls against the SQL Database would be needed. With this discovered, it was decided the development work would be too great.

Requirement

Create 4 clusters of 6 monitors, 3 facing one way and 3 facing the other, that hang from the ceiling using mounts (similar to an airport or trader setup) above 4 cubicles all facing towards the analysts. On the walls, mount (4) large LCD screens.
The 6 monitor clusters would be close to the analysts and provide detailed information about specific call queues while the large LCD screens would provide a graphical representation of the total queue count in graph format.
The outside monitors of each row display the same information while the middle ones display different information.

Problem

The classical method of sending signals to these monitors would be to utilize 5 strand RGB cables to each monitor and run them back to repeaters to duplicate signals. This has the drawbacks of an excess of cabling needed, signal repeaters which can be unreliable, and no way to individually customize each screen if desired.

Solution

Use a raspberry pi 2 for each monitor, driving the signal from the hdmi out. The raspberry pi would then VNC into a windows VM running the required software and displaying the call center information.

Configuring the Raspberry Pi 2

At the time of this writing, the OS choices for the raspberry pi 2 were limited to noobs, raspbian, and ubuntu.

  • Noobs - wasn't considered
  • Ubuntu - was command line only unless you wanted to install a GUI yourself following unofficial instructions
  • Rasbian - the best choice as it had the groundwork needs, was very well supported, and ran smoothly on the RPI2

Installing Rasbian

Unfortunately using the linux/mac way of writing the image with dd did not work. The image wrote, but the pi would not read and card or boot. Instead I used the Windows method.

  1. Format the card using the SD Association's Formatting tool. Select the correct drive letter, change "Format Size Adjustment" option to ON so that the entire size is formatted and utilized.
  2. Download the distribution image desired from the raspberrypi.org downloads page
  3. Extract the .img file from the compressed .zip
  4. Using the Win32DiskImager select the .img and drive letter of the SD card, then click write.

First boot

You'll be prompted to select a few options on first boot. Make sure you select these:

  • Use full SD card space
  • Change desktop to default load

update

~$ sudo apt-get update && sudo apt-get upgrade -y

set date&time

Set time zone first. Run the following then just follow the prompts

~$ sudo dpkg-reconfigure tzdata

Now set the date&time

~$ sudo date newdatetimestring

newdatetimestring is in this format: nnddhhmmyyyy.ss

  • nn= month (01 -12)
  • dd= day (01-31)
  • hh= hour (00-23)
  • mm= minute (00-59)
  • yyyy= year (2XXX)
  • ss= seconds (00-59)
Example - set to March 19, 2014 @ 20:49
~$ sudo date 031920492015.00

Remove black borders

By default the Raspbian image places black borders around the display, so if you are running a 1080p monitor, this is not ideal as you don't have access to all the desktop space.
Remove them by editting /boot/config.txt

~$ nano /boot/config.txt
Find #disable_overscan=1 and remove the pound (#). If disable_overscan=0, change it to 1

Now reboot the device to apply.

~$ sudo reboot

Set Resolution to 1080p

Make sure you have the pi hooked up via hdmi to a screen that supports 1920x1080, preferably as a native resolution. We used HP 24uh (#K5A38-60001).
From a remote ssh session (not on the raspberry pi directly) do the following:
discover the modes the screen is reporting supported

~$ tvservice -m CEA
Group CEA has 9 modes:
          mode 1: 640x480 @ 60Hz 4:3, clock:25MHz progressive 
          mode 2: 720x480 @ 60Hz 4:3, clock:27MHz progressive 
          mode 3: 720x480 @ 60Hz 16:9, clock:27MHz progressive 
          mode 4: 1280x720 @ 60Hz 16:9, clock:74MHz progressive 
 (prefer) mode 16: 1920x1080 @ 60Hz 16:9, clock:148MHz progressive 
          mode 17: 720x576 @ 50Hz 4:3, clock:27MHz progressive 
          mode 18: 720x576 @ 50Hz 16:9, clock:27MHz progressive 
          mode 19: 1280x720 @ 50Hz 16:9, clock:74MHz progressive 
          mode 31: 1920x1080 @ 50Hz 16:9, clock:148MHz progressive

Set the pi to use the preferred 1080p resolution (most monitors support 50-60hz - UK/Europe uses 50hz, US uses 60hz)

~$ tvservice -e "CEA 16"
This is where you must be remoted into the pi via ssh. If you are not, you'll get a black screen and be unable to do anything else.
Powering on HDMI with explicit settings (CEA mode 16)
~$ tvservice -s
state 0x12001a [HDMI CEA (16) RGB lim 16:9], 1920x1080 @ 60.00Hz, progressive

Reset the overlays.

~$ fbset -depth 8 && fbset -depth 16

Install vncviewer

~$ vncviewer -shared -fullscreen -noraiseonbeep 10.45.9.157 -p /home/pi/.vnc/passwd
Personal tools
Namespaces

Variants
Actions
Navigation
Mediawiki
Confluence
DevOps Tools
Open Source Products
Ubuntu
Ubuntu 22
Mac OSX
Oracle Linux
AWS
Windows
OpenVPN
Grafana
InfluxDB2
TrueNas
OwnCloud
Pivotal
osTicket
OTRS
phpBB
WordPress
VmWare ESXI 5.1
Crypto currencies
HTML
CSS
Python
Java Script
PHP
Raspberry Pi
Canvas LMS
Kaltura Media Server
Plex Media Server
MetaSploit
Zoneminder
ShinobiCE
Photoshop CS2
Fortinet
Uploaded
Certifications
General Info
Games
Meal Plans
NC Statutes
2020 Election
Volkswagen
Covid
NCDMV
Toolbox