Announcement

Collapse
No announcement yet.

MSS54 -> HP conversion woes

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    MSS54 -> HP conversion woes

    Hey yall, I'm converting my MSS54 to an HP as part of an airbox install and have managed to brick my ECU (of course), hoping someone smarter can tell me what to try next

    Stuff I did:

    -AM29F400BB-55SI chips purchased from ebay, used a chip programmer (xgecu T48) to verify that I could blank and write data to them prior to install.
    Used command line to split the 325000401PD11 bin file into two halves:

    -bash commands used:
    • dd if=CSL_PD11_Full.bin of=CSL_PD11_Master.bin bs=1 count=524288
    • dd if=CSL_PD11_Full.bin of=CSL_PD11_Slave.bin bs=1 skip=524288

    -recombine program halves to make sure that they match the original:
    • cat CSL_PD11_Master.bin CSL_PD11_Slave.bin > test.bin
    • cmp CSL_PD11_Full.bin test.bin

    -Flashed program halves onto chips using programmer.
    -Read chip contents back and compare to original files to make sure the writing took correctly
    -Desoldered old memory chips from ECU
    -Soldered on new memory chips. Pictures attached, ugly soldering job, but I checked for shorts between pins and made sure there was continuity between the chip legs and pads.
    Installed master/slave memory chips as following forum info:
    Click image for larger version  Name:	Capture1.png Views:	0 Size:	879.2 KB ID:	332410
    Click image for larger version  Name:	Capture2.png Views:	0 Size:	823.6 KB ID:	332411

    -Solder on 7.15k resistors

    -Reinstall ECU into car. At this point, looks like a brick. INPA, bmwflash, PASoft won't detect the ECU. No fuel pump prime, temp gauge maxed out. Starter motor turns over but no fire.


    Things to try next:

    -Desolder chips again and check if they're still alive in chip reader
    -Swap master/slave chip slots?
    -Try flashing/installing another chip (have spares)

    -Buy BDM setup
    -Send ECU to shop

    -Buy new ECU
    -Push car into ocean

    Any input would be greatly appreciated.

    Thanks,
    Luke

    #2
    Gather and organize every bit of available informations about a MSS54/HP to MSS54HP_CSL conversion - YulCmr/MSS54_HP_CSL_Clone_info_gathering

    Comment


      #3
      Jump to post #9 for info on first converting an MSS54 into an MSS54HP (non CSL). This was originally posted by Terra on M3Forum. I just went through this process, so I thought I would bring over all the posts from that thread that were relevant to the process. I've also added some information afterwards about converting and

      Comment


        #4
        I seem to remember you have to byte swap if programming chips directly in an external programmer rather than via BDM. I would definitely go for the BDM option. The BDM interface shouldn't be too expensive.

        Comment


          #5
          Originally posted by Shonky View Post
          I seem to remember you have to byte swap if programming chips directly in an external programmer rather than via BDM. I would definitely go for the BDM option. The BDM interface shouldn't be too expensive.
          I have a bdm tool on order from AliExpress, really hoping I don't have to also find an ancient windows 7 laptop to run the software..

          Also ordered bench flash harness parts which should get here soon, could try the pin 37 ground thing mentioned here.

          Any chance you remember where the info about the byte swap comes from? Does that mean split the full bin file by even/odd addresses?

          Comment


            #6
            Originally posted by ___LUNK View Post

            I have a bdm tool on order from AliExpress,
            I doubt these will work. Not all BDM tools will support MSS50/54.
            Order one from Yulien. Known to work.

            I'll PM his e-mail address



            Originally posted by ___LUNK View Post
            Any chance you remember where the info about the byte swap comes from? Does that mean split the full bin file by even/odd addresses?
            ​If OBD read out looks like this, 00 01 02 03, it would need to look like 01 00 03 02 in the eprom read out.


            BR, Tomba

            Comment


              #7
              Put the old 256kB chips in your programmer and read them. Saves desoldering anything yet. The first byes should be similar enough with the HP binaries to compare. Should be pretty obvious in a hex editor if they need swapping. I mean odd/even byte swapping.

              Any OBD read is not necessarily helpful since that will read in the "right" order. Also his ECU is dead dead right now.

              Comment


                #8
                So I cleaned up the chip from the master side and read it in the programmer, does look like some byte swapping:

                0x00000000 from stock bin file: 00 00 00 00 00 00 02 00 00 00 05 B0 00 00 05 B0
                0x00000000 from chip read: 00 00 00 00 00 00 00 02 00 00 B0 05 00 00 B0 05

                Tried creating odd/even split using:

                python3 - << 'EOF'
                data = open("PD11_Full.bin", "rb").read()
                open("flash_even.bin", "wb").write(data[0::2])
                open("flash_odd.bin", "wb").write(data[1::2])
                EOF​

                flashed these onto chips, soldered the even data to the master side and odd data to the slave side.

                Still looks bricked from a bench flash harness unfortunately, same symptoms with no diag software picking it up.

                Comment


                  #9
                  I dont' follow the python exactly but you just want to swap bytes. That looks like you are splitting the binaries into odd and even bytes. Put your "odd" and "even" byte dumps up like you did for stock and chip read and you'll see your problem I think.

                  Comment


                    #10
                    You want something more like:

                    Code:
                    python3 - << 'EOF'
                    data = open("PD11_Full.bin", "rb").read()​
                    data[0::2], data[1::2] = data[1::2], data[0::2]​
                    open("flash_byteswap_master.bin", "wb").write(data[0:524287)
                    open("flash_byteswap_slave.bin", "wb").write(data[524288:1048575])
                    ​EOF

                    Comment

                    Working...
                    X