An Open-Source HDMI Capture Card
hackaday.com
hackaday.com
I enjoy Phil's Lab on YouTube which seems a pretty good resource, but I still think it would be naïve of me to jump in and expect to be able to design something that works.
E.g. I couldn't find a USB-C SATA adaptor that used PD to power the disk. Even the USB3 ones will do a 2.5" disk, but all of them, even if USBC, require a separate power cable for hungrier disks. I thought that was silly, and ought to be relatively easy to make.
Is there a good book for taking (digital) electronics beyond basics (i.e./and that isn't through a lens of Arduino or ESP or whatever) as a hobby? Protocols & design/layout for higher speeds is I suppose where I'm most lacking.
My background: EE but professionally only CS. (Even at university ended up choosing more CS-y/information-theoretic-y courses than electronics tbh.) Hobby electronics (off & on I suppose) since as long ago as I can remember, but haven't designed a PCB since high school. Most recently (a year or so ago) breadboarded a USB serial Ethernet bridge for my Prusa Mini.
The colorlight 5a-75b together with Litex is a great way to get started for cheap.
If you want something even more basic, https://github.com/kingyoPiyo/Pico-10BASE-T is very simple.
Layout for most consumer standards is pretty lax, almost anything will probably work.
Would this even be possible? I assume some devices can do PD both ways (for charging and as a source). But if that’s even possible, I’d imagine it to be rare. I’d love to know the case from someone who knows more.
The problem is that not many USB-C data ports do PD, and even when they do, they may not necessarily provide the voltage required by such disk.
And more importantly, what do available chips support? How easy is it to get chips that support PD + data?
This isn't my area of expertise, so I was hoping someone would be able to say -- Yes, it's possible, I do this all the time. Or -- it's theoretically possible, but not widely supported, so no one does it.
Two of the USB-C ports of my Dell XPS 13 9380 provide 5A/3A over PD, and the third one provides 5A/1.5A. All of them can negotiate both sink and source PD contracts.
If your laptop can be charged via USB-C port and you can attach peripherals to the same port, it's almost certain that it can negotiate a source PD contract as well. That doesn't automatically mean you'll get more than 5V though, so such PD port may still be useless for powering a disk drive enclosure without additional voltage regulation.
Many PD controllers support this for 'sourcing' (5V/1.5A or 5V/3A) natively, since it's a common use case for laptops.
Your first designs may or may not pass a radiated emissions test, and it may or may not work reliably if you want it to fly through the Van Allen belts or in an industrial panel full of VFDs, and you might want to aim for last year's implementation rather than the bleeding edge. While it can be made complicated if you want to truly and thoroughly understand it, just following basic rules of thumb can go a long, long way.
At some point you're already applying all those rules of thumb, but how do you then actually measure what works and what doesn't so that you can improve beyond that?
It seems it is difficult to find resources teaching that, and also the equipment needed becomes very specialized and expensive fast.
But after 10 years in the field, I've sadly forgotten most of that and learned pragmatism instead.
(Benson Leung is probably having a bad dream right now.)
They go into problems of high speed circuit design in general, and the high end gear and insane debugging skills needed to do so!
See their Twitter, or Spotify (Oxide and Friends) - eg "tales from the bring up lab".
https://g13g.blog/2021/03/10/open-source-ambilight-leds-on-a...
I find that the card needs an entire USB _bus_ (not port) to itself to function without the stream freezing regularly - even on 1080p. This means I can't connect it via my thunderbolt dock (CalDigit Element Hub).
Does anyone know if this open implementation would have the same issue?
The dock is also connected to a 1440p@240 monitor and a 1080p@60 monitor, so the capture card is not the only device taking bandwith from the USB bus.
EDIT: Now that I remember, sometimes the cam link gets very hot and freezes, not only with my M1 but also with a Dell laptop running linux. Maybe your problem is related to running the capture card at high temperatures.
We also bought several cheaper generic ones and they work/don’t work just as often as the Elgato.
That being said, we switch around our setup a lot, and we juggle multi-can streams.
¯\_(ಠ_ಠ)_/¯
All of them glitched, compared to plugging it straight into the Mac (albeit via a dongle since it was always MacBook Pro models which lack the regular USB port and only have the Apple fantasy-world ports). This kind of soured me on Thunderbolt docks.
The other problematic device was ATEM Mini (which is like a Cam Link except it has 4 HDMI inputs instead of 1) so perhaps it is some kind of HDMI → Thunderbolt → USB fuckery?
But somehow having FOUR USB-C ports (which, yes, also support Thunderbolt, but are also fully-legit USB-C ports) on the Mac means they are now "Apple fantasy-world ports".
Apple can't win, it seems.
Plugging into a SonnetTech TB4 Echo5 dock ocassionaly makes the stream freeze. I actually wrote to them a support message and they were detailed in the response, but we didn’t manage to resolve it. If it’s of any help here’s their response. https://pastebin.com/qbmZH65n
Plugging into MacBook using the official “AV display adapter” (as a USB to USB-C adapter) works steady, both at 1080p 60fps and 4k30fps.
But shockingly - I plugged the AV display adapter with the cam link dongle into the back of my Pro Display XDR, and it’s also working fine at 1080p60fps. That’s surprising since that thing is a usb hub, but also afaik it’s a USB 2.0 hub! I imagine it’s due to the XDR display being 6k and needing lots of TB bandwidth, so I’m still surprised it works steady via the USB-C Usb 2.0 hub in the back of my Pro Display XDR.
If you have a second Thunderbolt dock, you should be able to daisy-chain both docks, totally isolating your card from all your other USB devices while still maintaining that one-single-cable neatness.
Is it compatible with generic v4l drivers?
There was also another huge problem with those dongles, but it was not MacroSilicon's fault. At some point most of the sellers started offering a more expensive "USB 3.0" variant reportedly capable of capturing 1080p at 60fps... which of course was a scam, since the MS2109 is 2.0 only (literally the only difference in these cards was the connector being blue, they didn't even have 3.0 pins). Many YouTubers, not knowing about this, kept recommending people to get the 3.0 version, which resulted in these cards getting a negative reputation for being "okay but unreliable".
This project is basically what those fake cards should have been.
[1] https://www.naut.ca/blog/2020/07/09/cheap-hdmi-capture-card-...
> Integrated pre-programmed HDCP keys for Loop Out
So my answer would be. Yes
Why the HDCP people tolerate such a chip/don't tightly control who can buy it is what I'm asking... I'm guessing maybe this is an "off label" use of a chip that was meant for more mundane HDMI decoding uses. Which kinda illustrates why HDCP is silly and an annoyance for consumers that doesn't really stop the "real" pirates making content rips people are downloading.
Though I didn't intend this as a loaded question, I might totally misunderstand what's going on technically speaking and would love for someone who knows about this to explain.
I’m sure Chinese manufacturers care a lot about what the HDCP people want.