> Also, where’s the fun in spending 150 CHF more when you can buy the cheaper version, and then spend multiples of the price difference (and a lot of time) to get a similar feature set?
Naively coming out of school, this slow realization that I would never be able to save any money by making cool gadgets was a bummer.
It doesn't get better when your middle aged and realize that if it's not being built by the thousands as a consumer product, then it's going to cost ten times more to do it yourself all things considered.
Except weirdly enough, basic home maintenance. I don't know what that says.
Basic jobs get expensive invoices from pros because they'd rather be out there working a more substantial job. They don't want to drive out to your house, maybe need to make a trip to the store, and then be out of a job for the rest of the day since they couldn't schedule in anything else afterwards. I don't bother calling a pro for something unless I know it's something that will either take the whole day or isn't something I can finish before it must be done by. I can take my time redoing a spare bathroom or painting the exterior but a kitchen renovation would need to be finished quickly.
You could apply your logic to home building though. Builders get volume discounts on materials and labor. When someone is working the same repetitive job for months on dozens of homes, they can afford to charge their base hourly rate because they know their schedule will be full. If I built the exact same home the builder cranked out, it's going to cost me more despite using the same materials and people. When people build their own homes, they are usually going for something custom so a builder-grade starter home is not the goal.
> I would never be able to save any money by making cool gadgets was a bummer.
Wait until you get older and realize that if you want high quality, you have to drop down one-two levels on whatever you want to buy to avoid pointless shit like "Alexa" or "Google Home" integration.
Easier to read Bluetooth packages with BtleJuice (https://github.com/DigitalSecurity/btlejuice), then you only need two ordinary Bluetooth-USB dongles to see and change the traffic.
I often use it to look at Bluetooth traffic from iPhone apps.
CEC and DDC-CI, are these two things that should be absolutely nailed given in terms of low level commands how simple they really are and how long they've been around, yet are thoroughly broken through and through in so many subtle ways, from broken payloads to timing issues.
And even when the low level protocol is correctly implemented you can be sure that the high level behaviour of the devices is not doing what you'd want it to, with no workaround possible.
e.g one device turns -all- devices on/off no questions asked, another would not allow separate configuration of being controlled vs controlling, and/or power on vs power off, a third one would disable CEC the moment you select headset audio output because it goes in the way of their MegaMagicSync+ feature (which is just CEC with a bunch of useless proprietary stuff to talk to other devices of the same brand, coz gotta "add value" and "differentiate")...
I agree with everything you've said here (especially "MegaMagicSync+"). But why is it such a mess? Was it added to the spec late? Or maybe because manufacturers implement it as an afterthought and don't bother testing it. They seem to get the regular part of HDMI mostly right. Although now that I say that I remember having problems with HDMI switches in the past...
It's probably too late for HDMI-CEC, there are too many crappy pieces of hardware out there. I'm just wondering what stops this from happening next time. It's a great system when it works and so much better than trying to reverse engineer other protocols. Just a shame that it's so bad it doesn't even get a mention in a post like this where it should have been the perfect solution.
HDMI-CEC might have replaced the remote control protocol, but it would have taken the (single) HDMI input, and the author wanted that for the TV. The TOSLINK input was unused.
I did have a quick look before posting and I thought I saw that bar had a hdmi input (for the pi) and then an output with ARC for the TV. I thought that would work but I admit it's been a while since I tinkered with CEC. But as others have said, it is flakey. I was subscribed to the libcec issue tracker for a while and it was relentless with per-device issues. I had a mostly good experience with a Sony TV but it seems to be pot luck.
Relatedly, does a £300 soundbar in 2020 still only come with one HDMI input!?
Yeah I use some RPi 3’s with MusicBox around the house and they work flawlessly. They’re all linked to a shared folder on my NAS for MP3s and also do Spotify/AirPlay/etc.
Just because it has alexa/google integration doesn't mean you HAVE to use it. You have full control over what it talks to and in theory you can restrict which domains it can talk to if you wanted.
Android apps can quite easily be decompiled to reverse engineer protocols like that. It would probably have been quicker than sniffing the Bluetooth packets and interpreting them.
And yes, it is one of the unvoiced assumptions: as long as I heard two devices speaking, I can’t be breaking any EULAs or what not. Decompiling something would be another kettle of fish entirely.
Not to mention that often times apps (even Java/Android apps) are obfuscated, which might make the reversing much harder (than sniffing traffic).
Naively coming out of school, this slow realization that I would never be able to save any money by making cool gadgets was a bummer.