EFI conversion on a Gen-1

VMAX  Forum

Help Support VMAX Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
Hi,

I`m putting the bike back together for another year of fun, and there is one thing I still need to fine-tune. If you open the throttle slightly as shown in the video, the bike backfires slightly. If you open the throttle quickly, it`s just fine :). What could be causing this? Too rich or too lean?

Thank you.

View attachment Vmax.mp4
 
Have you tuned AF independently on the cylinders or all the same? They are not the same. I've used independent O2 sensors and independent exh Temps. Your problem seems to be only one cylinder based on that video.
 
You are targeting leanest possible clearly. Your cylinder temps vary. You need to compensate with extra fuel. Running a bit on the rich side clears things out and whether you want to stay on top of it then that is exactly what open/closed loop is about. An engine is not a human heart, it cannot follow as far as your mind, you need to define parameters before it can learn by itself.

I know, sounds arrogant. If you want to know how I know then ask yourself : What are the two strongest ways to learn? Mistakes and time.
 
Thank you Jack Hammer, the pops happen at multiple cylinders, although more often on the rear ones. I`ll first try and lean it out a bit and see if that helps. The fact that it starts popping when I add a little more air might mean it was perhaps a bit rich. The O2 is on the rear right so I`ll check the values there a bit more closely once I got it ready to run again. Doing some changes on the EFI computer so that also takes some time to get right.
 
If you lean it out more, my quess is that the situation worsens. Take an IR gun to see the exhaust temps right where the exh tube begin before the first turns to get consistent results. Make sure you measure from spots of equal material thickness and surface.
 
Last edited:
Other thing with open loop is that throttle response programming requires you to understand certain definitions of the dimension of fueling vs air vs time. Over-airing (big TBs or carbs) mean aggressive over-fueling to create the intended result, simplified. Best results up-high compromise the results down-low unless you control the throttle electronically. You get the point.

I'm assuming ignition advance is good and not causing the symptoms. Ignition in fuel injection charts is the easy part.
 
Last edited:
I was going to mention that it needs to probably go richer to compensate for the sudded increase in air. Much like an accelerator pump would do on a regular carb to help with that transition.
 
In the end, the problem was twofold. I did lean it out a bit, but the main problem was that I was using TPS (throttle position sensor) with the VE (fuel) table. The thing is that a TPS is not really able to distinguish between 0 and 1% throttle. So with normal riding it`s fine but off idle, it`s not ideal. Below is a bit of telemetry showing how the TPS (after the bike has warmed up) hangs at 1.5%. I could set the reference value a bit lower but then it would say 0% even though the throttle was _slightly_ opened.

1678566179272.png
During the winter, I modified the Throttle Bodies. Before, the MAP sensor was connected to one TB, but as shown below it`s now connected to all four:

1678566330124.png

So with that, I have a much faster reference for the manifold pressure and the MAP value is averaged out over all four cylinders.

Since the manifold pressure _does_ rapidly change if you slightly open the butterflies it`s a much more precise way to measure the butterflies` small movements.

Today, I started out driving the bike which now was way out of tune since I had to rebuild the VE table. After an hour of driving with the laptop on my back, the bike was running well. Below are the differences between how I started out and what it was after an hour. 'Cell weighting' measures how long a cell has been tuned, 'Cell change' shows how it was tuned. Red is leaner, blue is richer.

1678566726999.png

And below is the proof that the problem is now solved:

View attachment WhatsApp Video 2023-03-11 at 17.43.35.mp4

Cheers!
 
Last edited:
Hi there, time for another update.

Over the last months, I`ve been driving and tuning the bike. One of the main things I learned is that only using Manifold Absolute Pressure (MAP) to calculate the fuel load worked great for the 0-10% TPS, above it the MAP values did not have enough resolution and the fuel load wasn't optimal. Since my throttle bodies are quite big, there isn't much underpressure in the throttle bodies on low RPM`s when you open up the throttle. The Throttle Positioning Sensor (TPS) has the opposite drawback, it cannot cope with the 0% to 3% range, which is what you use for slow acceleration and cruising on low speeds.

Luckily, the Speeduino can handle a secondary fuel table. So the one below is used for slow cruising:

1690919373739.png
And starting from 4% TPS, the fuel load source will be the TPS:

1690919398541.png

That makes it best of both worlds. It`s now perfect for cruising and for riding it hard.

Also, I`ve stepped away from using MegaLogViewer to modify the fuel tables based on the logfile and use my own program that can also handle both fuel tables. You feed it the fuel tables and logfile and it generates the corrected new tables based on the AFR seen during the ride. Very nice :)

With that, it`s as close to tuned as it can be with the current configuration. Still there are some deviations in the AFR logs on quick load changes, especially on very low RPM`s and fuel loads. This is likely because the injectors are quite a bit away from the cylinders. If you open the throttle a bit when air is moving slowly, it can take a bit of time for the modified amount of fuel to reach the cylinders. Also, normal throttle bodies are from metal and they warm up a lot more than my nylon ones. So any dropplets of fuel that hit the walls in those TB`s directly evaporate. In my case, they might stick.

So next step (likely this winter) is to move the injectors as close as can be to the cylinderhead. Red marks the current place, green where I want them to be:
1690920033238.png

So that means some more time in Fusion360 and some more 3D printing. Also, I am running semi-sequential. This means the system only knows the crank angle, but not which stroke. If the crank is at top-dead-center of Cylinder #1, the system doesn't know if it`s at the end of the compression stroke or at the end of the exhaust stroke. As a result, the system squirts half of the required fuel each revolution. The same happens in 'wasted spark' ignition like we all use in the Vmax. Each revolition there is a spark. One revolution it ignites fuel, whihle the next it tries to ignite an empty chamber.

If I move the injectors close to the valves, the timing of the fuel becomes way more important. Therefore I need to run fully sequential, which knows not only the crank angle but also the correct stroke a cylinder is in. The system can then supply all the fuel just before the valve opens. To accomplish that, you normally use a CAM sensor that triggers on a camshaft lobe. Since those sensors are expensive, big and require me to drill a hole in the cylinderhead or valve cover, I went for a less intrusive solution:

1690920446935.png

Above the TB`s there are now two MAP-sensors. The one on the left is connected to all cylinders. It measures the average of all cylinders which is required for fast-changing MAP readings (that calculate fuel load). The one on the right is only connected to the front-left cylinder. By measuring the manifold pressure at certain crankangles you can detect if the cylinder is sucking in fuel (lower manifold pressure on intake stroke) or if the valves are closed (higher manifold pressure on power stroke).

I created some code for my Speeduino and it can now fully sync (crank angle and correct stroke). With that, I can go fully sequential and move the injectors. Still having fun :)
 
Last edited:
Hi there, time for another update.

Over the last months, I`ve been driving and tuning the bike. One of the main things I learned is that only using Manifold Absolute Pressure (MAP) to calculate the fuel load worked great for the 0-10% TPS, above it the MAP values did not have enough resolution and the fuel load wasn't optimal. Since my throttle bodies are quite big, there isn't much underpressure in the throttle bodies on low RPM`s when you open up the throttle. The Throttle Positioning Sensor (TPS) has the opposite drawback, it cannot cope with the 0% to 3% range, which is what you use for slow acceleration and cruising on low speeds.

Luckily, the Speeduino can handle a secondary fuel table. So the one below is used for slow cruising:

View attachment 90381
And starting from 4% TPS, the fuel load source will be the TPS:

View attachment 90382

That makes it best of both worlds. It`s now perfect for cruising and for riding it hard.

Also, I`ve stepped away from using MegaLogViewer to modify the fuel tables based on the logfile and use my own program that can also handle both fuel tables. You feed it the fuel tables and logfile and it generates the corrected new tables based on the AFR seen during the ride. Very nice :)

With that, it`s as close to tuned as it can be with the current configuration. Still there are some deviations in the AFR logs on quick load changes, especially on very low RPM`s and fuel loads. This is likely because the injectors are quite a bit away from the cylinders. If you open the throttle a bit when air is moving slowly, it can take a bit of time for the modified amount of fuel to reach the cylinders. Also, normal throttle bodies are from metal and they warm up a lot more than my nylon ones. So any dropplets of fuel that hit the walls in those TB`s directly evaporate. In my case, they might stick.

So next step (likely this winter) is to move the injectors as close as can be to the cylinderhead. Red marks the current place, green where I want them to be:
View attachment 90383

So that means some more time in Fusion360 and some more 3D printing. Also, I am running semi-sequential. This means the system only knows the crank angle, but not which stroke. If the crank is at top-dead-center of Cylinder #1, the system doesn't know if it`s at the end of the compression stroke or at the end of the exhaust stroke. As a result, the system squirts half of the required fuel each revolution. The same happens in 'wasted spark' ignition like we all use in the Vmax. Each revolition there is a spark. One revolution it ignites fuel, whihle the next it tries to ignite an empty chamber.

If I move the injectors close to the valves, the timing of the fuel becomes way more important. Therefore I need to run fully sequential, which knows not only the crank angle but also the correct stroke a cylinder is in. The system can then supply all the fuel just before the valve opens. To accomplish that, you normally use a CAM sensor that triggers on a camshaft lobe. Since those sensors are expensive, big and require me to drill a hole in the cylinderhead or valve cover, I went for a less intrusive solution:

View attachment 90384

Above the TB`s there are now two MAP-sensors. The one on the left is connected to all cylinders. It measures the average of all cylinders which is required for fast-changing MAP readings (that calculate fuel load). The one on the right is only connected to the front-left cylinder. By measuring the manifold pressure at certain crankangles you can detect if the cylinder is sucking in fuel (lower manifold pressure on intake stroke) or if the valves are closed (higher manifold pressure on power stroke).

I created some code for my Speeduino and it can now fully sync (crank angle and correct stroke). With that, I can go fully sequential and move the injectors. Still having fun :)

I think the problem you are having is you don't have a MAF sensor. The way that you have that set up, it's very similar to the IROC Z's of the 80's. They ran into the same issue because the injectors were not only a good bit away from the cylinders, but they were on isolated runners (the tuned port injection system) so there was always a lag until the air flow caught up with the manifold pressure.

They solved that with a MAF sensor at the head of the intake. That told the system how much air was coming in. They could then use that in conjunction with the manifold pressure to make the injectors react accordingly.

Even if you move the injectors closer, they're still probably going to lag a bit as they'll still be waiting for the air flow to catch up to the pressure in the system at any given time given the isolated runners.

The only way I can see around that would be to make an open plenum chamber out of the runners at the top. More like a tunnel ram construction than the tuned port injection system, which is essentially what you have right now.
 
I think the problem you are having is you don't have a MAF sensor. The way that you have that set up, it's very similar to the IROC Z's of the 80's. They ran into the same issue because the injectors were not only a good bit away from the cylinders, but they were on isolated runners (the tuned port injection system) so there was always a lag until the air flow caught up with the manifold pressure.

They solved that with a MAF sensor at the head of the intake. That told the system how much air was coming in. They could then use that in conjunction with the manifold pressure to make the injectors react accordingly.

Even if you move the injectors closer, they're still probably going to lag a bit as they'll still be waiting for the air flow to catch up to the pressure in the system at any given time given the isolated runners.

The only way I can see around that would be to make an open plenum chamber out of the runners at the top. More like a tunnel ram construction than the tuned port injection system, which is essentially what you have right now.
Hi Parminio,

Thanks for the detailed response, it seems you know your stuff :). Some of the abbreviations you used (like IROC) were unknown to me coming from the Netherlands but I did my homework. I understand your point that air has mass, and although the MAP pressure might change, it can take a bit before the air starts to move. A MAF might be a next thing after moving the injectors, however it seems Speeduino doesn't have that support yet. Adding it however shouldn't be too hard and I should be able to do that. Something on the todo list that is.

One article I found that was pretty interesting was this one:
https://www.hotrodhandbooks.com.au/eBooks/TPI/TPI On Line-03-1.html
There they explain the tuned port fuel injection and there they write this:
During the first of two revolutions that complete a firing sequence, fuel is injected at the base of the intake valve while it is still closed. The second injection is sprayed into the airstream entering the chamber while the valve is open. Fuel from the first injection is already vaporised; this contributes greater fuel atomisation to optimise efficiency.

So it might be better to still have two squirts per revolution. I do then need to get the timing correct on all cylinders since the engine is oddfire (firing at 180, 250, 180 and 110 degrees relative to the previous cylinder). With some tweaking in the code, that is doable.

Enough to think about for now, will likely pick this up in a month or three when the weather gets worse and I start designing the new manifolds. Again to be continued :).
 
Back
Top