MS2/Extra 2.0 beta 14 (20071020)

This is a forum for discussing the development and testing of alpha MS2/Extra code. Documentation
(Runs on MS2 and Microsquirt)

Moderators: jsmcortina, muythaibxr

muythaibxr
Site Admin
Posts: 8228
Joined: Thu Oct 14, 2004 12:48 pm

Post by muythaibxr »

One easy way to get it close (not perfect, but good enough) is to change the number of squirts, and then adjust the opening time until the AFR is close to what it was previously. There are other effects that will cause this method to be a little off, but not by that much.

When you're done you should be able to change between any number of squirts alternating or simultaneous with little change in AFR.

Ken
M52 POWER!
Helpful MS/Extra'er
Posts: 122
Joined: Tue May 29, 2007 7:23 pm

Post by M52 POWER! »

Great success! I had opening time set to 1.30ms. After 5 minutes of adjusting lower and lower until 2sq/cycle and 6sq/cycle's idle AFR matched I landed at 0.73ms for opening time! Almost half the original amount.

Spent a hour retuning VE and I'm all back to normal except off idle throttle response is almost instantaneous and it feels a little more torquier in the midrange.

I'm going to tune the VE map until it's perfect and then start getting serious with EAE. Currently using TPS AE.

Duty cycle max at 76% near redline.

Thanks for the help!
UnaClocker
Super MS/Extra'er
Posts: 1933
Joined: Fri May 07, 2004 12:59 pm
Location: Tacoma, WA
Contact:

Post by UnaClocker »

The best way to determine it is to change the number of squirts. See if it gets richer or leaner, and adjust accordingly. Keep repeating until you get no change in AFR's when you change the number of squirts.
Brian
'84 Dodge Rampage
mops
Master MS/Extra'er
Posts: 705
Joined: Sun Sep 25, 2005 5:13 pm
Location: Auckland, NZ
Contact:

Post by mops »

M52 POWER! wrote: Spent a hour retuning VE and I'm all back to normal except off idle throttle response is almost instantaneous and it feels a little more torquier in the midrange.
Thanks for the help!
What size injectors you run ? what's idle PW and DC ?
are you running 6 alt all the time now ?


Anyways, i got this other ms2/x question.....
early on some people reported comms issues between mt and ms (myself included). was anything done in that department ?

I kinda always had comms issues. eg. i'll always loose coms when trying to burn from spark table screen. maybe it's my usb to serial adapter...
BMW, 1985, E30, 325i, 2-door, 5spd. Lots of custom work. Turbo build in progress: http://www.e30tech.com/forum/showthread.php?t=55733
M52 POWER!
Helpful MS/Extra'er
Posts: 122
Joined: Tue May 29, 2007 7:23 pm

Post by M52 POWER! »

Idle PW is about 1.25 and DC 3.8. Injectors are 24# bosch "type R".
Philip Lochner
Super MS/Extra'er
Posts: 1004
Joined: Thu Feb 16, 2006 6:18 am
Location: George, South Africa

Post by Philip Lochner »

M52 POWER! wrote:How do I figure out my injector opening time.
One way of doing this is as follows:
Lift the fuel rail with injectors from its position but maintaining the fuel hose connections, place transparent holders under the injectors and use injector test mode (not sure if this is available in MS2/Extra). I started with 1ms and increased the pw by 0.05ms until I could see positive small amounts of fuel dribbling from the injectors. This is a rather dangerous operation though, as I did have one injector popping off the fuel rail with the full force of the fuel pump then squirting fuel out the rail - not a good time to have an ignition source nearby.

Interesting thing was that although all the injectors had the same Bosch part no, one started opening at 1.25ms while most opened around 1.4ms and some were slower. These differences in opening times must surely result in differences between different cylinders - with these differences increasing the more squirts per cycle one implement.

To me this is another important reason for sequential - to be able to have more uniform AFRs accross the various cylinders, for smoother running.
Kind regards
Philip
'74 Jensen Interceptor 440ci (EFI'ed with MS2 and wasted spark + GM 4L60e GPIO controlled - both on Extra FW)
mops
Master MS/Extra'er
Posts: 705
Joined: Sun Sep 25, 2005 5:13 pm
Location: Auckland, NZ
Contact:

Post by mops »

That is correct....
in my limited testing of fuel injectors, with ms in test mode, I found that a set of injectors flows the same at long pw's, however on very short pw's they might be non linear. it is commonly described that they all flow a bit differently, however my data shows that they all flow the same, however opening/closing time vary within few 0.01ms's therefore at low pw's (very close to opening time) they might appear to flow differently.
BMW, 1985, E30, 325i, 2-door, 5spd. Lots of custom work. Turbo build in progress: http://www.e30tech.com/forum/showthread.php?t=55733
M52 POWER!
Helpful MS/Extra'er
Posts: 122
Joined: Tue May 29, 2007 7:23 pm

Post by M52 POWER! »

Does .73ms opening time seem too fast? I mean, it's working like it's correct but every other value I've seen from other people its usually 1.1ms or more!
masterx81
Master MS/Extra'er
Posts: 776
Joined: Mon Oct 25, 2004 7:36 am
Location: Asti - Italy

Post by masterx81 »

Probably with low imp. injectors you can have a better opening time...
Enrico
Opel/Vauxhall Corsa GSi MS2
Subaru v4 EJ20 MS3
Keithg
Super MS/Extra'er
Posts: 2413
Joined: Sun Mar 06, 2005 9:15 am
Location: Chicago, IL, USA
Contact:

Post by Keithg »

M52 POWER! wrote:Does .73ms opening time seem too fast? I mean, it's working like it's correct but every other value I've seen from other people its usually 1.1ms or more!
That is about what I have empirically determined as an opening time with my Bosch 431 (red top) injectors.

KeithG
Caaarlo
Helpful MS/Extra'er
Posts: 65
Joined: Mon Jun 06, 2005 9:47 pm
Location: San Juan, Argentina
Contact:

Post by Caaarlo »

Mike_Robert wrote:.73 is within observed working parameters. I have some Mazda (Bosch makes them, I think) 680s that open at .8ms both by scope and observation.

-Mike
How can you measure by scope ?
MSnS-E 25mX custom version.
MT 2.25b602
V2.2 board

Click to see my car
Tjabo
Master MS/Extra'er
Posts: 846
Joined: Sat Nov 05, 2005 7:36 pm

Post by Tjabo »

muythaibxr wrote:IF your injectors are too big or too small then you won't be able to just go to the maximum number of squirts for your engine so I added the lag compensation feature, which automatically goes to the maximum number of squirts for your engine when tpsdot or mapdot go over a certain threshold, then goes back to the normal number of squirts otherwise.

I also have some other features in mind to help throttle response, such as if you're mid-squirt when an accel event occurs, extend that squirt to the new value so that cylinders on those injectors will get close to the right amount of fuel that much sooner. I also plan on doing some MAP prediction using manifold volume, engine volume and throttle position along with an Alpha-N table (tuned properly). This should also help throttle response on certain engines.


Ken
Ken,

I know that I'm not real well educated on this stuff, but I am constantly amazed by the work you and James have done on this code. Simply amazing! ! !

Thanks!

Thad
mops
Master MS/Extra'er
Posts: 705
Joined: Sun Sep 25, 2005 5:13 pm
Location: Auckland, NZ
Contact:

Post by mops »

here's another thing.

AFAIK, durning acceleration, engine could take more timing than normally. there could be an option that allows us to set extra, additional advance on ae event. i think that would greatly help low rpm response.
BMW, 1985, E30, 325i, 2-door, 5spd. Lots of custom work. Turbo build in progress: http://www.e30tech.com/forum/showthread.php?t=55733
UnaClocker
Super MS/Extra'er
Posts: 1933
Joined: Fri May 07, 2004 12:59 pm
Location: Tacoma, WA
Contact:

Post by UnaClocker »

mops wrote:here's another thing.

AFAIK, durning acceleration, engine could take more timing than normally. there could be an option that allows us to set extra, additional advance on ae event. i think that would greatly help low rpm response.
Yeah, and I remember a request to define more timing based on rate of RPM rise. Because you can get away with more timing advance in lower gears/lower load situations, then you can in higher gear/towing/high load situations. Some of the stock ECM's do this (Ford comes to mind), and I've noticed the need for it when trying to tune some of my cars to the edge.. I get away with more timing until I go to climb a very steep hill, especially if I don't bother to downshift.
Brian
'84 Dodge Rampage
muythaibxr
Site Admin
Posts: 8228
Joined: Thu Oct 14, 2004 12:48 pm

Post by muythaibxr »

I may consider adding this in 2.1.
woh
Super MS/Extra'er
Posts: 1013
Joined: Sat Aug 27, 2005 2:19 am
Location: Colorado, USA
Contact:

Post by woh »

jsmcortina wrote:
woh wrote: When I get a table (e.g.VE1) using the 'r' command no data is returned (0 bytes) when I first go to a new page. After the first time it always works even if the table changes (but not the page). Is that a bug? Or am I expected to add a delay after the first three bytes of the command every time I change the page? It works fine with a delay after the first three bytes. I'd like to see the firmware keep track of page changes and add a delay. That would make the command definition much cleaner.
Could you post an annotated comm.log of what you describe.
I can not do these commands from MegaTune to log the communications (or I don't know how). I am sending the commands from VB6.0 and have no way to log the serial outputs.

The command (VE table 1) is 'r' 0 9 0 0 1 0 where each digit is a byte. If I send it this way the and there is a page change I get no data back. If I put a delay of 100ms between byte 3 and 4 it works fine. After sending the page change once it works ok.

The VB code looks like this and does not work the first time it changes the page. In this code I sent all the bytes immediately

Code: Select all

ReDim byteArray(6)
    
    ' Select a page
    byteArray(0) = Asc("r")
    byteArray(1) = 0
    byteArray(2) = 9

    ' Table starting point
     byteArray(3) = 0
     byteArray(4) = 0

    ' Set size (in bytes) of table data
    byteArray(5) = 1
    byteArray(6) = 0

    ' Send the commands to get a page and return the variables
    io.Output = byteArray

       delay 500

    ' grab data from comm port.
    DataIn = io.Input
This VB6.0 code works every time. Here thete is a pause between the third and 4th byte

Code: Select all

ReDim byteArray(3)
    ' Select a page
    byteArray(0) = Asc("r")
    byteArray(1) = 0
    byteArray(2) = 9
    io.Output = byteArray

    delay 200

    ReDim byteArray(3)
    byteArray(0) = 0
    byteArray(1) = 0
    byteArray(2) = 1
    byteArray(3) = 0
   
    ' Send the commands to get a page and return the variables
    io.Output = byteArray
    
    delay 500

    ' grab data from comm port.
    DataIn = io.Input
jsmcortina
Site Admin
Posts: 39587
Joined: Mon May 03, 2004 1:34 am
Location: Birmingham, UK
Contact:

Post by jsmcortina »

woh wrote: This VB6.0 code works every time. Here thete is a pause between the third and 4th byte
That makes sense. When the page changes the code copies the flash data into ram. This takes a finite time.
I am assuming that with 115200 comms the next character may get dropped in this time period.

Megatune implements a delay between bytes.

James
I can repair or upgrade Megasquirts in UK. http://www.jamesmurrayengineering.co.uk

My Success story: http://www.msextra.com/forums/viewtopic ... 04&t=34277
MSEXTRA documentation at: http://www.msextra.com/doc/index.html
New users, please read the "Forum Help Page".
masterx81
Master MS/Extra'er
Posts: 776
Joined: Mon Oct 25, 2004 7:36 am
Location: Asti - Italy

Post by masterx81 »

woh wrote: Stra cut...

This VB6.0 code works every time. Here thete is a pause between the third and 4th byte

Code: Select all

ReDim byteArray(3)
    ' Select a page
    byteArray(0) = Asc("r")
    byteArray(1) = 0
    byteArray(2) = 9
    io.Output = byteArray

    delay 200

    ReDim byteArray(3)
    byteArray(0) = 0
    byteArray(1) = 0
    byteArray(2) = 1
    byteArray(3) = 0
   
    ' Send the commands to get a page and return the variables
    io.Output = byteArray
    
    delay 500

    ' grab data from comm port.
    DataIn = io.Input
Little OT.
With VB6 you can quikly initialyze an array:
ReDim byteArray(3)
byteArray() = Array(Asc("r"), 0, 9)

And probably on the first redim, you have missed that you have filled it from 0 to 2, but it's length is 3, one byte is left 'unfilled'
Enrico
Opel/Vauxhall Corsa GSi MS2
Subaru v4 EJ20 MS3
Post Reply