Pages: 1 ... 106 107 [108] 109 110 ... 176
Author Topic: The Volvo ME7 thread:  (Read 946697 times)
athlon
Newbie
*

Karma: +0/-0
Offline Offline

Posts: 6


« Reply #1605 on: August 29, 2022, 11:25:36 AM »

I'm just seeing this now ..
wtf...
how do we get the project file for our software

mines the 50GPHJ

We're you able to decrypt it? How long does it take to read with hiltons software?
Logged
keichi
Full Member
***

Karma: +10/-2
Offline Offline

Posts: 69


« Reply #1606 on: August 30, 2022, 04:38:54 AM »

Thanks for sharing your OBD utility, Prometey
Your flasher has no Help, instruction sheet, or obvious read function in the source code.

If all you have to offer is that shit on your github, well then you don't have much to offer at all.

Actually his software is very use full - at least for me, and i appreciate that he shared this on github.

It doesn't have reading capability but i think it is the least important feature.
What are the most important are flashing and logging, the latter being absolutely the most important.

I read my ECU only once outside the car using cheap MPPS cable in boot mode.
Then i never took it out again. Every next flashing was done with Prometey's software thru OBD with DICE (cheapest chine clone). And i made almost 80 flashings with it already.

All the tuning process is flashing - hitting the road and logging, going back to home, opening logs, analyzing, making changes to the bin, reflashing, hitting the road and so on.
Sometimes i do modifications on the road (but i don't feel comfortable flashing on the side of the road far from home despite having backup stock ECU in the car glove box Smiley)
There is no "reading" unless you want to start tuning next car.

Of course there is also decompiling the software in IDA involved to find maps and variables but it's other story (you have to have good software developing background to understand what is going on - even to compile prometey's software from github you have to be familiar with visual studio, c language etc.) This is actually "open source" knowledge (IT skills) but no one will teach you programming with few post on the forum Smiley When you have this knowledge - compiling and using his software is very easy and there is no need for "instruction sheet" or "help" Smiley

Without some simple GUI this software is not friendly for "not IT" people but making GUI is extra work. Who will do it for free? Smiley

So i don't agree Prometey didn't bring anything to the community. For me quite contrary:)
« Last Edit: August 30, 2022, 05:18:39 AM by keichi » Logged
Vollmer
Full Member
***

Karma: +14/-255
Offline Offline

Posts: 78

Professional Cat Herder


« Reply #1607 on: August 30, 2022, 08:53:00 AM »

Prometey is a russian tuner who doesn't have many people to appreciate his work or efforts,
so he brags on English speaking forums, not realizing that culture can impact your outcome more than specific words.
 Nothing more.. He hasn't really contributed much anywhere, except bitch about his own behaviors (lack of contributions)
He uses a dead man's (dream3r) code, that Hilton has made into a fucked up pyramid scheme.
He hasn't made a thing.

Now he goes over to MathewsVolvoSite where he can align himself with other unhelpful and unproductive POS's to produce more licensed abandonware to fuck people over.

SparkyR S60rr S60rxtreme bhalme keeps diggning himself into a deeper hole.
His public reputation in the tuning community is falling faster than a comet, I happily turned several people away from him yesterday.
"You ready for the tune" LOL

He clearly is riding under Shitbird Hilton's wing, and has almost Zero Capabilities of himself. ..
Cant read/write his own files
Can't define his own files
Can't add any code patches or ASM
Can't decrypt his read.
Can't tell anyone else how to tune!
Incompetent and worthless!
Makes it other's fault.

So glad I did my "Research".. Maybe you should watch some movies and see how the villains get started?


Why I will NEVER buy licensed software:

I was raised during the DRM era.
I used to mow lawns to make money, to buy games... only for the company to get bought out, or out of business,
someone to shut down the server, kill my account and make the game worthless.

Or perhaps I upgraded my graphics card, and now my games wont run. I have to contact each of the publishers asking for new license file, many to refuse.
This is NOT freedom. This is NOT ownership. This is a scheme.

This Volvo community is fucking Abysmal.

^^^ About it's current state of electronics..

Who will help this cat for free?

A Volvo owner would kick it and proceed to buy their cat at home new toys.



« Last Edit: August 30, 2022, 09:09:40 AM by Vollmer » Logged

Volvo HALL of SHAME:

Guitar24t aka Robert Hilton
SparkyR aka Brandon Halme
Prometey1982 aka Artem Vasiliev
MAXX ECU - Brett Willet
VIDA Leach - David Leech

Useless Twats:
PRJ - Dmitri from Estonia
Vollmer
Full Member
***

Karma: +14/-255
Offline Offline

Posts: 78

Professional Cat Herder


« Reply #1608 on: August 30, 2022, 08:57:19 AM »



using System;
using System.Collections.Generic;
using System.Threading;
using System.Windows.Forms;

namespace DiCEdotNET.Flash.ECU
{
  public class ECUProgrammer : ModuleProgrammer
  {
    private bool flash512;

    public ECUProgrammer(DiCEComm dice, byte[] sbl, byte[] binFile, bool flash512, bool p80)
      : base(p80)
    {
      this.dice = dice;
      this.sbl = sbl;
      this.binFile = binFile;
      this.flash512 = flash512;
    }

    public byte[] readECU(bool readRAM)
    {
      byte[] numArray = (byte[]) null;
      try
      {
        int num1 = 0;
        if (readRAM)
        {
          numArray = new byte[65536];
          num1 = 3145728;
        }
        else
          numArray = !this.flash512 ? new byte[1048576] : new byte[524288];
        int num2 = 1;
        if (!readRAM)
        {
          CANPacket canPacket1 = new CANPacket(new byte[8]
          {
            (byte) 122,
            (byte) 188,
            (byte) 0,
            (byte) 15,
            byte.MaxValue,
            (byte) 0,
            (byte) 0,
            (byte) 0
          });
          byte[] arr1 = new byte[6];
          byte[] arr2 = new byte[6]
          {
            (byte) 79,
            (byte) 79,
            (byte) 82,
            (byte) 69,
            (byte) 65,
            (byte) 68
          };
          List<CANPacket> canPacketList;
          do
          {
            uint maxNumMsgs = 1;
            uint timeout = 1000;
            canPacketList = this.dice.sendMsgReadResponse(canPacket1, CANChannel.HS, ref maxNumMsgs, timeout);
            ++num2;
            if (num2 == 5)
              throw new MessageNotReceivedException(canPacket1);
          }
          while (canPacketList == null);
          int num3 = 0;
          foreach (CANPacket canPacket2 in canPacketList)
          {
            for (int index = 6; index < canPacket2.data.Length; ++index)
            {
              if (num3 < numArray.Length)
                arr1[num3++] = canPacket2.data[index];
            }
          }
          if (ECUProgrammer.checkArrayEq(arr1, arr2))
            return new byte[4]
            {
              (byte) 68,
              (byte) 69,
              (byte) 78,
              (byte) 89
            };
        }
        try
        {
          int num4 = num1;
          while (num4 < numArray.Length + num1)
          {
            CANPacket canPacket3 = new CANPacket(new byte[8]
            {
              (byte) 122,
              (byte) 188,
              (byte) 0,
              (byte) (num4 >> 16),
              (byte) (num4 >> Cool,
              (byte) num4,
              (byte) 0,
              (byte) 0
            });
            int num5 = 1;
            List<CANPacket> canPacketList;
            do
            {
              uint maxNumMsgs = 1;
              uint timeout = 1000;
              canPacketList = this.dice.sendMsgReadResponse(canPacket3, CANChannel.HS, ref maxNumMsgs, timeout);
              ++num5;
              if (num5 == 5)
                throw new MessageNotReceivedException(canPacket3);
            }
            while (canPacketList == null);
            foreach (CANPacket canPacket4 in canPacketList)
            {
              for (int index = 6; index < canPacket4.data.Length; ++index)
              {
                if (num4 - num1 < numArray.Length)
                  numArray[num4++ - num1] = canPacket4.data[index];
              }
            }
          }
        }
        catch (MessageNotReceivedException ex)
        {
          this.sendReset();
          Console.WriteLine(ex.ToString());
          return (byte[]) null;
        }
        catch (Exception ex)
        {
          this.sendReset();
          Console.WriteLine(ex.ToString());
          return (byte[]) null;
        }
      }
      catch (Exception ex)
      {
        this.sendReset();
        Console.WriteLine(ex.ToString());
      }
      finally
      {
        if (readRAM)
        {
          lock (new object())
            this.doneFlashing = true;
        }
      }
      return numArray;
    }

    public static bool checkArrayEq(byte[] arr1, byte[] arr2)
    {
      int num = arr1.Length > arr2.Length ? arr2.Length : arr1.Length;
      bool flag = true;
      for (int index = 0; index < num; ++index)
        flag &= (int) arr1[index] == (int) arr2[index];
      return flag;
    }

    public void recodeECU(int unlockPin, int pinCode, long securityKey)
    {
      uint msgid = 0;
      this.dice.startPeriodicMsg(ModuleProgrammer.msgCANTesterPresent, ref msgid, 1000U, CANChannel.HS);
      Thread.Sleep(2000);
      this.writeEEPROMPin(unlockPin, pinCode, securityKey);
      this.dice.stopPeriodicMsg(msgid, CANChannel.HS);
    }

    public void recodeECU(int unlockPin, long securityKey)
    {
      int immoPin = 0;
      for (int index = 0; index < 24; index += 4)
        immoPin += (int) (byte) ((ulong) (securityKey >> index + 16) & 15UL) << 20 - index;
      uint msgid = 0;
      this.dice.startPeriodicMsg(ModuleProgrammer.msgCANTesterPresent, ref msgid, 1000U, CANChannel.HS);
      Thread.Sleep(2000);
      this.writeEEPROMPin(unlockPin, immoPin, securityKey);
      this.dice.stopPeriodicMsg(msgid, CANChannel.HS);
    }

    public override bool clearFaultCodes()
    {
      uint msgid1 = 0;
      this.dice.startPeriodicMsg(ModuleProgrammer.msgCANTesterPresent, ref msgid1, 1000U, CANChannel.HS);
      uint msgid2 = 0;
      if (!this.p80)
        this.dice.startPeriodicMsg(ModuleProgrammer.msgCANTesterPresent, ref msgid2, 1000U, CANChannel.MS);
      Thread.Sleep(2000);
      bool flag = true;
      foreach (byte hsModuleAddress in VolvoECUCommands.hsModuleAddresses)
      {
        CANPacket CANMsg1 = new CANPacket(ModuleProgrammer.msgCANReadFaultCodes);
        CANMsg1.setDiagModuleAddress(hsModuleAddress);
        this.dice.sendMsg(CANMsg1, CANChannel.HS);
        Thread.Sleep(250);
        CANPacket CANMsg2 = new CANPacket(ModuleProgrammer.msgCANClearFaultCodes);
        flag &= this.dice.sendMsgCheckDiagResponse(CANMsg2, CANChannel.HS, (byte) 239);
      }
      if (!this.p80)
      {
        foreach (byte msModuleAddress in VolvoECUCommands.msModuleAddresses)
        {
          CANPacket CANMsg3 = new CANPacket(ModuleProgrammer.msgCANReadFaultCodes);
          CANMsg3.setDiagModuleAddress(msModuleAddress);
          this.dice.sendMsg(CANMsg3, CANChannel.MS);
          Thread.Sleep(300);
          CANPacket CANMsg4 = new CANPacket(ModuleProgrammer.msgCANClearFaultCodes);
          flag &= this.dice.sendMsgCheckDiagResponse(CANMsg4, CANChannel.MS, (byte) 239);
        }
      }
      if (!this.p80)
        this.dice.stopPeriodicMsg(msgid2, CANChannel.MS);
      this.dice.stopPeriodicMsg(msgid1, CANChannel.HS);
      return flag;
    }

    public bool canFlash()
    {
      uint msgid = 0;
      bool flag = false;
      this.dice.startPeriodicMsg(ModuleProgrammer.msgCANTesterPresent, ref msgid, 1000U, CANChannel.HS);
      Thread.Sleep(2000);
      if (this.dice.sendMsgReadResponse(VolvoECUCommands.msgCEMEngineState, CANChannel.HS).data[9] == (byte) 102)
        flag = true;
      this.dice.stopPeriodicMsg(msgid, CANChannel.HS);
      return flag;
    }

    public int readCANConfigNumber()
    {
      uint msgid = 0;
      uint numMsgs = 4;
      this.dice.startPeriodicMsg(ModuleProgrammer.msgCANTesterPresent, ref msgid, 1000U, CANChannel.HS);
      Thread.Sleep(2000);
      List<CANPacket> canPacketList = this.dice.sendMsgReadResponse(VolvoECUCommands.msgCANReadECMConfig, CANChannel.HS, ref numMsgs);
      this.dice.stopPeriodicMsg(msgid, CANChannel.HS);
      byte[] numArray1 = new byte[28];
      for (int index1 = 0; index1 < canPacketList.Count; ++index1)
      {
        for (int index2 = 5; index2 < 12; ++index2)
          numArray1[index2 - 5 + index1 * 7] = canPacketList[index1].data[index2];
      }
      byte[] numArray2 = new byte[4];
      for (int index = 4; index < 8; ++index)
        numArray2[3 - (index - 4)] = numArray1[index];
      return BitConverter.ToInt32(numArray2, 0);
    }


Logged

Volvo HALL of SHAME:

Guitar24t aka Robert Hilton
SparkyR aka Brandon Halme
Prometey1982 aka Artem Vasiliev
MAXX ECU - Brett Willet
VIDA Leach - David Leech

Useless Twats:
PRJ - Dmitri from Estonia
Vollmer
Full Member
***

Karma: +14/-255
Offline Offline

Posts: 78

Professional Cat Herder


« Reply #1609 on: August 30, 2022, 08:58:03 AM »

    public int readSoftwareNumber()
    {
      uint msgid = 0;
      uint numMsgs = 4;
      this.dice.startPeriodicMsg(ModuleProgrammer.msgCANTesterPresent, ref msgid, 1000U, CANChannel.HS);
      Thread.Sleep(2000);
      List<CANPacket> canPacketList = this.dice.sendMsgReadResponse(VolvoECUCommands.msgCANReadECMConfig, CANChannel.HS, ref numMsgs);
      this.dice.stopPeriodicMsg(msgid, CANChannel.HS);
      byte[] numArray1 = new byte[28];
      for (int index1 = 0; index1 < canPacketList.Count; ++index1)
      {
        for (int index2 = 5; index2 < 12; ++index2)
          numArray1[index2 - 5 + index1 * 7] = canPacketList[index1].data[index2];
      }
      byte[] numArray2 = new byte[4];
      for (int index = 16; index < 20; ++index)
        numArray2[3 - (index - 16)] = numArray1[index];
      return BitConverter.ToInt32(numArray2, 0);
    }

    public bool checkBINCompatible()
    {
      this.readCANConfigNumber();
      return false;
    }

    protected override void flashModule()
    {
      try
      {
        this.sendModuleReset();
        this.sendSilence();
        this.startPBL();
        this.startSBL(this.sbl, true);
        this.sendData(this.binFile);
        this.sendReset();
        if (this.p80)
          return;
        Thread.Sleep(2000);
        this.setDIMTime();
      }
      catch (Exception ex)
      {
        this.sendReset();
        Console.WriteLine(ex.ToString());
      }
      finally
      {
        lock (new object())
          this.doneFlashing = true;
      }
    }

    private void writeEEPROMPin(int unlockPin, int immoPin, long cemPsk)
    {
      CANPacket CANMsg1 = new CANPacket(VolvoECUCommands.msgCANSendPin);
      byte[] bytes1 = BitConverter.GetBytes(unlockPin);
      Array.Reverse((Array) bytes1, 0, 3);
      CANMsg1.setDiagData(bytes1);
      if (unlockPin == 0)
        this.dice.sendMsg(CANMsg1, CANChannel.HS);
      else if (!this.dice.sendMsgCheckDiagResponse(CANMsg1, CANChannel.HS, (byte) 227))
        Console.WriteLine("Pin unlock failed");
      Thread.Sleep(500);
      CANPacket CANMsg2 = new CANPacket(VolvoECUCommands.msgCANWritePin);
      byte[] bytes2 = BitConverter.GetBytes(immoPin);
      Array.Reverse((Array) bytes2, 0, 3);
      CANMsg2.setDiagData(bytes2);
      if (!this.dice.sendMsgCheckDiagResponse(CANMsg2, CANChannel.HS, (byte) 248))
        Console.WriteLine("New pin write failed");
      Thread.Sleep(2000);
      CANPacket CANMsg3 = new CANPacket(VolvoECUCommands.msgCANWriteKey);
      byte[] bytes3 = BitConverter.GetBytes(cemPsk);
      Array.Reverse((Array) bytes3, 0, 6);
      CANMsg3.setDiagData(new byte[4]
      {
        bytes3[0],
        bytes3[1],
        bytes3[2],
        bytes3[3]
      });
      this.dice.sendMsg(CANMsg3, CANChannel.HS);
      CANPacket CANMsg4 = new CANPacket(VolvoECUCommands.msgCANBlank);
      CANMsg4.data[4] = (byte) 74;
      CANMsg4.data[5] = bytes3[4];
      CANMsg4.data[6] = bytes3[5];
      if (!this.dice.sendMsgCheckDiagResponse(CANMsg4, CANChannel.HS, (byte) 248))
        Console.WriteLine("New key write failed");
      Thread.Sleep(100);
      if (this.dice.sendMsgCheckDiagResponse(new CANPacket(VolvoECUCommands.msgCANRelockImmo), CANChannel.HS, (byte) 227))
        return;
      Console.WriteLine("Relock request failed");
    }

    private List<CANPacket> createSBLList(byte[] sblArr)
    {
      List<CANPacket> sblList = new List<CANPacket>();
      for (int index1 = 0; index1 < sblArr.Length; index1 += 6)
      {
        CANPacket canPacket = new CANPacket(VolvoECUCommands.msgCANSendDataPrefix);
        byte[] mData = new byte[6];
        int num = sblArr.Length - index1;
        for (int index2 = 0; index2 < 6; ++index2)
          mData[index2] = num < index2 + 1 ? (byte) 0 : sblArr[index1 + index2];
        canPacket.setMsgData(mData);
        sblList.Add(canPacket);
      }
      return sblList;
    }

    private List<CANPacket> createData8kList(byte[] binFile)
    {
      List<CANPacket> data8kList = new List<CANPacket>();
      for (int index1 = 32768; index1 < 57344; index1 += 6)
      {
        CANPacket canPacket = new CANPacket(VolvoECUCommands.msgCANSendDataPrefix);
        byte[] mData = new byte[6];
        int num = binFile.Length - index1;
        for (int index2 = 0; index2 < 6; ++index2)
          mData[index2] = num < index2 + 1 ? (byte) 0 : binFile[index1 + index2];
        canPacket.setMsgData(mData);
        data8kList.Add(canPacket);
      }
      return data8kList;
    }

    private List<CANPacket> createData10kList(byte[] binFile)
    {
      List<CANPacket> data10kList = new List<CANPacket>();
      uint num1 = !this.flash512 ? 1048576U : 524288U;
      for (int index1 = 65536; (long) index1 < (long) num1; index1 += 6)
      {
        CANPacket canPacket = new CANPacket(VolvoECUCommands.msgCANSendDataPrefix);
        byte[] mData = new byte[6];
        int num2 = binFile.Length - index1;
        for (int index2 = 0; index2 < 6; ++index2)
          mData[index2] = num2 < index2 + 1 ? (byte) 0 : binFile[index1 + index2];
        canPacket.setMsgData(mData);
        data10kList.Add(canPacket);
      }
      return data10kList;
    }

    public override void sendModuleReset() => this.dice.sendMsg(VolvoECUCommands.msgCANECUReset, CANChannel.HS);

    public override void startPBL()
    {
      if (!this.dice.sendMsgCheckResponse(VolvoECUCommands.msgCANStartPBL, CANChannel.HS, (byte) 198))
        throw new MessageNotReceivedException();
    }

    public override void startSBL(byte[] sblArr, bool a0Response)
    {
      List<CANPacket> sblList = this.createSBLList(sblArr);
      this.sendJumpToSegment(3260416);
      this.dice.sendMsg(sblList, CANChannel.HS);
      if (a0Response)
        this.sendEndData();
      this.sendJumpToSegment(3260416);
      if (a0Response)
      {
        this.sendCommitData(3260416 + sblArr.Length);
        this.sendJumpToSegment(3260416);
      }
      if (a0Response)
      {
        if (!this.dice.sendMsgCheckResponse(VolvoECUCommands.msgCANJumpToStart, CANChannel.HS, (byte) 160))
          throw new MessageNotReceivedException();
      }
      else
        this.dice.sendMsg(VolvoECUCommands.msgCANJumpToStart, CANChannel.HS);
    }

    protected override void eraseFlash()
    {
      this.sendJumpToSegment(32768);
      this.sendEraseSegment();
      Thread.Sleep(3000);
      this.sendJumpToSegment(65536);
      this.sendEraseSegment();
    }

    protected override void sendData(byte[] binFile)
    {
      bool flag = true;
      do
      {
        this.eraseFlash();
        List<CANPacket> data8kList = this.createData8kList(binFile);
        this.sendJumpToSegment(32768);
        this.dice.sendMsg(data8kList, CANChannel.HS);
        this.sendJumpToSegment(32768);
        byte flashBlockChecksum1 = this.getFlashBlockChecksum(32768, 57344);
        flag &= this.sendCommitData(57344, flashBlockChecksum1);
        if (!flag)
        {
          int num1 = (int) MessageBox.Show("ECM did not flash correctly. Click ok to try again...", "Flash Fail", MessageBoxButtons.OK, MessageBoxIcon.Hand);
        }
        else
        {
          List<CANPacket> data10kList = this.createData10kList(binFile);
          if (!this.flash512)
          {
            this.sendJumpToSegment(65536);
            this.dice.sendMsg(data10kList, CANChannel.HS);
            this.sendJumpToSegment(65536);
            byte flashBlockChecksum2 = this.getFlashBlockChecksum(65536, 1048576);
            flag &= this.sendCommitData(1048576, flashBlockChecksum2);
          }
          else
          {
            this.sendJumpToSegment(65536);
            this.dice.sendMsg(data10kList, CANChannel.HS);
          }
          if (!flag)
          {
            int num2 = (int) MessageBox.Show("ECM did not flash correctly. Click ok to try again...", "Flash Fail", MessageBoxButtons.OK, MessageBoxIcon.Hand);
          }
        }
      }
      while (!flag);
    }

    private void sendJumpToSegment(int addr)
    {
      CANPacket CANMsg = new CANPacket(VolvoECUCommands.msgCANChooseSegmentPrefix);
      CANMsg.setAddr(addr);
      int num = 0;
      bool flag;
      do
      {
        flag = this.dice.sendMsgCheckResponse(CANMsg, CANChannel.HS, (byte) 156);
        ++num;
        if (!flag)
          Thread.Sleep(1000);
        if (num == 5)
          throw new MessageNotReceivedException();
      }
      while (!flag);
    }

    private void sendEndData() => this.dice.sendMsg(VolvoECUCommands.msgCANEndData, CANChannel.HS);

    private void sendEndData(bool waitForResponse)
    {
      if (!this.dice.sendMsgCheckResponse(VolvoECUCommands.msgCANEndData, CANChannel.HS, (byte) 169))
        throw new MessageNotReceivedException();
    }

    private void sendCommitData(int addr)
    {
      CANPacket CANMsg = new CANPacket(VolvoECUCommands.msgCANCommitSegmentPrefix);
      CANMsg.setAddr(addr);
      if (!this.dice.sendMsgCheckResponse(CANMsg, CANChannel.HS, (byte) 177))
        throw new MessageNotReceivedException();
    }


}
Logged

Volvo HALL of SHAME:

Guitar24t aka Robert Hilton
SparkyR aka Brandon Halme
Prometey1982 aka Artem Vasiliev
MAXX ECU - Brett Willet
VIDA Leach - David Leech

Useless Twats:
PRJ - Dmitri from Estonia
Vollmer
Full Member
***

Karma: +14/-255
Offline Offline

Posts: 78

Professional Cat Herder


« Reply #1610 on: August 30, 2022, 09:03:06 AM »

It doesn't fit..
This is easier.
This is the code from the Volvo programmer DLL thats handed around here by Hiltons cronies.

Come on people.. This is getting pathetic.

Here is more half baked CEM software as well... Posted on Youtube... *great*
See attachment
Logged

Volvo HALL of SHAME:

Guitar24t aka Robert Hilton
SparkyR aka Brandon Halme
Prometey1982 aka Artem Vasiliev
MAXX ECU - Brett Willet
VIDA Leach - David Leech

Useless Twats:
PRJ - Dmitri from Estonia
Vollmer
Full Member
***

Karma: +14/-255
Offline Offline

Posts: 78

Professional Cat Herder


« Reply #1611 on: August 30, 2022, 09:14:38 AM »


"Back to your herd!!"
 Tongue
Logged

Volvo HALL of SHAME:

Guitar24t aka Robert Hilton
SparkyR aka Brandon Halme
Prometey1982 aka Artem Vasiliev
MAXX ECU - Brett Willet
VIDA Leach - David Leech

Useless Twats:
PRJ - Dmitri from Estonia
ChrisDUS
Newbie
*

Karma: +6/-1
Offline Offline

Posts: 5


« Reply #1612 on: August 30, 2022, 09:29:55 AM »

Just give the Hilton et al flashing tool to someone who can disassemble .NET and let them remove the licensing portion. I had that done by a programmer friend and it works just fine for my personal purpose.
So I guess you can pay an Indian guy 20 bucks to patch the file for you and share it with the community, since you are all about sharing stuff for free.

Reading and flashing solved. Now complain about something else.
Logged
s60rawr
Full Member
***

Karma: +19/-904
Offline Offline

Posts: 154



« Reply #1613 on: August 30, 2022, 10:22:05 AM »

Just give the Hilton et al flashing tool to someone who can disassemble .NET and let them remove the licensing portion. I had that done by a programmer friend and it works just fine for my personal purpose.
So I guess you can pay an Indian guy 20 bucks to patch the file for you and share it with the community, since you are all about sharing stuff for free.

Reading and flashing solved. Now complain about something else.

well.. spill the beans mah dude
« Last Edit: August 30, 2022, 10:52:20 AM by s60rawr » Logged


There is a free flash suite in progres

Nefmoto shall burn in a fiery deathball
Vollmer
Full Member
***

Karma: +14/-255
Offline Offline

Posts: 78

Professional Cat Herder


« Reply #1614 on: August 31, 2022, 11:37:42 AM »

Just give the Hilton et al flashing tool to someone who can disassemble .NET and let them remove the licensing portion. I had that done by a programmer friend and it works just fine for my personal purpose.
So I guess you can pay an Indian guy 20 bucks to patch the file for you and share it with the community, since you are all about sharing stuff for free.

Reading and flashing solved. Now complain about something else.

So you advocate stealing a "commercial" tool.. but not a making community driven one..?
Nor can you release it..?
I posted the CAN protocol for several functions easily readable in the DLL code. 


Why aren't the DIMs and CEMs integrated into these tools?

I know there are people out there who can do a better job than myself.
If you don't want a car for writing a program, how much money do you want?
To release it to the community forever and ever to patch and revise.

Logged

Volvo HALL of SHAME:

Guitar24t aka Robert Hilton
SparkyR aka Brandon Halme
Prometey1982 aka Artem Vasiliev
MAXX ECU - Brett Willet
VIDA Leach - David Leech

Useless Twats:
PRJ - Dmitri from Estonia
prometey1982
Sr. Member
****

Karma: +62/-59
Offline Offline

Posts: 307



WWW
« Reply #1615 on: September 01, 2022, 10:54:27 PM »

Found some (almost 50) VVT maps for 50WRHJ software. Some constants are not included.
I've tested intake VVT map change on s60r. Acceleration 0-100 km/h decreased by 0.2 seconds.
Logged

Россия - Великая страна!
https://youtu.be/fup5GzIFdXk
prometey1982
Sr. Member
****

Karma: +62/-59
Offline Offline

Posts: 307



WWW
« Reply #1616 on: September 02, 2022, 02:42:33 AM »

Yesterday's car with single person.
Logged

Россия - Великая страна!
https://youtu.be/fup5GzIFdXk
BaxtR
Full Member
***

Karma: +17/-25
Offline Offline

Posts: 64


« Reply #1617 on: September 02, 2022, 03:52:38 AM »

I've tested intake VVT map change on s60r. Acceleration 0-100 km/h decreased by 0.2 seconds.

Nice. At the moment my car isnt running (got rear ended and totaled out) so ill need to swap everything to a new shell but my precision was a tad too big (full boost 5000 rpm) so hopefully your vvt contribution can help me get it up faster!

hopefully within the month ill have it together
Logged

2007 Volvo S60R, PT6266 BB, 1700x ID Injectors, Walbro525. Halme Built manifold and exhaust #BaxtrPerformance
prometey1982
Sr. Member
****

Karma: +62/-59
Offline Offline

Posts: 307



WWW
« Reply #1618 on: September 02, 2022, 03:59:53 AM »

Nice. At the moment my car isnt running (got rear ended and totaled out) so ill need to swap everything to a new shell but my precision was a tad too big (full boost 5000 rpm) so hopefully your vvt contribution can help me get it up faster!

hopefully within the month ill have it together
What acceleration results did you have with your config? I'm interested in exhaust VVT tune ATM. It looks promising.
« Last Edit: September 02, 2022, 06:11:53 AM by prometey1982 » Logged

Россия - Великая страна!
https://youtu.be/fup5GzIFdXk
BaxtR
Full Member
***

Karma: +17/-25
Offline Offline

Posts: 64


« Reply #1619 on: September 02, 2022, 05:38:41 AM »

i can post a few logs later, never got a dragy run in.
Logged

2007 Volvo S60R, PT6266 BB, 1700x ID Injectors, Walbro525. Halme Built manifold and exhaust #BaxtrPerformance
Pages: 1 ... 106 107 [108] 109 110 ... 176
  Print  
 
Jump to:  

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Page created in 0.049 seconds with 17 queries. (Pretty URLs adds 0s, 0q)