Home > News & Updates > Electronics News Updates > ARDUINO HDMI SHIELD: BRIDGING THE GAP BETWEEN SMALL MCUS AND FULL HD MONITORS

ARDUINO HDMI SHIELD: BRIDGING THE GAP BETWEEN SMALL MCUS AND FULL HD MONITORS

Summary of ARDUINO HDMI SHIELD: BRIDGING THE GAP BETWEEN SMALL MCUS AND FULL HD MONITORS


This article details an Arduino shield enabling Full HD (1080p) HDMI output from microcontrollers. It overcomes the challenge of generating high-speed pixel clocks by utilizing a specialized graphics engine and encoder. The project allows simple SPI commands to define windows and colors, supports image rendering via microSD, and includes features like hardware-accelerated drawing and picture-in-picture, effectively bridging the gap between small MCUs and high-resolution displays.

Parts used in the Arduino HDMI Shield:

  • Arduino compatible development board
  • RA8876 TFT controller
  • CH7035B HDMI encoder
  • microSD card
  • SPI interface
  • I2C interface
  • Serial Flash
  • SDRAM

With an Application Specific Integrated Circuit (ASIC), creating HDMI video signals for full HD monitors or HDTVs using a typical modern MCU is difficult but it is not an impossible task. For a resolution as high as 1080p, Full HD Monitors or High Definition Televisions require a pixel clock of 148MHz. To think that such pixel clock can be possible from a simple microcontroller seems unimaginable, but not so for Techtoys who has created an Arduino shield that creates an HDMI output from an SPI control input.

The HDMI shield, an Arduino compatible development board, and two Integrated Circuits give us an insight into how it creates graphics at this level; the RA8876 TFT controller, a full graphics engine and the HDMI encoder CH7035B.  The TFT controller RA8876 produces digital RGB output in 8:8:8 format for the HDMI encoder CH7035B converts the RGB video to differential signals (TMDS), with its internal frame buffer that boosts the 8:8:8 RGB to full HD 1080P (1920 * 1080) at 60Hz max. This is particularly interesting because the RA8876 supports a variety of AP interfaces like 8080 16-bit, 4-wire SPI and I2C that should be able to talk to most microcontrollers. The RA8876 also makes it possible to avoid direct pixel rendering, writing simple commands (through the SPI) to define the window size and foreground color instead of writing individual pixels for the 1280 * 720 screen in 16 bit-per-pixel.

To display full-color pictures, the HDMI Shield uses a free conversion tool that exports binary files from jpeg/png/BMP images to a microSD card and later to the main window by 2D BitBlt in a flicker-free operation. The HDMI shield can also do more interesting things like font rendering from embedded characters, picture-in-picture, DMA transfer from Serial Flash to SDRAM and hardware-accelerated shape-draws.

Read more: ARDUINO HDMI SHIELD: BRIDGING THE GAP BETWEEN SMALL MCUS AND FULL HD MONITORS

Quick Solutions to Questions related to Arduino HDMI Shield:

  • How does the shield generate 1080p video signals?
    The RA8876 TFT controller produces digital RGB output that the CH7035B HDMI encoder converts to TMDS differential signals with an internal frame buffer.
  • Can this shield connect to most microcontrollers?
    Yes, because the RA8876 supports various AP interfaces including 8080 16-bit, 4-wire SPI, and I2C.
  • What is the maximum resolution supported by the CH7035B?
    The encoder boosts the signal to full HD 1080P at a maximum refresh rate of 60Hz.
  • How are images displayed on the screen?
    A free conversion tool exports binary files from jpeg/png/BMP images to a microSD card for display via 2D BitBlt.
  • Does the system require writing individual pixels for rendering?
    No, users can write simple commands through SPI to define window size and foreground color instead of writing individual pixels.
  • What advanced features does the HDMI shield support?
    It supports font rendering, picture-in-picture, DMA transfer from Serial Flash to SDRAM, and hardware-accelerated shape-draws.
  • Is it possible to avoid direct pixel rendering?
    Yes, the RA8876 allows defining window sizes and colors via simple commands rather than direct pixel manipulation.

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:
LinkedinTwitter
Scroll to Top