W126 300SE för söndagsåkning

Här visar och dokumenterar vi våra projekt. Endast för Mercedes modeller.
User avatar
aroncbds
Nästan Guru
Nästan Guru
Posts: 2219
Joined: Sat 06 Sep, 2008 20:02
Contact:

Re: W126 300SE för söndagsåkning

Postby aroncbds » Mon 25 May, 2015 08:44

torake wrote:Bilen är inte längre till salu, förresten. Jag har redan förhört mig om förvaring till nästa vinter. :mrgreen:
Härligt! :mrgreen:
Vad ska du göra åt reläet? Ska du felsöka den eller byta ut den helt?
Aron - Programmerare - garaget.org/aroncbds

Mercedes-Benz - A little bit of practical poetry...

Nuvarande:
S210 320 CDI - 2001
W210 300 DT - 1999 (Till projekttråd)
W124 200 D - 1992 (Till projekttråd)
W114 250CE - 1972 "3.0-edition" (totalrenoverad - Till fotoalbum, Till projekttråd)
W115 240D 3.0 1975

Gamla:
S210 220 CDI - 1999
W124 300 DT - 1992
W114 250CE - 1971
W115 240D 3.0 - 1975
W123 300D - 1977
W123 240D - 1979

torake
Guru
Guru
Posts: 7207
Joined: Tue 07 Jul, 2009 12:45
Location: Åkersberga

Re: W126 300SE för söndagsåkning

Postby torake » Mon 25 May, 2015 10:22

aroncbds wrote:
torake wrote:Bilen är inte längre till salu, förresten. Jag har redan förhört mig om förvaring till nästa vinter. :mrgreen:
Härligt! :mrgreen:
Vad ska du göra åt reläet? Ska du felsöka den eller byta ut den helt?


Image

Hittade några lödningar med "ring of death" och lödde om dem - inget resultat.

Ett nytt relä kostar nästan 3 papp så det blir det inget med så länge de övriga funktionerna är okej, alltså bränslepumpdrivning och varvstopp.

Däremot funtar jag på en s.k. FGS (First Gear Start)-modul, och jag tror att jag kan bygga en själv. Tanken är så här - jag plockar in varvtalssignal, pulserna från en av ABS-sensorerna, kickdownkontaktens läge och körprogramsväljaren (S,E) in i ett Arduino-kort. Därifrån styr jag sedan i programvara kickdownsolenoiden.

Så, kickdownsolenoiden aktiverar jag om något av följande är sant:
1. Kickdownkontakten är intryckt (gasen i botten) OCH varvtalet är under 5700rpm (kickdownreläts funktion)
2. S är valt OCH hastigheten är under 18km/h OCH hastigheten är ökande med en viss gradient (acceleration)
3. S är valt OCH hastigheten är < 5km/h

Vitsen är att utnyttja alla stegen i lådan, ettan kan ju vara kul att använda vid parkeringsmanövrer. Blir också mer som en 5G-tronic i karaktären.

Funderade också på en rattpaddel där man kan välja att växla ned motsvarande kickdown i förebyggande syfte, t.ex. vid en omkörning när man ligger i redoläge och väntar på att mötande skall passera, så att när man väl trycker på så ligger rätt växel redan i. Men där någonstans tyckte jag det började spåra ur.

Nästa steg är lite experimenterande. 8)

Mercedeslös :: Tesla Model 3 SR+ -19
:: Kilometerkoll.se - körjournal i mobilen ::

torake
Guru
Guru
Posts: 7207
Joined: Tue 07 Jul, 2009 12:45
Location: Åkersberga

Re: W126 300SE för söndagsåkning

Postby torake » Thu 28 May, 2015 14:53

Nybes idag U.A.

Besiktningskillarna som var obetydligt äldre än bilen var förbluffade över att den var så fräsch, speciellt inuti. De fipplade på alla knappar och lyckades spruta spolarvätska i håret på sig själva eftersom takluckan var öppen och TROTS att jag sade till den ene att stänga luckan först. :lol:

Nu är det två år till nästa besiktning. Sidoblinkersarna har blivit förpassade till en påse i garaget.
Image

Mercedeslös :: Tesla Model 3 SR+ -19
:: Kilometerkoll.se - körjournal i mobilen ::

User avatar
aroncbds
Nästan Guru
Nästan Guru
Posts: 2219
Joined: Sat 06 Sep, 2008 20:02
Contact:

Re: W126 300SE för söndagsåkning

Postby aroncbds » Thu 28 May, 2015 15:05

torake wrote:Nybes idag U.A.

Besiktningskillarna som var obetydligt äldre än bilen var förbluffade över att den var så fräsch, speciellt inuti. De fipplade på alla knappar och lyckades spruta spolarvätska i håret på sig själva eftersom takluckan var öppen och TROTS att jag sade till den ene att stänga luckan först. :lol:

Nu är det två år till nästa besiktning. Sidoblinkersarna har blivit förpassade till en påse i garaget.
Image

Haha, underbart! :-) Ska du åka på någon träff med den i sommar?
Aron - Programmerare - garaget.org/aroncbds

Mercedes-Benz - A little bit of practical poetry...

Nuvarande:
S210 320 CDI - 2001
W210 300 DT - 1999 (Till projekttråd)
W124 200 D - 1992 (Till projekttråd)
W114 250CE - 1972 "3.0-edition" (totalrenoverad - Till fotoalbum, Till projekttråd)
W115 240D 3.0 1975

Gamla:
S210 220 CDI - 1999
W124 300 DT - 1992
W114 250CE - 1971
W115 240D 3.0 - 1975
W123 300D - 1977
W123 240D - 1979

torake
Guru
Guru
Posts: 7207
Joined: Tue 07 Jul, 2009 12:45
Location: Åkersberga

Re: W126 300SE för söndagsåkning

Postby torake » Thu 28 May, 2015 17:37

aroncbds wrote:Haha, underbart! :-) Ska du åka på någon träff med den i sommar?


Inget planerat!
Är inte så sugen på att visa upp bilen innan dörrarna blivit omlackade och det är långt borta just nu.

Mercedeslös :: Tesla Model 3 SR+ -19
:: Kilometerkoll.se - körjournal i mobilen ::

vazman 67
Expert
Expert
Posts: 425
Joined: Sun 10 Jul, 2005 12:53
Location: Norrbotten

Re: W126 300SE för söndagsåkning

Postby vazman 67 » Sun 31 May, 2015 17:56

Kan relä passa från en 300 SE-88? plockar isär en nu

torake
Guru
Guru
Posts: 7207
Joined: Tue 07 Jul, 2009 12:45
Location: Åkersberga

Re: W126 300SE för söndagsåkning

Postby torake » Sun 31 May, 2015 22:11

En 88 har den katalysator? Då passar inte relät. Det skall heta 0025452705, det står 6Zyl och varvstoppet i rpm (6350) på den och så står det "Kickd." för kickdown.

Men det är lite överspelat nu, jag har "uppgraderat" datakraften i bilen med ungefär 1000% :mrgreen: Den lilla svarta lådan till vänster. Image

Image

Jag kan med styrdatorn ta över inte bara kickdownfunktionen utan även bränslepumpstyrning, klimarelät och ett par funktioner till. Är bara antalet portar och transistorsteg jag orkar löda dit som styr...

Mercedeslös :: Tesla Model 3 SR+ -19
:: Kilometerkoll.se - körjournal i mobilen ::

User avatar
aroncbds
Nästan Guru
Nästan Guru
Posts: 2219
Joined: Sat 06 Sep, 2008 20:02
Contact:

Re: W126 300SE för söndagsåkning

Postby aroncbds » Mon 01 Jun, 2015 07:00

Läckert! :-) Vad är det för produkt? Eller har du designat sen själv från grunden? :-)
Aron - Programmerare - garaget.org/aroncbds

Mercedes-Benz - A little bit of practical poetry...

Nuvarande:
S210 320 CDI - 2001
W210 300 DT - 1999 (Till projekttråd)
W124 200 D - 1992 (Till projekttråd)
W114 250CE - 1972 "3.0-edition" (totalrenoverad - Till fotoalbum, Till projekttråd)
W115 240D 3.0 1975

Gamla:
S210 220 CDI - 1999
W124 300 DT - 1992
W114 250CE - 1971
W115 240D 3.0 - 1975
W123 300D - 1977
W123 240D - 1979

torake
Guru
Guru
Posts: 7207
Joined: Tue 07 Jul, 2009 12:45
Location: Åkersberga

Re: W126 300SE för söndagsåkning

Postby torake » Mon 01 Jun, 2015 08:51

aroncbds wrote:Läckert! :-) Vad är det för produkt? Eller har du designat sen själv från grunden? :-)


Det är en Atmega328 på en arduino-uno-kompatibel bräda, med en LM2596 spänningsregulator samt fem egendesignade transistorsteg för in- och utsignaler. Två externa 12V-relän för att driva större laster.

Image

Tror den är kompatibel med din fläktregulator, eller hur?
Hade jag gjort om den hade jag använt samma LM2596, fast en Arduino Nano (-kompatibel) och ett färdigt reläkort för att spara tid och plats.

Mercedeslös :: Tesla Model 3 SR+ -19
:: Kilometerkoll.se - körjournal i mobilen ::

User avatar
aroncbds
Nästan Guru
Nästan Guru
Posts: 2219
Joined: Sat 06 Sep, 2008 20:02
Contact:

Re: W126 300SE för söndagsåkning

Postby aroncbds » Mon 01 Jun, 2015 09:32

torake wrote:
aroncbds wrote:Läckert! :-) Vad är det för produkt? Eller har du designat sen själv från grunden? :-)


Det är en Atmega328 på en arduino-uno-kompatibel bräda, med en LM2596 spänningsregulator samt fem egendesignade transistorsteg för in- och utsignaler. Två externa 12V-relän för att driva större laster.

Image

Tror den är kompatibel med din fläktregulator, eller hur?
Hade jag gjort om den hade jag använt samma LM2596, fast en Arduino Nano (-kompatibel) och ett färdigt reläkort för att spara tid och plats.
Haha, now we're talkin! ;-) Använder du interrupts eller kör du pollat? Vore enormt kul att se din firmware! :-)
Aron - Programmerare - garaget.org/aroncbds

Mercedes-Benz - A little bit of practical poetry...

Nuvarande:
S210 320 CDI - 2001
W210 300 DT - 1999 (Till projekttråd)
W124 200 D - 1992 (Till projekttråd)
W114 250CE - 1972 "3.0-edition" (totalrenoverad - Till fotoalbum, Till projekttråd)
W115 240D 3.0 1975

Gamla:
S210 220 CDI - 1999
W124 300 DT - 1992
W114 250CE - 1971
W115 240D 3.0 - 1975
W123 300D - 1977
W123 240D - 1979

torake
Guru
Guru
Posts: 7207
Joined: Tue 07 Jul, 2009 12:45
Location: Åkersberga

Re: W126 300SE för söndagsåkning

Postby torake » Mon 01 Jun, 2015 11:13

aroncbds wrote:Haha, now we're talkin! ;-) Använder du interrupts eller kör du pollat? Vore enormt kul att se din firmware! :-)


Firmwaren håller på att ta form i mitt huvud för närvarande. Just nu har jag bara en pollande loop som räknar pulser på ingångarna och skriver ut frekvenser på seriekonsolen.

Behöver inga interrupt i den här applikationen tror jag, utan det går nog att polla. Däremot blir ju reglerloopen lite knepig eftersom den skall passa både lugn och våldsam körning och allt däremellan, med bara hastighet och varvtal som input.

Har du mätt hur snabbt atmegan snurrar i en loop där man gör ett fåtal operationer och sedan en kortare delay t.ex. delay(1)? Är det nära 1000 loopar/sekund eller är det väsentligt lägre/högre? Frågar eftersom jag får rpm-signalen till 40Hz på tomgång, och det skulle motsvara 800rpm...

Mercedeslös :: Tesla Model 3 SR+ -19
:: Kilometerkoll.se - körjournal i mobilen ::

svnartis
Proffs
Proffs
Posts: 216
Joined: Sat 07 Sep, 2013 20:40

Re: W126 300SE för söndagsåkning

Postby svnartis » Tue 02 Jun, 2015 05:45

När ska ni börja tala svenska igen i den här tråden? :shock:

User avatar
aroncbds
Nästan Guru
Nästan Guru
Posts: 2219
Joined: Sat 06 Sep, 2008 20:02
Contact:

Re: W126 300SE för söndagsåkning

Postby aroncbds » Tue 02 Jun, 2015 07:45

torake wrote:
aroncbds wrote:Haha, now we're talkin! ;-) Använder du interrupts eller kör du pollat? Vore enormt kul att se din firmware! :-)


Firmwaren håller på att ta form i mitt huvud för närvarande. Just nu har jag bara en pollande loop som räknar pulser på ingångarna och skriver ut frekvenser på seriekonsolen.

Behöver inga interrupt i den här applikationen tror jag, utan det går nog att polla. Däremot blir ju reglerloopen lite knepig eftersom den skall passa både lugn och våldsam körning och allt däremellan, med bara hastighet och varvtal som input.

Har du mätt hur snabbt atmegan snurrar i en loop där man gör ett fåtal operationer och sedan en kortare delay t.ex. delay(1)? Är det nära 1000 loopar/sekund eller är det väsentligt lägre/högre? Frågar eftersom jag får rpm-signalen till 40Hz på tomgång, och det skulle motsvara 800rpm...
En avläsning av en digital ingång kostar en klockcykel på en Uno, motsvarande en 1/16-dels us (mikrosekund). En analog avläsning tar runt 100us, beroende på upplösning (hur du ställer in prescalern). Så loopcykelperioden är en funktion av vad du gör i loopen (antalet avläsningar, dess utförande samt eventuell övrig logik). Har du alternativa flöden i programmet, så kan det vara svårt att förutse/korrigera jittret som uppstår, vilket gör att CPU'n skulle kunna missa hårda deadlines för t. ex. kickdown. 1000 loopar/sekund låter realistiskt, men frågan är alltså vad du gör i loopen. :-)

Jag skulle nog spontant satsa på en interruptbaserad lösning med typ en Mega2560 och ArdOS eller FreeRTOS (lättvikts-RTOS för Arduinofamiljen, se länkarna nedan). Dessa kärnor kan köra flera processer och fördela CPU-n mellan dessa, samt stödjer också ett flertal IPC-mekanismer så som MUTEX-ar, FIFOs samt meddelandeköer, m.m. ATMegan skulle också göra testning och felsökning betydligt enklare, då 2560:an är betydligt generösare än 328:an i hårdvaruväg med större minne, fler serieportar, m.m. Som exempel kan jag nämna att på min 328-baserade golvvärmestyrning tog felsökningen/monitoreringen via serieporten så mycket CPU-tid att jittret satte hela ventilstyrningen ur spel, så jag loggade applikationsdatan till en I2C-baserad EEPROM i stället, vars innehåll jag sedan dumpade efterhand. :-)

https://bitbucket.org/ctank/ardos-ide/wiki/Home
http://sourceforge.net/projects/avrfreertos/
Aron - Programmerare - garaget.org/aroncbds

Mercedes-Benz - A little bit of practical poetry...

Nuvarande:
S210 320 CDI - 2001
W210 300 DT - 1999 (Till projekttråd)
W124 200 D - 1992 (Till projekttråd)
W114 250CE - 1972 "3.0-edition" (totalrenoverad - Till fotoalbum, Till projekttråd)
W115 240D 3.0 1975

Gamla:
S210 220 CDI - 1999
W124 300 DT - 1992
W114 250CE - 1971
W115 240D 3.0 - 1975
W123 300D - 1977
W123 240D - 1979

torake
Guru
Guru
Posts: 7207
Joined: Tue 07 Jul, 2009 12:45
Location: Åkersberga

Re: W126 300SE för söndagsåkning

Postby torake » Tue 02 Jun, 2015 09:40

Här är en programvara som räknar pulserna snarare än att mäta tiden mellan pulser. Då blir reglerloopen minst 250ms lång för att få lite upplösning på hastighet och varvtal.

Code: Select all



#define UPSHIFT_FREQ   17 // 17km/h assuming observation time is 250ms
#define DOWNSHIFT_FREQ 12 // 12km/h
#define REV_LIM_LOW    84 // 3400rpm, we must go below this before kickdown is reactivated (hysteresis)
#define REV_LIM_HIGH   95 // 3800rpm but (due to low sampling frequency?) the signal is not accurate near and above 100
#define DOWNSHIFT_PIN  8
#define KICKDOWN_PIN   9
#define SPEED_PIN      2
#define RPM_PIN        4
#define PRG_PIN        7

int freq_rpm;
int freq_spd;
int freq_rpm_next;
int freq_spd_next;


int kickdown_enabled;
int downshift_active;

int counter[3];
int prevfq[2];
int nextfq[2];
int prevstate[2];


// the setup function runs once when you press reset or power the board
void setup() {
  int i;
 
  for (i=0;i<3;i++)
   counter[i]=0;
  for (i=0;i<2;i++) {
   prevstate[i]=0;
   prevfq[i]=0;
   nextfq[i]=0;
  }
   
   
  pinMode(SPEED_PIN, INPUT);
  pinMode(RPM_PIN, INPUT);
  pinMode(PRG_PIN, INPUT);

  // initialize digital pin 13 as an output.
  pinMode(13, OUTPUT);
  pinMode(DOWNSHIFT_PIN, OUTPUT);
  pinMode(KICKDOWN_PIN, OUTPUT);
  Serial.begin(9600);
  kickdown_enabled = 0;
  digitalWrite(KICKDOWN_PIN,LOW);
  downshift_active = 0;
  digitalWrite(DOWNSHIFT_PIN,LOW);
}

int update_freq(int measure) {
  int instate7 = digitalRead(7);
  int instate4 = digitalRead(4);
  int instate2 = digitalRead(2);
  if (instate2 != prevstate[0])
    counter[0]++;
  if (instate4 != prevstate[1])
    counter[1]++;
  prevstate[0] = instate2;
  prevstate[1] = instate4;
  counter[2]++;
  if (counter[2] >= measure) {

    freq_spd=counter[0];
    freq_spd_next=freq_spd*2-prevfq[0]; // extrapolate - we use this value when time is important
    prevfq[0]=counter[0];
    counter[0]=0;

    freq_rpm=counter[1];
    freq_rpm_next=freq_rpm*2-prevfq[1];
    prevfq[1]=counter[1];
    counter[1]=0;

    counter[2]=0;
    return(1);
  }
  return(0);
}

void print_state() {
  Serial.print(freq_spd);
  Serial.print(" ");
  Serial.print(freq_spd_next);
  Serial.print("\t");
  Serial.print(freq_rpm);
  Serial.print(" ");
  Serial.print(freq_rpm_next);
  Serial.print("\t");
  if (downshift_active) {
    Serial.println("1ST");
  } else {
    Serial.println("");
  }
}

// the loop function runs over and over again forever
void loop() {
 
  if (update_freq(250)) {// 4 times per sec counting both flanks gives a frequency value corresponding to km/h
    digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
    print_state();
  } else {
    digitalWrite(13, LOW);
  }
 
  // The shift hysteresis would cause us to overshoot the desired shift point, so use the extrapolated value
  if (freq_spd_next > UPSHIFT_FREQ && downshift_active) {
    digitalWrite(DOWNSHIFT_PIN,LOW);
    downshift_active=0;
  }
  // only pull kickdown solenoid if engine actually is running
  if (freq_rpm > 0 && freq_spd <= DOWNSHIFT_FREQ && !downshift_active) {
    digitalWrite(DOWNSHIFT_PIN,HIGH);
    downshift_active=1;
  }
  // The shift hysteresis is not an issue since REV_LIM_HIGH << max rev.
  if (freq_rpm > REV_LIM_HIGH && kickdown_enabled) {
    digitalWrite(KICKDOWN_PIN,LOW);
    kickdown_enabled=0;
  }
  if (freq_rpm > 0 && freq_rpm <= REV_LIM_LOW && !kickdown_enabled) {
    digitalWrite(KICKDOWN_PIN,HIGH);
    kickdown_enabled=1;
  }
 
  delay(1);
}


Än så länge är programmet väldigt enkelt att läsa (= enkelt att felsöka, förutsäga och underhålla) men om inte detta räcker till då måste jag nog gå över till att mäta tiden mellan flankerna istället, då behöver jag interrupt och då måste jag också ändra hårdvaran...

Med en tidigare version som _inte_ predikterade frekvensen utan istället tog medelvärdet av föregående och nuvarande pulsräkning fick jag följande utseende på växlingarna:
Image
Den översta är vid lite kraftigare gaspådrag, den nedre är väldigt snällt pådrag.

Min analys är att:
- Hastigheten är bra att använda som indata, för då får man olika växlingspunkt varvtalsmässigt beroende på pådraget.
- Från det att man släpper solenoiden till dess att det växlar upp tar c:a 750ms.
- Växling 1-2 bör ske i normalfallet vid runt 2000rpm annars blir det obekvämt, den växlar ganska hårt!

Därför extrapolerar jag nu frekvensen och använder det extrapolerade värdet för att avgöra. Det plus att jag tar bort medelvärdesberäkningen gör att jag sparar två cykler, alltså 500ms vid hastigt pådrag. Så får jag provköra ikväll och se vad det blir...
Last edited by torake on Tue 02 Jun, 2015 22:50, edited 1 time in total.

Mercedeslös :: Tesla Model 3 SR+ -19
:: Kilometerkoll.se - körjournal i mobilen ::

KOWALSKI 1

Re: W126 300SE för söndagsåkning

Postby KOWALSKI 1 » Tue 02 Jun, 2015 10:57

Karlie wrote:Lägg lite granris inunder bilen med, så säkerställer du att bilen blir fri från nyfikna gnagare i vinter.


funkar det med granris under bilen vid vinterförvaring för att hålla råttor o annan ohyra båtta från bilen?
gillar dom inte att gnaga på granbarren eller är det doften från granbarren som fungerar avskräckande?


Return to “Våra projekt”

Who is online

Users browsing this forum: No registered users and 38 guests