Arduino as an engine control module?

I've been reading about experimental 6-stroke engines, and would like to try to convert my existing vehicle(s) to run using this method. Essentially, at TDC on the exhaust stroke in a regular 4 stroke engine, both valves close as the piston approaches TDC. High pressure water is then injected directly into the cylinder which turns to steam and forces the piston downward again. Then there is an exhaust stroke for the steam, and we're back to the regular intake stroke. This eliminates a large portion of the energy that is wasted in the form of unused heat. These engines use roughly half the fuel of a conventional 4 stroke engine, and many don't even have a cooling system.

What I would like to build would be an 8-cycle engine (having a "regular" intake and compression stroke essentially wasted), as it would be impractical to rebuild the engine(s) to be true 6-cycle. One problem with the 6-stroke is that until it warms up, it coasts through 2 strokes which makes them run rough. I would have mine run in 4-stroke mode until warmed up, at which time it would switch to 8-stroke. The first car I would try this on is an '01 Impala with the 3.4L V6. Sequential fuel injection with one coil per pair of companion cylinders. It has a maximum RPM of 5,600 RPM. The 3 coils fire once per revolution, one spark ignites the air/fuel mixture and the other one fires in the companion cylinder which is on the exhaust stroke. The fuel injectors fire every-other revolution, one on each cylinder.

What I would have to do is disable the fuel injector for the cylinder that is having water injected into it and run the water injector solenoid when the PCM commands spark for that coil. Then the next time the fuel injector is commanded on, it would be allowed to do so, and water would not be injected with the spark. Obviously the 16Mhz could handle this if the timing didn't need to be extremely accurate, but I'm not too sure how fast it would make it through the program, a couple milliseconds could let it run very lean or miss a power stroke altogether. I don't have a lot of experience with the Arduino or programming in general, however I do have considerable experience with electronics. I did build a methanol injector controller using a standalone Atmega328, but it read the throttle position, two adjustment pots, and varied the pulse width to the transistor that controlled the pump based on these 3 inputs. I also built a sun tracker for a solar panel, and lots of little things just for fun. But the timing needs to be pretty close here, where timing was of little to no concern on everything else I've done.

I would also like to be able to measure how long each fuel injector is on, and inject a proportionate amount of water to make the engine run smooth. The fuel injectors are commanded on to hundredths of milliseconds. The on-time seems to be roughly .12 mS resolution, which I assume the Arduino would miss completely.

Can any of the microprocessors available on an Arduino do this? I will be building a module using a standalone microprocessor, so I can use a 20Mhz resonator if using the Atmega328 or another IC that can use an external timing device if 16Mhz would be a bit short. It would be perfectly acceptable to me to have a maximum RPM of about 3,000 while running in 8-stroke mode, but any lower than 2,000 RPM wouldn't be worth my time to build this. Any guesses as to how long it would take to execute the code required to do everything I need?

Thanks in advance,
Jason

Interesting project.

I'm trying to get my head around the 8-stroke cycle. Are you going to leave the cam alone and actually pull in a fresh charge at the start of the 'steam' power stroke? In this case you'd be throwing away the hot exhaust charge that contains most of the energy you're trying to recover, and the only thing powering your 'steam' phase would be the hot metal. In this case I'm sure that skipping half the power strokes and running water through the cylinder would cool the engine a lot, but I'm sceptical that you'll gain enough power during the steam phase to offset the friction and pumping losses. I suspect you'll end up with a very rough engine with about half the power and a dead loss cooling system.

But it's interesting enough as a concept that I'd like to see how it works in practice.

I suppose that to do this properly you'd need to replace the cam drive system with one that ran at 1/3 crankshaft speed instead of half crankshaft speed, and you'd need to change the cam phase/durations. Getting a custom cam grind isn't technically difficult but needs money and engineering skills. Changing the chainwheel/pulley sizes to change the cam speed is something that is easy in theory but may not be possible in practice, depending on the design of your cam drive. It seems to me that this is the only approach that is likely to work well, though.

How are you implementing the water injection? Are you injecting into the cylinder? What sort of injectors and water supply system are you planning?

What sort of duty cycle are you envisaging for the water injectors? The petrol injectors are probably batch fired, but your water injectors would need to be sequential and accurately phased, so they'll need to be sized to use a much shorter pulse. This may mean you can't simply drive them from the petrol injector signal. You could use the ignition LT pulse to give you a crude engine phase sensor but you still need some logic to decide which part of the engine cycle you're in and switch the fuel and water injection systems on and off.

Needing sequential injection also makes it harder to choose the ECU. There are several aftermarket systems that support sequential injection up to 6 cylinders, but it rules out the experimental systems such as Megasquirt/VSMS. It would be worth doing some research though to find what state MS is up to now - last time I was involved with this they were developing a SMD controller that was planned to support lots of drivers and probably do what you need here.

If you're running this setup in economy mode I guess you'll be around 3000 rpm which corresponds to 20 ms per crank revolution. If you wanted to complete the water injection within say a 45 degree period, that gives you 2.5 ms water injection duration. I wouldn't expect any difficulty achieving that with an Arduino. The pulse wouldn't need to be calibrated accurately as long as you have some scope to dial it up and down a bit to find the best compromise between water consumption and power. You'd also need outputs to disable the corresponding injector, and inputs for crank position (crank trigger wheel?), cam position (#1 spark LT?) and throttle (MAP?) so you could decide when to enable water injection and phase it correctly.

It sounds doable to me. You've quite a long time to do the calculations between injection events, and having calculated when you need to do an injection, you can just wait until that time comes around, which will give you accuracy to within a few microseconds if you design the software with no interrupts. Similarly, you can hold the injector open for a precise time before you close it. Then start on the next calculation. You'll probably want to avoid using floating point maths to avoid the calculations taking too long.

You could use timer 1 as your system clock and use its capture facility to time-stamp your synchronisation event, which I presume is a spark to any cylinder. You'll need some additional way of telling whether the spark is for a particular cylinder, perhaps a flip-flop readable by the Arduino that is set by a spark to a particular cylinder and cleared by a spark to the next cylinder.

Thanks for the replies!

PeterH:
Interesting project.

I'm trying to get my head around the 8-stroke cycle. Are you going to leave the cam alone and actually pull in a fresh charge at the start of the 'steam' power stroke? In this case you'd be throwing away the hot exhaust charge that contains most of the energy you're trying to recover, and the only thing powering your 'steam' phase would be the hot metal. In this case I'm sure that skipping half the power strokes and running water through the cylinder would cool the engine a lot, but I'm sceptical that you'll gain enough power during the steam phase to offset the friction and pumping losses. I suspect you'll end up with a very rough engine with about half the power and a dead loss cooling system.

But it's interesting enough as a concept that I'd like to see how it works in practice.

I suppose that to do this properly you'd need to replace the cam drive system with one that ran at 1/3 crankshaft speed instead of half crankshaft speed, and you'd need to change the cam phase/durations. Getting a custom cam grind isn't technically difficult but needs money and engineering skills. Changing the chainwheel/pulley sizes to change the cam speed is something that is easy in theory but may not be possible in practice, depending on the design of your cam drive. It seems to me that this is the only approach that is likely to work well, though.

How are you implementing the water injection? Are you injecting into the cylinder? What sort of injectors and water supply system are you planning?

What sort of duty cycle are you envisaging for the water injectors? The petrol injectors are probably batch fired, but your water injectors would need to be sequential and accurately phased, so they'll need to be sized to use a much shorter pulse. This may mean you can't simply drive them from the petrol injector signal. You could use the ignition LT pulse to give you a crude engine phase sensor but you still need some logic to decide which part of the engine cycle you're in and switch the fuel and water injection systems on and off.

Needing sequential injection also makes it harder to choose the ECU. There are several aftermarket systems that support sequential injection up to 6 cylinders, but it rules out the experimental systems such as Megasquirt/VSMS. It would be worth doing some research though to find what state MS is up to now - last time I was involved with this they were developing a SMD controller that was planned to support lots of drivers and probably do what you need here.

If you're running this setup in economy mode I guess you'll be around 3000 rpm which corresponds to 20 ms per crank revolution. If you wanted to complete the water injection within say a 45 degree period, that gives you 2.5 ms water injection duration. I wouldn't expect any difficulty achieving that with an Arduino. The pulse wouldn't need to be calibrated accurately as long as you have some scope to dial it up and down a bit to find the best compromise between water consumption and power. You'd also need outputs to disable the corresponding injector, and inputs for crank position (crank trigger wheel?), cam position (#1 spark LT?) and throttle (MAP?) so you could decide when to enable water injection and phase it correctly.

Yes, I'll be leaving the cam alone. The 6 stroke engines do have a regular exhaust stroke, so they lose much of the heat in the exhaust as well. Having the second intake/compression strokes will pull in fresh air and compress it, leaving it pretty warm. I know this isn't as ideal as a specially built engine, but I have a feeling it should work, at least a little bit. At highway speed, a dead miss on one cylinder isn't typically even noticeable on these engines, so hopefully having a little bit of a power stroke from the water will help. I have also considered the possibility of disabling the system on idle and acceleration, but I'll figure that out if I come to it.

Another thought I had was to convert it to electronically controlled hydraulic valves, Fiat is working on those for the purpose of varying the lift and duration of the valves. That would be expensive and complicated, but may be feasible in the near future.

I'm thinking about the same water injector pulse width as the fuel injectors. Most of the 6 cycles I read about used about the same quantity of fuel and water, but as the water injectors will probably flow more, the pulse could be shorter. I will probably use fuel injectors for a direct injection engine as they are designed for high temperature and pressure. They are becoming more and more common in newer production cars. I won't be doing this for a while (but I'll probably start on the code), I just bought this car to have something to drive while I build up the engine in my street/track car and it is a cheap one to experiment on once my new engine is built. I might need to find an additive for lubrication and corrosion protection, I was thinking maybe methanol and the lubricant they add in the engines that burn it. I would need something for freeze protection in colder months (Iowa, USA) anyway, and that should probably work. I would machine a port for the water injectors into the top of the head. I'm an automotive technician and have worked on and modified lots of engines, and I know I can do the mechanical and electrical parts, but I will likely need a great deal of help with the programming part. I will detail the entire process if I end up doing this. This engine is sequentially injected, so I won't have to do anything with the stock ECU. I also have HP Tuners, a PCM tuning system that lets me control almost everything about how the engine runs. I can even set it to not turn on the check engine light for the fuel injector circuit trouble codes that would probably set from opening the power supply to disable the injectors.

I don't think I should need a way to directly measure the crank position. The stock PCM does this already, and fires a coil at "x" degrees before TDC. At higher RPMs they have more advance because the fuel takes time to burn and build pressure, I think the water would take time to vaporize as well. I'm hoping for the water to be injected as soon as the spark occurs for that cylinder. For disabling the injectors, I'll be using a depletion mode MOSFET for each fuel injector. Currently the fuel injectors have one power wire from a relay with a splice under the upper intake manifold that has 6 wires coming out of it, so all I have to do is run individual power to each injector. For enable and disable RPM, I can just measure the time between coil firings. On this engine, 3 coils are used that fire on two companion cylinders at the same time. Companion cylinders reach TDC at the same time, one on exhuast and one on compression, so coil pulses on one coil per minute equals RPM. I don't think I should have to measure the throttle or MAP, because the time the fuel injectors are commanded on is already calculated by the PCM based on these inputs. I'm hoping to just multiply that by a number to get how long to fire the water injector (after measuring the flow rate), and it's possible it could even be the same time.

dc42:
You'll need some additional way of telling whether the spark is for a particular cylinder, perhaps a flip-flop readable by the Arduino that is set by a spark to a particular cylinder and cleared by a spark to the next cylinder.

I think I should be able to tell what cylinder the spark is for by looking at which fuel injector fired most recently.

Your idea is interesting, but let me make some points.

  1. Does the engine have individual valve lockout? If not, this idea (6 stroke) is impossible.

  2. If you do not let the exhaust out after the combustion cycle, all ( and more) energy will be lost recompressing the now hot and expanded products of combustion. This means leaving the valve open well past TDC, or you have a severe backpressure issue.

  3. Cooling the combustion chamber after the exhaust stroke, by injecting water on the next compression stroke will cause your engine to be extremely inefficient with very large heat loss to the pistons, cylinder walls, and combustion chamber in the head at the next cumbustion cycle. Additionally, the cold ( cooled ) cylinders will cause the actual combustion to be much less efficient.

  4. If your goal is just to improve efficiency of the motor, re-write your advance and fuel curves and re-write them for maximum economy ( timing for peak pressures that don't detonate or just aren't too far advanced, never richer than the stoichiometric ratio for your fuel.

Number 4 is worth anywhere from 5 to 30% fuel economy gain on modern emission controlled engines, current emissions calibrations rob your economy quite a bit compared to best economy calibration - and best economy calibration will generally only exceed Oxides of Nitrogen above limits occaisionally.

Hi, Have you seen this stuff:

http://ecomodder.com/wiki/index.php/MPGuino
http://www.waterduino.com/

Some of the MPGDuino guys are involved with an Open Source ECU project...

mdkoskenmaki:
Your idea is interesting, but let me make some points.

  1. Does the engine have individual valve lockout? If not, this idea (6 stroke) is impossible.

  2. If you do not let the exhaust out after the combustion cycle, all ( and more) energy will be lost recompressing the now hot and expanded products of combustion. This means leaving the valve open well past TDC, or you have a severe backpressure issue.

  3. Cooling the combustion chamber after the exhaust stroke, by injecting water on the next compression stroke will cause your engine to be extremely inefficient with very large heat loss to the pistons, cylinder walls, and combustion chamber in the head at the next cumbustion cycle. Additionally, the cold ( cooled ) cylinders will cause the actual combustion to be much less efficient.

  4. If your goal is just to improve efficiency of the motor, re-write your advance and fuel curves and re-write them for maximum economy ( timing for peak pressures that don't detonate or just aren't too far advanced, never richer than the stoichiometric ratio for your fuel.

Number 4 is worth anywhere from 5 to 30% fuel economy gain on modern emission controlled engines, current emissions calibrations rob your economy quite a bit compared to best economy calibration - and best economy calibration will generally only exceed Oxides of Nitrogen above limits occaisionally.

  1. No, the engine is a typical OHV. My idea for this is only based on a 6 stroke engine, mine would be 8 stroke, having intake and compression strokes between the exhaust and water injection strokes.

  2. Answered in #1

  3. The fuel injectors on this engine are pointed at the wall of the intake manifold runners, so a lot of the fuel would be vaporized there. Do you have an estimate on how much less efficient the combustion might be due to decreased temperature in the cylinders?

  4. I will be doing that very soon. I added some stuff to the oil that's supposed to increase the seal between the rings and the cylinder wall and raise the compression. I also wanted to see the power increase (iPod dyno app, not perfect but better than going by feel) from any gained compression, so I don't want to tune it before I can see these results alone.

terryking228:
Hi, Have you seen this stuff:

MPGuino - EcoModder Forum Wiki
http://www.waterduino.com/

Some of the MPGDuino guys are involved with an Open Source ECU project...

I had seen the MPGuino, but I have a scan gauge II which does the same thing. I had that for years before I ever heard about the Arduino, I feel pretty silly now for spending well over $100 for it.

That waterduino looks really cool and could have saved me tons of time, I wish I'd seen that before I built the water/methanol injection system for my other car. Thanks for the link tho, I like that more than what I built and I may do that anyway.

You'll find out one way or the other soon enough, but dropping a cylinder is very obvious on mine. Having a 50% misfire I think would be quite unpleasant. But once you have your system working, it's entirely under your control whether you run the 'steam cycle' every other cycle or every third cycle or whatever.

Since you're injection into the chamber at TDC you'll have a lot of pressure working against you. Have you worked out how you're generate enough water pressure? I suppose a diesel injection system would do it, but they're notorious for suffering catastrophic failure as soon as you run anything but diesel through them so I'm not optimistic that would last long. I've never played with diesel injectors but petrol injectors have a relatively short life when used to inject water due to internal corrosion, and I think limescale deposits would cause problems pretty quickly unless you use distilled or deionised water. That would bump the cost up dramatically. I use small quantities of Methanol as a corrosion inhibitor / antifreeze and that would bump the running costs up too.

So, from what I can see so far the mechanical parts of the water injection system present the main challenges.

I don't think there's any reason to be concerned about over-cooling the chamber and interfering with the normal ignition / burn sequence. I've seen some studies of the effects of combustion chamber temperature against power, and power output was more or less completely independent of block/head temperature. When it's running the inside of the combustion chamber will normally be over 100C and so there's no chance of having a cold damp combustion chamber, and I don't think that dropping the metal temperature a few degrees is going to make any difference.

It sounds as if you have got the petrol injection cut-off sorted out but I'm still not clear how you're going to time the water injection. I get that you can trigger it from the spark, but you need to know which of the pair of cylinders is in the compression stroke. I suppose you could monitor one of the fuel injection pulses and work the engine phase out from that, if you know where the fuel injection pulse occurs in the engine cycle.

I assume you would enable this whole water injection system when the load and revs corresponded to cruise conditions and leave the engine to run normally the rest of the time.

Do you have any sort of cat system or EGO feedback system on this car? One thing EGO sensors don't like is having fluid dumped on them, and the missed firing cycle would throw any EGO sensing out of wack. Suppressing the fault codes is one thing, but if your ECU relies on an accurate EGO signal then it won't be happy.

Given your experience working on engines, I'm sure you must be tempted to try the full 6-stroke conversion. :slight_smile:

J-Ri350:

  1. No, the engine is a typical OHV. My idea for this is only based on a 6 stroke engine, mine would be 8 stroke, having intake and compression strokes between the exhaust and water injection strokes.

  2. Answered in #1

  3. The fuel injectors on this engine are pointed at the wall of the intake manifold runners, so a lot of the fuel would be vaporized there. Do you have an estimate on how much less efficient the combustion might be due to decreased temperature in the cylinders?

  4. I will be doing that very soon. I added some stuff to the oil that's supposed to increase the seal between the rings and the cylinder wall and raise the compression. I also wanted to see the power increase (iPod dyno app, not perfect but better than going by feel) from any gained compression, so I don't want to tune it before I can see these results alone.

#4, unless this engine is very old and worn, everything you do ( and I mean everything) will not improve and may worsen your losses. There are very few lubricants that can beat oil. You can use a synthetic oil, look for independent tests to see which ones actually make an improvement by reducing friction losses in a real motor.

#3, the injectors fire while the air is moving through the port, and it doesn't get on the manifold wall to any signficant degree. The reduction in efficiency... Or perhaps more appropriately, the increase in consumption between a cold cylinder and a hot one varies signficantly, but generally we're talking losses of anywhere from 10 to 40%. Google for "cold engine vs hot engine fuel consumption" or something like that, to find information on it. Injecting water before the compression stroke means that you will have to use fuel to heat the water, push the piston up against TDC and then it loses energy again as the piston drops and the water may or may recondense, but the heat is lost to the cylinder walls and combustion chamber, piston, etc.

Water injection into a normal 4 stroke cycle will help with the following scenarios:

  1. Slows combustion cycle to keep the combustion pressure wave from peaking too early and too short on the piston - this works for certain stroke / rod length combinations - essentially, the longer the rod is compared to the stroke, the more effective it possibly might be. It is also dependent upon the combustion chamber shape and swirl as to how fast the pressure wave is in the first place.

  2. Decreases excessive temperatures, allowing for lower grade fuel or higher compression to be combined with optimium timing - ie, it's a cheap "octane boost" in effect, without actually being an octane boost.

  3. Unknown chemical reactions during combustion, it's possible that the water itself aids in combustion, or actually splits apart and aids in combustion. Some believe it does, others scoff. I've no dog in this fight. I can find little evidence it helps.

  4. Cooler intake air, resulting in more dense intake charge in the cylinder. - this increases performance, not an economy boost.

  5. Possible interactions with the OEM engine management. For instance, the computer may sense cooler intake air temperatues, and allow more timing advance. Cooler air can result in reduced "knock" sensing, so it runs more timing, increasing efficiency.

As to the idea of an 8 stroke motor... the friction and pumping losses for the 'non power' extra revolutions could not possibly be made up by anything you do. Pumping losses - that is the effort required to pull a vacuum on the closed throttle plate and to try to shove the exhaust or air out the exhaust system are the single largest factor in poor fuel economy at cruise. When you close the throttle, the amount of fuel consumed per horsepower absolutely skyrockets. Look up BSFC for throttled engines, and note how efficiency is improved when you open the throttle and produce more power.

This is why tall gears at cruise work so well, because you have to open the throttle a lot, reducing pumping losses by reducing intake vacuum (raising manifold absolute pressure) while moving the car at highway speeds.

As for engine controllers, look at MegaSquirt, which is a wholly programmable generic engine controller. I believe it may be open source, too, not sure. It's not cheap, but it's also not expensive.

Please note: This is not meant as a slam, but it is true, and should be taken into account for ANY idea that includes pulling water into an internal combustion engine, or injecting it.

It takes heat to turn water into steam. If you inject cold water at the top of a compression stroke, some may turn into steam, but the process of turning cold water into steam absorbs the heat from the compressed air, and the pressure will DROP, not rise. It will consume mechanical power to do this. As the piston starts down, the cooled air cools even more as the pressure drops, which can cause water to condense, further reducing the pressure against the piston going down. It will take far more power to push the piston up, inject the water, than will be recovered on the way down.

There is nothing to gain here. NOTHING. It will consume water, fuel, and time, and you'll have a severe loss in fuel economy. You could, in theory, inject superheated water under high pressure, but that consumes large amoutns of fuel to heat the water and keep it compressed (not flash to steam). There is no efficiency to be gained here. None.

J-Ri350:
I added some stuff to the oil that's supposed to increase the seal between the rings and the cylinder wall and raise the compression.

I hope that wasn't the CSL stuff (I am trying to be polite here) sold as 'enginerestore'.

PeterH:
You'll find out one way or the other soon enough, but dropping a cylinder is very obvious on mine. Having a 50% misfire I think would be quite unpleasant. But once you have your system working, it's entirely under your control whether you run the 'steam cycle' every other cycle or every third cycle or whatever.

Since you're injection into the chamber at TDC you'll have a lot of pressure working against you. Have you worked out how you're generate enough water pressure

It sounds as if you have got the petrol injection cut-off sorted out but I'm still not clear how you're going to time the water injection. I get that you can trigger it from the spark, but you need to know which of the pair of cylinders is in the compression stroke. I suppose you could monitor one of the fuel injection pulses and work the engine phase out from that, if you know where the fuel injection pulse occurs in the engine cycle.

I assume you would enable this whole water injection system when the load and revs corresponded to cruise conditions and leave the engine to run normally the rest of the time.

Do you have any sort of cat system or EGO feedback system on this car? One thing EGO sensors don't like is having fluid dumped on them, and the missed firing cycle would throw any EGO sensing out of wack. Suppressing the fault codes is one thing, but if your ECU relies on an accurate EGO signal then it won't be happy.

Given your experience working on engines, I'm sure you must be tempted to try the full 6-stroke conversion. :slight_smile:

I mean a miss on one cylinder with little load is not noticeable, this is a fairly large engine for the size of the car.

I was thinking about the possibility of using a pressure washer pump, adapted to run off the serpentine belt. Injectors designed for direct injection are all that I think would work for the heat and temperature. A corrosion inhibitor/lubricant combined with periodic removal and cleaning with something such as CLR (calcium, lime, rust) might be sufficient. I would also have a filter to remove some of the contaminants from the water.

Whichever cylinder's fuel injector fires is on the intake stroke, so that cylinder will be the recipient of the next useful part of the spark.

It's very likely that this will be used only at cruise, but I'll have to see what power it has, it's likely it would work at idle, and even possible under light acceleration.

It does use O2 sensors, one pre-cat and one post-cat. The affect on this engine's performance due to faulty O2 sensor readings is minimal. If it's a problem, I can build a second controller that feeds a good signal into the PCM when this system is active.

I'm somewhat tempted to do a full 6 stroke conversion, but since they run rough until they are hot enough for a steam cycle, it's not that practical for a vehicle IMO.

mdkoskenmaki:
#4, unless this engine is very old and worn, everything you do ( and I mean everything) will not improve and may worsen your losses. There are very few lubricants that can beat oil. You can use a synthetic oil, look for independent tests to see which ones actually make an improvement by reducing friction losses in a real motor.

#3, the injectors fire while the air is moving through the port, and it doesn't get on the manifold wall to any signficant degree. The reduction in efficiency... Or perhaps more appropriately, the increase in consumption between a cold cylinder and a hot one varies signficantly, but generally we're talking losses of anywhere from 10 to 40%. Google for "cold engine vs hot engine fuel consumption" or something like that, to find information on it. Injecting water before the compression stroke means that you will have to use fuel to heat the water, push the piston up against TDC and then it loses energy again as the piston drops and the water may or may recondense, but the heat is lost to the cylinder walls and combustion chamber, piston, etc.

As to the idea of an 8 stroke motor... the friction and pumping losses for the 'non power' extra revolutions could not possibly be made up by anything you do. Pumping losses - that is the effort required to pull a vacuum on the closed throttle plate and to try to shove the exhaust or air out the exhaust system are the single largest factor in poor fuel economy at cruise. When you close the throttle, the amount of fuel consumed per horsepower absolutely skyrockets. Look up BSFC for throttled engines, and note how efficiency is improved when you open the throttle and produce more power.

This is why tall gears at cruise work so well, because you have to open the throttle a lot, reducing pumping losses by reducing intake vacuum (raising manifold absolute pressure) while moving the car at highway speeds.

As for engine controllers, look at MegaSquirt, which is a wholly programmable generic engine controller. I believe it may be open source, too, not sure. It's not cheap, but it's also not expensive.

This engine has 196,000 miles on it, but is in pretty good shape. The compression is toward the low end of "good". I'm just seeing if I can gain anything.

The fuel injectors in this engine are actually pointed at the opposite side of the runner at a fairly square angle. I had this engine, and hundreds or thousands of the same design, half way apart to replace the lower intake manifold gasket. The lower intake runners and the head are always clean on the bottom from the fuel spraying/dripping on it, no matter how chunky the deposits are on the top and sides. I know some of the fuel is caught in the moving air, but it looks like a lot hits the metal.

The reduction in fuel efficiency in a cold engine is mostly due to the engine running rich until it is up to temperature. Vehicles with automatic transmissions will also raise the shift points and disable the torque converter clutch until the desired temperature is reached.

In the 6 stroke engines, the steam stroke produces nearly the same power as the regular power stroke, and the same displacement 6 stroke engine is 30%(? from memory) more powerful than the same size 4 stroke. It's just recovering the heat that would otherwise be lost into the cooling system.

From what I have read, the water injected into the cylinder should produce pressure slightly less than burning fuel does. A reduction in power on that stroke would require the throttle to be opened further for the overall power to remain the same. This would raise the MAP, and may have an affect I didn't think about.

I won't be needing a different ECU, the stock PCM will allow me to do what I need to do. The MegaSquirt is not open source, I had looked at that as a possibility for another vehicle at one time, had it been open source, I may have used it.

mdkoskenmaki:
It takes heat to turn water into steam. If you inject cold water at the top of a compression stroke, some may turn into steam, but the process of turning cold water into steam absorbs the heat from the compressed air, and the pressure will DROP, not rise. It will consume mechanical power to do this. As the piston starts down, the cooled air cools even more as the pressure drops, which can cause water to condense, further reducing the pressure against the piston going down. It will take far more power to push the piston up, inject the water, than will be recovered on the way down.

There is nothing to gain here. NOTHING. It will consume water, fuel, and time, and you'll have a severe loss in fuel economy. You could, in theory, inject superheated water under high pressure, but that consumes large amoutns of fuel to heat the water and keep it compressed (not flash to steam). There is no efficiency to be gained here. None.

How does the pressure drop as water expands into steam? I agree that the pressure will decrease as the piston travels down, but it does with burning fuel as well. The water would not condense, as the piston and cylinder walls will still be hot. Water expanding into steam can create extremely high pressure. Are you telling me that steam engines don't work? The only difference here is that I will be using the heat from the previous combustion to make the steam.

J-Ri350:

mdkoskenmaki:
It takes heat to turn water into steam. If you inject cold water at the top of a compression stroke, some may turn into steam, but the process of turning cold water into steam absorbs the heat from the compressed air, and the pressure will DROP, not rise. It will consume mechanical power to do this. As the piston starts down, the cooled air cools even more as the pressure drops, which can cause water to condense, further reducing the pressure against the piston going down. It will take far more power to push the piston up, inject the water, than will be recovered on the way down.

There is nothing to gain here. NOTHING. It will consume water, fuel, and time, and you'll have a severe loss in fuel economy. You could, in theory, inject superheated water under high pressure, but that consumes large amoutns of fuel to heat the water and keep it compressed (not flash to steam). There is no efficiency to be gained here. None.

How does the pressure drop as water expands into steam? I agree that the pressure will decrease as the piston travels down, but it does with burning fuel as well. The water would not condense, as the piston and cylinder walls will still be hot. Water expanding into steam can create extremely high pressure. Are you telling me that steam engines don't work? The only difference here is that I will be using the heat from the previous combustion to make the steam.

Ok, think carefully about this. What turns the water into steam? Heat. How much heat is in the air? How much steam can you create with the heat contained in the small amount of air that's compressed inside the cylinder? At what pressure? You can figure all this out by calculating the amount of air that's in the cylinder, and how much you compress it. From this, you can determine the btu's of heat that the air contains, and how much water you can evaporate with the btu's avialable. At this point, it's a downhill slope.

What I suggest you do, is to figure out the pressure / temperature slope for water turning into steam, remember, the ONLY thing steam is, is evaporated water. And, the heat from the air compressed in the cylinder is absorbed evaporating the water. The only other heat that's available, is to suck the heat out of the pistons and cylinders and combustion chamber, heat that will have to be absorbed the next combustion stroke, instead of being converted to pressure to drive the piston.

The efficiency loss involved in a cold engine is NOT just from "running rich". It's from large amounts of heat absorption from the combustion, and it is from reduced combustion efficiency, as the lesser amount of heat vaporizes the fuel less well. The reason it runs rich is because it is difficult to ignite the mixture - and that's becuase there's not enough heat to vaporize the fuel well.

Now, as your air is cooled by evaporating water, you now have the piston begin to travel downward, relieving the pressure, but as your pressure falls, so does the temperature. As the temperature falls, the steam reconverts back to liquid. You may not see it like fog, or vapor, but it has recondensed, dropping the pressure even faster.

I'm sorry, if there was a "magical perpetual motion" machine, it might work. But there is no energy created by shoving water into the cylinder. There is simple physics of heat being absorbed by water. This can't possibly produce MORE mechanical energy than you put into the system = the only energy input is going to be the force requird to shove the water in and the generated kenetic energy from the previous combustion stroke shoving the piston up due to the flywheel effect. There has to be an energy input, and that energy input is GOING to be the fuel you burn.

J-Ri350:
The MegaSquirt is not open source, I had looked at that as a possibility for another vehicle at one time, had it been open source, I may have used it.

It's open source. The circuit design, PCB layout and source code are all freely available.

http://www.megamanual.com/v22manual/mintro.htm:
The MegaSquirt® EFI Controller microprocessor code is available, and you are encouraged to make and share modifications (for use on B&G boards) to suit your installation. Several modified versions have been developed for particular applications/features already. Other people have developed and shared helpful freeware for MegaSquirt® EFI Controller, including:

TunerStudioMS - for tuning and datalogging the MegaSquirt® EFI Controller with a laptop computer, (Phil Tobin)
MegaTune - for tuning and datalogging the MegaSquirt® EFI Controller with a laptop computer running Windows 9x/ME/XP, (Eric Fahlgren)
EasyTherm - to simplify the substitution of non-standard temperature sensors and to upload software revisions (MegaSquirt-I only, MS-II™ can be recalibrated in MegaTune). (Roger Enns)
MS Palm - to tune and datalog with a Palm (Roger Enns)

In addition, ancillary hardware has been developed, or is being developed, for your MegaSquirt. These include:

MegaStimulator - to test your completed MegaSquirt® EFI controller unit prior to installing it. (Jeff Clarke)
Relay board - to simplify wiring of the MegaSquirt. (Bowling and Grippo)
MegaView - to provide a dedicated display for the MegaSquirt - available NOW!. (Bowling and Grippo)
MegaSquirt-II™, which has ignition control, available now (hardware). (Bowling and Grippo)

As well, Jim Willette has developed the Willette programmer - for programming blank or corrupted MegaSquirt-I™ processors, and a MegaProgrammer(.ZIP file) is also available for the same purpose.

The best feature of some MegaSquirt® controllers is that you build them yourself! Since you assemble the controller, and all information about the design is available to you, you are able to troubleshoot the board if a problem arises, and, in almost all cases, repair the unit yourself. The system as it exists today is a complete “turn-key” solution. You solder it together, install in the vehicle or boat, tune, and use it. The complete source code is available for those who want to understand or even modify the control algorithms.

I know what you're saying and I know that the steam (or anything else) does not create energy. The heat used to make the steam is mostly heat that would normally be lost into the radiator. By having a water control valve instead of a traditional thermostat, I can keep that heat in the engine and use it to make the steam. There is a great deal of heat dissipated by the radiator, and using that energy to push the piston down is better than losing it in the radiator. Even if there is less force acting on the piston than a regular power stroke. I would also modify the exhaust manifold to heat the water to a bit above boiling (it will be pressurized) before injecting it into the cylinder, saving some of the heat that is lost into the exhaust as well. The steam could not possibly condense back into water; the water will be injected already above it's atmospheric boiling point, and be inside a cast iron cylinder which would be no less than 250ºF with aluminum on both ends of the cylinder at a similar temperature. If I find that the engine does cool down using an every-other power stroke using steam, I can just increase the number of regular power strokes to keep the engine in the ideal range. I could even redo the cooling system to heat the engine using heat from the exhaust if the temperature drops below 250ºF.

I know this will be a complicated system, but taking heat that normally disappears into thin air and using it to push the pistons down just a little bit is better than letting it go without using it at all. It may not be as good as a power stroke from gasoline/petrol, but some force from energy that is otherwise lost is force that's not really directly from fossil-fuels. It is, but it isn't.

Good to know MegaSquirt is open source.

I appreciate all the comments from everyone. I just wanted to know if the Arduino would be capable of controlling this system, whether it works or not. I have some time to spend at an auto repair shop I'm starting, and until we get going, I'm often there with nothing to do for a few hours at a time. I've got all the parts but the injectors, I may as well try to use them for something. I'd rather do this than nothing, and hey, I get to play with electronics and engines at the same time :slight_smile:

Do any of the posters to this thread know of a programming solution for GM ECMs "computers"? I know of flash boxes but, not of any programmers that let me choose the tune.