Close
0%
0%

HDMI capture project

Capture uncompressed HDMI using ECP5 FPGA and USB 3.0 FIFO

Public Chat
Similar projects worth following
Project is dead

------------------------

Extremely early stage. Lots of questions need to be answered.

Goal of project:
- Capture a single uncompressed HDMI stream to a PC over USB3.0
- If possible, support up to 1080p60
- Final product should be a relatively small, portable, cheap and USB-powered.
- I see this as a personal research project and want to learn about HDMI and how video works

I need to read up a lot on HDMI, USB Video Class and ECP5 SERDES. I think I'll be writing the code in nMigen, because why not.

Pixel formats. Haven't really poked at anything other than RGB565, RGB888 and RGBA8888 (premultiplied and not).. But the various YUV variants give me a headache.  Reading list:

USB Video Class 1.1 (since that's what FT602 supports):

FT602 resources:

Existing gateware for inspiration:

Thoughts related to USB:

  • Can it be truly driver-less and work on win/mac/linux?
    • Or will we always need the FT602 driver?
  • Can we do lossless compression?
  • Which color format to choose? YVY2?
  • FT602 has an I2C master @ 800KHz, perfect for debugging. No GPIOs though, which makes reset harder.

Things related to the devboard rev1:

  • Do all HDMI pins need to be connected to the same bank?
  • Do we want/need ESD protection on the HDMI pins like HDMI2USB has?
  • Are there any clock inputs that need to be routed to a clock pin?
  • What base clock / oscillator to use?
    • Need to generate 100MHz to the FT602
    • Need to make the SERDES stuff happy. No idea how that works
  • Need to connect all the SERDES stuff correctly. Look at other boards that have done this already. TinyFPGA?
  • Check voltage needs related to SERDES.
  • Power-on-reset - since there are no GPIOs maybe we need to think about this?
  • USB-C female, USB-B 3.0 female or USB-B micro 3.0 wide?

PCB routing questions:

  • Do the HDMI diff pairs have the same length? The two traces per pair should obviously have same length.
  • Anything SEDRES specific?

ECP5-related:

USB-C 

PI5USB30213A

View all 2 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates