Pelican Parts
Parts Catalog Accessories Catalog How To Articles Tech Forums
Call Pelican Parts at 888-280-7799
Shopping Cart Cart | Project List | Order Status | Help



Go Back   Pelican Parts Forums > Porsche Forums > 911 / 930 Turbo & Super Charging Forum


Reply
 
LinkBack Thread Tools Rate Thread
Author
Thread Post New Thread    Reply
Registered
 
Dr J's Avatar
 
Join Date: Apr 2008
Location: Miami
Posts: 961
Another digital WUR project Arduino

This is a long post about a recent project I've been tinkering with that I believe people on this board will enjoy: a digital WUR using an Arduino as the microprocessor controller.

How I got into This
For a while I used a digital WUR from UTCIS to control the fueling for my supercharged engine. As many others, I had a number of problems with this unit which caused me to become a semi-expert in fixing the thing. In the process, I also posted a wish list of what a DWUR should address, particularly, the use of AFRs as the controlled variable rather than control pressures. The unit I had was the second version with the more robust stepper motor. They have since gone to an injector to control the pressure.

While driving one day, the engine went way lean. I was barely able to pull over. Fortunately I was close enough to my house that I got a ride and put the mechanical WUR back to get home. When I checked the DWUR, I found that the valve was all the way at the end of travel and was stuck there. The stepper motor did not have enough torque to pull it out. I believe one of the sensors failed which led to this condition.

Upon some reflection I decided to reuse the aluminum block with the internal valve and make my own method of controlling the valve using my own microprocessor. Since I have been playing with an Arduino for a while I thought it would be perfect for the project.

UTCIS Stepper Mechanicals
The UTCIS stepper shaft is a 32 tpi screw which moves the valve in and out. The valve maximum range was 8 rotations of the stepper or 0.25 inch. In order to have control of the linear movement I first sourced a good hobby servo motor and devised a mechanism to convert the servo rotation to linear motion for the full range of the valve. I wanted a servo because once I calibrated position vs control pressure, no control pressure sensor would be needed. The UTCIS fuel line into the electronic box was one of my complaints of their product, as the hose inside burst on one occasion... But I digress. Moreover, with the servo approach I would know the expected control pressure so I can adjust it just before engine startup. I then interfaced the servo to the Arduino while having the fuel pressure gage attached to the CIS. While calibrating the control pressure vs the movement of the servo I found the following:

Usable control pressures ( between 0.8 and 4.5 bar) only required 0.1 inch of linear motion which is the equivalent of three rotations at 32 tpi. This was far too small a motion to control the servo accurately. Time to go back to the original stepper motor. His motor has 200 steps per revolution allowing for fine control of the control pressures.

Motor Control
Both the servo motor and later the stepper motor were powered via the same motor shield sold by seeedstudio ( yes- three ees in the name). Mine is version 1.3, which has now been superseded by a newer design. This connects straight onto the Arduino Uno and has pass throughs to access the other pins.

Arduino
The Arduino is a microprocessor board that is relatively user friendly and easy to program. It has digital pins for input and output, it can read and produce analog signals, and can also count pulses. In this case, I used the Arduino Uno board.

Sensors and Testing
To begin, I decided to reuse the sensors from UTCIS for fuel and MAP. The MAP sensor was damaged so I sourced another sensor. Ultimately I want to do away with the control pressure sensor and use an absolute position angle encoder to keep track of the position of the stepper. Interfacing the motor and sensors was easy using the analog pins of the Arduino. The sensors were calibrated and it all worked well. For temperature I used an LM35 temperature sensor rather than the sensor in the UTCIS. The LM 35 output is millivolts per degree C so 0.30 is 30 deg C.

Calibration
I remounted the system in the car and wrote some routines to allow me to determine how many steps to get to a certain control pressure and another to determine the backlash in the system and compensate. Then came the main programming.

WUR Simulation
The programming moves the motor to mimic the performance of the stock WUR during startup. It first checks the engine temp and determines if it needs a startup enrichment (and for how long). This imitates the role of the thermoswitch that cuts off vacuum to the WUR to richen the start. Second, it determines how long it needs to be in warm up mode, varying the control pressure from an initial pressure that depends on engine temp up to the 40 deg C temperature value of the control pressure. This simulates the increase in control pressure due to the heating of the bimetallic strip in the WUR.

AFR Control
When I decided to supercharge my car, one of the first things I did was to purchase an LM-2 AFR system. This system showed that the car used to run relatively lean, which is what led to the whole UTCIS purchase. The LM-2 system has been invaluable in trying to tune all of the control pressure tables of the UTCIS (a huge pain). The LM-2 also provides a programmable analog output that is proportional to the AFR based on the wideband O2 sensor. This provided a way to interface the AFR to an Arduino analog input.

Programming
The programming after warm up is conceptually very simple. Since the AFR can take 30 seconds or more to become active, the program uses a control pressure to match. This is not a problem since that is how the warm up is controlled with the stock WUR. Once the AFR becomes active, the program picks a target AFR, finds the difference between it and the actual AFR, and moves the number of steps necessary to get the two close enough. So far there are no tables. I am also not using engine RPM. The MAP sensor is used to pick one of three desired AFRs. Yes, three for now.

Problems that have been Overcome
A. Temperature for warm up- the temperature sensor had too much noise. This adversely affected the startup routine, sometimes kicking it out from the warm up routine prematurely. I ended up with an analog and digital filtering scheme that did the trick.

At first I would change the control pressure on warm up based on the WUR chart. Due to thermal inertia, the car was too rich for too long. I shifted to a time strategy, where the initial temperature sets the time of the startup and regular enrichment period.

B. Inherent lag- in past experiments with the UTCIS system I saw that it took 3 seconds for control pressure to go from 0.8 to 4.5 bar, which I deemed too slow. I move the stepper at a high rate but found that there is a delay in control pressure so I performed some step tests and found that the time constant is 0.7 sec on control pressure and about double with respect to AFR. So I inserted delays when moving the motor to wait for the effect. Otherwise the system is chasing its tail trying to correct a correction that hasn't reached its final value.

Current Status
The car starts on the first attempt, better than with the original UTCIS brain. Once again, no tables were used, just a linear equation. The warm up goes well and I can clearly see the AFRs being controlled as I accelerate and decelerate the vehicle. The car is completely useable again. There can still be some tweaking of the logic but now that everything is mounted, that is a breeze to do.

Future Additions
I have been using an Electromotive HPX unit to control ignition. I am able to read the signal output in the Arduino, but now want to implement timing control by sending a voltage to the MAP terminal of the HPX unit.

I have a water-meth system that has not been installed. I can use the Arduino to signal start/stop of the water-meth. (Or use it to progressively turn it on.)

During acceleration transition I am thinking of activating the cold start valve using the Arduino for the transient leanness associated with accelerating the car, or more precisely, with the opening of the throttle.

I may add engine RPM to refine the selection of a desired AFR more optimally.

I already have a three axis acceleration board which I plan to incorporate for fun.

I ordered a bluetooth module to see the outputs and control the system through the phone

I am adding a knob that will allow me to enrichen or lean the mixture on the fly, from the driver's seat or change the timing for finer tuning at different engine conditions and loads

I may add a screen output to show the data. I have a busted clock where I can put the future screen.

I may go from the plain Arduino to the Arduino Mega.

I may monitor other stuff and turn on a large warning light. E.g., engine temp, electrical system voltage, etc.

Way in the future, I may experiment using an inexpensive MAF and control the plunger at the fuel distributor directly as opposed to this setup which controls it indirectly via the digital WUR adjustment of control pressures.

Financial Outlay
So far the financial outlay has been minimal since I already had the more expensive supporting equipment for this project such as the LM-2, the HPX, and the busted UTCIS parts. I also had the Arduino and motor shield but both together they would cost less than $100. The accelerometer board I already had from before; the bluetooth and the Arduino mega are on the way!

I will post some pics at a later time.

__________________
1979 SC, Slant nose wide-body cab conversion. AEM Infinity EFI, COP, supercharged!
Old 11-01-2015, 12:48 PM
  Pelican Parts Catalog | Tech Articles | Promos & Specials    Reply With Quote #1 (permalink)
3 restos WIP = psycho
 
kenikh's Avatar
 
Join Date: Feb 2005
Location: North of Exit 17
Posts: 7,665
More than one way to skin a cat. This is actually pretty interesting for cars with older systems like HPX. I'll be watching.
__________________

- 1965 911
- 1969 911S
- 1980 911SC Targa
- 1979 930
Old 11-01-2015, 12:57 PM
  Pelican Parts Catalog | Tech Articles | Promos & Specials    Reply With Quote #2 (permalink)
umop apisdn
 
Join Date: Jun 2014
Location: Brisbane, Australia
Posts: 636
Excellent work !!
__________________
Steve
1981 928S 4.7 ROW with KE3-Jetronic
"Be the man your dog thinks you are."

www.FrankenCIS.com
Old 11-01-2015, 01:50 PM
  Pelican Parts Catalog | Tech Articles | Promos & Specials    Reply With Quote #3 (permalink)
umop apisdn
 
Join Date: Jun 2014
Location: Brisbane, Australia
Posts: 636
If you transition to the mega, the Speeduino project may provide some inspiration.
__________________
Steve
1981 928S 4.7 ROW with KE3-Jetronic
"Be the man your dog thinks you are."

www.FrankenCIS.com
Old 11-01-2015, 03:23 PM
  Pelican Parts Catalog | Tech Articles | Promos & Specials    Reply With Quote #4 (permalink)
Registered
 
Dr J's Avatar
 
Join Date: Apr 2008
Location: Miami
Posts: 961
Here is a picture of the FIRST prototype with the servo. Note the UTCIS stepper In the background.



Here is another shot with the Arduino board visible.



I am not using the servo version shown above but just reconnected the stepper motor.

Here is the motor shield on the Arduino under passenger seat.



Here is the UTCIS aluminum block in the engine compartment.



While I'm at it, here is how I have my LM-2 mounted between the driver and passenger seats.



And the view from the drivers seat (passenger seat is temporarily out).




Just got in a box of goodies including an Arduino mega with bluetooth!

Kenikh- agreed. I think this was optimized by the FrankenCIS, which was nicely documented by Reanimotion.

Reanimotion- I did see that project before, thanks.
__________________
1979 SC, Slant nose wide-body cab conversion. AEM Infinity EFI, COP, supercharged!
Old 11-02-2015, 11:49 AM
  Pelican Parts Catalog | Tech Articles | Promos & Specials    Reply With Quote #5 (permalink)
3 restos WIP = psycho
 
kenikh's Avatar
 
Join Date: Feb 2005
Location: North of Exit 17
Posts: 7,665
Quote:
Originally Posted by Reanimotion View Post
If you transition to the mega, the Speeduino project may provide some inspiration.
Whoa - that is C O O L.
__________________

- 1965 911
- 1969 911S
- 1980 911SC Targa
- 1979 930
Old 11-02-2015, 12:24 PM
  Pelican Parts Catalog | Tech Articles | Promos & Specials    Reply With Quote #6 (permalink)
 
Registered
 
totle's Avatar
 
Join Date: Oct 2008
Location: Norway / Miami
Posts: 1,390
Garage
Very well done:-)
Another way of using Arduino board :-). Great stuff
__________________
Trond R.
1979 930: Garret GT35r turbo, EFI, carerra intake, Link EMS, custom GT2 cams, 98mm JE P/C, 964 crank (stroker), custom valves & ported (XtremeCylinderHeads) etc..etc..
1972 914-6 GT replica project
1986 944 Turbo
Old 11-02-2015, 01:34 PM
  Pelican Parts Catalog | Tech Articles | Promos & Specials    Reply With Quote #7 (permalink)
Registered
Yikes!
I know I want to know how this turns out -- altho' I have to admit I only understand less than 50%.
Anything that would automatically adjust the AFRs to a safe level based on the AFR sensors would be incredible.
Old 11-03-2015, 01:44 PM
  Pelican Parts Catalog | Tech Articles | Promos & Specials    Reply With Quote #8 (permalink)
Registered
 
Dr J's Avatar
 
Join Date: Apr 2008
Location: Miami
Posts: 961
I added a 16 position potentiometer with a push button switch to help to manually adjust AFR. The idea is I could use the pot to set an AFR and push the switch to store it. However, I can also use it to vary AFR or click the switch to control timing by sending a signal to the MAP input of the HPX. One of the problems I had with the UTCIS was in setting warm up pressures. When the pressure is off, is it too lean or too rich? With this I can turn the knob right away and adjust on the fly. I really like it. Going on autocross, richen it up before entering the course. Going on expressway home, lean it out and save gas!

Here is a pic of the pot mounted just ahead of the LM2. Very easy to reach and use. I might keep it permanently.

__________________
1979 SC, Slant nose wide-body cab conversion. AEM Infinity EFI, COP, supercharged!
Old 11-14-2015, 03:22 PM
  Pelican Parts Catalog | Tech Articles | Promos & Specials    Reply With Quote #9 (permalink)
Registered User
 
Join Date: Dec 2015
Posts: 1
Can you please share some more details about your project? What is the schematic of your setup?
Can you please share the details of all the hardware components?
Can you please share your firmware also?

pcb prototypes

Last edited by BaxieBull; 12-23-2015 at 08:13 AM..
Old 12-15-2015, 06:35 AM
  Pelican Parts Catalog | Tech Articles | Promos & Specials    Reply With Quote #10 (permalink)
Registered
Quote:
Originally Posted by BaxieBull View Post
Can you please share some more details about your project? What is the schematic of your setup?
Can you please share the details of all the hardware components?
Can you please share your firmware also?
DITTO -- either that, or offer to sell me a kit already put together!
Old 12-16-2015, 09:09 AM
  Pelican Parts Catalog | Tech Articles | Promos & Specials    Reply With Quote #11 (permalink)
Registered
 
Housemarkee's Avatar
 
Join Date: Oct 2010
Location: South Germany
Posts: 18
Hey Dr.J,
found your post and looks like the stuff I had on mind.
I´m ordered a used UTCIS for reverse engineering the core and try to CNC mill it by myself.
After that I thought about an ESP32, maybe the Olimex ESP32-EVB Board that I used for different other Projects. Do you have your Arduino Code on Github etc. to have a view on? Or is it possible to share it, so that I not invent the wheel again? :-)

Did you had more expirience the last years with your DIY WUR?
Thanks, regards
AJ
Old 02-16-2024, 01:29 PM
  Pelican Parts Catalog | Tech Articles | Promos & Specials    Reply With Quote #12 (permalink)
Registered
 
Dr J's Avatar
 
Join Date: Apr 2008
Location: Miami
Posts: 961
Just saw this post come back to life. I switched to a full stand-alone ECU system some years ago (an AEM Infinity 506). If you want to make your own digital WUR, what you should use is not the stepper motor but an injector. This is the thread on how to do it and goes beyond what I did.

https://forums.pelicanparts.com/911-930-turbo-super-charging-forum/820323-digital-wur-plus-frankencis.html

__________________
1979 SC, Slant nose wide-body cab conversion. AEM Infinity EFI, COP, supercharged!
Old 02-17-2024, 01:14 PM
  Pelican Parts Catalog | Tech Articles | Promos & Specials    Reply With Quote #13 (permalink)
Reply


 

Tags
arduino , dwur , hpx , lm2 , utcis


All times are GMT -8. The time now is 01:50 AM.


 
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Optimization by vBSEO 3.6.0
Copyright 2025 Pelican Parts, LLC - Posts may be archived for display on the Pelican Parts Website -    DMCA Registered Agent Contact Page
 

DTO Garage Plus vBulletin Plugins by Drive Thru Online, Inc.