There's various articles online detailing how to use an Arduino to output a VGA signal, but can I use it to output a HDMI signal or is it simply not fast enough? It would only be used to display some basic text, nothing in the way of fancy graphics.
No, not directly. Arduinos just don't have the horsepower to do such a task. For this project, I would recommend using a Raspberry Pi. Take a look at this awesome blog post by Joonas Pihlajamaa on using a Raspberry Pi as a Arduino HDMI shield.
Please see Chrontel's products at www.chrontel.com:
- CH7035 - TTL to HDMI output.
- CH7026 - TTL to CVBS.
- CH7033 - TTL to VGA and HDMI.
- CH7034 - TTL to VGA.
- CH7322 - HDMI CEC.
Their TTL input supports RGB 8-8-8. 5-6-5, YCrCb 4:2:2, ITU656, etc. I think the Arduino can use their MCU interface to write graphics data to their frame buffer directly. On-chip scaler can scale frame buffer content to all HDMI output resolutions like 1080P.
For low resolution displays, it's possible to directly generate HDMI signals using low-end FPGAs. In order to generate an HDMI signal, you need to be able to toggle 3 GPIO pins at a rate of 250MHz, which is within the capabilities of, say, the Spartan 6 or Cyclone IV range of FPGAs. This would be enough to display a 640x480 image with 24-bit colour depth. Your Arduino could then interface with the FPGA to provide instructions on what to display, and the FPGA could update its display as required. See this project for the basics of how this would work.