Notices
ECU Flash

EvoScan v2.6 And New EvoScan GPS/Logger/Reflashing Touchscreen Review

Thread Tools
 
Search this Thread
 
Old Sep 20, 2009, 03:37 PM
  #1096  
Evolved Member
iTrader: (3)
 
fireroasted's Avatar
 
Join Date: Apr 2008
Location: CA
Posts: 902
Received 7 Likes on 6 Posts
usb splitter

Logruss, Can you or anyone else confirm that the splitter is working, and you are logging WB? I have tried 3 already from Frys, and have a real old ticket in the support system that I keep responding to, but doesn't look like that's working.
(GN4ZYBU4DQ)
I want to make sure, if I can, which USB splitter is working for the LC1 from someone already successfully using it. So far 3 for 3 with different errors.

Thanks
M
Old Sep 20, 2009, 05:47 PM
  #1097  
Evolving Member
iTrader: (1)
 
bandit09's Avatar
 
Join Date: Feb 2009
Location: Ohio
Posts: 159
Likes: 0
Received 1 Like on 1 Post
Originally Posted by xbox4414
The only thing I can think of is that although you added/downloaded the new exe file, maybe u didn't overwrite and/or it's opening an old exe file and you're not really using the latest beta. Only thing I can think of...
well i just copied my whole 2.6 folder, renamed it to 2.7 and then downloaded the updated beta and put the new files in that folder.

Hamish, any how-to or guide or something that I'm missing on how to do Map Tracing for the Evo X? I'd really really appreciate some help, I'm supposed to get tuned this weekend on a dyno and map tracing would make it 10000000 times easier.

Thanks!

Last edited by bandit09; Sep 20, 2009 at 09:15 PM.
Old Sep 23, 2009, 06:11 AM
  #1098  
Newbie
iTrader: (1)
 
shifty180's Avatar
 
Join Date: Aug 2008
Location: Australia
Posts: 14
Likes: 0
Received 0 Likes on 0 Posts
does evoscan gps work with a 1.3r cable?
Old Sep 23, 2009, 06:25 AM
  #1099  
Evolved Member
iTrader: (11)
 
binky's Avatar
 
Join Date: Oct 2007
Location: Connecticut / Massachusetts U.S.A
Posts: 1,430
Likes: 0
Received 1 Like on 1 Post
Originally Posted by Mellon Tuning
I'm still getting the occasional and seemingly random BSOD when logging even if I don't touch a thing. Nobody else? I don't have a problem with 2.5
Mine had a random BSOD also last night- running Windows XP SP3 with EvoScan 2.7 Beta 4.

I restarted the computer and opened it up and it ran fine after that, not sure why it did that.



-Bink
Old Sep 23, 2009, 07:47 AM
  #1100  
Account Disabled
iTrader: (38)
 
Mellon Racing's Avatar
 
Join Date: Aug 2005
Location: Virginia Beach, Virginia
Posts: 9,319
Likes: 0
Received 1 Like on 1 Post
yeah I had mine sitting in the passenger seat at idle yesterday, nothing being changed and the laptop/cables not being moved...BSOD again. previously I suspected that I might be kicking a cable out or something disrupting the communication since it only happens when it's logging.
Old Sep 24, 2009, 08:39 PM
  #1101  
Evolving Member
iTrader: (4)
 
funks's Avatar
 
Join Date: Jul 2007
Posts: 488
Likes: 0
Received 0 Likes on 0 Posts
Originally Posted by evo4mad
... adding PLX support
Hamish, I updated the source code listed earlier to make it more readable. I verified and it works on the PLX SM-AFR installed in my car. I'm able to get around 10 samples a second which is in line with the PLX docs..

PHP Code:
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.IO.Ports;

namespace 
PLXWidebandReader
{
    class 
Program
    
{
        static 
void Main(string[] args)
        {
            
Console.WriteLine("Defaulting to PLX on COM4, testmode enabled.");
            
IWidebandReader reader = new PLXWidebandReader("COM4");
            
// IWidebandReader reader = new PLXWidebandReader("COM4", 1, new PLXWidebandReader.fuelTypeFunction(new PLXWidebandReader.FuelType().Gasoline));
            
((PLXWidebandReader)reader).TestMode true// keep looping through test packet

            
reader.Start();

            
Console.WriteLine("Timestamp,AFR");
            for (
int i 01000i++)
            {
                
Console.WriteLine("{0:o},{1:F2}"DateTime.Nowreader.LatestReading);
                
Thread.Sleep(250);
            }

            
reader.Stop();

        }
    }

    interface 
IWidebandReader
    
{
        
double LatestReading
        
{
            
get;
        }

        
void Start();
        
void Stop();

    }


    class 
PLXWidebandReader IWidebandReader
    
{

        private 
Object locker = new Object();
        private 
fuelTypeFunction fuelCalcFunction;

        private 
double latestReading;
        public 
double LatestReading
        
{
            
get { return latestReading; }
        }

        private readonly 
int instanceNumber;
        private 
SerialPort comPort;
        private 
Thread worker;
        
bool continueRunning false;

        
// test related bits

        
int sampleBytePacketIndex 0// this is only used for testing.
        
private bool testMode false// if true, test mode
        
public bool TestMode
        
{
            
get { return testMode; }
            
set testMode value; }
        }

        public 
PLXWidebandReader(String comPortName)
            : 
this(comPortName1, new fuelTypeFunction(new FuelType().Gasoline))
        {
        }

        public 
PLXWidebandReader(String comPortNameint instanceNumber)
            : 
this(comPortNameinstanceNumber, new fuelTypeFunction(new FuelType().Gasoline))
        {
        }

        public 
PLXWidebandReader(String comPortNameint instanceNumberfuelTypeFunction fuelType)
        {

            if (
false == IsSerialPortNameValid(comPortName))
            {
                throw new 
ArgumentException(comPortName ", is invalid.");
            }


            if (
instanceNumber || instanceNumber 32)
            {
                
// Note: 1 should be passed if there's only one AFR module.
                
throw new ArgumentOutOfRangeException("instance number is required to be between 1 and 32.");
            }

            
init(comPortName);

            
this.fuelCalcFunction fuelType;
            
this.instanceNumber instanceNumber;
        }

        private 
bool IsSerialPortNameValid(String comPortName)
        {

            
bool serialPortNameValid false;

            foreach (
String serialPortName in SerialPort.GetPortNames())
            {
                if (
true == serialPortName.Equals(comPortName))
                {
                    
serialPortNameValid true;
                }
            }

            return 
serialPortNameValid;
        }

        private 
void init(String comPortName)
        {

            
comPort = new SerialPort();
            
comPort.PortName comPortName;
            
comPort.BaudRate 19200// per iMFD 19200 baud
            
comPort.DataBits 8// per iMFD 8
            
comPort.Parity Parity.None// per iMFD N
            
comPort.StopBits StopBits.One// per iMFD 1
            
comPort.Handshake Handshake.None;

        }

        
/*
         * This method is only used for testing
         */
        
private byte GetByteFromSamplePacket()
        {
            
byte[] packet = { 0x800x000x000x000x000x040x000x000x010x000x050x000x010x000x000x0F0x40 };

            if (
sampleBytePacketIndex >= packet.Length)
            {
                
sampleBytePacketIndex 0;
            }

            return 
packet[sampleBytePacketIndex++];

        }

        private 
double GetDataFromPacket(List<bytepacketContentBuffer)
        {

            
double afrReading 0;

            for (
int i 1; (5) < packetContentBuffer.Count 5)
            {
                
// Address MSB == 0 && Address LSB == 0 is a wideband.
                
if (== packetContentBuffer[+ (int)PacketDataOffset.AddressMSB] && == packetContentBuffer[+ (int)PacketDataOffset.AddressLSB])
                {
                    
// instance number is ordinal, 0-based.  Need to add one before comparing.
                    
if (instanceNumber == ((packetContentBuffer[+ (int)PacketDataOffset.Instance]) + 1))
                    {
                        
// we found the correct instance number

                        
int dataMSB packetContentBuffer[+ (int)PacketDataOffset.DataMSB];
                        
int dataLSB packetContentBuffer[+ (int)PacketDataOffset.DataLSB];

                        
afrReading fuelCalcFunction((dataMSB << 6) | dataLSB);

                        break;
                    }
                }
            }

            return 
afrReading;
        }

        private 
void InitiateReading()
        {

            List<
bytepacketContentBuffer = new List<byte>();
            
bool packetStarted false;

            while (
true == continueRunning)
            {

                try
                {

                    
byte aByte 0;

                    if (
testMode)
                    {
                        
aByte GetByteFromSamplePacket(); // test packet
                    
}
                    else
                    {
                        
aByte = (byte)comPort.ReadByte(); // to read from the serial port
                    
}

                    switch (
aByte)
                    {
                        case 
0x80:
                            
// start byte
                            
packetContentBuffer.Clear();
                            
packetContentBuffer.Add(aByte);
                            
packetStarted true;
                            break;
                        case 
0x40:
                            
// stop byte
                            
if (packetStarted)
                            {
                                
packetContentBuffer.Add(aByte);
                                
latestReading GetDataFromPacket(packetContentBuffer);
                                
packetStarted false;
                            }
                            
Thread.Sleep(0);
                            break;
                        default:
                            if (
packetStarted)
                            {
                                
packetContentBuffer.Add(aByte);
                            }
                            break;
                    }

                }
                catch (
ThreadInterruptedException)
                {
                    
packetStarted false;
                }

            }

        }

        public 
void Start()
        {
            
lock (locker)
            {
                if (
null == worker || false == worker.IsAlive)
                {
                    
continueRunning true;
                    
comPort.Open();
                    
worker = new Thread(new ThreadStart(InitiateReading));
                    
worker.Start();
                }
                else
                {
                    throw new 
InvalidOperationException("Already started.");
                }
            }

        }

        public 
void Stop()
        {
            
lock (locker)
            {

                if (
true == continueRunning)
                {
                    
continueRunning false;
                    
worker.Join(TimeSpan.FromSeconds(5));

                    if (
true == worker.IsAlive)
                    {
                        
// if worker is still alive, most likely still blocked on readByte, interrupt
                        
worker.Interrupt();
                    }

                    
comPort.Close();

                }
                else
                {
                    throw new 
InvalidOperationException("Not started.");
                }
            }
        }

        public class 
FuelType
        
{

            public 
double Lambda(double x)
            {
                return (
3.75 68) / 100d;
            }

            public 
double Gasoline(double x)
            {
                return (
2.55 100) / 10d;
            }

            public 
double Diesel(double x)
            {
                return (
2.58 100) / 10d;
            }

            public 
double Methanol(double x)
            {
                return (
5.856 43.5) / 10d;
            }

            public 
double Ethanol(double x)
            {
                return (
4.167 61.7) / 10d;
            }

            public 
double LPG(double x)
            {
                return (
2.417 105.6) / 10d;
            }

            public 
double CNG(double x)
            {
                return (
2.18 117) / 10d;
            }
        }

        enum 
PacketDataOffset int AddressMSB 0AddressLSB 1Instance 2DataMSB 3DataLSB };

        public 
delegate double fuelTypeFunction(double x);
    }



Last edited by funks; Sep 25, 2009 at 01:11 AM.
Old Sep 25, 2009, 12:03 PM
  #1102  
Evolving Member
iTrader: (3)
 
golruss's Avatar
 
Join Date: May 2005
Location: Fuquay Varina NC
Posts: 233
Received 2 Likes on 2 Posts
Originally Posted by mbartel
Logruss, Can you or anyone else confirm that the splitter is working, and you are logging WB? I have tried 3 already from Frys, and have a real old ticket in the support system that I keep responding to, but doesn't look like that's working.
(GN4ZYBU4DQ)
I want to make sure, if I can, which USB splitter is working for the LC1 from someone already successfully using it. So far 3 for 3 with different errors.

Thanks
M
PPC does not support the AEM wideband yet, so not sure if it will work.
Old Sep 30, 2009, 11:48 AM
  #1103  
Former Sponsor
Thread Starter
iTrader: (4)
 
evo4mad's Avatar
 
Join Date: Dec 2003
Location: TGA, New Zealand
Posts: 723
Likes: 0
Received 1 Like on 1 Post
Originally Posted by funks
Hamish, I updated the source code listed earlier to make it more readable. I verified and it works on the PLX SM-AFR installed in my car. I'm able to get around 10 samples a second which is in line with the PLX docs..
Excellent thanks, I'll include it.
Old Sep 30, 2009, 11:52 AM
  #1104  
Former Sponsor
Thread Starter
iTrader: (4)
 
evo4mad's Avatar
 
Join Date: Dec 2003
Location: TGA, New Zealand
Posts: 723
Likes: 0
Received 1 Like on 1 Post
Originally Posted by Mellon Tuning
yeah I had mine sitting in the passenger seat at idle yesterday, nothing being changed and the laptop/cables not being moved...BSOD again. previously I suspected that I might be kicking a cable out or something disrupting the communication since it only happens when it's logging.
yeah thats a known issue with the tactrix OpenPort2.0 cables, not EvoScan software, Ask Colby at tactrix if he can fix it for you.
Old Oct 3, 2009, 06:59 AM
  #1105  
Former Sponsor
Thread Starter
iTrader: (4)
 
evo4mad's Avatar
 
Join Date: Dec 2003
Location: TGA, New Zealand
Posts: 723
Likes: 0
Received 1 Like on 1 Post
Update: EvoScan v2.7 Beta5
- New Feature: Added "Set DataLog Folder..." option under the Logging menu.
- New Feature: EvoX SST Gearbox Temp Reading added to 2008 JDM EvoX, someone can test it on the other EvoX's see if it is accurate.

You can download and extract the files in this zip file into your exisiting evoscan v2.6 installation folder. (c:\Program files\Evoscan\EvoScan v2.6\)

EvoScanv2.7beta5.zip


I have two data.xml files that have different values on my pc, can anyone confirm the correct formulas for these ones:

Mode23 2008 JDM EVOX:
InVVT Eval="(x-4096)*-0.01953" or Eval="(x-3552)/48.64+10"
Load (MIVEC) and (Timing if IATS GT 75F) RequestID="2380876c" or RequestID="23808774"
Load (Timing if IATS LE 75F) RequestID="23808F68" or RequestID="23808F70"

Mode23 USA EVOX:
InVVT Eval="(x-4096)*-0.01953" or Eval="(x-3552)/48.64+10"

NEW: SST Temp in DegC
<DataListItem DataLog="N" Color="" Display="SST Transmission Temp" LogReference="SST_TM_Temp" RequestID="CAN28-0" Eval="x-50" Unit="Deg F" MetricEval="x-50" MetricUnit="Deg C" ResponseBytes="1" GaugeMin="0" GaugeMax="1000" ChartMin="0" ChartMax="1000" ScalingFactor="1" Notes="" Priority="1" Visible="False" />
Old Oct 3, 2009, 11:12 AM
  #1106  
Account Disabled
iTrader: (10)
 
Clipse3GT's Avatar
 
Join Date: Dec 2005
Location: Cleveland, OH
Posts: 2,185
Received 2 Likes on 1 Post
Originally Posted by evo4mad
Update: EvoScan v2.7 Beta5
- New Feature: Added "Set DataLog Folder..." option under the Logging menu.
- New Feature: EvoX SST Gearbox Temp Reading added to 2008 JDM EvoX, someone can test it on the other EvoX's see if it is accurate.

You can download and extract the files in this zip file into your exisiting evoscan v2.6 installation folder. (c:\Program files\Evoscan\EvoScan v2.6\)

EvoScanv2.7beta5.zip


I have two data.xml files that have different values on my pc, can anyone confirm the correct formulas for these ones:

Mode23 2008 JDM EVOX:
InVVT Eval="(x-4096)*-0.01953" or Eval="(x-3552)/48.64+10"
Load (MIVEC) and (Timing if IATS GT 75F) RequestID="2380876c" or RequestID="23808774"
Load (Timing if IATS LE 75F) RequestID="23808F68" or RequestID="23808F70"

Mode23 USA EVOX:
InVVT Eval="(x-4096)*-0.01953" or Eval="(x-3552)/48.64+10"

NEW: SST Temp in DegC
<DataListItem DataLog="N" Color="" Display="SST Transmission Temp" LogReference="SST_TM_Temp" RequestID="CAN28-0" Eval="x-50" Unit="Deg F" MetricEval="x-50" MetricUnit="Deg C" ResponseBytes="1" GaugeMin="0" GaugeMax="1000" ChartMin="0" ChartMax="1000" ScalingFactor="1" Notes="" Priority="1" Visible="False" />
Thanks!!! Looking forward to the EVO X ECU reset feature.
Old Oct 3, 2009, 01:59 PM
  #1107  
Former Sponsor
iTrader: (1)
 
HB Speed's Avatar
 
Join Date: Oct 2008
Location: Tuning AWD's In socal !!
Posts: 682
Likes: 0
Received 0 Likes on 0 Posts
Originally Posted by evo4mad
yeah thats a known issue with the tactrix OpenPort2.0 cables, not EvoScan software, Ask Colby at tactrix if he can fix it for you.
Happens to me all the time too
Old Oct 3, 2009, 05:44 PM
  #1108  
Evolved Member
iTrader: (1)
 
jrsimon27's Avatar
 
Join Date: Apr 2005
Location: C.A Honduras!
Posts: 2,574
Received 6 Likes on 6 Posts
Originally Posted by evo4mad
Update: EvoScan v2.7 Beta5
- New Feature: Added "Set DataLog Folder..." option under the Logging menu.
- New Feature: EvoX SST Gearbox Temp Reading added to 2008 JDM EvoX, someone can test it on the other EvoX's see if it is accurate.

You can download and extract the files in this zip file into your exisiting evoscan v2.6 installation folder. (c:\Program files\Evoscan\EvoScan v2.6\)

EvoScanv2.7beta5.zip


I have two data.xml files that have different values on my pc, can anyone confirm the correct formulas for these ones:

Mode23 2008 JDM EVOX:
InVVT Eval="(x-4096)*-0.01953" or Eval="(x-3552)/48.64+10"
Load (MIVEC) and (Timing if IATS GT 75F) RequestID="2380876c" or RequestID="23808774"
Load (Timing if IATS LE 75F) RequestID="23808F68" or RequestID="23808F70"

Mode23 USA EVOX:
InVVT Eval="(x-4096)*-0.01953" or Eval="(x-3552)/48.64+10"

NEW: SST Temp in DegC
<DataListItem DataLog="N" Color="" Display="SST Transmission Temp" LogReference="SST_TM_Temp" RequestID="CAN28-0" Eval="x-50" Unit="Deg F" MetricEval="x-50" MetricUnit="Deg C" ResponseBytes="1" GaugeMin="0" GaugeMax="1000" ChartMin="0" ChartMax="1000" ScalingFactor="1" Notes="" Priority="1" Visible="False" />
i downloaded the 2.7 but i cant see where its the item to log the sst temp
Old Oct 3, 2009, 10:15 PM
  #1109  
Former Sponsor
Thread Starter
iTrader: (4)
 
evo4mad's Avatar
 
Join Date: Dec 2003
Location: TGA, New Zealand
Posts: 723
Likes: 0
Received 1 Like on 1 Post
yeah it appears I uploaded the wrong data.xml, and it also appears that it doesn't log, even after I tested it on the same EvoX early in the week, and I haven't made any changes, lol. I'll release a new beta version for th sst temp and for the ecu reset feature.
Old Oct 4, 2009, 09:35 PM
  #1110  
Former Sponsor
Thread Starter
iTrader: (4)
 
evo4mad's Avatar
 
Join Date: Dec 2003
Location: TGA, New Zealand
Posts: 723
Likes: 0
Received 1 Like on 1 Post
redownload EvoScanv2.7beta5.zip the last one had the wrong files.


Quick Reply: EvoScan v2.6 And New EvoScan GPS/Logger/Reflashing Touchscreen Review



All times are GMT -7. The time now is 06:21 AM.