Kawasaki VN750 Forum banner
1 - 20 of 62 Posts

·
Registered
Joined
·
710 Posts
Discussion Starter · #1 · (Edited)
EDIT:
For the sake of those reading this many years in the future, and not wanting to read the entire thread, I'll update this first post with final conclusions so everything you need to know is in one place. I will update all the attached files with the latest version as I make improvements.

I wrote logging software for this controller. Attached is the program. It is written in Python 3 script.
Rename it to IgntionLog.py to run it. The latest version is 1.8 dated 06-04-2021.
It will take a snapshot of the controller every 64 mS.

I set mine up with a 10 degree ignition retard on input 1, a revert to stock timing on input 2, a shift light on output 1, and a MAP sensor to read engine vacuum.
My tuning file is attached with the name Ignition Timing File MM-DD-YYYY.txt. Rename this to .ign to use. The latest file is dated 06-04-2021.

It has a mild advance at part throttle, a big retard at closed throttle above 2K (makes the exhaust pop), a idle locking adjustment (retard at 1300 and advance at 900), and a rev limiter at 8700.
The shift light starts blinking at 7500 and goes steady at 8500.
This tune uses a MAP sensor, with stock intake, V&H Cruizer exhaust, 2.5 turns on idle screws and (to my knowledge but I've never looked) 38/132 jets.
I am running wider gapped (0.45 vs 0.35 stock) Denso Iridium Spark Plugs.
THIS TUNE HAS NOT BEEN TESTED WITH OTHER CONFIGURATIONS!!! USE AT YOUR OWN RISK!!!
To install a MAP sensor, visit my other thread where I talk about reading the carb vacuum.

When I get a chance, I'll post a tune that mimics the stock controller, so people can use this controller to replace a broken stock controller. It's much cheaper than the $500-$600 they want for an OEM controller.

Conclusion:
So far, it's been worth the effort. The bike behaves a lot better when cold, with a more consistent throttle feel. I use the 10 degree ignition retard (on a switch) whenever I use the choke. This keeps the choked idle around 1400-1500. The idle speed is rock steady across operating temperature, from just warm enough to turn off the choke, to fan kicking on and everything in between. More precisely, it idles at 1050 just off choke and 1150 when warm/hot. Here's a video demo of a cold start with stock timing vs a cold start using this controller, warm idle recovery using stock vs this controller, the rev limiter, the shift light, and the decel pops. I combined it all into one video, where it was 4 videos before.

The RPMs drop faster when closing the throttle, and it settles very quickly into idle RPM. The-off idle throttle response is VERY snappy as well. I could probably get even better off-idle response by adjusting the 72-100 kPa range for 1100-1300 RPM, but that would cause the choke idle to rise higher. I feel I have good compromise set up here.

I have deceleration pops that can be turned off with a switch.

I can sync the carbs by pinching each carb's hose and reading the idle vacuum on a computer.

I'm idling at 7 degrees (vs 5 stock), which should result in less heat at idle. So far no signs of detonation even after a hot day.

MPG results are in. I showed an 8% boost in fuel economy! That's about another 11 miles per tank. At cruise, the throttle seems less sensitive, which I find easier to control. For example, if before it took 10-13% throttle to hold 60 MPH, now it takes 8-12%. Less overall throttle, but it's spread out over a wider range. Wide open throttle power feels unchanged. My MPG record before the mod was 52.48 for 71.0 miles and 51.09 for 148.1 miles. My commute has changed from country roads to city roads so my typical has dropped from ~47 to ~43. Even so, I managed 49.73 on a twisty road ride. The V-Strom 650 riding with me got 51, so I'm pretty proud of that. I adjusted it once more after that ride. I'll be riding with the same person in September, so I'll be able to compare side-by-side again.

It starts up with no throttle when it's cold, warm or hot. NO MORE HOT START ISSUES!!!

I have a shift LED mounted to my windshield bracket, next to the tach. It's really nice as I can keep my eyes on the road and know when I'm getting close to redline. I know....it's a cruiser, not a sport bike. But sometimes you gotta wind it into the 8s! The rev limiter is great too for those accidental 1st to Neutral shifts.

Here is a picture of the timing I am using. The numbers are in reference to stock timing. The Intake Absolute Pressure (IAP) shows the pressure behind the throttle. 101 kPa is atmospheric pressure at sea level. Lower numbers represent a vacuum caused by a restriction (throttle closing). The RPM rises going to the right, and the manifold pressure (throttle opening) rises going downward. For example, stock timing at 8500 RPM at 72 kPa is 25 degrees. 72 kPa is the manifold pressure when holding the engine at 8500 RPM with no load. I am running +4 (or 29 degrees). The map also has color coding to show various operating conditions. The purple (cruise) is the manifold pressure when holding a steady speed on flat ground with no wind. I did not log data for cruising above 80 MPH. I would expect it to be 93-97 kPa.
53495


Three final points that I'll leave for future readers to ponder:
1. I'm sure someone could run 93 octane in this and dyno tune the wide open throttle for a bit more power. I'm not interested in switching from 87 octane or renting dyno time, so I'll leave that up to another user to figure out.
2. The wide open throttle run shows some loss of air pressure (increase in vacuum) starting at 4800 RPM and increasing out to redline, to the tune of about 3-4%. This is the region that an Ear Shave ought to help with. Below 4800 RPM, the Ear Shave would have no benefit as the restriction is almost nil at those RPMs. The 3-4% lines up with the estimate given here. "+3% Intake pods only". I'm happy with how Veronica is running, so I'm not going to do the ear shave. But it does suggest some power is left on the table with the stock intake.
3. The vacuum reading when holding a given RPM at no load has a strange shape (~60 kPa from idle to 4k and ~80 kPa from 6k+). I wonder if that's due to the intake box resonance. The torque dip happens at 4-4.5k from the one dyno chart I've seen. I'd be curious if that shape changes with an ear shave. The cruise vacuum readings are what I'd expect, rising with speed.

Original post:
Santa's bringing me one of these this year!


I'm going to play around with it. The unit has two tables that can be selected via a switch.
I'm going to set one table to match the factory spark advance (as a fallback if anything goes wrong while riding).
The second table will be a custom table.

It also has a global retard option that I can switch on/off. I'm going to use it to advance the ignition for premium fuel, and retard back for regular.
It will add a RPM limiter, and an optional shift light (just a little LED I'll tack on somewhere).

I'm adding a MAP sensor to measure carb vacuum and I'm going to advance based off engine vacuum.
I'm planning on linking the two carb vacuum ports to provide a more steady signal to the MAP sensor.
I'm adding T fittings to run to the petcock, the air bypass system, and the MAP sensor off the linked vacuum line.

This carb linking is going to be interesting. At idle, the carb will be able to draw through it's own throttle plate as well as the opposite carb's throttle plate. At least it will be a proper mixture either way. But I expect it to appear like a larger throttle opening than I actually have. Hopefully that only means I readjust the idle. On the other hand, the air in the linking tube might just oscillate back and forth and have minimal effect. At WOT, I don't see it having much effect. The vast majority of air will be drawn through the local carb body, with only a small amount drawn through the opposite carb. This I can test without changing ignition just by rerouting the hoses.

Once I have a working tune, I'll post my settings file online for others to use.
At the very least, this unit would make for a replacement ignition module if someone's original unit failed.
It's under $200 with custom wiring for this bike.
 

Attachments

·
Registered
Joined
·
9,265 Posts
Looks like quite an experiment. Get it working then you can try a nitrous bottle on it. 😈

Have you read the vacuum on one of the carbs yet? I expect there's no pulsing on a good engine, (at least above idle) so tying the vac lines together might not be needed.

Never had a vac gauge on mine, so I'm not sure, just thinking out loud.

You'd be a good candidate to test the white/red mystery wire on the CDI. 🤔 I think you could just flash the timing light and hit the start button while idling, see if the timing advances or retards. Starter clutch will prevent engagement of the starter.
 

·
Registered
Joined
·
710 Posts
Discussion Starter · #3 ·
Looks like quite an experiment. Get it working then you can try a nitrous bottle on it. 😈

Have you read the vacuum on one of the carbs yet? I expect there's no pulsing on a good engine, (at least above idle) so tying the vac lines together might not be needed.

Never had a vac gauge on mine, so I'm not sure, just thinking out loud.
I had vacuum gages on the carbs when syncing. They required I adjust the valves on the gauges to keep the needle steady. Otherwise they bounced terribly! That might have just been the gauges I was using.

When running, each carb only pulls vacuum for 1/2 a revolution, and then has no action for 1 1/2 revolutions. I would imagine during that time that the vacuum would leak down through the throttle plate. I really ought to invest in a vacuum gauge to see what it's doing.

You'd be a good candidate to test the white/red mystery wire on the CDI. 🤔 I think you could just flash the timing light and hit the start button while idling, see if the timing advances or retards. Starter clutch will prevent engagement of the starter.
This has been bugging you for awhile, hasn't it! ;) I'll check it out while I'm at it.
 

·
Registered
Joined
·
710 Posts
Discussion Starter · #4 ·
Guess what arrived today???
52850
 

·
Premium Member
Joined
·
1,233 Posts
Yes it has been, I attribute that to it being winter. I did get a short ride in today. It was a balmy 44 degrees today.

Fascinating little gadget you have there. Curious to see how it works for you.
 

·
Registered
Joined
·
710 Posts
Discussion Starter · #8 ·
My first goal is to get it running on a stock ignition table to verify I have everything installed/configured correctly. I have a few more parameters to set/adjust before I can install it.
1. I need to measure the angle difference between the pick-up coil and the target on the crankshaft (Base Advance).
2. I need to measure the coil dwell time (the time the coils charge up before each spark) on the stock system. The TCIP4 manual says to use one setting for < 2 ohm coils and another for > 2 ohm coils. The VN750 manual says the coils are 1.8-2.2 ohms, so I'm not sure what setting to use!!!
3. I need to transfer my safety cut out circuit over to the ground side of the ignition coil relay.

Then we experiment, and slowly make changes to the system.
1. Run the new ignition with a stock ignition curve to see if it runs properly. Check timing with timing light. Oil splatters everywhere! ICK!
2. Tie the two carb vacuum ports together to see if that affects how it runs. <-- This step alone will be quite interesting information for this bike! Some VW Beetle owners do this to smooth out their idle. I'm curious what it will do to the VN750.
3. Add in the MAP sensor and verify I have readings that make sense. I should be able to sync the carbs with the MAP sensor and a clothes pin, cutting off the sensor from each carb at a time.
4. Add my switches to toggle between stock and modified timing curves, and global retard (turned off for premium fuel).
5. Add a shift LED. Just for fun! :)
6. Get a few rides in to find some common cruise RPM and MAP readings. I'll have to wait for some warmer weather for this :( I'd like to cruise at 30 - 90 in 5th gear, holding at every 10, to find what RPM and MAP readings I get at those speeds. I also want to grab a WOT run in 3rd out to 8500 RPM and a closed throttle decel back down to idle, to see what I get for MAP readings at the extremes.
7. Rent time on a dyno, and tune those points for best response.
8. Upload my tuning file for others to use.
9. Enjoy the ride!
10. Post my impressions a few months later.

1-5 I can do before spring. 6-10 are going to have to wait for a bit.

52852
 

·
Registered
Joined
·
1,559 Posts
I'll be watching this with interest for sure. I salute you from the peanut-gallery.
Don't forget to hit that start button with the stock IC plugged while you're slinging oil around to see if it does anything to the timing!
 

·
Registered
Joined
·
710 Posts
Discussion Starter · #10 · (Edited)
I measured the coil dwell time. The first picture shows 50.3mS between sparks (1,193 RPM).
52868

This image shows a coil dwell time of 14.3mS.
52869

The portion where the current stops rising and goes flat means excess dwell time. That causes extra heat in the ignition coils.
So it looks like 8-9mS is all that's needed. Current tops out around 6 amps, which is what's expected from a 2 ohm coil with 12 volts on it.
52870

At high RPM, I had some interference. This is 7,998 RPM.
52871

At this high RPM, the dwell is cut down to 2.662mS. So this shows that at high RPM, the dwell time is greatly reduced. However, battery voltage is increased. The current is approximately 2.5 amps. Spark energy is about 40% of what it is at idle.
52872

When I measured the base advance, I lined up 5 degrees BTDC.
52873

The coil pick up was right at the edge of the target on the crankshaft.
52874
 

·
Registered
Joined
·
710 Posts
Discussion Starter · #11 ·
I put this info into the progammable controller, along with the stock advance (5 at 1,100 to 25 at 3,500). I plugged it in and she fired right up!

I checked the timing on the stock controller and the programmable controller and they both match! No need to spray any more oil.

On the stock controller, I didn't see any change with pressing the start button. So the Red/White wire purpose is still a mystery!

I put several Ts in the vacuum lines, so the two carbs are linked with the MAP sensor between them. Linking them makes it behave just a bit different. Higher idle and a bit of rev hang. I might have to readjust the idle mixture screws.

I tested the rev limiter by setting it to 5,000. It works well! When it kicks in, the tach goes nuts trying to match the missing sparks. But the revs hold steady. I reset the limiter to 8,500.
 

·
Registered
Joined
·
1,559 Posts
Nice job on the swap. That'll be a huge boon to people looking to swap out their igniter.
I really need to make friends with an electrical engineer and have them figure out what that input is from the start button. I wonder if we could track down the original engineer at Kawasaki? XD
 

·
Premium Member
Joined
·
1,233 Posts
It’s always a good time when you break out the O-scope! Really cool info. I read before that spark cuts down as RPMs increase, awesome to see the science illustrated. I have an old scope from tech school, I may try this someday to see how the bike matches up to your findings.

Great work!
 

·
Registered
Joined
·
710 Posts
Discussion Starter · #14 ·
Here is the new controller, stuffed on top of the battery.
52875

Here's the connections. I tapped into the safety cutoff line (Neutral, Clutch, Kickstand) to run it to the negative side of my direct coil relay.
52876

The programming connection sits just under the seat and frame on the right side.
52880

T fitting on left side of the bike. The additional hose crosses over to the right side.
52877

The two T fittings on the right side. This ties the two vacuum ports together, and Ts off to the vacuum sensor. The vacuum sensor uses 1/8" line, so there is a brass size changer towards the top left of the picture.
52878

The vacuum sensor (three wires) is tucked behind the engine, with the hose routed over top the rear cylinder.
52879


All electrical connections are reversible on the road. If you look carefully in the second picture, the original controller is still in its stock location. Should I ever have a problem, I can return to the stock controller in just minutes. I'll have to ride it to see how the conjoined carbs feels.

When I am all said and done here, I'll upload my tuning file. It's going to have both a stock (no vacuum sensor) tuning and a modified tuning. I'm going to only run stock until I can get on a dyno.
 

·
Registered
Joined
·
710 Posts
Discussion Starter · #15 ·
Just in case something happens and I never get back to this, here is my tuning file as of this past Saturday. This can be used as a stock ignition controller replacement. HOWEVER, it does NOT include the safety cut-off switches (Neutral, Side stand, Clutch).

This tuning file has an alternate table that is NOT tested, that is enabled by grounding the new controller's pin 8. It has a rev limiter programmed to 8,500 RPM, a shift light (PIN 3) at 8,000 RPM, and a MAP sensor (Pins 6, 16, & 17). The MAP sensor is ignored for the stock table.

Other than the safety cut-off switches, this is a plug and play replacement. Just rename the file to .ign in order to use.
 

Attachments

·
Registered
Joined
·
710 Posts
Discussion Starter · #16 · (Edited)
The Ignitech software doesn't provide a very good data logging capability. However, the software does provide real-time data updates 2x every second.

So since I'm still waiting for the weather to clear, I decided to write my own! I recorded the serial data that the software sends and receives. By sending out the same data over the serial port, I can get the controller to send back the same real-time data! I tested it, and the controller responds in 1/10 of a second, so I might be able to get updates even faster than 2x a second.

I haven't yet decoded all of the data that the controller sends back. It sends back 74 pieces of data, and I only know what 8 of them are. But it's all the ones I'm most interested in.
What I'm able to decode is the following:
RPM
Map Sensor Pressure
Map Sensor Voltage
Battery Voltage
Optimal Dwell time on ignition coils
Actual Dwell time on ignition coils
Ignition Advance coil 1
Ignition Advance coil 2

Some of the other data includes the status of the inputs or outputs, the polarity on the ignition pick-ups, and other useful but non-critical information.

I wrote a program using Python for a Windows PC that will connect to the ignition controller (or timeout in 5 minutes if it fails). After that, it will continually request and log data until it looses connection (bike shut off) for 1 minute. The data is displayed on screen like so:

Timestamp RPM kPa Sensor Voltage Battery Voltage Optimal Dwell Dwell Advance 1 Advance 2
14:54:04.150 1249 86 3.782 12.494 6.5 8.9 5 5
14:54:04.450 1252 86 3.782 12.456 6.5 8.9 5 5
14:54:04.950 1253 86 3.782 12.502 6.5 8.9 5 5
ETC...

The log file shows up like this (All of the data bytes are recorded at the end of the column for future use when I find out what they mean):
TimestampStatusRPMkPaSensor VoltageBattery VoltageOptimal DwellDwellAdvance 1Advance 2Raw Data Bytes
1:48:22 PM​
Good
1249​
86​
3.782​
12.494​
6.5​
16.9​
5​
5​
1968​
249​
3782​
86​
8494​
1:48:23 PM​
Good
1252​
86​
3.783​
12.456​
6.5​
16.9​
5​
5​
1968​
249​
3782​
86​
8494​
1:48:23 PM​
Good
1253​
86​
3.780​
12.502​
6.5​
16.9​
5​
5​
1968​
249​
3782​
86​
8494​

The log files are named like this, giving you the date and time that you started logging the data:
2021-02-03 13-48-21 Ignition Log.csv
The max log time is well over what you could ride in a tank of gas (defaults to 24 hours), but it can be set as short as 1 minute.
Pressing 'CTRL+C' will also close the logging program.

While my use is just for determining riding characteristics at a few cruising speeds, this file could be modified for use on a Raspberry Pi and you could run it as a black-box data recorder on your bike! Especially when paired with a GPS receiver.

This is version 0.1 of the program. I'll upload a new version if I find a bug in it, or if I find out what the rest of the returned data means.
Be sure to change the file extension to .py.
Also, line 6 of the program sets the COM port that is used. It's COM6 on my computer. You might have to change it on your computer.
I hope to add the ability to automatically scan and find the proper COM port, but I'm not there yet.

EDIT: I have updated the file to the latest version (1.4 dated 2/11/2021).
It is up to date with the real-time advance readings.
The kPa values returned from the controller were integer values, but the MAP sensor voltage was in mV from 0 to 5 volts. I now calculate the kPa using the sensor voltage.
The program also captures MAP pressures whenever the engine is off, to determine barometric pressure. This is used to change the kPa values into vacuum values in units of inches of mercury (for the old-timers). This vacuum reading will also be useful in determining if there's any restriction in the intake.
 

Attachments

·
Premium Member
Joined
·
1,233 Posts
This is pretty slick, I work with an engineering team and you sound like one of our developers lol

Good stuff
 

·
Registered
Joined
·
710 Posts
Discussion Starter · #19 · (Edited)
I tried out my logging program. I had to make a few changes, so after I post this, I will re-upload the file.
Here is a log of the RPM and carb vacuum as I revved it in my garage.

52916


It looks like I'm able to capture data between 15-16 times a second with my data logger!!!
The time stamps only show down to 1 second accuracy, so I have to make some more changes to the logger.

Additionally, the numbers I thought were the live readback of ignition timing are not that. I'll upload the whole data file to crowdsource finding it in the columns starting with L. The data is sent back 1 byte at a time. The data I did manage to decode was two byte data, stored with the low byte first. I assumed all the data was two bytes, but that may be an incorrect assumption. I'm also going to email the company to see if they'd be willing to help me out. Since I've gone this far, they might be interested in helping in exchange for the program I wrote.

I adjusted my ignition timing at idle with closed throttle to be 8 degrees (up from 5). Each increase brought with it a boost to RPM (indicating that it preferred more timing). Increasing to 9 degrees had little to no effect, so there wasn't any benefit going passed 8. I adjusted the idle screw back down to 1150 RPM. Since I have the vacuum reading, the timing drops back to 5 degrees as soon as you crack the throttle. It will need some fine tuning. However, this already indicates a boost to efficiency! It should run cooler at idle now. EDIT: I have 91 octane ethanol free gas in it right now (for winter storage) so I might have to back off the idle timing when running 87.

The only other tuning adjustment I made was at closed throttle decel from redline down to just above idle. I set the timing to -5 (5 degrees ATDC). This is a very late spark, and results in a flame that's still burning when the exhaust valve opens. Granted, a small one (closed throttle). Extra pops on decel (See video below).

My current map (rev limiter set to 8500)
52921


I also discovered that I was able to use this to sync my carbs. I simply pinched the hose on either side of the MAP sensor to get a reading from each carb. I initially went the wrong way though, because with kPa values, higher means less vacuum. She wasn't too far off, but the poor girl was barely running on the front cylinder after my first adjustment!

Attached files:
"Ignition Timing File 02-06-2021.txt" --> Rename to "Ignition Timing File 02-06-2021.ign"
"Ignition Timing Data.txt" --> Rename to "Ignition Timing Data.xlsx"

Here's a video of the run that is logged in the data. I had closed the petcock, so this was to run the carbs dry of fuel. Near the end, it starts running rough because it's running out of fuel. But at the start, you can hear (and see) the backfire when I release the throttle!
 

Attachments

1 - 20 of 62 Posts
Top