Speeduino is now on Github Sponsors (Rather than Patreon): https://github.com/sponsors/noisymime
Help with building your Speeduino, installing it, getting it to run etc.
By Jcrotts
#47569
Ok, it's nowhere near turned, but it runs. I noticed what may be an issue, but I'm not sure. I got the engine to running temperature of 160F, but I can't go any leaner than 14:1 AFR. It stumbles and misfires. 5 degrees advance at 400 rpm idle. 62kpa MAP reading. I dont know if the stock ignition timing numbers are for terrible 50's gasoline, or what makes best power.

The engine is used under near constant load (pulling/pushing implements, PTO output, hydraulic lift carrying implements, pulling it's own weight on tires that weigh over 250 lbs each, etc) around 1500rpm or less. This thing is built for heavy loads at low rpm. The entire rpm range is usable power.

There was a comment earlier that running rich isn't good, but shouldn't the engine run rich anywhere off idle for best power output, or is my assumption wrong?
User avatar
By PSIG
#47598
Jcrotts wrote:
Thu Jan 14, 2021 3:27 am
Ok, it's nowhere near turned, but it runs. I noticed what may be an issue, but I'm not sure. I got the engine to running temperature of 160F, but I can't go any leaner than 14:1 AFR. It stumbles and misfires. 5 degrees advance at 400 rpm idle. 62kpa MAP reading. I dont know if the stock ignition timing numbers are for terrible 50's gasoline, or what makes best power.
You say it's nowhere near tuned, and tuning one thing affects everything else to some degree. 62kPa is an unexpectedly high unloaded value, but you haven't tuned ignition yet either. Is your Trigger Angle accurate? Does your WBO2 have voltage offset? One point is that your sensors can be inaccurate even if your calibration is right, and is one big reason we never tune to numbers, but rather tune to best performance and only use numbers for comparative or later reference. We only care that the numbers are consistent and repeatable.

If your actual fueling is best for torque, then it is. Same for timing. What the actual numbers are is irrelevant, except to use as relative reference in order to repeat that value in the future. So, if peak power is reached at an indicated Lambda 1.05 (15+ AFR), it may actually be 0.9 (13 AFR), and we don't care as long as it does the exact same thing next time. You can go crazy chasing numbers. Chase performance efficiency (torque, power, economy, etc).

Tuning is comparative diagnostics. While we would like our data to be accurate, it is used in tuning as comparative and relative to other data during testing. Better is better. To make the point, imagine if your O2 reported data with letters. Testing shows Lambda K produces better performance than J or L, so we use K. Likewise, we can use it for problem diagnostics this way. If it idled best at T kPa, and now it's at V kPa, we can chase the issue with comparative diagnostics.
Jcrotts wrote:
Thu Jan 14, 2021 3:27 am
The engine is used under near constant load …
Lucky you! It should be even more fun to tune as it operates more like a steady-state dyno. ;)
Jcrotts wrote:
Thu Jan 14, 2021 3:27 am
There was a comment earlier that running rich isn't good, but shouldn't the engine run rich anywhere off idle for best power output, or is my assumption wrong?
Good point! Running "rich" or "lean" is relative. But relative to what? Relative to best performance. For a few that deal with emissions tuning, it is relative to Lambda 1.0 (stoichiometric), but that's fairly unusual and for specific purposes and goals.

So if you find best performance Lambda at a specific table location, any more fuel is rich, and any less fuel is lean, from that reference point. While we may deviate from that point for specific purposes (economy tuning, detonation suppression, etc), best performance is the goal. Whatever that resulting Lambda and timing is, will provide the most efficient energy production, at that point on the table. So from that I hope you can see my comment about running "consistently rich" is not a good thing, relative to running at best performance and efficiency.

Thanks for questioning the basis for the relative term for clarification. 8-)
By Jcrotts
#47745
I'm ready to tune it now. I had to get a new wideband controller because I did something dumb and fried my old one.

The way I tuned it with the carburetor was to put it in 4th gear at idle and let the clutch out , and add fuel until it didn't stall. I ended up around 12.5:1. From what your saying, that's not technically "rich" because that's where it makes power, so it's ok.

Also is autotune in tunerstudio any good? I have seen some people say it wasnt. If I can use it I'll just stick a plow behind the tractor, go through the field, and let it tune itself.
User avatar
By PSIG
#47749
Jcrotts wrote:
Wed Jan 20, 2021 2:55 pm
The way I tuned it with the carburetor was to put it in 4th gear at idle and let the clutch out , and add fuel until it didn't stall.
That is not best performance; that is enough power to not stall. ;) Conversely, adjusting fuel until rpm is maximum at a stable throttle setting and load (or other indicator, e.g., minimum/lowest MAP under the same conditions) would be best performance. At that point you would follow your plan and use the indicated Lambda/AFR for that AFR Table target cell. The AFR found best will change across the speed and load of the engine, and even more-so if you use advanced tuning for things like sufficient power while saving fuel at certain operational points.
Jcrotts wrote:
Wed Jan 20, 2021 2:55 pm
Also is autotune in tunerstudio any good? I have seen some people say it wasnt. If I can use it I'll just stick a plow behind the tractor, go through the field, and let it tune itself.
"Auto-tune" is VE Analyze, or VEAL for live (real-time). Yes, if operated properly, with all of the optional settings configured for your application. You tell it when, where, and how much to change the tune in options and filters, along with important settings like how much delay is on the WBO2 at different rpm, so you are correcting the right table cells. ;)

Also and at least initially, I suggest you do not allow live (real-time) corrections, as something like a rich misfire will read lean on O2, and auto-tune will add fuel for the lean spot without asking, making it worse. :shock: Many have wrecked their tune by 1) not saving the tune separately so you can go back to a known point with a click, and 2) letting the VE Analyze Live run wild without supervision. VEA is designed to help you do the work, not do it all for you, and not without specific instructions (settings).

I have saved a lot of extra work by just driving for a good log, then taking a few moments to review the VEA suggested changes before accepting them. Yes, TS stores tune changes in a special file folder, but it is much simpler to keep a "last-best" tune, updated with any improvements, as a fallback and the one you drive on. Tune with a copy, and if you get into trouble, just reload the old "last-best" tune and try again. If tuning is better, then save the copy as the new "last-best" tune. This way you can experiment with crazy ideas, or just see what some function does without losing your place, and enables a lot of tuning freedom.

I use TunerStudio for setup and adjustments, but the majority of tuning and analysis I use the much more powerful analytics of MegaLogViewer. This allows me to monitor running and change basic settings on TS, but analyze the live or log data on MLV, and make adjustments through either as-appropriate. It's also much safer to log and analyze, than try to follow what's happening while operating the engine or vehicle simultaneously. You will miss something, perhaps important. That's how I do it for easiest tuning diagnostics (what to change and why) and best and quickest results, but every tuner is different, and you should use whatever proven methods you can wrap your head around and that work for you. 8-)
By Jcrotts
#48370
It has been a while since my last post but I haven't had much time to work on the project.

I have been chasing the injector dead time for a while now. In short, I'm using the method of making a log , removing the outliers, then throwing the numbers at a scatter plot with a trend line and y- intercept. I am getting numbers all over the place with this method though. For some reason it gives a higher dead time with the alternator charging. I'm getting numbers as high as 4 ms at 14.3 v. I'm showing around 1.6 ms at 11.8 with alternator not charging. I can't find any specs on my injector so I'm just setting the open time at 1 ms and going up and down 20% from there to get the data points. It feels like I am beating my head against a wall after all the time it takes to get the data, clean it up and make the scatter plot, only to end up with numbers that make no sense.

It's a Bosch 63844 / 0 280 156 161. They are supposed to be a popular swap for Jeep engines, because they are 12 hole injectors, but I have searched the forums and haven't found any specs yet. If anyone has tested one or has specs I would VERY much appreciate any info.
User avatar
By PSIG
#48372
I'm a bit confused by your description, and it seems you are looking at open milliseconds? When setting dead time (injector latency), there are various methods you can use. Examples are — one is on the bench with a injector test setup or running engine, reading the pintle movement with an oscilloscope for a given voltage, noting the "dead-time" from energizing to pintle opening, and again from de-energizing to pintle close.

Another is on an injector flow tester, comparing the flow volume of a given number of cycles against flow with a different number of cycles in the same time period (description here), with the flow difference caused and calculated as injector latency time.

However, the most common method for tuners is on the running engine, reading the effects on running via O2 readings. You can (similar to the last method) vary the number of injections per-cycle, reading the difference in fueling as a result in Lambda (AFR). If the Lambda changes when adding more injections, e.g., switching from 4-squirts to 2-squirts, Then the difference is in the latency time and the dead time setting is incorrect at that voltage. This difference can be calculated for a specific result.

I would suggest a search of "injector latency" or "dead-time" to see the various schemes used to test for correct dead-time settings. Dead Time is important to tune stability and tuning progress, and should IMO be tested on every project or change of injectors. I imagine there are many insane tuners walking in circles and mumbling, that attempted to tune without accurate dead times. :lol:
PSIG wrote: This method for determining injector latency compares two sets of pulse width values from two running conditions. The contrast between the two conditions is the number of injections, per injector, per-cycle. If we adjust the running in each condition to the same AFR/Lambda at the same load and RPM, the total fuel flow is assumed to also be the same, and the difference between the values of the two conditions is the effective injector latency.

Set Speeduino to the number of injections, per-injector, per-cycle, to the cylinder count; e.g., 4-cylinder = 4, etc. Select 2 per-cycle if your system is limited to that. Speeduino cannot be in sequential mode for this testing unless your code version allows multiple injections-per-cycle in sequential mode.

If your setup uses MAP-referenced fuel pressure regulation, disconnect the reference line and plug. Bring the engine up to temperature and allow to stabilize both temperature and voltage. In neutral gear, hold engine speed at a specific target rpm (e.g., 2500 RPM), with EGO (AFR/Lambda) corrections ON. Using a throttle stop, clamp, or wedge may be helpful to hold target RPM steady.

As the AFR will slowly waver, the corrections should vary back and forth across zero correction percent. If necessary, temporarily tune close to the AFR target the VE Table area you are testing in, so the corrections are smooth and relatively slow. Log the stable running at the fixed rpm for several zero-crossings. Review the log and note the injector pulse-width at zero correction as "PWa".

Repeat with half the injections-per cycle. [Avoid 1-per-cycle if possible, as that may affect fuel distribution and resulting Lambda.] Again read the pulse width when the O2 correction crosses zero, recording this time as PWb. !! DO NOT DRIVE WITH THESE SETTINGS. RETURN TO YOUR ORIGINAL TUNE SETTINGS (and MAP-reference) BEFORE LOADING THE ENGINE !!

Calculation to separate the known correct fuel flow from the unknown latency (open or dead time):
--------------------------------------------------
(#a * PWa) - (#b * PWb) / (#a - #b) = Latency

Where:
#: Number of injections (per injector, per-cycle)
PW: Pulse Width (at zero crossing)
--------------------------------------------------

Example using a 6-cylinder engine and system code limited to 1 or 2 injections per-cycle:
Test "a": Set-up Speeduino for 2 injections per-cycle simultaneous (2 per-injector per-cycle). Run, fully warmed, at fixed 2500 rpm while logging. On log review, when the EGO correction to the target AFR is zero, the PW is 1.6ms.
Test "b": Speeduino is reconfigured to 2 injections per-cycle alternating (1 per-injector per-cycle), and run under the exact same conditions. On log review, the PW at zero correction was 2.3ms.

(2*1.6) - (1*2.3) / 1 = 0.9 ms

Notes:
1) Most injectors exhibit non-linear (odd) latency time at very small pulse widths. Engines with very large injectors may require loading the engine at a steady load and RPM in order to bring the injectors into the linear operating region.
2) MegaLogViewer (free or registered) is suggested for reviewing logs and test results easily and accurately, and with greater safety when not running or driving the vehicle. Registered versions of TunerStudio are able to review logs.
3) If your system is not capable of switching injection modes, simple change of injections-per cycle works well also, e.g., testing at 2-squirts and then at 4-squirts per-cycle. Remember, the point is to make two (or more) tests with exactly the same conditions, except for number of injections per-cycle, revealing differences caused by incorrect latency across a different number of injections.
4) After completion, the comparative test may be repeated with a loaded electrical system (reading lower voltage), finding the first value of the injector voltage correction table.

-=END=-
By Jcrotts
#48374
I used the method I found here.

https://www.miataturbo.net/ecus-tuning- ... ime-56061/

I can't switch from 4 to 2 pulses per revolution because I would need to up my fuel pressure to 55 psi to get enough flow to not get an error in the required fuel calculation. Wouldn't open time be wrong if I increase pressure for testing then go back to 45 psi after I set the open time?
By LPG2CV
#48376
Check the voltage going to Speedy and to the injectors (and coil) is the same. The configuration depends on the voltage being the same or it cannot work properly. Its not a bad idea to have the FP, coil, and injector supplied by the FP relay, as when the engine stops rotating, the supplies are cut. if Speedy is supplied via the feed to the FP relay, then there should be minimal difference in voltage providing the relay is sound. Try to avoid to many connectors as they can add resistance and therefore voltage drop. Worse, the voltages could vary.
User avatar
By PSIG
#48391
Jcrotts wrote:
Mon Feb 15, 2021 7:32 pm
I can't switch from 4 to 2 pulses per revolution because I would need to up my fuel pressure to 55 psi to get enough flow to not get an error in the required fuel calculation.
I think there may be an issue with your fuel PW calculations, as in a general sense reducing the number if injections per-cycle should increase the available fuel through less dead-time, not require more pressure for flow. You may have to use 8 squirts and 4 squirts, or use more injectors in order to maintain PW control at low loads. The issues appear to be limitations to "normal" value ranges programmed into the engine constants, Req_fuel calculations, and resulting PW values.

That said, you wouldn't want to run 2-quirts anyway, as that would affect your fuel distribution. 8 and 4 would be OK for that (if programming would allow the change), but likely too short at low loads. :?

Determining injector latency through MAP/AFR Y-intercept may be an issue in your case not due to lean misfire, but rather drifting into non-linear flow range of the injector. Results using this method is likely scattered for this less-common reason. This is one reason OEM single-injector TBIs typically used very quick injectors. I don't think you have an upper flow problem with your injector for reasons stated above.

Can you post a your current tune and a run log at various loads for us?

You may also see more clues running with the Calculations.dash loaded into TS from your code reference folder.
By Jcrotts
#48395
I dont think it's a problem with my calculation as much as how the system calculates. My 23 lb injector should support about 40 hp, but your average 2.0 L engine is capable of well over 40 hp. My engine is rated about 26 hp at 2000 governed rpm.

When I put the numbers in for required fuel it says I need a 25.6 ms pulse width at 100% ve, with 2 pulses per cycle. Max pulse width is 25.5 ms. It would take some form of forced induction for this engine to hit 100% ve at 2000 rpm, and even then the exhaust has a 1.5 inch outlet, and a very restrictive intake, so it doesnt breathe very well. Not to mention the terrible one piece intake/exhaust manifold. Long story short, I should have enough fuel, but the math says I don't.

I'm going to switch to a 30 lb injector tomorrow and see if that makes tuning any easier. I have dozens of injectors around, from 13 lb to 60lb. I dont want to go too big because I need an idle between 350-450 rpm. I don't want to flood it out at idle.

As you even picked a very well tuned motor bike en[…]

VW 2H setup questions

Hi, parts for these cars are available from VAG or[…]

Back feeding usb

Might be worth adding something to the wiki. It's […]

Knock Sensor working on Speeduino

When I dealt with Bosch about 10 years ago I was[…]

Still can't find what you're looking for?