Har alltid försökt montera aluminiumnät i fronten för att skydda intercoolern mm från stenskott.
Passade på att byta en xenon lampa som lös dåligt blev en 147a. Provade även att
polera plastglasen med Biltemas polersats men är nog bättre att köra med autosol.
Har även monterat Luftkvalite sensorn AQS men det stora bekymret är att modifiera
ACC panelen som verkar inbrotts säker lutar åt att försöka med CANbus styrning....
Lite vår fin bil.
Måste bli lite vårfin också så monterade kromlist i nederkant av dörrarna.
Och Vector fälgarna från förra bilen.
Det blir merochmer en Vector av denna Arc....

Har ju även täppt till hålet mellan alla plast delar i främre delen av bakre hjulhusen
och redan ser man hur mycket skit som samlat där och som tur ar
inte gått vidare ner i tröskeln.
http://forum.saabturboclub.com/showthread.php/148204-Svetsa-hundben-p%C3%A5-OG9-5
Och Vector fälgarna från förra bilen.
Det blir merochmer en Vector av denna Arc....

Har ju även täppt till hålet mellan alla plast delar i främre delen av bakre hjulhusen
och redan ser man hur mycket skit som samlat där och som tur ar
inte gått vidare ner i tröskeln.
http://forum.saabturboclub.com/showthread.php/148204-Svetsa-hundben-p%C3%A5-OG9-5
Komfort blinkers eller 3-blink automatik
Slängde ihop ett litet Arduino program för att få funktionen med 3-blink så fort som man
kort blinkar åt ett håll. Version 2 lär dyka upp med bättre funktionalitet.
2 kablar för att koppla in höger och vänster blinkers (som jag antar styrs med 12-14 volt)
Med spännings delning så detekterar programmet om blinkern går hög och styr ut 12 volt
för att förlänga tiden så att 3 blinkningar sker (man kan ändra tiden så att den passar med andra antal)
Inga andra finesser det får komma i version 2.
kort blinkar åt ett håll. Version 2 lär dyka upp med bättre funktionalitet.
2 kablar för att koppla in höger och vänster blinkers (som jag antar styrs med 12-14 volt)
Med spännings delning så detekterar programmet om blinkern går hög och styr ut 12 volt
för att förlänga tiden så att 3 blinkningar sker (man kan ändra tiden så att den passar med andra antal)
Inga andra finesser det får komma i version 2.
Ingen version 2 en länk till ett färdigt bygge (varför uppfinna hjulet igen :) )
3 Blink Modification for SAAB 9-5 | Hackaday.io
Ny version med blinkers larm om man glömmer bort blinkersen och inaktiverar 3 blinkningar
om man blinkar kort åt andra hållet.
//---------------3-blink + blinkerslarm
int hBlink = 6; //digigital Input Blinkers
int vBlink = 8;
int vBlinkON = 0; // blinkers signal
int hBlinkON = 0;
int vBlinkHIGH = 0; // Blinkers status
int hBlinkHIGH = 0;
int vBlinkPinOut = 13; // utgång Blinkers
int hBlinkPinOut = 12; // utgång Blinkers
int BlinkLarmPinOut = 11; //blink larmtuta
long previousSekunder = 0;
long BlinkTid = 4; // tid för att ge 3 blink
long LarmTid = 30; // tid för att ge larm om man glömmer blinkersen på
long blinkTimer = 0; //blinkers timer
long LarmTimer = 0; //larmtimern
int LarmHIGH = 0; // larmstatus
unsigned long currentSekund = millis();
void setup() {
Serial.begin(9600);
previousSekunder = currentSekund ; // 270 timern uppvärmningstid 30sek
//---------- Komfort blinkers
pinMode(vBlink, INPUT); // Signal blinkers
pinMode(vBlinkPinOut, OUTPUT); // utgång blinkers
digitalWrite(vBlinkPinOut,LOW);
pinMode(hBlink, INPUT); // Signal blinkers
pinMode(hBlinkPinOut, OUTPUT); // utgång blinkers
digitalWrite(hBlinkPinOut,LOW); // bländar av helljuset
pinMode(BlinkLarmPinOut, OUTPUT); // larm utgång
digitalWrite(BlinkLarmPinOut,LOW); //
}
void loop() {
//---------- Komfort blinkers
unsigned long currentSekund = millis()/ 1000 ; //unsigned long värde i sekunder
//delay(200); // för att hinna läsa av värderna i serielport
vBlinkON = digitalRead(vBlink); // läser av Blinkers
hBlinkON = digitalRead(hBlink);
Serial.print(vBlinkHIGH);Serial.print(" ");Serial.print(hBlinkHIGH);Serial.print(" LH ");Serial.println(LarmHIGH);
Serial.print(currentSekund);Serial.print(" B-timer ");Serial.println(blinkTimer);
// aktiverar högerblinkers
if (hBlinkON == HIGH && hBlinkHIGH == LOW && vBlinkHIGH == LOW ) { //
digitalWrite(hBlinkPinOut,HIGH); //aktiverar blinkers
hBlinkHIGH = 1; blinkTimer = currentSekund + BlinkTid;
} // aktiverar vänsterblinkers
if (vBlinkON == HIGH && vBlinkHIGH == LOW && hBlinkHIGH == LOW ) { //
digitalWrite(vBlinkPinOut,HIGH); //aktiverar blinkers
vBlinkHIGH = 1; blinkTimer = currentSekund + BlinkTid;
}
// inaktiverar högerblinkers om man blinkar åt vänster hållet
if (vBlinkON == HIGH && hBlinkHIGH == HIGH ) { //
digitalWrite(hBlinkPinOut,LOW); //inaktiverar blinkers
} // inaktiverar vänsterblinkers om man blinkar åt höger hållet
if (hBlinkON == HIGH && vBlinkHIGH == HIGH ) { //
digitalWrite(vBlinkPinOut,LOW); //inaktiverar blinkers
}
delay(300); // för att hinna läsa av värderna i serielport
// inaktiverar blinkers efter BlinkTid sek ca. 3 blink
if (hBlinkHIGH == HIGH && currentSekund >= blinkTimer || vBlinkHIGH == HIGH && currentSekund >= blinkTimer ){ // inaktiverar blinkers efter 3 sek
digitalWrite(vBlinkPinOut,LOW); vBlinkHIGH = 0 ; //inaktiverar blinkersen
digitalWrite(hBlinkPinOut,LOW); hBlinkHIGH = 0 ;
blinkTimer = currentSekund + BlinkTid;
}
// aktiverar blinkers larmet
if (vBlinkON == HIGH && LarmHIGH == LOW || hBlinkON == HIGH && LarmHIGH == LOW ) {
LarmTimer = currentSekund;
LarmHIGH = 1 ;
} // inaktiverar blinkers larmet
if (vBlinkON == LOW && hBlinkON == LOW) { //
LarmTimer = currentSekund ;
LarmHIGH = 0 ;
} // larmar om man glömmer blinkersen på
if (vBlinkON == HIGH && currentSekund - LarmTimer >= LarmTid || hBlinkON == HIGH && currentSekund - LarmTimer >= LarmTid){ // larmar efter 10 sek
if (LarmHIGH == HIGH){
int var = 0;
while (vBlinkON == HIGH && var < 3 || hBlinkON == HIGH && var < 3 ){ // antal gånger som den larmar (3)
digitalWrite(BlinkLarmPinOut,HIGH); //aktiverar
delay (800);
digitalWrite(BlinkLarmPinOut,LOW); //inaktiverar
delay (100); var++ ; LarmHIGH = 0 ;
}
digitalWrite(vBlinkPinOut,LOW); //inaktiverar blinkersen
digitalWrite(hBlinkPinOut,LOW);
}}
}
Och här kommer programet: (inget är provat i bilen, får vänta tills det blir vår.......så inga garantier)
//---------------3-blink
int vBlink = 7; //digital Input Blinkers
int hBlink = 6;
int vBlinkON = 0;
int hBlinkON = 0;
int vBlinkPinOut = 12; // utgång Blinkers
int hBlinkPinOut = 13; // utgång Blinkers
int blinkTimer = 3000; //delay för ca. 3 blink
void setup() {
Serial.begin(9600);
//---------- 3-blink
pinMode(vBlink, INPUT); // vänster blinkers
pinMode(vBlinkPinOut, OUTPUT); // vänster blinkers utgång
digitalWrite(vBlinkPinOut,LOW); // vänster blinkers
pinMode(hBlink, INPUT); // höger blinkers
pinMode(hBlinkPinOut, OUTPUT); // höger blinkers utgång
digitalWrite(hBlinkPinOut,LOW); // höger blinkers
}
void loop() {
//---------- 3-Blinkers funktion
delay(200); // för att hinna läsa av värderna i serielport
vBlinkON = digitalRead(vBlink); // läser av Blinkers
hBlinkON = digitalRead(hBlink);
Serial.print(vBlinkON);Serial.print(" ");Serial.println(hBlinkON);
if (vBlinkON == HIGH && hBlinkON == LOW) { // ...
digitalWrite(vBlinkPinOut,HIGH); //aktiverar blinkers
delay (blinkTimer); //låter blinkersen vara aktiv under 1500 ms => ger ca. 3 blink ?
digitalWrite(vBlinkPinOut,LOW);
delay (100);
}
if (hBlinkON == HIGH && vBlinkON == LOW) { // ...
digitalWrite(hBlinkPinOut,HIGH); //aktiverar blinkers
delay (blinkTimer); //låter blinkersen vara aktiv under 1500 ms => ger ca. 3 blink ?
digitalWrite(hBlinkPinOut,LOW);
delay (100);
}
}
Ny version med blinkers larm om man glömmer bort blinkersen och inaktiverar 3 blinkningar
om man blinkar kort åt andra hållet.
//---------------3-blink + blinkerslarm
int hBlink = 6; //digigital Input Blinkers
int vBlink = 8;
int vBlinkON = 0; // blinkers signal
int hBlinkON = 0;
int vBlinkHIGH = 0; // Blinkers status
int hBlinkHIGH = 0;
int vBlinkPinOut = 13; // utgång Blinkers
int hBlinkPinOut = 12; // utgång Blinkers
int BlinkLarmPinOut = 11; //blink larmtuta
long previousSekunder = 0;
long BlinkTid = 4; // tid för att ge 3 blink
long LarmTid = 30; // tid för att ge larm om man glömmer blinkersen på
long blinkTimer = 0; //blinkers timer
long LarmTimer = 0; //larmtimern
int LarmHIGH = 0; // larmstatus
unsigned long currentSekund = millis();
void setup() {
Serial.begin(9600);
previousSekunder = currentSekund ; // 270 timern uppvärmningstid 30sek
//---------- Komfort blinkers
pinMode(vBlink, INPUT); // Signal blinkers
pinMode(vBlinkPinOut, OUTPUT); // utgång blinkers
digitalWrite(vBlinkPinOut,LOW);
pinMode(hBlink, INPUT); // Signal blinkers
pinMode(hBlinkPinOut, OUTPUT); // utgång blinkers
digitalWrite(hBlinkPinOut,LOW); // bländar av helljuset
pinMode(BlinkLarmPinOut, OUTPUT); // larm utgång
digitalWrite(BlinkLarmPinOut,LOW); //
}
void loop() {
//---------- Komfort blinkers
unsigned long currentSekund = millis()/ 1000 ; //unsigned long värde i sekunder
//delay(200); // för att hinna läsa av värderna i serielport
vBlinkON = digitalRead(vBlink); // läser av Blinkers
hBlinkON = digitalRead(hBlink);
Serial.print(vBlinkHIGH);Serial.print(" ");Serial.print(hBlinkHIGH);Serial.print(" LH ");Serial.println(LarmHIGH);
Serial.print(currentSekund);Serial.print(" B-timer ");Serial.println(blinkTimer);
// aktiverar högerblinkers
if (hBlinkON == HIGH && hBlinkHIGH == LOW && vBlinkHIGH == LOW ) { //
digitalWrite(hBlinkPinOut,HIGH); //aktiverar blinkers
hBlinkHIGH = 1; blinkTimer = currentSekund + BlinkTid;
} // aktiverar vänsterblinkers
if (vBlinkON == HIGH && vBlinkHIGH == LOW && hBlinkHIGH == LOW ) { //
digitalWrite(vBlinkPinOut,HIGH); //aktiverar blinkers
vBlinkHIGH = 1; blinkTimer = currentSekund + BlinkTid;
}
// inaktiverar högerblinkers om man blinkar åt vänster hållet
if (vBlinkON == HIGH && hBlinkHIGH == HIGH ) { //
digitalWrite(hBlinkPinOut,LOW); //inaktiverar blinkers
} // inaktiverar vänsterblinkers om man blinkar åt höger hållet
if (hBlinkON == HIGH && vBlinkHIGH == HIGH ) { //
digitalWrite(vBlinkPinOut,LOW); //inaktiverar blinkers
}
delay(300); // för att hinna läsa av värderna i serielport
// inaktiverar blinkers efter BlinkTid sek ca. 3 blink
if (hBlinkHIGH == HIGH && currentSekund >= blinkTimer || vBlinkHIGH == HIGH && currentSekund >= blinkTimer ){ // inaktiverar blinkers efter 3 sek
digitalWrite(vBlinkPinOut,LOW); vBlinkHIGH = 0 ; //inaktiverar blinkersen
digitalWrite(hBlinkPinOut,LOW); hBlinkHIGH = 0 ;
blinkTimer = currentSekund + BlinkTid;
}
// aktiverar blinkers larmet
if (vBlinkON == HIGH && LarmHIGH == LOW || hBlinkON == HIGH && LarmHIGH == LOW ) {
LarmTimer = currentSekund;
LarmHIGH = 1 ;
} // inaktiverar blinkers larmet
if (vBlinkON == LOW && hBlinkON == LOW) { //
LarmTimer = currentSekund ;
LarmHIGH = 0 ;
} // larmar om man glömmer blinkersen på
if (vBlinkON == HIGH && currentSekund - LarmTimer >= LarmTid || hBlinkON == HIGH && currentSekund - LarmTimer >= LarmTid){ // larmar efter 10 sek
if (LarmHIGH == HIGH){
int var = 0;
while (vBlinkON == HIGH && var < 3 || hBlinkON == HIGH && var < 3 ){ // antal gånger som den larmar (3)
digitalWrite(BlinkLarmPinOut,HIGH); //aktiverar
delay (800);
digitalWrite(BlinkLarmPinOut,LOW); //inaktiverar
delay (100); var++ ; LarmHIGH = 0 ;
}
digitalWrite(vBlinkPinOut,LOW); //inaktiverar blinkersen
digitalWrite(hBlinkPinOut,LOW);
}}
}
Och här kommer programet: (inget är provat i bilen, får vänta tills det blir vår.......så inga garantier)
//---------------3-blink
int vBlink = 7; //digital Input Blinkers
int hBlink = 6;
int vBlinkON = 0;
int hBlinkON = 0;
int vBlinkPinOut = 12; // utgång Blinkers
int hBlinkPinOut = 13; // utgång Blinkers
int blinkTimer = 3000; //delay för ca. 3 blink
void setup() {
Serial.begin(9600);
//---------- 3-blink
pinMode(vBlink, INPUT); // vänster blinkers
pinMode(vBlinkPinOut, OUTPUT); // vänster blinkers utgång
digitalWrite(vBlinkPinOut,LOW); // vänster blinkers
pinMode(hBlink, INPUT); // höger blinkers
pinMode(hBlinkPinOut, OUTPUT); // höger blinkers utgång
digitalWrite(hBlinkPinOut,LOW); // höger blinkers
}
void loop() {
//---------- 3-Blinkers funktion
delay(200); // för att hinna läsa av värderna i serielport
vBlinkON = digitalRead(vBlink); // läser av Blinkers
hBlinkON = digitalRead(hBlink);
Serial.print(vBlinkON);Serial.print(" ");Serial.println(hBlinkON);
if (vBlinkON == HIGH && hBlinkON == LOW) { // ...
digitalWrite(vBlinkPinOut,HIGH); //aktiverar blinkers
delay (blinkTimer); //låter blinkersen vara aktiv under 1500 ms => ger ca. 3 blink ?
digitalWrite(vBlinkPinOut,LOW);
delay (100);
}
if (hBlinkON == HIGH && vBlinkON == LOW) { // ...
digitalWrite(hBlinkPinOut,HIGH); //aktiverar blinkers
delay (blinkTimer); //låter blinkersen vara aktiv under 1500 ms => ger ca. 3 blink ?
digitalWrite(hBlinkPinOut,LOW);
delay (100);
}
}
Saab 9-5 ARC -06 Halvljus automatik.
Köpte ett par DRL lampor billigt på Tradera.
Nyttja dom kåporna som satt där dimljusen ska sitta och gjorde hål för DRLerna.
Modifierade kabeln som används för att göra "taxi" koppling den blå/vita (rosa för äldre modeller).
till att gå till ett relä som aktivterat, kopplar ihop kabeln och då tänder xenon halvljusen vid mörker.
Annars går signalen från ljusomkopplaren till stift 7 (BN/GY kabel) på den gröna dimljuskontakten som då
aktiverar dimljus reläet som jag fick montera i reläboxen i motorutrymmet.
(ändra 50k till 5-10k för stabilare relä styrning)
Allt för att slippa kabeldragning genom torpedväggen. Från dimljusreläet så kopplade jag in DRL lamporna.
Och så här ser DRLerna ut aktiva.
Och dom 2 ljussensorerna för styrningen gömde jag där mitthögtalaren satt.
Får se om jag hittar någon ny dold placering på dom...
Fick lite problem med automatiken när jag började använda den efter vinter.
Den började leva sitt eget liv och sedan tröttnad den helt.
Konstaterade att strömmen inte gick igenom ljusomkopplaren så det var bara att börja plocka isär den. Rengjorde kontakt ytorna på släpskorna och banorna och flyttade tillbaks kontakt fettet.
När jag ändå hade den isär så monterade jag en lysdiod för att bättre hålla koll på när halvljuset är aktiverat.
Nyttja dom kåporna som satt där dimljusen ska sitta och gjorde hål för DRLerna.
Modifierade kabeln som används för att göra "taxi" koppling den blå/vita (rosa för äldre modeller).
till att gå till ett relä som aktivterat, kopplar ihop kabeln och då tänder xenon halvljusen vid mörker.
Annars går signalen från ljusomkopplaren till stift 7 (BN/GY kabel) på den gröna dimljuskontakten som då
aktiverar dimljus reläet som jag fick montera i reläboxen i motorutrymmet.
(ändra 50k till 5-10k för stabilare relä styrning)
Allt för att slippa kabeldragning genom torpedväggen. Från dimljusreläet så kopplade jag in DRL lamporna.
Och så här ser DRLerna ut aktiva.
Och dom 2 ljussensorerna för styrningen gömde jag där mitthögtalaren satt.
Får se om jag hittar någon ny dold placering på dom...
Fick lite problem med automatiken när jag började använda den efter vinter.
Den började leva sitt eget liv och sedan tröttnad den helt.
Konstaterade att strömmen inte gick igenom ljusomkopplaren så det var bara att börja plocka isär den. Rengjorde kontakt ytorna på släpskorna och banorna och flyttade tillbaks kontakt fettet.
När jag ändå hade den isär så monterade jag en lysdiod för att bättre hålla koll på när halvljuset är aktiverat.
Saab 9-5 ARC -06 Baksätesvärme
Köpte in en sätesvärmare ifrån Biltema istället för att göra en själv som jag gjorde till 9000 Vector.
http://www.biltema.se/sv/Bil---MC/Bil-tillbehor/Styling/Bilkladsel/Varmesits-2000033358/
Delade den i 2 delar (finns en skarv i mitten) och som passade perfekt i sittdynorna.

Kompletterad den delade sätesvärmaren med en termistor som extra övervak./kontroll.
Sedan måste något vara orginal så jag kostade på mig en orginal Heatknapp.Det enda orginal i detta bygget.
http://webshop.saabparts.com/900-9-3/esystem-9003/stolsvarme-reglage3
(fast man hittar den inte under 9-5 när man letar...)
Men den skarpögde ser att den inte är monterad på orginalplatsen.
Kopplade in reostat belysning och ström ifrån cigg.uttaget + reläet för baksätesvärmen.
(ändra 50k till 5-10k för stabilare relä styrning)
Arduino kortet placerade jag framme vid ACC panelen (de ska kopplas in mer på det kortet)
Och den värmer i 30 min vid aktivering och avbryter när den blivit varm och värmer om den kallnar
under dom 30min. Som det nu är kopplat så slocknar indikerings lampan när den temp.reglerar men
men det kan man stå ut med.....
http://www.biltema.se/sv/Bil---MC/Bil-tillbehor/Styling/Bilkladsel/Varmesits-2000033358/
Delade den i 2 delar (finns en skarv i mitten) och som passade perfekt i sittdynorna.
![]() |
| Kontakt under sätet. |

Kompletterad den delade sätesvärmaren med en termistor som extra övervak./kontroll.
Sedan måste något vara orginal så jag kostade på mig en orginal Heatknapp.Det enda orginal i detta bygget.
http://webshop.saabparts.com/900-9-3/esystem-9003/stolsvarme-reglage3
(fast man hittar den inte under 9-5 när man letar...)
Men den skarpögde ser att den inte är monterad på orginalplatsen.
Kopplade in reostat belysning och ström ifrån cigg.uttaget + reläet för baksätesvärmen.
(ändra 50k till 5-10k för stabilare relä styrning)
Arduino kortet placerade jag framme vid ACC panelen (de ska kopplas in mer på det kortet)
Och den värmer i 30 min vid aktivering och avbryter när den blivit varm och värmer om den kallnar
under dom 30min. Som det nu är kopplat så slocknar indikerings lampan när den temp.reglerar men
men det kan man stå ut med.....
Arduinomjukvara Baksätesvärme och Halvljus automatik.
Senaste programvaran finns på Google Driven./2021-06-07
Saab 9-5 ARC -06
Ny bil och nya projekt(eller samma i ny bil).
In med JVC stereon med rattstyrning och in med surfplattan.
Inkoppling av stereon så behövdes dessa kablage.
Antenn adapter.
ISO-kablage för lågnivå.
alt. kablage
Plastram för montering av Surfplattan.
Inkoppling av ISO-kablaget fick jag hjälp av via denna sidan.
Double DIN Audio & Backup Cam Install - Saab 9-5 2006+
Tändning PÅ kan man ta ifrån Cigg. uttaget men jag gjorde det lite mer komplicerat och tog ström från en
Stereo säkring som aktiverades när tändningen är påslagen, säkring 21.
På den 14pin kontakten så kopplade jag in AntEnable pin12 och RemoteEnable pin 6 till stereons Remote UT (blå/vit)
För att aktivera förstärkaren och antenn förstärkaren när stereon startas. Kopplar man in "tändning på" får man
bara missljud när stereon inte används.
För rattstyrningen tog jag bort rattkåpan och kopplade in mig på rattstyrnings kabeln.
Här skulle man kopplat in sig på rattstyrningens jord också och för jag fick problem med att när man slagit av tändningen så ville den ändra på språk och enhet. SIDen trodde att man tryckte på "i set" knappen.
Men jag gjorde så att vid Arduino kortet satte jag ett relä som kopplade bort ingången från rattstyrningen
när tändingen slagits av.
Och mjukvaru ändringen som behövdes vara nya nivåer från rattstyrningen.
#define NO_B 922 //4,5v nothing pressed
#define MODE_B 662 //3,3v NXT(mode)
#define NXTD_B 580 //2,9v NEXT DOWN
#define NXTU_B 495 //2,5v NEXT UP
#define MUTE_B 410 //2,1v SRC (mute)
#define VOLU_B 328 //1,7v VOLUME UP+
#define VOLD_B 250 //1,3v VOLUME DOWN-
#define HORN 020 //TUTAN(som inte behövs) 0,0 volt
Har också lagt in och kopplat en summer som indikerar enkel-, dubbel- och långtryck.
Annars trycker man lite i blindo.
if (switchStatus == 0) { //no button press
} else if (switchStatus == 1) { // single press
tone(sumPin, ton , 50); // kort pip vid kort tryck
tone(sumPin, ton , 50); delay(200); tone(sumPin, ton , 50); // pip ljud vid dubbeltryck
och tone(sumPin, ton , 250); // långt pip vid långt tryck.
(ton = 2093)
Byte av ratt till en Vector ratt som är snyggare än både Aero och Std. ratten.
För att få loss krockudden så underlättar det med en krökt skruvmejsel annars blir det svårt att
komma åt spärrarna på baksidan.
Sedan blev det ett prov med större Surfplatta (man börjar få dålig syn he, he,)
Men frågan är om jag nöjer mig med den lilla Surfplattan.
(eller så får man leta efter en modernare 8-9"are)
Prenumerera på:
Inlägg (Atom)
















