Some background: My wife and I are in the market for a car, possibly a Subaru Outback. We'd be happy buying used, especially if we could obtain one of the elusive manual transmissions which are very hard to find now in the US. But the used market is still weird, and buying new may be a better value. We've test-driven the 2024 Outback and mostly like it, but the "infotainment" system is a potential show-stopper for us. Subaru have moved to an 11" touchscreen with fairly limited tactile controls. In particular, most of the climate controls are touchscreen only.
Apart from the obvious stupidity of driver-operated touchscreen controls, we both feel like the infotainment could be an expensive time bomb. We try to drive our cars into the ground, at least 300,000 km and hopefully longer. What happens 15-20 years down the road when something in the infotainment gives out? We can live without a radio, but not without heat/AC. This touchscreen madness is infecting multiple car brands and increasingly hard to avoid.
Thus my CANbus question. I have plenty of experience in embedded HW/SW development but I haven't yet played with CAN. How feasible is it to set up a sniffer, eavesdrop on the bus while changing controls like the vent configuration, and pick out the corresponding CAN ID and message? Then, in the doomsday scenario of an uneconomical infotainment repair, just replace the stupid thing with a 3D-printed panel and some knobs connected to my own STM32 board which sends the appropriate CAN messages?
I'm hoping somebody with actual experience playing with this stuff can point out the flaws in my plan, possible roadblocks, etc. I don't see aftermarket controls for modern cars, so either I'm not looking hard enough or it's more difficult to reverse engineer and spoof them than I thought.
Mark