Fix HDMI-CEC weirdness with a Raspberry Pi and a $7 cable
112 comments
·December 15, 2025recursive
jimmaswell
That little headphone jack is seriously driving bookshelf speakers to a reasonable volume? If it works it works but that doesn't sound right, unless these are actually self-powered speakers with their own amplifiers inside. I'd really like to know the details because this sounds crazy.
Also, I collect a lot of old receivers and speakers. It's really not that complicated and the basics have been the same since the 70s and 80s. Any flatscreen TV made in the past 20 years typically has a TOSLINK output which will be compatible with receivers stretching back to the 80s - I have my LG C1 connected to some 90s Marantz receiver this way. Any old receiver you find on Facebook Marketplace for $20 will typically suffice here as long as you check for the TOSLINK port first, but you do need a separate actual amplifier somewhere along the line to drive a speaker larger than a pair of headphones unless the speaker has its own amp built-in.
I find all this stuff fun so my own setup has that chained to a series of other receivers acting as subwoofer amplifiers as well as using the pre-amp output to drive a Mesa Baron tube amplifier/Acoustat electrostats I was gifted, but most people don't need anything so complex.
recursive
The jack is not driving the bookshelf speakers. They're active. They have their own internal amps. It's simple if you use a receiver. If someone can point me to a receiver that's more like 4 inches than 18 inches, then I'd consider that a solution. Receivers are big boxes as far as I've seen. I don't have space. Or maybe I don't want to make space.
tmnvix
Fosi ZD3 (https://fosiaudio.com/products/fosi-audio-zd3-fully-balanced...). Supports HDMI with CEC. I turn on my Apple TV, it turns on the TV, which in turn turns on the Fosi DAC - all connected with HDMI. The DAC then turns on a ZA3 amp via 12v trigger cable. Volume control etc is via the Apple remote.
All very cheap really. Total cost I think was about $550 (refurbished TV, second hand Apple TV, new Fosi DAC and amp). All this and I get to keep the TV in 'dumb' mode. Never even use the TV remote.
mikepurvis
Some of the bigness is just tradition and buyer expectation (big = expensive). But also, modern AVRs are like 1000W devices amplifying 7, 9, even 11 channels of passives. That’s a lot of componentry and corresponding heat to shed— if you open one of those up, it’s not just empty space in there like an NES cartridge or something.
Lammy
> If someone can point me to a receiver that's more like 4 inches than 18 inches
S.M.S.L. make some good ones: https://www.smsl-audio.com/portal/product/index
I use their AD-18 and really love it: https://www.smsl-audio.com/portal/product/detail/id/566.html
tonyarkles
Have a look at Fosi Audio. I'm currently using a BT30D to drive the passive speakers from an old Samsung integrated amplifier+receiver+2014-era "Smart TV" type system that died. It only has 1 analog input and Bluetooth, but it looks like they have other products in a similar form factor that can take multiple inputs (e.g. the P4 Mini). I was skeptical but needed something cheap to drive those speakers and am quite impressed.
timdorr
https://www.sonos.com/en-us/shop/amp
Sonos makes this specifically. Has an RCA and HDMI input, along with being a Sonos device for streaming audio.
The only downside is the price.
jimmaswell
It sounds like your speakers work for you then. On a modern TV without a headphone jack you would probably be served perfectly well by bluetooth speakers that sync to the TV. Though I'm surprised if a 3.5mm output is really that uncommon, because I just bought an LG C1 a few years ago and it has one. You can also find a small bluetooth receiver that would output to a headphone jack at WalMart.
ryandrake
I was kind of in OP's shoes a few months ago. My 2000-2010 era stereo receiver crapped out and I was looking to see if I could simplify my system a bit. Unlike OP, I didn't need anything that could extract audio from the TV. My requirements were:
1. A decoder with at least 5.1 output since that's how many speakers I have
2. At least 3 HDMI inputs + 1 HDMI output to my TV
3. An amplifier with a volume control
That's it! I don't need an FM tuner. I don't need multiple zones. I don't need wild listening modes and DSP effects. I don't need an on-TV setup display. I don't need fiber optic digital audio inputs. I don't need fucking rows and rows of 20 RCA jack inputs, composite video, component video, S-Video. You'd think I could find a small cheap box the size of an AppleTV that I could just hide somewhere that could do this, but I couldn't find anything sufficient. So I got another $20 gigantic, ugly, old 18-inch receiver again from Craigslist and just leave all those features and inputs unused.
aidenn0
Some googling found this, but it might be under-powered if you have 8 ohm speakers:
https://www.snapav.com/shop/en/snapav/episode-mini-51-avr-ea...
the only way it could have a smaller back-panel and all of your requirements would be to eliminate the ethernet connector.
jimmaswell
I never understood the "ugly" perception. At worst some might look boring to me, but at best some of them are absolutely beautiful. For example, my favorite in my collection appearance-wise has a 70s-style wooden finish on all but the front plate with a polished silver look on the front plate: https://imgur.com/a/DAUeJJW
null
ssl-3
The audio part can still be made to be simple.
Others have mentioned toslink and I'd like to expand upon that.
When you get a new TV and no longer have a headphone jack to plug your powered speakers into, then you can just add a DAC that converts the toslink digital audio that your new TV outputs into the bog-standard line-level analog audio that your speakers understand.
DACs like this are available at all price points.
At the low end of the scale, some are less than $15 -- and they're tiny. If you can't hide it somehow then I might insist that you're not really trying.
And that's it. That's the entire missing link for where we are in 2025, wherein: A new TV will still have a toslink output, and your powered speakers still have an analog input.
(Tomorrow? Who knows, man. We aren't there yet.)
p1necone
A receiver has always been a pretty standard part of even really simple AV setups - you can get half decent ones pretty cheap, and then you just run either the HDMI ARC port or the optical/coax digital audio out from your tv to the receiver so that everything you plug into your tv has it's audio go out to the speakers.
recursive
I know I could do this. But I don't really have space for a box. And I'd rather not have it.
amluto
> How am I supposed to get the audio to the speakers without a bulky expensive receiver box?
You can get a small ARC/eARC audio extractor with RCA or S/PDIF output and use your favorite amplifier or DAC with it.
adamweld
Correct answer, HDMI audio extractor.
Personally I use an eARC extractor to run S/PDIF to an audio interface (MOTU Ultralite Mk5) and an RPi running camilladsp handles room correction and active crossovers. Overkill at the moment for just a few studio monitors and a sub, but it'll be a great solution when I get around to building some custom speakers.
ewoodrich
Yep, I have a bunch of those audio extractors, they're awesome. In my home office setup I even have an HDMI output that's mirrored to several screens and extract audio at various points along the same path (two using the dedicated mini extractor boxes, one just using the headphone out on a monitor).
monster_truck
It's still very simple and you have never needed anything expensive to do so. Stop with the learned helplessness and "being afraid to try a new TV"
recursive
I'm not going to buy a TV just to "try" to figure out how to get audio out of it. I mean, I'm sure there must be a way to do this. I've seen a few options in this thread. If I were to buy a TV, I would want to avoid making it more difficult than I have to. To that end, I'd want to figure out specifically how to get audio to the speakers. In my case, they're active bookshelf speakers without HDMI input.
If the only possible way of doing this is with a bulky receiver, I'd feel justified in complaining about modern AV stuff. Not because of the cost, but because of the size.
Anyway, thanks for your input.
moduspol
Nah man I'm with you. I've gone chest-deep into this pool and still get issues 5-10% of the time with pretty simple use cases. And I've got a top-of-the-line TV and a pretty good receiver. It's maddening that such conceptually simple use cases don't "just work" even when you DO sink hundreds or thousands of dollars on the stuff you're supposed to.
null
kevin_thibedeau
It seems you have amplified speakers. The low friction solution is to use a Toslink to RCA/TRS adapter. That will be a bulletproof digital output readily available on many TVs.
kristianp
TVs seem to expect you to use HDMI-ARC to return sound to the receiver or soundbar. I wonder if there's any HDMI-ARC to audio dongles out there?
davidczech
A side note: I am very sad that HDMI-CEC apparently can only support like 3 "console-like" devices. I have an Apple TV, Nintendo Switch 2, Sound Bar (eARC) and PS5 hooked up, but only 3 can really interact with CEC.
It took me a long time to diagnose why it seemingly wouldn't work with my Nintendo Switch 2.
I ended up disabling it on my PS5 because I never use the darn thing, but it kind of stinks since most TV's have 4 HDMI inputs.
hackernudes
Yes, the three playback limit is so annoying. Just... why?! CEC is so stupid. Way overengineered yet completely undercooked. I'm imagining some day soon TVs/receivers will start proxying the CEC bus instead of sharing it globally.
dwood_dev
This is my exact setup. Maybe I don't have many issues because I literally only have the NS2/PS5Pro turn on the TV/change input. I still use the AppleTV remote to adjust volume no matter the input.
codepoet80
Yup, my AppleTV is the only device that gets CEC right. Even my LG TV and LG soundbar get confused. And don’t get me started on the PS4 Pro’s garbage implementation. I’m sad that Logitech killed Harmony because CEC was supposed to make universal remotes obsolete — they’re still the only way my full home theater can function without juggling a dozen remotes.
Spoom
I dread the day that Logitech kills the servers for Harmony. If they don't release the IR code database, they're going to have a lot of people (myself included) pretty annoyed.
(To be clear, they still work today if you can get a second hand remote / hub.)
ssl-3
I also love the Harmony remote in my living room. It's imperfect, but it's plenty good enough. It flows well and works predictably. It's easy to reconfigure.
And no matter what bizarro-world co-dependent cacophony of AV gear I manage to pile up together, any person can pick up the remote and watch TV or play a game or whatever.
I will be particularly unhappy when Logitech finally pulls the plug on Harmony servers.
At that point, I'll definitely need something different.
But IR codes are only part of the puzzle. And that is perhaps the easiest part to solve: We've already got lots of databases with IR-stuff available. There's databases focused on RC5, and the sleepy LIRC project, and some other things (all of which tend to be very Old Web in appearance).
License-permitting, it's simple enough to use this work as a foundation onto which newer codes can be placed.
That just leaves making the Harmony hardware interface work (hah, hahah -- and it's a dead-end anyway), or developing a new open-source remote to rule them all (which actually might not be too terrible of a task).
That all covers the first 90% of the problem.
The remaining 90% of the problem is just creating software that has a usable UI and actually works.
tacoman
As someone who works in this industry and has access to commercial HDMI debugging equipment, I can’t agree more.
I will use Harmony for my home setup until it no longer functions.
The horrors I have seen related to CEC and ARC are something else.
lsaferite
Having just swapped to a new TV on my Harmony setup I was concerned if it was still going to work. Lucky me, it did.
I really REALLY want someone to manufacture the thin harmony RF remote with a simple receiver puck with an open firmware. That's all we'd need because the HA crowd would be all over it and have it doing anything you want.
zimpenfish
Amusingly, my AppleTV is currently the one thing that doesn't even though it used to - for some reason, with no changes, it just stopped turning on the TV. Switch 2 can happily turn on the TV though. Most peculiar.
(I've tried updating the AppleTV, replugging the HDMI cable, unplugging the HDMI cable for <period of time>, etc. Nothing has worked. TV does not have any network which means it can't have had any nefarious updates.)
spacecrafter3d
This has happened to me several times. I believe what fixes it is power cycling my AV receiver, in case it helps you.
jnaina
this. power cycling my Marantz fixed it. Otherwise Apple TV is rock solid.
SchemaLoad
I've had pretty good luck with the Steam Deck for CEC, at least with the Apple USB-C hub.
crtasm
Anyone know how to make a LG TV wake an AppleTV from sleep?
Once it's awake buttons presses on the LG remote are passed through to it but I have to keep the Apple remote around for that first step.
codepoet80
I had to go the other way. The Apple TV controls the LG. It wakes it, controls the volume and turns it off when it sleeps.
robflynn
Mine will turn my LG on, control the volume, do all of that, it just won't ever turn it off. The AppleTV will turn itself off, but the TV itself will revert back to its screen saver display complaining about No Input.
sudobash1
I am using a raspberry pi pico with a modified pico-cec program to control my Jellyfin-client media PC. CEC is actually really fun to hack on, and once you get a custom setup working, it is (at least in my experience) rock solid.
Jellyfin even has a TV mode that you can enable in a normal desktop browser. So my media PC runs the browser in kiosk mode, and it has CEC buttons mapped to keyboard presses. Guests have used it, and I don't think anyone could tell that it wasn't a "smart" TV.
bsimpson
I saw the Steam Machine bragging about CEC and being able to turn the TV on when it does, which made me wonder why my setup doesn't do that.
Turns out that there's a special pin on your APU that has to be wired up, and AMD didn't bother for the Z1 Extreme chips. I wish "wake on signal" was a universal option.
extraduder_ire
For some reason, GPU makers don't usually expose the CEC interface for the HDMI ports on their cards. Even the raspberry pi's ability to support it wasn't standard/default for years.
The common workaround if you had a kodi PC or something was to buy one of these things: https://www.pulse-eight.com/p/104/usb-hdmi-cec-adapter and run a HDMI cable through it. Because CEC is open drain like i2c is, connecting to it anywhere in your network of devices should work. (the HDMI spec mandated that the CEC pin needs to be connected, even if you aren't using it, from the first version) Just connect it to a spare HDMI port anywhere and you're off to the races.
sedatk
Huh, is that why my Steam Deck won't wake up my TV?
jonah-archive
A long time ago I used one of these HDMI-CEC-to-USB/serial bridges: https://web.archive.org/web/20110219131237/http://rainshadow...
(I'd gotten a large LG monitor instead of a flatscreen tv, and it didn't talk HDMI-CEC but it had a serial-over-TRRS control interface, so I listened for messages on the bus and my media PC translated and relayed them to the monitor.)
baq
Assuming you’re ok with connecting your receiver to the network, you should be able to wake the receiver if you detect the tv is on without any cables at all - if your tv is also on the network (I’ve got a home assistant automation doing exactly that) or you can use a $10 smart plug with power metering.
That said props for actually using HDMI-CEC! And it’s cheaper than most smart plugs (and probably safer, too)
rgovostes
This is the lord’s work. It’s ridiculous that in 2025 my $500 gaming PC GPU cannot tell the receiver to change inputs. Even my Apple TV, which is considered a model citizen here, steals the receiver’s input every few hours if I have another device active.
avidiax
Yeah, the Apple TV isn't better so much as it is very aggressive. I usually have to long press the power button on the Apple TV remote to get it to power off and let go of my receiver.
Other devices like an nVidia Shield or the XBOX require that you press power/home a couple of times to take control of the receiver and switch inputs.
nullhole
I used a similar setup to translate CEC user commands (volume/fwd/reverse/etc), that travelled from my TV remote to the TV to the CEC bus to a pi that was plugged into the TV via HDMI. The pi was running jukebox software (moode audio). Similar to the article, the pi had a shell script that reads all the loglines coming from cec-client and acted on them when appropriate, in my case translating a subset of the CEC user commands to moode commands.
Worked pretty well, was nice to CEC-ify a pi program and eliminate the need for special-purpose hw/sw to interact with the audio player.
The CEC spec has all of the user control codes on the 2nd last page[1], in table 27.
[1] https://storage.googleapis.com/google-code-archive-downloads...
sho_hn
I made myself a little HDMI dongle (about half the size of a classic Fire Stick) with a WiFi modem that I use to remote control my TV from Home Assistant. My remote is the HA app.
Why? Because Google Home's TV remote stuff can do a lot, but not turn on the TV. CEC can.
pottertheotter
“every console behaves like it missed the last week of CEC school. They wake the TV, switch the input, then leave the Denon asleep so I’m back to toggling audio outputs manually.”
My Roku does this! It will turn on the TV but not the soundbar, which is so frustrating. Guess it’s somewhat normal.
davidmurdoch
My shield turns my receiver on, sets it to the right input (then the wrong input, then back to the right input), then... disables the decoder so there is no sound. Then sometimes enables the decoder about 20 seconds later.
kayson
Would love to know more about the magic Apple bytes and why the Denon is behaving differently with consoles.
retsyx
In a similar vein, I created a project, Amity, that uses HDMI-CEC to control the whole home theater with one remote. Using a simple streamer remote you can select an activity (watch Apple TV, play on the PlayStation) navigate interfaces, control the system's volume, and power it off. One of several fairly common streamer or TV remotes can be used.
Amity, too, is based on a Raspberry Pi but also uses a very simple custom PCB to hook into the HDMI-CEC bus between the TV and the receiver. One of the most common problems encountered with HDMI-CEC is that different components will often compete to be displayed by the TV (for example, turning on your Apple TV, turns on the TV, which turns on the PlayStation, which requests to be displayed, which switches the TV to displaying the PlayStation. So you end up viewing the PlayStation when you wanted to stream Netflix on your Apple TV). I found that the only way to fix this problem is to sit between the receiver and the TV to break the cycle. Hence, the PCB.
Amity is available here:
Modern AV stuff is insane. I have no interest in taking it up as a hobby. I have an xbox, a TV, and a pair of bookshelf speakers. How am I supposed to get the audio to the speakers without a bulky expensive receiver box? Luckily, I have one of the last remaining TVs with a headphone jack. I don't use a remote for any of it.
Side note: Sometimes the TV doesn't come on when you press its power button. After a tremendous amount of experimentation, I determined this was because the "brain" was on, but the backlight was not. Power cycling it blind usually fixes it. That's harder than it sounds though because you have to navigate the menu blind using short and long button presses with the one button. But I'm scared to try a new TV, because then I'm going to have to figure out how to get audio out of the TV.
It seems like AV stuff used to be so simple. Now the simplest scenarios seem to require more and more knowledge about arcane connection standard interactions and network topology. Ugh.