3 ms·
I don't think you even need an FPGA. I believe the article is correct that "CEC merits its own special pin", so you wouldn't have to do anything fancy with the
by scottlamb 2y ago
I don't think you even need an FPGA. I believe the article is correct that "CEC merits its own special pin", so you wouldn't have to do anything fancy with the high-data-rate lines. But it still means building something (I looked a while ago and didn't find one being sold) to achieve less than what you'd get out of the box if the protocol were properly designed for this use case. So in my personal project idea list, it's firmly below a bunch of other stuff I'm also probably never going to find the time for.
- tadfisher 2y agoBack in the day, I installed 3 CEC breakout boxes in-line with a TV, a receiver, and a PS3, plugging them all into a Raspberry Pi (first-gen). The Pi easily handled dispatching between them, and I used an existing Rust crate to build a simple REST service to control the devices over the network (from my phone). A bonus was that my TV didn't support CEC; it had one of those mini-audio-jack-looking RS232 connectors, and there happened to also be a Rust crate which spoke the protocol.
- scottlamb 2y agoI chuckled because I also wrote my own home theater controller controller (in Go) "back in the day"—which in my case means before Rust reached 1.0 much less had nice existing crates for this kind of stuff. But quibbling about that phrase aside, I'm glad to hear about your positive experience doing this. 3 CEC breakout boxes = 1 for the PS3 + 1 for the receiver + 1 for what, given that the TV didn't support CEC? Did the receiver and PS3 have other automation options? In theory I'd like the idea of "just implement CEC and you're done". If that were really viable, I would have released my home theater controller in a form useful to people who don't happen to have the exact same media components I do. But my experience is the proprietary APIs are generally better. Some exceptions. My (ancient by now) Bluray player's REST interface has something like 200 ms latency. As a hint to why: the URLs contain `.cgi`. It's awful.