I was able to build a functional LIN man-in-the-middle.
Arduino source code:
LIN man-in-the-middle for using a Model 3 steering wheel with turn signal stalk on a Model S 2021+ - dance-parrot/m3-yoke-lin
github.com
Architecture:
View attachment 949614
Connecting to the front wires on the steering wheel with a LIN transceiver and receiving some data (without parsing LIN packets):
View attachment 949616
Connecting the Model S steering wheel on the workbench, and querying the left side over LIN (ID: 0x4C) - fun fact, the entire panels on the steering wheel where the scroll wheels are located (on the left and right side of the airbag) are 2 large touch pads, which send the touch information over LIN. Tesla could implement additional touch gestures in the future, or potentially improve false detections.
View attachment 949617
While the steering wheels were out, side-by-side comparison of the Thrustmaster T300, Model 3, Model S steering wheels (next project is to put the Model S steering wheel on the simulator rig, and trigger the airbag when I crash the car in Assetto Corsa):
View attachment 949618
Prototyping the voltage divider to measure the stalk resistances (ended up doing pull-down to the ground despite the diagram showing pull-up to Vcc). I broke some of the smaller test points after soldering to them and doing some tests. Your resistance values will be different, update the code accordingly.
View attachment 949619
Final test package (without Arduino box or insulation):
View attachment 949622
Testing in the car:
View attachment 949624
Installed
View attachment 949626
View attachment 949633