Volvo Community Forum. The Forums of the Volvo Owners Club

Forum Rules Volvo Owners Club About VOC Volvo Gallery Links Volvo History Volvo Press
Go Back   Volvo Owners Club Forum > "Technical Topics" > LPG, CNG & LNG - General Info and Issues

Notices

LPG, CNG & LNG - General Info and Issues Share experiences and problems

Information
  • VOC Members: There is no login facility using your VOC membership number or the details from page 3 of the club magazine. You need to register in the normal way
  • AOL Customers: Make sure you check the 'Remember me' check box otherwise the AOL system may log you out during the session. This is a known issue with AOL.
  • AOL, Yahoo and Plus.net users. Forum owners such as us are finding that AOL, Yahoo and Plus.net are blocking a lot of email generated from forums. This may mean your registration activation and other emails will not get to you, or they may appear in your spam mailbox

Thread Informations

FAQ Faults & Tips for factory Volvo Bifuel LPG / CNG

Views : 56972

Replies : 40

Users Viewing This Thread :  

Reply
 
Thread Tools Display Modes
Old Aug 28th, 2021, 18:40   #31
happybunny50
New Member
 

Last Online: Sep 19th, 2023 20:55
Join Date: Aug 2013
Location: London
Default Lpg cng

Thanks for all this information. I currently have a lpg bifuel which immediately dies when i switch to LPG, (it does not revert to petrol).
Apparently when in petrol the car has 12 volts but when I switch over it only gets 8 volts.
happybunny50 is offline   Reply With Quote
The Following User Says Thank You to happybunny50 For This Useful Post:
Old Oct 2nd, 2021, 17:34   #32
CNGBiFuel
Classic P80 1999 BiFuel
 

Last Online: Jul 17th, 2024 11:31
Join Date: Aug 2012
Location: 48mph Middle Lane M4
Default

Quote:
Thanks for all this information...
I switch over it only gets 8 volts.
That's nice to know. This is an information thread, if that is apparent to you, and it is, why would you attempt to mess-up the thread for all?

Now we've to bother the admin to delete this post.
__________________
Bifuel V70 Classic 1999 [The Old Grumpy in the Corner, "When I was a lad... blah, bl**dy blah."]
CNGBiFuel is offline   Reply With Quote
The Following User Says Thank You to CNGBiFuel For This Useful Post:
Old Oct 9th, 2021, 22:20   #33
Andrewrennard
New Member
 

Last Online: Dec 8th, 2021 16:19
Join Date: Sep 2021
Location: Darlington
Default

Dear forum members I am reaching out to you knowledgeable fellows .I am the owner of a 2005 volvo s60 bi fuel CNG model I have relocated my gas distributor and had the stepper motor refurbished. My dilemma is I sent the old step motor away with the piston attached. When I received the refurbished step motor back the piston was with it but not attached how do I connect the piston to the arm of the stepper motor ..???
Andrewrennard is offline   Reply With Quote
Old Dec 23rd, 2021, 13:20   #34
Russki
Junior Member
 

Last Online: Apr 27th, 2023 16:57
Join Date: Feb 2017
Location: Gloucester
Default

Haven't been here for a while. I can share some documentation about Koltec system fitted to Volvos. It is a pretty good guide. The only trick is that its is in russian. If you can't read Russian please use Google translate. Hope it helps
Attached Files
File Type: pdf koltec.pdf (948.3 KB, 32 views)
Russki is offline   Reply With Quote
Old Aug 14th, 2024, 16:05   #35
dikidera
Member
 

Last Online: Yesterday 18:43
Join Date: Nov 2022
Location: None
Default

Some components of the CNG distributor PCB:

Two (potentially) 4946 Dual P-Channel 60-V mosfets.
Two (potentially) 4948 Dual N-Channel 60 V mosfets.
One BL05A - High-side Power Switch IC
One big tantalum capacitor 68535K

On the other side of the PCB:

One PIC microcontroller PIC16C622A with a program stored inside. Will dump later.
One crystal oscillator, potentially 8Mhz, not measured yet.


Last edited by dikidera; Aug 14th, 2024 at 16:13.
dikidera is offline   Reply With Quote
Old Aug 18th, 2024, 17:35   #36
dikidera
Member
 

Last Online: Yesterday 18:43
Join Date: Nov 2022
Location: None
Default

Quote:
Originally Posted by dikidera View Post
Some components of the CNG distributor PCB:

Two (potentially) 4946 Dual P-Channel 60-V mosfets.
Two (potentially) 4948 Dual N-Channel 60 V mosfets.
One BL05A - High-side Power Switch IC
One big tantalum capacitor 68535K

On the other side of the PCB:

One PIC microcontroller PIC16C622A with a program stored inside. Will dump later.
One crystal oscillator, potentially 8Mhz, not measured yet.

The PCB is/was produced by SONCEBOZ. If you open up this link you will find pretty much the same stepper motor, albeit without driver. https://sonceboz.com/product/flowregulation/
dikidera is offline   Reply With Quote
Old Aug 25th, 2024, 10:45   #37
dikidera
Member
 

Last Online: Yesterday 18:43
Join Date: Nov 2022
Location: None
Default

I have not tested yet, but there is a very high likelihood that the PIC microcontroller has copy protection set, meaning one cannot dump the firmware. If this is the case, even if we could replicate the PCB and it's components in order to use it with third party steppers, we lack the original control logic that processes the ECU PWM signal and also outputting the return signal. In this scenario we need new open source logic that mimics the original 1:1 for the stepper motor driving.

I will know more in the following days probably. Additionally we do not know how well the logic is controlling the stepper, is it interpolated steps for finer precision(I think it's called microsteps) or more rough stepping.

As for the stepper motor itself, we do not know the properties of the original. Length is stepper motor piston/screw, the rated speed etc.

Last edited by dikidera; Aug 25th, 2024 at 10:52.
dikidera is offline   Reply With Quote
Old Sep 9th, 2024, 22:56   #38
dikidera
Member
 

Last Online: Yesterday 18:43
Join Date: Nov 2022
Location: None
Default

On the bench with an arduino sketch and some reverse engineering I have determined that the base operation frequency is 175hz(180 and 185hz also work) of a single-pulse PWM wave. This means the pwm pulse is sent ONCE and then immediately stopped. It also might be inverted, but do not quote me on this.

Again I must remind you that there is a whole microprocessor on the board and it could be doing other things as well.

There seems to be an occasion where the frequency might be different, but the reason is rooted deeply in Denso code.

In some instances, the frequency may become an odd number of 291.66hz, but this could be something related to the internal clock of the Denso SH7055 microprocessor, so the base frequency could potentially still be 175hz(or 180 or 185hz).

My bruteforce attempts produced nothing between 2500hz and 190. No reaction of the stepper. It's physical limits are 16-83% duty cycle as stated in VIDA, beyond this the stepper motor becomes undone, the spring becomes a projectile. It can still be assembled though, I know, I did it.

Both coils of the stepper measure 45-47 ohms of resistance. I will soon disassemble the stepper again to measure the spring, the shaft etc. With all of this we could potentially build our own steppers to replace this aging garbage.
dikidera is offline   Reply With Quote
Old Sep 12th, 2024, 18:09   #39
dikidera
Member
 

Last Online: Yesterday 18:43
Join Date: Nov 2022
Location: None
Default

I have done more testing.

I recently bought a generic Magnetti Marelli stepper motor with part number 820003395010.

I have done some visual comparisons and physical and will attach photos.

The generic stepper on the left of the image(pardon the dirty table) has a slightly shorter shaft/pintle/screw-head in terms of threads, but a slightly more sharp edge that is longer than our original one. It's coils measure 53 ohms versus the 43/45-47 from the original stepper.

The springs measure the same height but as for spring force, I would say our original stepper has a slightly harder spring, but not by much.

I have also written the following arduino sketch, courtesy of ChatGPT as it was faster and verified with an oscilloscope. The Arduino sketch works with an ordinary Uno and simulates the PWM signal sent from Denso to the stepper motor driver board which controls the stepping.

Additionally I have tested that the original driver board works and controls the generic stepper same as the other one. The only thing left is to measure the difference between maximum open and close between each.

As for dumping the PIC micro, I have not yet tried, I have little hope it's unlocked, but if it is, it would be a welcome surprise. If not, new logic and board need to be designed.

Code:
// Constants for Timer1
const int pwmPin = 9;   // Pin 9 is controlled by Timer1
float frequency = 175;  // Initial PWM frequency in Hz

void setup() {
  // Set pin 9 as an output
  pinMode(pwmPin, OUTPUT);

  // Start serial communication for printing
  Serial.begin(9600);

  // Enable the PWM signal
  enablePWM(frequency);
}

void loop() {
  // Loop to iterate between 20% and 83% duty cycle
  float duty = 15.8;
  //for (int duty = 80; duty >= 0; duty -= 25) {
    enablePWM(frequency);


    // Calculate OCR1A value based on duty cycle percentage
    OCR1A = (ICR1 * duty) / 100;
    delay(70);
    stopPWM();
    // Calculate the high time in milliseconds (to verify the duty cycle is correct)
    float period = 1000.0 / frequency;  // PWM period in milliseconds
    float highTime = (duty / 100.0) * period;  // High time in milliseconds (time pin is HIGH)

    // Print the duty cycle, high time, and frequency for verification
    Serial.print("Duty Cycle: ");
    Serial.print(duty);
    Serial.print("%, Frequency: ");
    Serial.print(frequency);
    Serial.print(" Hz, High Time: ");
    Serial.print(highTime);
    Serial.println(" ms");

    // Wait for some time before changing the duty cycle again
    //delay(100);  // Adjust the delay as needed

    while(1);
  //}

  // After the loop, stop the PWM signal
 
}

// Function to enable the PWM signal
void enablePWM(float freq) {
  // Clear Timer1 control registers
  TCCR1A = 0;
  TCCR1B = 0;

  // Set PWM mode to Phase Correct PWM with ICR1 as TOP
  TCCR1A |= (1 << COM1A1);   // Non-inverting mode for OC1A (pin 9)
  TCCR1A |= (1 << WGM11);    // Set WGM11 to 1 for Phase Correct PWM mode
  TCCR1B |= (1 << WGM13);    // Set WGM13 to 1 for Phase Correct PWM with ICR1 as TOP
  TCCR1B |= (1 << CS11) | (1 << CS10);    // Prescaler set to 64

  // Set the PWM frequency dynamically based on the 'frequency' variable
  setPWMFrequency(freq);

  // Print a message to confirm PWM has started
  Serial.println("PWM Enabled");
}

// Function to set the PWM frequency by updating ICR1 based on the 'frequency' variable
void setPWMFrequency(float freq) {
  // Calculate ICR1 value based on the given frequency for Phase Correct PWM
  ICR1 = (16000000 / (2 * 64 * freq)) - 1;  // Note the factor of 2 for phase correct mode

  // Print the updated frequency and ICR1 value for debugging purposes
  Serial.print("Updated Frequency: ");
  Serial.print(freq);
  Serial.print(" Hz, ICR1: ");
  Serial.println(ICR1);
}

// Function to stop PWM signal generation
void stopPWM() {
  // Clear the COM1A1 bit in TCCR1A to stop PWM output on pin 9
  TCCR1A &= ~(1 << COM1A1);

  // Optionally stop the timer by clearing the prescaler bits in TCCR1B
  TCCR1B &= ~(1 << CS11);  // Stop the timer by clearing the prescaler bits
  TCCR1B &= ~(1 << CS10);

  // Set the pin to LOW to ensure the signal is off
  digitalWrite(pwmPin, LOW);

  // Print a message to confirm PWM has stopped
  Serial.println("PWM Stopped");
}

dikidera is offline   Reply With Quote
Old Sep 18th, 2024, 17:42   #40
dikidera
Member
 

Last Online: Yesterday 18:43
Join Date: Nov 2022
Location: None
Default

Update, notice in the images above there is in fact one big difference, the o-ring does not have a groove like the original, so in fact that stepper is incompatible, but I have another one that does, but it had a shorter screw lead, so I swapped it from the Magnetti Marelli, should it work as-is without requiring re-calibration of the stepper motor maps, I will post info later.
dikidera is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 10:40.


Powered by vBulletin
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.