TPMS testmjukvaran x 2.

/*Larmar med ljud och LED-ljus om en ABS signal räknar fler pulser än dom andra = lågt lufttryck i ett däck.*/

const int larmPin = 7; // the number of the Buzzer pin
const int VFpin = 10; //
const int HFpin = 11; //
const int VBpin = 12; //
const int HBpin = 13; // blinkar vid uppstart
int VFvalue = 0; //ABS värde VF osv.
int HFvalue = 0;
int VBvalue = 0;
int HBvalue = 0;
int ABSvalue = 0;
unsigned long oldMillis = 0;
unsigned long kollMillis = 0; //timer för att nolla kollräknaren.
float punka = 1 ; // 0.95 skillnad som ger indikering på punktering
int Fel = 5; //antal Fel 5 innan larmindikering
int kollVF = 0; int kollHF = 0; int kollVB = 0; int kollHB = 0;
int kollVFtot = 0; int kollHFtot = 0; int kollVBtot = 0; int kollHBtot = 0;
int timer = 500; // tid som ABS pulserna räknas 250
volatile int SensorCountVF = 0; // Speed Sensor pulse count
void AddSensorCountVF() { // This is the subroutine that is called when interrupt 0 goes high
SensorCountVF++; // Increment SensorCount by 1
}
volatile int SensorCountHF = 0; // Speed Sensor pulse count
void AddSensorCountHF() { // This is the subroutine that is called when interrupt 0 goes high
SensorCountHF++; // Increment SensorCount by 1
}
volatile int SensorCountVB = 0; // Speed Sensor pulse count
void AddSensorCountVB() { // This is the subroutine that is called when interrupt 0 goes high
SensorCountVB++; // Increment SensorCount by 1
}
volatile int SensorCountHB = 0; // Speed Sensor pulse count
void AddSensorCountHB() { // This is the subroutine that is called when interrupt 0 goes high
SensorCountHB++; // Increment SensorCount by 1
}
void setup() {
pinMode(larmPin, OUTPUT);
pinMode(VFpin, OUTPUT);
pinMode(HFpin, OUTPUT);
pinMode(VBpin, OUTPUT);
pinMode(HBpin, OUTPUT);
//digitalWrite(VFpin, HIGH); delay(500);digitalWrite(HFpin, HIGH); delay(500);digitalWrite(VBpin, HIGH); delay(500);digitalWrite(HBpin, HIGH);
//delay(500);
//digitalWrite(VFpin, LOW); delay(500);digitalWrite(HFpin, LOW);delay(500); digitalWrite(VBpin, LOW);delay(500); digitalWrite(HBpin, LOW);
attachInterrupt(0, AddSensorCountHB, RISING); // HB Interrupt 0 is on digital pin 3
attachInterrupt(1, AddSensorCountVB, RISING); // VB Interrupt 1 pin 2
attachInterrupt(3, AddSensorCountHF, RISING); // HF Interrupt 3 is on digital pin 1
attachInterrupt(2, AddSensorCountVF, RISING); // VF Interrupt 2 pin 0
}
void loop() {
//------------ räknar pulser ABS senorerna
if(millis()-oldMillis > timer && millis()-oldMillis < timer*2 ){ attachInterrupt(2, AddSensorCountVF, RISING); // Interrupt 0 is on digital pin 3 if (VFvalue < SensorCountVF){ VFvalue = SensorCountVF; } attachInterrupt(3, AddSensorCountHF, RISING); // Interrupt 1 is on digital pin 2 if (HFvalue < SensorCountHF){ HFvalue = SensorCountHF; } attachInterrupt(1, AddSensorCountVB, RISING); // Interrupt 3 is on digital pin 1 if (VBvalue < SensorCountVB){ VBvalue = SensorCountVB; } attachInterrupt(0, AddSensorCountHB, RISING); // Interrupt 2 is on digital pin 0 if (HBvalue < SensorCountHB){ HBvalue = SensorCountHB; } ABSvalue=(VFvalue+HFvalue+VBvalue+HBvalue)/4 ; } // ---------------------- AntiSpinn--------ej aktiverat än... /* if (VFvalue-5 >HFvalue && VFvalue-5 >HBvalue && VFvalue-5 >VBvalue) // Om VF roterar snabbare än övriga
{ larmSend(); digitalWrite(VFpin, HIGH); delay(5000); digitalWrite(VFpin, LOW);
digitalWrite(VFpin, HIGH); delay(5000); digitalWrite(VFpin, LOW);
}
if (HFvalue-5 >VFvalue && HFvalue-5 >HBvalue && HFvalue-5 >VBvalue) // Om HF roterar snabbare än övriga
{ larmSend(); digitalWrite(HFpin, HIGH); delay(5000); digitalWrite(HFpin, LOW);
digitalWrite(HFpin, HIGH); delay(5000); digitalWrite(HFpin, LOW);
}
*/
//---------------------------------------Kontroll av ABS signaler varannan sek. 4*500ms
if(millis()-oldMillis > timer*4 && millis()-oldMillis < timer*5 ) { // -------------ABS sensor fel/avbrott if (VFvalue<5 && HFvalue>200 && HBvalue>200 && VBvalue>200) // om VF saknar pulser medans dom andra visar mer än 200
{ digitalWrite(VFpin, HIGH); //digitalWrite(VBpin, HIGH); digitalWrite(HBpin, HIGH); // inget larmljud, bilen bör visa ABS fel.
delay(10000); digitalWrite(VFpin, LOW); digitalWrite(HFpin, LOW); digitalWrite(VBpin, LOW); digitalWrite(HBpin, LOW);
}
if (HFvalue<5 && VFvalue>200 && HBvalue>200 && VBvalue>200) //HF
{ digitalWrite(HFpin, HIGH); //digitalWrite(VBpin, HIGH); digitalWrite(HBpin, HIGH);
delay(10000); digitalWrite(VFpin, LOW); digitalWrite(HFpin, LOW); digitalWrite(VBpin, LOW); digitalWrite(HBpin, LOW);
}
if (VBvalue<5 && HFvalue>200 && HBvalue>200 && VFvalue>200) //VB
{ digitalWrite(VBpin, HIGH); //digitalWrite(HFpin, HIGH); digitalWrite(HBpin, HIGH);
delay(10000); digitalWrite(VFpin, LOW); digitalWrite(HFpin, LOW); digitalWrite(VBpin, LOW); digitalWrite(HBpin, LOW);
}
if (HBvalue<5 && HFvalue>200 && VFvalue>200 && VBvalue>200) //HB
{ digitalWrite(HBpin, HIGH); //digitalWrite(HFpin, HIGH); digitalWrite(VBpin, HIGH);
delay(10000); digitalWrite(VFpin, LOW); digitalWrite(HFpin, LOW); digitalWrite(VBpin, LOW); digitalWrite(HBpin, LOW);
}
//---------------------------------------Kontroll av ABS signaler mer än 30km/t och 150km/t skillnad på 1 puls.
if (VFvalue>200 && HFvalue>200 && HBvalue>200 && VBvalue>200){ //120 ca 20 km/h, 760 ca 110 km/tim
if (VFvalue<800 && HFvalue<800 && HBvalue<800 && VBvalue<800){ //max värde 800 150 km/h // Jämför VF med dom andra värdena if (VFvalue-punka>HFvalue && VFvalue-punka>HBvalue && VFvalue-punka>VBvalue)
{ kollVF=kollVF+1 ; // räknar med 1 vid varje fel
if (kollVF == Fel) // kontroll x antal gånger innan fel indikeras
{ kollVFtot=kollVFtot+1 ;larmSend(); digitalWrite(HFpin, HIGH); digitalWrite(VBpin, HIGH); digitalWrite(HBpin, HIGH); delay(10000);
digitalWrite(VFpin, LOW); digitalWrite(HFpin, LOW); digitalWrite(VBpin, LOW); digitalWrite(HBpin, LOW); kollVF=0;
}} // Jämför HF med dom andra värdena
if (HFvalue-punka>VFvalue && HFvalue-punka>HBvalue && HFvalue-punka>VBvalue)
{ kollHF=kollHF+1 ;
if (kollHF == Fel) // kontroll 3 gånger innan fel indikeras
{ kollHFtot=kollHFtot+1 ;larmSend(); digitalWrite(VFpin, HIGH); digitalWrite(VBpin, HIGH); digitalWrite(HBpin, HIGH); delay(10000);
digitalWrite(VFpin, LOW); digitalWrite(HFpin, LOW); digitalWrite(VBpin, LOW); digitalWrite(HBpin, LOW); kollHF=0;
} } // Jämför VB med dom andra värdena
if (VBvalue-punka>VFvalue && VBvalue-punka>HFvalue && VBvalue-punka>HBvalue)
{ kollVB=kollVB+1 ;
if (kollVB == Fel) // kontroll 3 gånger innan fel indikeras
{ kollVBtot=kollVBtot+1 ;larmSend(); digitalWrite(VFpin, HIGH); digitalWrite(HFpin, HIGH); digitalWrite(HBpin, HIGH); delay(10000);
digitalWrite(VFpin, LOW); digitalWrite(HFpin, LOW); digitalWrite(VBpin, LOW); digitalWrite(HBpin, LOW); kollVB=0;
} } // Jämför HB med dom andra värdena
if (HBvalue-punka>VFvalue && HBvalue-punka>HFvalue && HBvalue-punka>VBvalue)
{ kollHB=kollHB+1 ;
if (kollHB == Fel) // kontroll 3 gånger innan fel indikeras
{ kollHBtot=kollHBtot+1 ;larmSend(); digitalWrite(VFpin, HIGH); digitalWrite(HFpin, HIGH); digitalWrite(VBpin, HIGH); delay(10000);
digitalWrite(VFpin, LOW); digitalWrite(HFpin, LOW); digitalWrite(VBpin, LOW); digitalWrite(HBpin, LOW); kollHB=0;
} } } }
//---------Om den indikerar fel fler än 3 ggr indikerar den fel hela tiden
if (kollVFtot == 3) // kontroll x antal gånger innan fel indikeras
{ digitalWrite(HFpin, HIGH); digitalWrite(VBpin, HIGH); digitalWrite(HBpin, HIGH); kollVF=0; }
if (kollHFtot == 3) // kontroll 3 gånger innan fel indikeras
{ digitalWrite(VFpin, HIGH); digitalWrite(VBpin, HIGH); digitalWrite(HBpin, HIGH); kollHF=0; }
if (kollVBtot == 3) // kontroll 3 gånger innan fel indikeras
{ digitalWrite(VFpin, HIGH); digitalWrite(HFpin, HIGH); digitalWrite(HBpin, HIGH); kollVB=0; }
if (kollHBtot == 3) // kontroll 3 gånger innan fel indikeras
{ digitalWrite(VFpin, HIGH); digitalWrite(HFpin, HIGH); digitalWrite(VBpin, HIGH); kollHB=0; }
//---------------------------------------Nollar sensor värdena och ny tid efter kontrollerna
SensorCountVF = 0; SensorCountHF = 0; SensorCountVB = 0; SensorCountHB = 0;
oldMillis = millis();
VFvalue = 0; HFvalue = 0; VBvalue = 0; HBvalue = 0;
}
//---------------------------------------nollar felräknaren vart 30 sek
if(millis()-kollMillis > 30000) { // 15 sek intervall
kollVF = 0; kollHF = 0; kollVB = 0; kollHB = 0;
kollMillis = millis(); // nollar koll timern§
}
}
void larmSend() { // larm vid punkterings indikering
digitalWrite(larmPin, HIGH); delay(800);
digitalWrite(larmPin, LOW);
}
--------------------------------------------------------------------------------------------------------
// Test mjukvara för TPMS Däcktrycks övervakning. Uppdat2014/12 nya tider..
#include <LiquidCrystal.h>
const int larmPin =  7;      // the number of the Buzzer pin
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
int backlightPin = 6; //pwm pin
int brightness = 150; //0-255 0=svagtljus
int kontrastPin =5;  //pwm pin
int kontrast = 50; //från 0-110 110=svagt
int VFvalue = 0;  //ABS värde VF osv.
int HFvalue = 0;
int VBvalue = 0;
int HBvalue = 0;
int ABSvalue = 0;    //medelvärdet för testning
unsigned long oldMillis = 0;
unsigned long kollMillis = 0; //timer för att nolla kontrollräknaren.
float punka = 1 ;  // 7 (5=0.95) antal pulser som skiljer och ger indikering på punktering
int Fel = 5;  //antal Fel innan larmindikering
int kollVF = 0; int kollHF = 0; int kollVB = 0; int kollHB = 0;
int timer = 500 ;  // tid som ABS pulserna räknas (250)
 volatile int SensorCountVF = 0;                      // Speed Sensor pulse count
  void AddSensorCountVF()  {                  // This is the subroutine that is called when interrupt 0 goes high
          SensorCountVF++;                          // Increment SensorCount by 1
          }
volatile int SensorCountHF = 0;                      // Speed Sensor pulse count
  void AddSensorCountHF()  {                  // This is the subroutine that is called when interrupt 0 goes high
          SensorCountHF++;                          // Increment SensorCount by 1
          }
volatile int SensorCountVB = 0;                      // Speed Sensor pulse count
  void AddSensorCountVB()  {                  // This is the subroutine that is called when interrupt 0 goes high
          SensorCountVB++;                          // Increment SensorCount by 1
          }
volatile int SensorCountHB = 0;                      // Speed Sensor pulse count
  void AddSensorCountHB()  {                  // This is the subroutine that is called when interrupt 0 goes high
          SensorCountHB++;                          // Increment SensorCount by 1
          }        
void setup() {
 pinMode(larmPin, OUTPUT);     
  pinMode(backlightPin, OUTPUT);
  pinMode(kontrastPin, OUTPUT);
   attachInterrupt(0, AddSensorCountVF, RISING);  // VF Interrupt 0 is on digital pin 3
   attachInterrupt(1, AddSensorCountHF, RISING);  // HF Interrupt 1 pin 2
   attachInterrupt(3, AddSensorCountVB, RISING);  // VB Interrupt 3 is on digital pin 1
   attachInterrupt(2, AddSensorCountHB, RISING);  // HB Interrupt 2 pin 0
   lcd.begin(20,4);
  }
void loop() {
      analogWrite(kontrastPin, kontrast);
      analogWrite(backlightPin, brightness);
 //------------  räknar pulser ABS senorerna                          
  if(millis()-oldMillis > timer && millis()-oldMillis < timer*2 ){                       
        attachInterrupt(0, AddSensorCountVF, RISING);    // Interrupt 0 is on digital pin 3
       if (VFvalue < SensorCountVF){
        VFvalue = SensorCountVF;   
         }
        attachInterrupt(1, AddSensorCountHF, RISING);    // Interrupt 1 is on digital pin 2
       if (HFvalue < SensorCountHF){
        HFvalue = SensorCountHF;
        }
        attachInterrupt(3, AddSensorCountVB, RISING);  // Interrupt 3 is on digital pin 1
       if (VBvalue < SensorCountVB){
        VBvalue = SensorCountVB;
        }
        attachInterrupt(2, AddSensorCountHB, RISING);  // Interrupt 2 is on digital pin 0
       if (HBvalue < SensorCountHB){
        HBvalue = SensorCountHB;
        }
       ABSvalue=(VFvalue+HFvalue+VBvalue+HBvalue)/4 ;
 }
  //---------------------------------------Kontroll av ABS signaler mer än 120-400 och skillnad på 5 %
    if(millis()-oldMillis > timer*4  && millis()-oldMillis < timer*6 ) {
         if (VFvalue>220 && HFvalue>220 && HBvalue>220 && VBvalue>220){    //170 ca 50 km/h, 360 ca 110 km/tim
         if (VFvalue<800 && HFvalue<800 && HBvalue<800 && VBvalue<800){    //max värde 400 150 km/h
  lcd.setCursor(0,2); //delay(2000);
  lcd.print("                    "); // 20(16) tecken för att rensa
  lcd.setCursor(0,2);  //kolumn,rad
  lcd.print(ABSvalue-VFvalue); lcd.setCursor(5,2); lcd.print(ABSvalue-HFvalue);lcd.setCursor(10,2);
  lcd.print(ABSvalue-VBvalue);lcd.setCursor(15,2); lcd.print(ABSvalue-HBvalue);
                            // Jämför VF med dom andra värdena
  if (VFvalue-punka>HFvalue && VFvalue-punka>HBvalue && VFvalue-punka>VBvalue)
   { kollVF=kollVF+1 ;
    if (kollVF == Fel)      // kontroll 3 gånger innan fel indikeras               
    { larmSend();
     lcd.setCursor(0, 1);  //kolumn,rad
     lcd.print("Punka V-fram");lcd.print(VFvalue-punka);delay(8000);
     lcd.clear(); kollVF=0; larmSend();
    }}                                                 // Jämför HF med dom andra värdena
  if (HFvalue-punka>VFvalue && HFvalue-punka>HBvalue && HFvalue-punka>VBvalue)
  { kollHF=kollHF+1 ;
    if (kollHF == Fel)      // kontroll 3 gånger innan fel indikeras               
   { larmSend();
     lcd.setCursor(0, 1);  //kolumn,rad
     lcd.print("Punka H-fram");lcd.print(HFvalue-punka);delay(8000);
     lcd.clear(); kollHF=0;
   } }                                                  // Jämför VB med dom andra värdena
  if (VBvalue-punka>VFvalue && VBvalue-punka>HFvalue && VBvalue-punka>HBvalue)
  { kollVB=kollVB+1 ;
    if (kollVB == Fel)      // kontroll 3 gånger innan fel indikeras               
   { larmSend();
     lcd.setCursor(0, 1);  //kolumn,rad
     lcd.print("Punka V-bak");lcd.print(VBvalue-punka);delay(8000);
     lcd.clear(); kollVB=0;
   }  }                                                    // Jämför HB med dom andra värdena
  if (HBvalue-punka>VFvalue && HBvalue-punka>HFvalue && HBvalue-punka>VBvalue)
  { kollHB=kollHB+1 ;
    if (kollHB == Fel)      // kontroll 3 gånger innan fel indikeras               
   { larmSend();
     lcd.setCursor(0, 1);  //kolumn,rad
     lcd.print("Punka H-bak");lcd.print(HBvalue-punka);delay(8000);
     lcd.clear(); kollHB=0;
    }  }  } }
//---------------------------------------Nollar sensor värdena och ny tid
    SensorCountVF = 0; SensorCountHF = 0; SensorCountVB = 0; SensorCountHB = 0;
    oldMillis = millis();
    lcd.setCursor(0,1); //delay(2000);
    lcd.print("                    "); // 20(16) tecken för att rensa
    VFvalue = 0; HFvalue = 0; VBvalue = 0; HBvalue = 0;
    lcd.setCursor(0,3); lcd.print(oldMillis/1000);lcd.setCursor(5,3);lcd.print(kollMillis/1000);//delay(2000);
    } 
    //---------------------------------------nollar kontrollen vart 5 sek 250*20
    if(millis()-kollMillis > 150000) {  // 15000 = 15 sek intervall
       kollVF = 0;  kollHF = 0;  kollVB = 0;  kollHB = 0;
       kollMillis = millis();  // nollar koll timern§
        lcd.setCursor(0,2); //delay(200);
        lcd.print("                   ");
      } 
      //--------------LCD presentation------------
  lcd.setCursor(0,0); //delay(200);
  lcd.print("VFi"); lcd.setCursor(5,0); lcd.print("HFi");lcd.setCursor(10,0); lcd.print("VBi");lcd.setCursor(15,0); lcd.print("HBi");
  lcd.setCursor(0,1); //delay(200);
  lcd.print(VFvalue); lcd.setCursor(5,1); lcd.print(HFvalue);lcd.setCursor(10,1); lcd.print(VBvalue);lcd.setCursor(15,1); lcd.print(HBvalue);
  lcd.setCursor(10,3); //lcd.print(oldMillis);//delay(2000);
  lcd.print(kollVF);lcd.print(kollHF);lcd.print(kollVB);lcd.print(kollHB);  //display av koll värdena TEST
  }  
 void larmSend() { // larm vid punkterings indikering
 digitalWrite(larmPin, HIGH); delay(300);
 digitalWrite(larmPin, LOW);
   }

TPMS Tyre Pressure Monitoring System eller nåttsånt..

Det har ju blivit lag på att måste ha däcktrycksövervakning på nya bilar så
man får väl inte vara sämre att man fixar det och hänger med i utvecklingen.
Teorin är att man kontrollerar ABS signalerna under en viss tid och ser om ett
däck snurrar fortare än något annat. Och den får räkna fel ett antal gånger under en viss tid
innan en felindikering ges. Här labbar jag med antal och tid för att undvika falsklarm men ändå
kunna indikera på lågt lufttryck. Detta krävde att man fick förnya sig ned ett
Arduino Leonardo kort som har fler interupt kanaler som kan räkna snabba pulser.

ABS signalerna tog jag inifrån ABS boxen
Pin 48,47,46,och 45. Vänster Fram, HF, VB & HB och sedan med ett litet förstärknings steg
(FET transistor) in till Leonardo kortet. ABS boxen var väl tillsluten men det gick att lossa locket efter att man forcerat det sega limmet.

Nu kör jag med en display som visar värden och
larmar vid fel men tanken är att jag ska ha 4 lysdioder för varje däck som lyser rött vid fel och ger en kort larmsignal.
Det blev lite dålig bild på LCDdisplayen men den räknar pulser väldigt fort

Uppdatering 2014-12: Vid test så dyker det upp sporadiska larm när ett däck har 1,8 bar (VB) jämfört med 2,3 bar på dom övriga. (22 % diff.)
Kan få lite falsklarm nångång men det är svårt att hitta gränsen när den ska larma.
                                                                     Uppdatering 2015-03: Monterat in LED dioderna och ändrat lite i mjukvaran. Vid larm lyser 3 dioder och den felande däcket är släckt , lättare att läsa av i mörkret vilket däck som larmar. Även ändrat så om den indikerar fel 3 gånger lyser dioderna konstant och den slutar ljudindikera. Fick en större pyspunka och det blev lite irritation i bilen när den larmade hela tiden. Inga fellarm har kommit utan när det är 20% fel så kommer intermittenta larmindikeringar. Då är det dags att pumpa däcket. Skönt att det är dags för sommardäck snart. Lagt in en fel indikering om en ABS sensor sluta indikera pulser och får se om Antispinn indikering kommer såsmåning om..
Uppdatering 2015-05: Den nya placeringen på TPMS dioderna och förstärknings steget.
Lite ändrat i mjukvaran med 7 fel under 20 sek. Tyvärr så har jag fått se att TPMS fungerar,
punktering på nya sommardäcket och nytt däck var jag tvungen att köpa...sur sa räven.


                                                                                     

Xenonkonvertering

Nu till vintermörkret kändes det som att det var tillslut dags med en Xenon konvertering.
H1R lampor med 4300K och 35 Watt (E-godkända) som man förhoppningsvis kan glida igenom besiktningen med....
Fungerade bra om man inte slarvade med en kabelsko infästning som lossnade efter endag och släckte en lampa. Sedan kan jag rekommendera att inte byta reflektor när det är kallt.
Torra och gamla plastfästen håller inte i kyla , körde med värmepistol för att inte alla delar skulle paja.
Tur man har reservdelsbil att plocka ifrån...
Så här blev resultatet Xenon vs. Halogen
och drivdonen satte jag under lampan (hoppas dom klarar spolarvätska ifrån strålkastartorkarna...

Uppdatering 2014-12:
Hade något glapp på ena sidan så bytte plats
på ballasterna.  Gjorde samtidigt en hängränna av en plastflaska som jag skar sönder och monterade under torkararmens axel så att vattnet rinner ner bakom kofångaren.
Det små strular med lamporna så nu har Halogen lamporna monterats igen. Man märker verkligen av  skillnaden nu när man blivit bortskämd med Xenon ljuset.

Kylfläkt och Baksätesvärme

Tänkte lyxa till det lite för baksätes passagerarna.
Fick tag i en bunt med värmetråd som ger ca.37-40 grader vid 12 volt.
Monterade på dom på ett plastnät för att hålla dom på plats.
Sedan blev det en brutal enkel monterings metod snitta upp baksidan och montera nätet.
Tråcklade sedan ihop det igen. Det går att montera bort klädseln men det är knöligare att
komma åt att montera nätet ändå. Det är bara sittytorna som fått värme, vi får snåla lite...

För att styra värmeslingorna köpte jag ett Timerkort på Kjell & co. och kopplat det så att
när man aktiverar värmeslingorna så värmer den i ca. 30 min och stänger sedan av sig.
Allt för att man inte ska glömma den påslagen. Sedan kan man trycka knappen åt andra hållet
för att avaktivera värmen om det blir för hett. Det är lite fel knappar på bilden lägre ner.

En fläkt monterades också tidigare i somras för att få lite mer kalluft där bak.
Det har ju inte fungerat så bra tidigare. Två lägen med 2 hastigheter på fläkten som sattes på
baksidan av "kylfacket".

Och ett schema för inkoppling. För mitt minne är lite dåligt. (hoppas jag ritat rätt bara)

Lite allmän bling, bling i bilen.

Ratten har varit sliten redan när jag köpte den så jag gjorde den mer sliten
för att få någonslags mocka stil på den.....
Grovt sandpapper och svart skokräm är det jag fuskat med.
Sedan slaktades ett trasigt tangentbord för att ta hand om bakgrunds belysningen och såga av den.
Kopplade ihop den med LED-listerna som går på innerbelysningen. Det blir fint i vinter mörkret.
Blev inte den finaste fastsättningen bakom skylten men jag vill ha den demonterbar på ett enkelt sätt.
Men som tur är syns inte det utifrån....
Sedan har motorutrymmet fått lite uppfräschning. (Ni får inte detalj granska bilden....)
Man ska betrakta helheten.




Största möjliga tyssssstnad.

Har tidigare försökt mosa in lite ljudisolerande material här och där i kupen men utan större förbättring. Passat nu på att montera en skumisolering bakom bakre främre hjulhuset.
Ljudappen "Buller" visar ingen förbättring men själv tycker jag att dom högstafrekvenserna
har minskat. Men nu irriterade jag mig på vindbruset vid dörrarna så jag provade att montera
en gummi platta mellan förardörren och bakdörren där det är en lucka samt lagt i en
gummislang för att se om listen kan täta bättre. Och det hjälper lite marginellt.
Får köpa på mig lite svart gummislang så blir det mer diskret.
Update: Är även sugen på att testa att limma dit isolering i mina gamla däck
ala Continental. http://teknikensvarld.se/continental-lanserar-tysta-dacken-contisilent-118016/
Men däckfirmorna tar betalt allt för av och på montering och balansering så det är nog inte värt att testa. Har även gjort en dämpmatta av gummi för att sätta mellan främre stötdämparna och chassit
men dom har legat i garaget i femår och mognat.....



Solpanel med fläkt.

Har haft en solpanel tillövers efter ett annat litet projekt och tänkte att det är bättre att den ligger i bilen istället för garaget. Funderade vidare och det skulle väl vara bra att få lite luftrotation i kupen nu när det förhoppningsvis blir varmare. Med ett litet extra batteri och laddning av det vid körning och med solpanelen. Kompletterat med elektronisk termostat som aktiverar fläktarna vid ca.50 C. Samt ett batteriskydd från Bitema för att förhindra djup urladdning av batteriet.

Har redan bytt fläktarna mot en radialfläkt som jag hoppas har ett högreflöde.
Sen gäller det att man kommer ihåg att parkera bilen med rumpan mot solen så att solpanelen håller
igång fläkten. Den verkar tömma batteriet ganska snabbt 2-3 tim och jag vill nog inte hiva i något större batteri. Vi får se hur det går med allt i sommar.

Filbytesvarning-Döda-vinkeln-varning eller vad det nu heter.

Det var egentligen bara ett laptopbatteri jag skulle köpt från 24.se men det blev ett backvarningssystem till. Det var ju Rea....
Monterade 2 av sensorerna på sidan av bakre kofångaren och aktiverar dom med blinkersspaken.










Nu är ju inte ultraljudsensorer det bästa att ha vid högrefarter, räckvidden blir kortare
och vid lägrefarter så kan man få lite tjuvlarm vid häckar och staket i villaområden. Men man slipper vrida på nacken nu när man kryssar igenom köerna...he  he.

GPS tracking med GSM tracking.

Kryptisk rubrik men jag köpte en sånhärninga liten lattjo pryl.

Som visade sig att den använder GSM masterna som positionering.
Man kan skicka SMS till den för att få positionen som svar eller om
man går in på hemsidan för att se positionen, funkar hyfsat bra.
Den kostar inte så många kronor, man får det man betalar för.
Sen tänkte jag modifiera den med att byta ut SOS knappen mot ett
relä som aktiveras vid larm. Men med ytmonterade småknappar och dålig syn
så lyckades jag sprätta bort knappen ihop med kopparbanan den satt på....
Provat den med att den ska ladda under körning men efter en vecka fick
man ett SMS om dåligt batteri. Så kopplade in den för konstant laddning
och den drar 11mA med uppladdat internbatteri. Det borde bilbatteriet klara.
Sen gäller det att gömma den på något smart ställe utan att tappa GSM signalen.
Men det avslöjar jag inte vart den hamnat i bilen.

Rattknappsbelysning

Nu i vinter har jag saknat någonslags belysning i rattknapparna.
Så nu när våren närmar sig så sitter 2 gröna lysdioder bakom rattknapparna en på varje sida.
Bättre sent en aldrig..
Dom ersätter det 2,2kohm motståndet som sitter parallellt med knapparna.
Se schema från tidigare inlägget om rattknapparna..
Jag kopplade bara bort en sida av motståndet så jag vet var jag har det om man ångrar sig. Där kopplades minus på dioden. Under kortet nära yttersidan borrad jag ett 5mm hål för lysdioden, fick byta till en ljusintensiv diod 18000 mcd.
Så att den lyser upp ytterkanten av knapparna ordentligt.
 På den andra sidan av motståndet kopplas 2 gula kablar in en till diodens positiva sida och den andra över till den andra knapp satsen. Där den gula kopplades in direkt på diodens positiva sida också. Och sedan en svart kabel till en jord punkt på den sidan.
Lätt som en plätt eller...

 Jovars man får klippa bort lite plast så att man inte klämmer kablarna till
dioderna. Det svettiga är väl att koppla bort batteriet och demontera krockkudden. Man kan demontera knapparna med krockkudden kvar men
batteriet ska kopplas bort ändå.
Jag har inte behövt modifiera mjukvaran för andra spänningsnivåer på
rattknapparna så rent teoretiskt skulle man kunna modifiera knapparna i og95an och og93an på sammasätt men dom kanske har snävare toleranser på nivåerna och det är inget jag provat. Man kan ju passa på att göra rent dom guldpläterade kontaktytorna när man ändå är där och grottar.

Konvertering till E85 (Etanol) i T5-suite.

Det finns en wizard i T5-suite för att konvertera mjukvaran till Etanol drift.  Länk: Manualer mm.
Nu är det väl många som sätter kaffet i halsen i förskräckelse men jag tycker att den fungerar bra
med lite modifiering av kallstarts egenskaperna. Sedan kan man ju finlira lite själv om man har kunskap. Beskrivning finns i T5Suite2 User Manualen. Man kan passa på att köra wizarden för ett Steg 1 när man håller på så får man lite mer krut i kärran också. För modifiering av kallstarts egenskaperna får man söka på "enrichment" under Cranking hittar man Startvev_fak! som man får öka på vid kallare temperaturer. (Jag brukar fylla på med 10 liter bensin när tempen är lägre än -20 grader, feg som man är.) Byte av tändstift NGK BCPR7ES-11 och byte av soppa filter efter ett par 100 mil är dom hårdvarukrav som krävs.

2023-03 Inköpt Denso IQ22 Iridium tändstift som kommer att monteras i sommar.

Fungerar utmärkt i 9-5an och ersätter BCPR7ES stiften.



Tänk på att inte röra orginalboxen utan läs bara ur programvaran i från den. Sedan tar man och läser in programet med modifikationerna i den nya boxen. Kontrollera i Action och Trionic Option att VSS
koden är samma som i orginalboxen, Annars blir den svårstartad med eller utan Etanol.
Varva upp motorn runt 3000 varav i ett par sekunder och låt den sedan reglera på tomgång och repetera 2-3 gånger (en liten grund adaption så att den blir mer körbar efter en omprogramering.)
Sen är det bara att åka iväg och tanka E85. Något för "miljö"knuttarna att sponsra.
För dom som kör sällan och korta sträckor så antar jag att det inte lönar sig med en konvertering.

Ombyggnad till T7 ventil

Om man har T5-suite och lite lödkunskaper så kan man bygga om ECU-boxen så att man kan använda T7 ventilen ifrån og9-5 och og9-3. Både billigare och mer hållbar än T5 ventilen.
Det mesta står i T5-suite manualen så där kommer bilderna ifrån.
Om lödning i boxen man ska lyfta pin 5 på en IC-krets. Med en smal skalpell och smal lödspets så
värmer man samtidigt som man lyfter upp benet med skalpell spetsen. Har man lite smal krympslang kan man trä på det på benet så att den inte får kontakt med något runt om.
Sedan ska man kortsluta 2 löd öar. Jag brukar ta ett motstånds ben och löder fast det och knipsar av resten.

Sedan ska man koppla bort en kabel till T7-ventilen som bara använder 2 st. Här tog jag fram dom smala kabelskorna och vulktejp igen och använde till T7 kabeln som jag fick med ifrån skroten.
Sedan satte jag fast T7-ventilen med plåtskruv och plåtband så att den blev så mycket gummi upphängd som möjligt. Den har en tendens att smattra som en diesel annars.

Dags för modifieringen av mjukvaran. Man får söka på"frekv" och då dyker dom 2 parametrarna fram som man måste ändra. Frekv_230! och Frekv_250!.

Sedan är det bara att tuta och köra......

T5 suite SFI connector

Så här ser den kontakten ut som jag gjort för att koppla in i SFI kontakten.
Inte direkt snyggt men funkis.


D-Sub kontakten som kopplas till Lawicel CANbus adaptern.
Och kontakten för programerings spänning.
Har inte kopplat 12 volt det får ECUn ifrån bilen ändå.


Inkopplingen till Laptop batteriet.
På den kabeln som sitter fast monterad i bilen sitter en lysdiod som visar att det finns spänning på programeringskabeln.









Uppdatering:
Can-H and Can-L twisted pair used a networkcable ex. blue and blue-white.
120 ohm resistor at the D-sub connector. If there is communication problems.
(Always have the original box as a spare if you program the box.)