Enkele dagen geleden werd ik onprettig verrast toen ik terugkwam uit de supermarkt. Er was een korte hevige stortbui geweest en de zetels en het interieur van mijn auto stonden zeiknat, omdat het dak was blijven open staan. Blijkbaar is "auto rain closing" een feature die Audi, in tegenstelling tot andere merken, niet aanbiedt... De auto (A4 B8 model 2013) is voorzien van een regensensor, dus dacht ik om die functie gewoon eventjes zelf aan te zetten. Maar dat blijkt toch niet mogelijk. Reden: de wagen heeft twee aparte BCM's die elk via LIN hun eigen slaves aansturen. De regensensor (G397) hangt via LIN aan J519 (de BCM aan de stuurkolom). De sluitfunctie van het open dak hangt via een andere LIN bus aan J393 (de andere BCM). Overigens valt het open dak, net als de ramen, wel te sluiten door lang op de sluitknop van de afstandsbediening te drukken. J393 vertelt dan aan de vier deurcontrollers dat ze de ramen moeten dicht doen, en geeft ook aan J245 (de controller van het schuifdak) bevel om te sluiten.

Maar de regensensor kan dus niet praten tegen de controller voor het dak. Beide LIN bussen passeren wel vlakbij elkaar ter hoogte van het plafondlampje. Dus dacht ik aan de volgende oplossing.
Ik zet een soort multiplexer tussen master J393 (BCM 2) en slave J245 (dak). In normale toestand blijven die met elkaar verbonden. Zodra ik vaststel dat het regent (via de reeds aanwezige regensensor of in het slechtste geval via een aparte DHT22 vochtsensor of iets dergelijks), hang ik J245 aan een aparte microcontroller die het commando om te sluiten geeft. Dit commando kan ik gemakkelijk opslaan met een logic analyser en dan door een PIC of zo laten genereren.
Het tweede deel van het verhaal is gelijkaardig. Zodra het contact afgezet wordt (klem 15 valt naar massa), heeft de regensensor niks zinnig meer te melden aan J519 (die op zijn beurt verder via LIN de ruitenwissers aanstuurt). Op dat moment schakel ik de LIN bus van slave G397 (regensensor) over naar een microcontroller. Dit is wel complexer, want nu moet ik weten hoe ik deze regensensor moet pollen naar de aanwezigheid van regen en hoe ik zijn antwoord moet interpreteren. Overigens: deze sensor meet ook het omgevingslicht, dus onder normale omstandigheden zal hij daar ook over ondervraagd worden en op antwoorden. Waarschijnlijk is het zelfs nog complexer en wordt het antwoord niet verstuurd als 1 bit (droog/nat), maar als een waarde in functie van hoe nat de voorruit is.

Heeft iemand hier ervaring mee? Zo'n regensensor pollen en iets met het antwoord doen? Kan je zomaar 'bruutweg' de communicatie tussen master en slave verbreken en die slave met een nieuwe master verbinden? Of bestaan er hier kant-en-klare oplossingen voor?

Je moet een microcontroller hebben met twee LIN-interfaces. Die laat je luisteren op bus 1 voor een commando en een trigger geven op bus 2.

Moet niet zo heel moeilijk zijn denk ik?

@RP6conrad: Maar je kan toch checken op de regenmelding-poll? Ik neem aan dat dit wel iets dat periodiek wordt gechecked of iets is dat de regensensor pusht op de bus.

Zou ook kunnen dat de regensensor direct op de ruitenwissercontroller zit en niets op de bus doet.

@Paul Welther: Wanneer ik door de regensensor (of een andere vochtsensor) het sluitcommando aan J393 (die ramen en sloten aanstuurt) geef, dan riskeer ik dat de auto zichzelf afsluit als het begint te druppelen. Denk bijv aan een tankstop op reis en het begint te regenen...
Ik wil dus echt in de LIN-bus naar het schuifdak mijn sluit-commando injecteren. En dus niet de sloten bedienen. Misschien in tweede instantie ook de vier ramen. Daar ligt het iets moeilijker: in beide voordeuren zit een controller die via _CAN_ aan de comfort-bus hangt. Elke voordeur-controller stuurt dan via LIN de betreffende deur achteraan aan.

Ondertussen ben ik er al een beetje uit hoe ik op LIN-niveau de zaak ga aanpakken. Per LIN-draad waarop ik een 'man-in-the-middle attack' wil uitvoeren, heb ik twee LIN-transceivers nodig die kant en klaar te koop zijn. (Farnell biedt o.a. NXP TJA1027 en Microchip MCP2003 aan.) Eerst ga ik de 'application note'-schakeling twee keer nabouwen: eens als master en eens als slave. Mijn nieuwe slave aan de master controller van Audi; mijn home-brew master verbind ik met de slave controller van het (Webasto) open dak. RX en TX overkruisen en dit zou compleet transparant moeten werken. Indien niet, even in het haar krabben en mijn huiswerk opnieuw maken...

Ik bestel alvast mijn knutselgerief en enkele Schmartboards om die SIOC8 chips op mijn breadboard te kunnen zetten. En dan laat ik weten hoe ver ik er mee kom. Als er iemand weet welk type de connector op de foto is (liefst zowel het mannetje als het vrouwtje) dan zou ik super blij zijn... Dat vermijdt knip-en-plak-werk.

Staat op de schema's als T6e, vlakbij J245 (schijfdak) en J394 (voor het gordijntje)

Volgende stap is er een Arduino tussen stoppen die gewoon RX van de ene aan TX van de andere doorgeeft, totdat ik bijv op een knopje druk. And then the magic should happen. Maar dat gaat zeker nog even duren...

@Mel (pun intended): Foei, dan wordt er weeral niks geknutseld! :-)

Is het gebruiken van de regensensor van de auto een optie? Scheelt je een extra sensor. Net als t gordijntje en het dak zit die volgen mij op het comfortregelapparaat.

*edit* zag dat iemand dat al voorgesteld had.

[Bericht gewijzigd door Semtexx op (13%)]