Thursday, 5 November 2015

Application ARM-based chips

As I was doing some research to write the previous article - Comparison of the Raspberry Pi B+ & the Raspberry Pi 2 Model B, I found this very interesting chart showing everyone else using the ARM V7 and V8 architecture.

We know that the Raspberry Pi is Broadcom BCM2835 (ARM V6) & Broadcom BCM2836 (ARM V7) based. We read about Microsoft with Windows on ARM, WindowsRT, Windows 8 builds for ARM which were all built for ARM V7 architecture which includes the Texas Instrument OMAP5 (ARM Cortex A-15), Qualcomm Snapdragon S4 MSM8960 (ARM Cortex A-9), Qualcomm Snapdragon S4 Krait and Nvidia Tegra 2 (ARM Cortex A-9 and ARM Cortex A-53).

Look who else is using the ARM V7 - Apple A6, A6X & ARM V8 - Apple A7, A8, A8X, A9, A9X!

The list also includes all the BlackBerry OS 10.x based phones - PlayBook, PlayBook WiMax & 4G PlayBook HSPA+ (TI OMAP 4430), 4G LTE PlayBook (TI OMAP 4460), Q10 (Snapdragon S4 (LTE version) / TI OMAP 4470 (Non-LTE)), Q5, Z10 & Leap (Snapdragon S4 Plus MSM8960), Z30 (Snapdragon S4 Pro MSM8960T), Z3 (Snapdragon 400 MSM8230).

The Application ARM-based chips chart was lifted from ARM architecture.


Wednesday, 4 November 2015

Comparison of the Raspberry Pi B+ & the Raspberry Pi 2 Model B

Raspberry Pi Foundation co-founder and spokesman Eben Upton said that from a historical perspective, the Raspberry Pi 2 is now 100 times more powerful than the original ARM-powered computer - the Acorn Archimedes, for which the ARM architecture was invented. The Raspberry Pi 2 is essentially a fully-functioning PC.

With the ARMV7 architecture, the Raspberry Pi has become "mainstream". The Linux kernel / distros for ARM have always been for the ARM V7 instruction set. The Raspberry Pi community has been modifying the ARM V7 Linux kernel for the ARM V6 instruction set for use with all the Broadcom BCM2835 ARMV6 based Raspberry Pi A, B, A+ & B+. Therefore, some older software (compiled for ARM V6) may NOT run as efficiently on the Raspberry Pi 2 until an update compiled for ARM V7 / ARM Cortex A7 quad-core architecture has been released. ARMV7 is backwards-compatible with ARMV6.

See my article on Application ARM-based chips.

Of course, you must have heard that Microsoft is going to release a special variant of Windows 10 designed for Internet of Things (IoT) developers. This will be released as a free download for all Raspberry Pi 2 owners. I haven't tried this at all, maybe something for the future.

I have gathered the following data from various sources and compiled them into a single reference. If you find any errors or omissions, please let me know for correction. If you have any request for any specific information, please let me know so that I can update this comparison sheet accordingly.


Raspberry Pi B+ Raspberry Pi 2 B
Launch date July 2014 February 2015
CPU ARM11 ARM Cortex A7
CPU Instruction Set ARM V6 32-bit ARM V7 32-bit
CPU Speed Single Core @ 700 MHz Quad Core @ 900 MHz
CPU Overclocking up to 1000 Mhz up to 1100 MHz
L1 cache 16KB Instruction x 1 core
16KB Data x 1 core
32KB Instruction x 4 core
32KB Data x 4 core
L2 cache 128KB used by VideoCore IV 512KB
RAM 512MB SDRAM @ 400 MHz
Shared with GPU
Non-expandable
1GB SDRAM @ 450 MHz
Shared with GPU
Non-expandable
SoC Broadcom BCM2835
CPU, GPU, DSP, SDRAM, one USB port
Broadcom BCM2836
CPU, GPU, DSP, SDRAM, one USB port
JTAG Not populated
GPU Broadcom VideoCore IV
Dual Core @ 250 MHz
Multimedia Co-Processor
1Gpixel/s (fill-rate), 1.5Gtexel/s or 24 GFLOPS
OpenGL ES 1.1, OpenGL ES 2.0
Hardware-accelerated OpenVG 1.1
Open EGL, OpenMAX
MPEG-2 and VC-1 (with license)
1080p30 H.264 / MPEG-4 AVC
High-profile decoder and encoder
Minimum amount of memory for GPU shall be 32MB
CODECS HW decoders license - purchase separately,
SW decoder by Operating system support
Scalar / Vector Processor (VPU) Software decode VP6, VP7, VP8,
RV, Theora, WMV9 at DVD resolutions
JPEG Encoder / Decoder Hardware block assisting JPEG encode and decode
Video Encoder / Decoder 1080p30 Full HD HP H.264 Video Encode / Decode
Hardware decode H264, MPEG1/2/4, VC1, AVS, MJPG at 1080p30
Image Sensor Pipeline (ISP) Advanced Image Sensor Pipeline (ISP) for up to 20 Mpixel cameras operating at up to 220 Mpixels per second
Video Output HDMI 1.3, 1.4
Full HDTV 1080p widescreen
Aspect ratio of 16:9
Resolution of 1920x1080 &
WUXGA 1920×1200
Other Video Output 15-pin DSI (Display Serial Interface) port for connecting LCD/OLED and touch screen displays
See 3.5mm A/V mini-Jack
Video Input 15-pin MIPI (Mobile Industry Processor Interface) CSI-2 (Camera Serial Interface Type 2) V1.01 connector,
Used with the Raspberry Pi camera or
Raspberry Pi NoIR camera
H265 (HEVC) No HW support,
SW decoder by Operating system support, max 720p25
Real-Time Clock No HW real-time clock
NTP (Network Time Protocol) by Operating system support
Storage Micro-SDHC up to 64GB
No HDD / CD / DVD interface
Ethernet / USB Controller LAN9514 USB / Ethernet
By SMSC (now part of Microchip Technology Inc.)
Single 25MHz crystal for both USB and Ethernet connectivity
Built-in ±8kV / 15kV contact / air discharge ESD protection on both USB and Ethernet PHYs
4 x integrated downstream USB 2.0 PHYs
HS (480 Mbps), FS (12 Mbps) and LS (1.5 Mbps) compatible
1 x integrated downstream 10/100 Ethernet MAC/PHY
Full- and half-duplex support with flow control
With HP Auto-MDIX
Fully compliant with IEEE802.3 / 802.3u
10BASE-T and 100BASE-TX support
Preamble generation and removal
Automatic 32-bit CRC generation and checking
1 x integrated upstream USB 2.0 (480Mbps) PHY
Ethernet Port (RJ45) 1 x 10/100 Mb/s
USB Ports 4 x USB 2.0
Current draw limit 600mA
Software adjustable to 1.2A by Operating system support
(connect a keyboard, mouse, Wi-Fi adapter & 2.5” external HDD simultaneously)
GPIO (General Purpose Input Output) 40-pins 2.54 mm (100 mil) expansion header: 2x20 strip
Providing 27 GPIO pins as well as +3.3V (3V3) / max 48mA, +5V and GND supply lines.
All digital I/O. No ADCs (Analogue to Digital Converters)
The GPIO has 41 registers.
All accesses are assumed to be 32-bit.
Wi-Fi / Bluetooth USB adapter by Operating system support
Audio Circuit Dedicated low-noise power supply
Audio Output Multi-Channel HD Audio over HDMI
Analog Stereo from 3.5mm Headphone Jack
Audio Input I2S digital (via GPIO)
3.5mm A/V mini-Jack 3-pole RCA Composite Video Signal (PAL and NTSC)
4-pole TRRS (Tip-Ring-Ring-Sleeve) connector
Operating System Raspbian, RaspBMC, Arch Linux, RiscOS, OpenELEC, Pidora Raspbian, RaspBMC, Arch Linux, RiscOS, OpenELEC, Pidora, FreeBSD, Windows 10
Dimensions 85 x 56 x 17mm
Weight 42g
Power Supply Regulator On-board switching power regulator
Power Supply Protection Incorporates AP2331 a single channel current-limited integrated highside power switches optimized for hot-swap applications. It offers reverse-current blocking, over-current, over-temperature and short-circuit protection, as well as controlled rise time and under-voltage lockout functionality.
Input voltage range: 2.7V – 5.2V.
Power Supply Rating 600mA / 3.0W 800mA / 4.0W
Power Supply / Voltage 1.8A @ 5V 2.0A @ 5V
Power Supply Adapter The best adapter provides 5.1V and the USB cable with 20AWG wires - even at a full 2A draw, the voltage shall not be lower than 4.9V.
Power Input Port 1 x Micro-USB
Power Consumption Raspberry Pi B+ / mA Raspberry Pi 2 B / mA
Idling 200 230
Loading LXDE 230 310
Watch 1080p Video 240 290
Shoot 1080p Video
(using Pi Camera)
330 350

The Power Consumption data was lifted from Raspberry Pi2 – Power and Performance Measurement which also claims that the quad-core CPU consumes 50mA / 250mW per core.

The hardware codec license for MPEG-2 license key and VC-1 license key may be purchased directly from Raspberry Pi Store.

Happy try-out!  Hope you enjoy your Raspberry Pi experience!

CAUTION: Your circumstances, connections, interfaces, options and versions may differ and needs to be re-evaluated for your specific application.

Friday, 30 October 2015

Raspberry Pi - HDMI / LCD TV configuration & setup (Part 2)

The current version used in consumer electronic gear for the HDMI interface is Enhanced EDID (E-EDID) 1.3 which is based on CEA-861E and incorporated into the HDMI 1.4 specification. The EDID 1.3 specification was released in 2000. The current version used for PCs with the DisplayPort interface is EDID 1.4, released in March 2007.

Here is a description lifted from Open Tech Guides.

Picture doesn't fill the entire size of the screen and you can see black borders on left, right, top, bottom or all sides.

This is possibly because Pi is adding overscan to the signal. Modern TVs and monitors don't need overscan and hence disabling overscan altogether can make the Pi graphics fill the entire screen.
Check the settings on the TV or monitor first. Eg: On a Sony Bravia TV these settings are under Screen Format (Normal, Zoom, Wide Zoom etc.,). If this doesn't remove the black borders, then try disabling overscan on the Pi. This can be done by setting the parameter disable_overscan to 1 in /boot/config.txt and commenting other parameters related to overscan.
  1. Take a backup of /boot/config.txt
    sudo cp /boot/config.txt /boot/config.txt.backup
    
  2. Open config.txt for editing
    sudo nano /boot/config.txt
    
  3. Uncomment the #disable_overscan=1 (Remove the #)
  4. Comment all other overscan parameters
    #overscan_left=10
    #overscan_right=10
    #overscan_top=15
    #overscan_bottom=15
    
  5. Save and exit. ( CTRL+X followed by Y to save)
  6. Reboot
    sudo reboot
    
On most monitors / TVs this would remove the black borders and make the desktop fill the whole screen. However, if your display still has some overscan you may need to keep the overscan parameters in config.txt file but adjust the values:
overscan_left=-10
overscan_right=-10
overscan_top=-30
overscan_bottom=-30
More negative values mean less black borders. Centre the display by trying different values for left, right, top, bottom.

Picture spills off the size of the screen and some parts of the picture are outside the screen

This means you need positive overscan values.
overscan_left=10
overscan_right=10
overscan_top=30
overscan_bottom=30

The resolution and HDMI modes are not the best values for your screen

Try to change monitor settings from Preferences → Monitor settings
However, if it says "Unable to get monitor information", find out the modes supported by your monitor by running tvservice command and set the correct mode in /boot/config.txt as below
  1. Run the tvservice command to output the result to a file.
    $ tvservice -d edid.dat
    Written 256 bytes to edid.dat
    
  2. Pipe the file to edidparser to generate a readable text file.
    $ edidparser edid.dat > edid.txt
    
  3. Grep the desired resolution to check if it is available. For example if you are checking for 1080p resolution
    $ cat edid.txt | grep 1080p
      HDMI:EDID found preferred CEA detail timing format: 1920x1080p @ 60 Hz (16)
      HDMI:EDID found CEA detail timing format: 1920x1080p @ 50 Hz (31)
      HDMI:EDID found CEA format: code 31, 1920x1080p @ 50Hz 
      HDMI:EDID found CEA format: code 16, 1920x1080p @ 60Hz 
      HDMI:EDID found CEA format: code 32, 1920x1080p @ 24Hz 
      HDMI:EDID found CEA format: code 34, 1920x1080p @ 30Hz 
      HDMI:EDID best score mode is now CEA (16) 1920x1080p @ 60 Hz with pixel clock 148 MHz (score 5398248)
      HDMI:EDID CEA mode (31) 1920x1080p @ 50 Hz with pixel clock 148 MHz has a score of 4232360
      HDMI:EDID CEA mode (32) 1920x1080p @ 24 Hz with pixel clock 74 MHz has a score of 124532
      HDMI:EDID CEA mode (34) 1920x1080p @ 30 Hz with pixel clock 74 MHz has a score of 149416
      HDMI:EDID preferred mode remained as CEA (16) 1920x1080p @ 60 Hz with pixel clock 148 MHz
    
      HDMI:EDID best score mode is now CEA (16) 1920x1080p @ 60 Hz with pixel clock 148 MHz (score 5398248)
    "CEA" corresponds to hdmi_group=1
    "DMT" corresponds to hdmi_group=2
    The value inside () corresponds to hdmi_mode.
    From the above result:
    hdmi_group=1
    hdmi_mode=16
  4. Take a backup of /boot/config.txt
     sudo cp /boot/config.txt /boot/config.txt.backup
  5. Edit /boot/config.txt
     sudo nano /boot/config.txt 
  6. Uncomment hdmi_group and hdmi_mode and set the right values
     hdmi_group=1
     hdmi_mode=16 
  7. Save and exit; Ctrl+X followed by Y to save
  8. Reboot
    $ sudo reboot 

You can find more information at eLinux.org.

Here is a description lifted from Raspberry Pi.org.

CEA (Consumer Electronics Association) and DMT (Display Monitor Timings) are two logical groups of configuration settings. Here follows a list of all CEA and DMT formats (as of CEA-861 E and DMT V1 r12 respectively). If you want to use any of these modes explicitly, set hdmi_group and hdmi_mode to the correct values in the config file. Note that not all modes are supported by the Raspberry Pi hardware (mainly the high resolution / high frame rate modes) and all explicit modes are subject to EDID support from the monitor / TV you are using.


CEA (hdmi_group = 1)

HDMI_CEA_VGA = 1
HDMI_CEA_480p60 = 2
HDMI_CEA_480p60H = 3
HDMI_CEA_720p60 = 4
HDMI_CEA_1080i60 = 5
HDMI_CEA_480i60 = 6
HDMI_CEA_480i60H = 7
HDMI_CEA_240p60 = 8
HDMI_CEA_240p60H = 9
HDMI_CEA_480i60_4x = 10
HDMI_CEA_480i60_4xH = 11
HDMI_CEA_240p60_4x = 12
HDMI_CEA_240p60_4xH = 13
HDMI_CEA_480p60_2x = 14
HDMI_CEA_480p60_2xH = 15
HDMI_CEA_1080p60 = 16
HDMI_CEA_576p50 = 17
HDMI_CEA_576p50H = 18
HDMI_CEA_720p50 = 19
HDMI_CEA_1080i50 = 20
HDMI_CEA_576i50 = 21
HDMI_CEA_576i50H = 22
HDMI_CEA_288p50 = 23
HDMI_CEA_288p50H = 24
HDMI_CEA_576i50_4x = 25
HDMI_CEA_576i50_4xH = 26
HDMI_CEA_288p50_4x = 27
HDMI_CEA_288p50_4xH = 28
HDMI_CEA_576p50_2x = 29
HDMI_CEA_576p50_2xH = 30
HDMI_CEA_1080p50 = 31
HDMI_CEA_1080p24 = 32
HDMI_CEA_1080p25 = 33
HDMI_CEA_1080p30 = 34
HDMI_CEA_480p60_4x = 35
HDMI_CEA_480p60_4xH = 36
HDMI_CEA_576p50_4x = 37
HDMI_CEA_576p50_4xH = 38
HDMI_CEA_1080i50_rb = 39
HDMI_CEA_1080i100 = 40
HDMI_CEA_720p100 = 41
HDMI_CEA_576p100 = 42
HDMI_CEA_576p100H = 43
HDMI_CEA_576i100 = 44
HDMI_CEA_576i100H = 45
HDMI_CEA_1080i120 = 46
HDMI_CEA_720p120 = 47
HDMI_CEA_480p120 = 48
HDMI_CEA_480p120H = 49
HDMI_CEA_480i120 = 50
HDMI_CEA_480i120H = 51
HDMI_CEA_576p200 = 52
HDMI_CEA_576p200H = 53
HDMI_CEA_576i200 = 54
HDMI_CEA_576i200H = 55
HDMI_CEA_480p240 = 56
HDMI_CEA_480p240H = 57
HDMI_CEA_480i240 = 58
HDMI_CEA_480i240H = 59
HDMI_CEA_720p24 = 60
HDMI_CEA_720p25 = 61
HDMI_CEA_720p30 = 62
HDMI_CEA_1080p120 = 63
HDMI_CEA_1080p100 = 64

DMT (hdmi_group = 2)

HDMI_DMT_640x350_85 = 0x1, /**<640x350 */
HDMI_DMT_640x400_85 = 0x2, /**<640x400 */
HDMI_DMT_IBM_VGA_85 = 0x3, /**<720x400 */
HDMI_DMT_VGA_60 = 0x4, /**<640x480 (60Hz is same as VGA in CEA above) */
HDMI_DMT_VGA_72 = 0x5
HDMI_DMT_VGA_75 = 0x6
HDMI_DMT_VGA_85 = 0x7
HDMI_DMT_SVGA_56 = 0x8, /**<800x600 */
HDMI_DMT_SVGA_60 = 0x9
HDMI_DMT_SVGA_72 = 0xA
HDMI_DMT_SVGA_75 = 0xB
HDMI_DMT_SVGA_85 = 0xC
HDMI_DMT_SVGA_120 = 0xD
HDMI_DMT_848x480_60 = 0xE, /**<848x480 */
HDMI_DMT_XGA_43 = 0xF, /**<1024x768 – interlaced, DO NOT USE */
HDMI_DMT_XGA_60 = 0x10, /**<1024x768 */
HDMI_DMT_XGA_70 = 0x11
HDMI_DMT_XGA_75 = 0x12
HDMI_DMT_XGA_85 = 0x13
HDMI_DMT_XGA_120 = 0x14
HDMI_DMT_XGAP_75 = 0x15, /**<1152x864 */
HDMI_DMT_WXGA_RB = 0x16, /**<1280x768 reduced blanking */
HDMI_DMT_WXGA_60 = 0x17
HDMI_DMT_WXGA_75 = 0x18
HDMI_DMT_WXGA_85 = 0x19
HDMI_DMT_WXGA_120 = 0x1A, /**<120Hz with reduced blanking */
HDMI_DMT_1280x800_RB = 0x1B, /**<1280x800 reduced blanking */
HDMI_DMT_1280x800_60 = 0x1C
HDMI_DMT_1280x800_75 = 0x1D
HDMI_DMT_1280x800_85 = 0x1E
HDMI_DMT_1280x800_120 = 0x1F, /** reduced blanking */
HDMI_DMT_1280x960_60 = 0x20, /**<1280x960 */
HDMI_DMT_1280x960_85 = 0x21
HDMI_DMT_1280x960_120 = 0x22, /** reduced blanking */
HDMI_DMT_SXGA_60 = 0x23, /**<1280x1024 */
HDMI_DMT_SXGA_75 = 0x24
HDMI_DMT_SXGA_85 = 0x25
HDMI_DMT_SXGA_120 = 0x26, /** reduced blanking */
HDMI_DMT_1360x768_60 = 0x27, /**<1360x768 */
HDMI_DMT_1360x768_120 = 0x28, /**<120 Hz with reduced blanking */
HDMI_DMT_SXGAP_RB = 0x29, /**<1400x1050 reduced blanking */
HDMI_DMT_SXGAP_60 = 0x2A
HDMI_DMT_SXGAP_75 = 0x2B
HDMI_DMT_SXGAP_85 = 0x2C
HDMI_DMT_SXGAP_120 = 0x2D, /** reduced blanking */
HDMI_DMT_1440x900_RB = 0x2E, /**<1440x900 reduced blanking */
HDMI_DMT_1440x900_60 = 0x2F
HDMI_DMT_1440x900_75 = 0x30
HDMI_DMT_1440x900_85 = 0x31
HDMI_DMT_1440x900_120 = 0x32, /** reduced blanking */
HDMI_DMT_UXGA_60 = 0x33, /**<1600x1200 60Hz */
HDMI_DMT_UXGA_65 = 0x34
HDMI_DMT_UXGA_70 = 0x35
HDMI_DMT_UXGA_75 = 0x36
HDMI_DMT_UXGA_85 = 0x37
HDMI_DMT_UXGA_120 = 0x38, /** reduced blanking */
HDMI_DMT_SWXGAP_RB = 0x39, /**<1680x1050 reduced blanking */
HDMI_DMT_SWXGAP_60 = 0x3A, /**<1680x1050 60Hz */
HDMI_DMT_SWXGAP_75 = 0x3B
HDMI_DMT_SWXGAP_85 = 0x3C
HDMI_DMT_SWXGAP_120 = 0x3D, /** reduced blanking */
HDMI_DMT_1792x1344_60 = 0x3E, /**<1792x1344 60Hz */
HDMI_DMT_1792x1344_75 = 0x3F, /**<1792x1344 75Hz */
HDMI_DMT_1792x1344_120 = 0x40, /** reduced blanking */
HDMI_DMT_1856x1392_60 = 0x41, /**<1856x1392 60Hz */
HDMI_DMT_1856x1392_75 = 0x42, /**<1856x1392 75Hz */
HDMI_DMT_1856x1392_120 = 0x43, /** reduced blanking */
HDMI_DMT_WUXGA_RB = 0x44, /**<1920x1200 reduced blanking */
HDMI_DMT_WUXGA_60 = 0x45, /**<1920x1200 60Hz */
HDMI_DMT_WUXGA_75 = 0x46, /**<1920x1200 75Hz */
HDMI_DMT_WUXGA_85 = 0x47, /**<1920x1200 85Hz */
HDMI_DMT_WUXGA_120 = 0x48, /** reduced blanking */
HDMI_DMT_1920x1440_60 = 0x49, /**<1920x1440 60Hz */
HDMI_DMT_1920x1440_75 = 0x4A, /**<1920x1440 75Hz */
HDMI_DMT_1920x1440_120 = 0x4B, /** reduced blanking */
HDMI_DMT_2560x1600_RB = 0x4C, /**<2560x1600 reduced blanking */
HDMI_DMT_2560x1600_60 = 0x4D, /**<2560x1600 60 Hz */
HDMI_DMT_2560x1600_75 = 0x4E, /**<2560x1600 75 Hz */
HDMI_DMT_2560x1600_85 = 0x4E, /**<2560x1600 85 Hz */
HDMI_DMT_2560x1600_120 = 0x50, /** reduced blanking */
HDMI_DMT_1366x768_60 = 0x51, /**<1366x768 60Hz */
HDMI_DMT_1080p_60 = 0x52, /**<Same as 1080p60 in CEA above */
HDMI_DMT_1600x900_RB = 0x53, /**<1600x900 reduced blanking */
HDMI_DMT_2048x1152_RB = 0x54, /**<2048x1152 reduced blanking */
HDMI_DMT_720p_60 = 0x55, /**<Same as 720p60 in CEA above */
HDMI_DMT_1366x768_RB = 0x56, /**<1366x768 reduced blanking */

If the file config.txt is not present or the output format is not set explicitly, the default output format is chosen as follows:

1. If the preferred format in EDID is supported, this will be chosen.
2. If the preferred format is not supported, then all the formats supported will be ranked according to some heuristics. The format with the highest score will be chosen.

If the chosen format is a DMT format, the default driven mode will be DVI. The user will need to set driving mode to 2 explicitly if HDMI output is desired. In DVI mode there will be no sound!

This is how to override the default format in config.txt:
1. Set hdmi_group = 1 (for CEA formats) or hdmi_group = 2 (for DMT formats)
2. Set hdmi_mode = x (where x is the code of the format of the respective group; see the list of CEA/DMT formats for details.)
3. If the chosen format is DMT, set hdmi_drive = 2 to enable HDMI output. (CEA modes are output as HDMI by default).

If you are unsure what formats are supported, set the output format to VGA 60Hz and then follow the instructions below to parse the EDID to find out what formats are supported. All executables are found under /opt/vc/bin.

1. Run “tvservice –m CEA” to give a list of CEA supported modes.
2. Run “tvservice –m DMT” to give a list of DMT supported modes.
3. Run “tvservice -s” to give you the current state.

Alternatively you can do the following:
1. Run “tvservice –d <file>” to capture a monitor’s EDID.
2. Pass this file to edidparser. Run “edidparser <file>”.

At this point, edidparser outputs the list of formats supported in EDID including formats not supported in Raspberry Pi, and it will show you which formats are filtered out. At the end of the output it will show which format is chosen as default. Note that edidparser is the internal EDID parsing code of Raspberry Pi with a command line front end.

Users are encouraged to post the EDID of their monitors (and the output for the parser), if Raspberry Pi chooses a default resolution which is not expected (or strange). Please include make and model number when you post EDID online.

VideoCore is a low-power mobile multimedia processor architecture originally developed by Alphamosaic Ltd. and now owned by Broadcom. The main specification points for a fully configured system at 250 MHz are:

  • 25M rendered triangles/s.
  • 1G pixels/s with single bilinear texturing, simple shading, 4x multisampling.
  • Supports 16x coverage mask antialiasing for 2D rendering at full pixel rate.
  • 720p standard resolution with 4x multisampling.
  • Supports 16-bit HDR rendering.
  • Fully supports OpenGL-ES 1.1/2.0 and OpenVG 1.1.

The VideoCore IV 3D hardware is self-contained and highly automated, requiring little processing bandwidth or real-time intervention from software drivers.

On the 2nd anniversary (28 February 2014) of the Raspberry Pi, Broadcom and Raspberry Pi Foundation, announced the release of full documentation for the VideoCore IV's 3D subsystem and a release of the graphics stack under a 3-clause BSD license.

root@raspberrypi:~# vcgencmd commands 
commands="vcos, ap_output_control, ap_output_post_processing, vchi_test_init, vchi_test_exit,
pm_set_policy, pm_get_status, pm_show_stats, pm_start_logging, pm_stop_logging, version, commands, set_vll_dir, led_control, set_backlight, set_logging, get_lcd_info, set_bus_arbiter_mode,
cache_flush, otp_dump, codec_enabled, measure_clock, measure_volts, measure_temp, get_config,
hdmi_ntsc_freqs, render_bar, disk_notify, inuse_notify, sus_suspend, sus_status, sus_is_enabled,
sus_stop_test_thread, egl_platform_switch, mem_validate, mem_oom, mem_reloc_stats, file,
vctest_memmap, vctest_start, vctest_stop, vctest_set, vctest_get"

Happy try-out!  Hope you enjoy your Raspberry Pi experience!

CAUTION: Your circumstances, connections, interfaces, options and versions may differ and needs to be re-evaluated for your specific application.