Tips Projector losing Raspberry Pi 2's HDMI signal

When I am watching a movie played with RasPlex (on my Raspberry Pi 2), it happens from time to time (possibly several times during a movie) that my projector loses the HDMI signal. The signal comes back quite immediately but this is a real annoyance. I solved the problem by boosting the HDMI signal in Raspberry Pi 2's config file.

Click to Read More

I had no issue when playing a movie with my PC or with my ChromeCast, both of them being however connected on the same home cinema amplifier (a Yamaha HTR-4067) as the Raspberry PI 2 and, from there, on the projector (a Benq W1070+) via a long HDMI cable.

The problem became especially unsupportable with 3D movies as not only the signal was lost, but also the projector was coming back in 2D mode. So, I had to set it back in 3D when the signal was recovered.

It was sometimes mentioned on various blogs or forums that the problem could have been with the HDMI cable, with the power supply of the Raspberry Pi 2, with the HDMI port of the amplifier, ... But I found the true solution here: boost the HDMI signal in the config file of the Raspberry Pi 2.

While already being in the config file to solve the problem, I took the opportunity to also overclock a bit the Raspberry as documented here. And finally, as I noticed that there was no specific memory size set for the GPU on my Raspberry, which has 1Gb Ram, if fixed that too. It seems to me that the config file used by RasPlex is not fully optimized for the Raspberry Pi 2.

To edit the "config.txt" file, I simply put the SD card of the Raspberry Pi 2 into my Windows PC and opened that file with Notepad++ (it's located on the root of the card). I ended with a config file like this one (changes are in bold):

#########################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
# Inspired and partly copied from:
# http://youresuchageek.blogspot.fr/2012/09/howto-raspberry-pi-openelec-on.html
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
#################################################################
# Bootloader configuration - config.txt
#################################################################

#################################################################
# Memory (System/GPU configuration )
#################################################################

# default GPU memory split (do not change if you do not know what you are doing)
gpu_mem=128

# SDRAM size based GPU memory split, uncomment and setup to override 'gpu_mem'
gpu_mem_256=64
gpu_mem_512=128
gpu_mem_1024=256

#################################################################
# Overclocking settings
# WARNING: Do not change/enable if you do not know what you are doing!
# The System may become unstable or you can have data corruption or
# you can loose your warranty if you set wrong settings
#
# please read: http://elinux.org/RPi_config.txt#Overclocking_configuration
#################################################################

# Overclock mode settings.
#
# default recommended values are: arm_freq | core_freq | sdram_freq | over_voltage
# no overclocking : 700 | 250 | 400 | 0
# mode 'Modest' : 800 | 300 | 400 | 0
# mode 'Medium' : 900 | 333 | 450 | 2
# mode 'High' : 950 | 450 | 450 | 6
# mode 'Turbo' : 1000 | 500 | 500 | 6

#arm_freq=900
core_freq=500
sdram_freq=500
over_voltage=2

# set to 'force_turbo=1' to disable dynamic overclocking (you can lose your warranty!)
force_turbo=0

# If you have any data corruption using Turbo Mode and overclocking
# try with this setting uncommented
# If this still fails, try to use Medium mode without "over_voltage=2"
# If it ultimately keeps failing, forget about this until it gets fixed
# Use a more conservative mode that will works fine in any cases:
# initial_turbo=30

#################################################################
# Overscan settings
#################################################################

# Make display smaller to stop text spilling off the screen
# see also http://www.raspberrypi.org/phpBB3/viewtopic.php?f=67&t=15700
# overscan_scale=1
# disable_overscan=1

# Adapt overscan values to your needs
# overscan_left=57
# overscan_right=59
# overscan_top=20
# overscan_bottom=20

#################################################################
# various settings see also: http://elinux.org/RPi_config.txt
#################################################################

# Force HDMI even if unplugged or powered off
# hdmi_force_hotplug=1

# Uncomment to force a console size. By default it will be display's size minus
# overscan.
# framebuffer_width=1280
# framebuffer_height=720

# Uncomment to force a specific HDMI mode (this will force VGA).
# hdmi_group=1
# hdmi_mode=1

# Uncomment to force an HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes.
# hdmi_drive=2

# Uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display. Max value = 7
config_hdmi_boost=4

# Uncomment for composite PAL
# sdtv_mode=2

# Uncomment to overclock the ARM. 700 MHz is the default.
# arm_freq=800

#################################################################
# License keys to enable GPU hardware decoding for various codecs
# to obtain keys visit the shop at http://www.raspberrypi.com
#################################################################

# decode_MPG2=0x00000000
# decode_WVC1=0x00000000
# decode_DTS=0x00000000
# decode_DDP=0x00000000

#################################################################
#
# >>>>>>>> RasPlex default settings override <<<<<<<<<
#
#################################################################

hdmi_force_hotplug=1
hdmi_drive=2
gpu_mem_256=64
gpu_mem_512=256
gpu_mem_1024=256
dtoverlay=lirc-rpi
#################################################################
# End of default configuration
# all values below this line were inserted from config.txt.bk (your old config)
# and can be merged with the above values
#################################################################

Tips HDMI CEC between an amplifier Yamaha HTR-4067 and a Raspberry Pi 2

I just bought the new Raspberry Pi 2 to run Rasplex (Plex + OpenElec) within my Home Theater System. The only question I had was: would I be able to use the remote of my amplifier to control Rasplex. The answer is yes, it works !

Yamaha-HTR-4067

Yamaha-HTR-4067

Click to Read More

My Home Theater System includes:

  • A amplifier Yamaha HTR-4067
  • Speakers Eltax Monitor 91 HC  with
    • two floor-standing speakers Eltax Monitor IX
    • two speakers Eltax Monitor I
    • one speaker Eltax Monitor Center
  • A subwoofer Yamaha NS-SW200
  • A projector BenQ W1070+
  • A Raspberry Pi 2 with RasPlex

NB.:

  • The Raspberry is connected on the "HDMI 1 (BD/DVD)" input.
  • I had to change the HDMI cable to use one certified "High Speed with Ethernet".
  • I had to turn on first the Amplifier, next the projector, and finally the Raspberry.

When starting, Rasplex  :

  1. Detects the "Pulse-Eight CEC adapter"
  2. Updates the CEC adapter configuration
  3. And finally displays a message: "connected: TV-HTR-4067"

Within Plex:

  • I went to "> Preferences > Change Preferences for System"
  • I selected "Input Devices" and then "Peripherals"
  • There, Plex displays info about the "CEC adapter". I did click on "Ok" to enter the settings of that adapter. There, I have the following settings:
    • Enabled is ticked
    • Make XBMC the active source when stating is not ticked
    • "Device to power on..." is none
    • "Device to pwoer off..." is none
    • "Send inactive source..." is ticked
    • "Put device in standby..." is not ticked
    • "When the TV is switched off" is "Ignore"
    • "Put device in standby" is not ticked
    • "Use the TV's language setting" is not ticked
    • "Pause playback" is ticked
    • "Physical address (overrules HDMI port)" is 0
    • "Com port" is -

Notice: when the amplifier is switched off (standby), the video is still forwarded to the projector, as well as the sound. But what's great is that the remote control still works too via CEC !!!

Tips XBMC on Raspberry Pi: get Sound but no Video

It's well known that when a video does not play on a Raspberry Pi, it's usually due to a codec issue. But in my case, I was able to play video from the "Movies" menu but not from a "Smart Playlist". The problem was due to the amount of ram assigned to the GPU. It seems that there was no free resource anymore to play video once a "Smart Playlist" opened.

Click to Read More

I have a Raspberry Pi model b with 512 Mb Ram.

  1. In order to find the reason of the problem, I have activated the logging on XBMC: In  Settings -> System -> Debugging, toggle the Enable debug logging setting.
  2. I have opened a Smart Playlist and started a movie. I only got the sound but no video.
  3. I have looked into the log file, whose path depend on the distribution:
    • OpenELEC: /storage/.xbmc/temp/xbmc.log
    • Raspbmc: /home/pi/.xbmc/temp/xbmc.log
    • XBian: /home/xbian/.xbmc/temp/xbmc.log
  4. In that log I found this:

DEBUG: JSONRPC: Calling player.getactiveplayers
ERROR: COMXCoreComponent::DecoderEventHandler OMX.broadcom.video_decode - OMX_ErrorInsufficientResources, insufficient resources
ERROR: OMXPlayerVideo : Error open video output
DEBUG: JSONRPC: Calling application.getproperties

The problem was "Insufficient Resources". Googling on that I found a simple solution: add more ram for the GPU.

  1. Open a telnet session to the Raspberry Pi and log (user: pi, password raspberry on RaspBMC)
  2. Edit the config.txt file which is located in /boot.
  3. Set gpu_mem_512=256 (instead of the current value 128)
  4. Restart the Rasberry Pi using the command: sudo reboot

If editing the config.txt file using "telnet" is not easy, possibly "ftp" the Raspberry to "get" the file, edit this one on Windows and "put" it back.

Regarding the codec problem that can occur, it's usually for mpeg2 video as one has to purchase the mpeg2 license and configured the raspberry pi. See this blog for details.

About logging: http://wiki.xbmc.org/index.php?title=Log_file/Easy

About Raspberry pi : http://wiki.xbmc.org/?title=Raspberry_Pi/FAQ

More about Ram usage and split between CPU and GPU (from Krzysztof Adamski)

Click to Read More

256MB version

For older RaspberryPi, with 256 MB of RAM, 4 splits are available:

  • 240/16 - The most RAM size ARM can get (240MB) with mimial GPU memory. It's the best for general computing when you don't need 3D graphics or hardware video acceleration. It has enough memory to handle 1920x1200x16bpp framebuffer resolution. While 32bpp is also working, it's not recommended since it leaves very small amount of free memory for GPU.
  • 224/32 - This one is deprecated in favor of 240/16 split. It has 3D and hardware video decoding build in but since there is not enough memory to actually use it, there's little point in using it. Unless you have some problems with 240/16 split or want to use 32bpp framebuffer at highest resolution. It is possible it will be deleted in the future.
  • 192/64 - You need at least 64MB of GPU split to use hardware video acceleration or 3D graphics. It may not be enough GPU memory for hardware accelerated video playback at highest resolution or if you need a lot of GPU memory for things like textures.
  • 128/128 - The most RAM GPU can get. Use it when you need a lot of memory for 3D graphic card and hardware accelerated video playback in high resolution. This split is needed for RaspBMC to work properly or to play fullHD video content with omxplayer without problems.

512MB version

New versions of RaspberryPi has 512 MB of RAM. You have 4 additional splits designed for this version:

  • 496/16 and 448/64 - like 240/16 and 192/64 split for 256MB respectively but with 256MB more RAM available for ARM. Since GPU has only 16 MB/64MB or RAM, all the limitations from240/16/192/64 still apply.
  • 384/128 - Similar to 128/128 split for 256MB - you should get all the graphic chip features but with reasonable amount of ARM memory. This will probably be the most universal split right now.
  • 256/256 - Some bonus graphic card memory if you really need it, like for big textures and similar things. While 256MB of ARM memory is bigger than you could possibly have in older RaspberryPis, I don't think this one will be used on many occasions.

Hardwares A HTPC for 35€: Raspberry Pi + XBMC

Raspberry Pi Model B

I have just received the "Raspberry Pi Model B" I ordered two weeks ago on "RS Components" website. It rocks !!!

Within 30 minutes, I was watching on my HD TV a 1080p movies streamed from my NAS :p

Click to Read More

Mine is in a black case bought from RS components. I also bought there a power supply and a HDMI cable. The big advantage of using a Raspberry pi is that

  • It has a very low power consumption (about 1-2 watts at idle)
  • It is really small 85.60mm x 53.98mm x 17mm (invisible behind the TV)
  • It has a HDMI with Audio with CEC support (you can pilot XBMC on the Raspberry Pi with the TV remote control)
  • It comes with codec license for MPEG4 & H.264 (hardware accelerated)
  • Licenses can also be bought here to play back MPEG2 or VC1.
  • The Model B comes with 512MB Ram (Only 256 on the Model A)
  • It boots a Linux from a SD card (= silent) in about 50 seconds (depending on the distribution). There are 3 distributions of Linux with XBMC targeting the Raspberry Pi (see the wiki here). Some Install Guides:
  • A 2GB SD is enough, but I use a 16GB class 6, the only SD I had
  • There are 2 USB slots that I use for a keyboard and a mouse. That can be expanded with a USB hub (There is only one USB port on the Model A). A USB HDD can be plugged to add extra storage if required.
  • There is a 10/100Gbs Ethernet Port (No Ethernet port on the Model A) with supports of various power management wakeup features, including Magic Packet™, Wake-on LAN (WOL) and Link Status Change. UNFORTUNATELY, albeit Pi's Lan chipset does support WOL, the Pi's lack of power management (ACPI) means it doesn't support this Lan chipset features :(
  • It does not need a fan cooler (= silent)
  • The Model B uses a standard power supply capable of supplying 5V 700ma (the Model A requires 5V 300ma)
  • The GPU is capable of 1Gpixel/s
  • It can be easily overclocked (and overvolted to increase stability) up to 1000MHz (without making the warranty void !). By default the Raspberry Pi runs as 700Mhz and is overclocked at 800Mhz by RaspBmc...
  • Overall real world performance is something like a 300MHz Pentium 2 with great graphic performances.
As mentioned, I decided to install RaspBmc. It's really straightforward.
  1. Plug the SD card in a PC (I am using Windows 8 )
  2. Format the SD card, e.g. using a tools dedicated to SD/SDHC/SDXC like "SD Formatter".
  3. Download the raspbmc installer here and "run As Administrator" the setup.exe . It will automatically download an image and copy it to the SD card.
  4. Plug next the SD card in the Raspberry Pi, plug the HDMI cable on the TV (I didn't test the RCA/Audio output), plug an Ethernet cable and plug the power supply. Select the right HDMI input on your TV and you should see the Raspberry PI display. It will configure itself (get an IP address from DHCP server, download the latest release/updates, etc...) and after about 20 minutes, it should start XBMC.
  5. In XBMC, go to the main menu > System > Lower submenu > System info and take note for your URL. You can also get there the MAC Address if you prefer like me to configure your DHCP server to assign a fix IP to the Raspberry PI (recommended to remote control XBMC or configure NFS access to Synology - reboot required).
  6. On your PC, run a Browser and type the IP address of the Raspberry PI to get access to the XBMC web control UI (on the port 80 configured by default in Raspbmc). It can be used to remote control XBMC.
  7. On you Android Phone, install the XBMC official Remote Control and configure it with the IP address of the Raspberry Pi with port 80 (this is the default of RaspBmc). There is neither a username nor a password defined by default in RaspBmc for accessing the Web Control UI. (Another good remote for Android is Yatse Widget)
  8. On Synology, enable the "guest" account and grant read access on the shared folders "music", "video" and "photo" (I still have to find where I can configure a username in raspbmc to access smb/nfs - I know I could at least do it on the smb/nfs sources configured in XBMC: protocol://user:pass@synoIP/sharename)
    • The default username is "pi" and the default password is "raspberry", but for some reasons, adding such a user on the Synology with adhoc rights on the shares does not grant raspbmc access on those ?!
  9. On XBMC, add video, music and photo sources. I am not using "uPnP" as it does not support use of metadata stored next to the media files. Instead I am currently using smb.
  10. On XBMC, you can go to the menu "Programs" to get access to the RaspBmc settings.
The Android Remote Control for XBMC works really fine, as well as controlling XBMC with the TV Remote, which makes this HTPC from far the greatest for that price: ~35€!
A few notes:
  • WOL does not work because the lack for "power management" on Raspberry Pi. The only other way to "power on" the device remotely is to plug its power cable into a USB port on the TV (USB voltage is standardized at 5.0v, so you only have to check the max A supported by your TV). When you turn on the TV the pi powers on too. However, the Pi draws less power when turned on then many Tvs do when off, so there is really no reason to ever turn it off. Turning it off would not significantly reduce power consumption unless it is also unplugged.
    • So, don't ever use the "Power Off" button of XBMC. The only way to restart the Raspberry Pi would be to unplug and plug back in the power supply.
    • Power over Ethernet (PoE) is not yet supported. Maybe in a future version of the Raspberry Pi.
  • In XBMC, go to the main menu > System > Lower submenu > Settings > Apparence > Region. Set e.g. the "Langue of the interface" or your language as "Preferred Language for audio" although you like to watch the movies in O.V.
  • In XBMC, go to the main menu > System > Lower submenu > Settings > Services > SMB Client. Change the name of the Workgroup to match your.
  • Login on the Raspberry Pi via SSH (using Putty, username "pi", password "raspberry". Note: "root" user is disabled by default on RaspBmc) and Raspbmc will prompt you to choose your keyboard layout (Find yours in this list) - use the space bar to select a layout and Tab to move the cursor onto the Ok button. On the next screen, set your layout as the default one and wait until it's "generated" (can be a long process). Continue the configuration with the selection of your region and country. Type "exit" to close the SSH session.
  • Raspbmc overclocks the Raspberry Pi to a safe clock frequency (from the default 700MHz to 800Mhz). Notice that a change of the clock frequency does not blow the OTP (Over Temperature Protection). It is overvolting that does this. Overclocking is therefore not making the warranty void while overvolting will permanently set a bit which invalidates the warranty. Overvolting will also reduce the lifespan.
    • Here is a tutorial to overclock the Raspberry Pi with RaspBmc via SSH
    • Here is a tutorial to overvolt the Raspberry Pi with RaspBmc via SSH
    • Here is a tutorial to do the same with the Raspbery config tool (if not using RaspBmc
    • And here are more details on possible values for the overclocking/overvolting.
  • With RaspBmc, there is no need to manually update the firmware (via SSH). This is done automatically by RaspBmc, insuring that the kernel is fully compatible.

site: http://www.raspberrypi.org (Look at the quick-start-guide and the FAQ)

RaspBmc: http://www.raspbmc.com (Look at the FAQ)

XBMC for Raspberry: http://wiki.xbmc.org/index.php?title=Raspberry_Pi/FAQ

buy: http://raspberrypi.rsdelivers.com/default.aspx?cl=1