Close

Results 1 to 13 of 13
  1. #1
    Join Date
    Apr 2014
    Posts
    8
    Rep Points
    14.6
    Mentioned
    1 Post(s)
    Rep Power
    0


    4 out of 4 members liked this post. Yes Reputation No

    BB Flash w/ an ICOM

    Would anyone find BB Flash ICOM support useful?

    ICOM clones are so cheap these days. And I think they are more versatile, reliable and perhaps even faster than other cable solutions. I just read my MSD81's flash in almost exactly an hour with an ICOM clone and some custom code to talk to it.

    Eventually I'll release the ICOM communication library I'm working on, but if there is some interest, I'll see about getting the BB Flash source and integrating ICOM support directly.

  2. #2
    Join Date
    May 2013
    Posts
    2,930
    Rep Points
    921.6
    Mentioned
    57 Post(s)
    Rep Power
    10


    Yes Reputation No
    If I knew what ICOM is and understood what the benefits would be, I'd probably be interested. lol
    2009 335i coupe back to stock...for now

    Click here to enlarge

  3. #3
    Join Date
    Dec 2012
    Location
    Houston under a book
    Posts
    1,419
    Rep Points
    2,749.0
    Mentioned
    66 Post(s)
    Rep Power
    28


    1 out of 1 members liked this post. Yes Reputation No
    It's the cables bmw uses with INPA and ISIS stuff, coding cables. Trust me sir, there is interest, especially for those who do not need datalog functionality.

  4. #4
    Join Date
    Apr 2014
    Posts
    8
    Rep Points
    14.6
    Mentioned
    1 Post(s)
    Rep Power
    0



    Yes Reputation No
    Good to know.

    I've made some good progress on my interface project and have just successfully patched my MSD81 via an ICOM. Full write time took 7mins and a subsequent map only write took 1min.

    One strange thing I've noticed is that the flash related commands like to return error_routine_not_complete. I poked at the msd80 prg using tool32, bestview, a custom msd80 sim file and the BESTDIS tool I wrote. From what I can tell, I think the commands are supposed to be repeated once a second, up to a maximum number determined by the flash timing response, when they return that error. I don't see BB doing this, so I'm a little confused as to how it is working; either there is some difference because of the interface or BB isn't actually working reliably for everyone (random auth or erase failures). I could also be wrong entirely, but I doubt it. A trace of a winkfpt flash session would be an easy way to tell though, which I'll save for another day.

    I can't seem to find the BB source anywhere. Is it not publicly available or am I blind?

  5. #5
    Join Date
    Dec 2012
    Location
    Houston under a book
    Posts
    1,419
    Rep Points
    2,749.0
    Mentioned
    66 Post(s)
    Rep Power
    28


    Yes Reputation No
    Terry's version on N54tech is "open" you could say. As for the source you could probably message sticky.

    FWIW there are issues with MSD80/KLine cars that force us to use AMD computers or 4th gen intel computers, or else the flash takes hours upon hours and ends up failing.

  6. #6
    Join Date
    Apr 2014
    Posts
    8
    Rep Points
    14.6
    Mentioned
    1 Post(s)
    Rep Power
    0



    Yes Reputation No
    Have people reported read problems, write problems or both with MSD80/K-Line cars?

    If someone wants to tests the retry logic I was talking about, I could make a special build for them to see if it helps. And if they have an ICOM too, I'd be curious to see how well it works for them since I don't have access to an older car at present.

  7. #7
    Join Date
    Apr 2014
    Posts
    8
    Rep Points
    14.6
    Mentioned
    1 Post(s)
    Rep Power
    0



    Yes Reputation No
    It appears as if the proper error handling and retry logic for a lot of commands is as follows:
    if Response ID == ERROR
    if (Response Status == Busy Repeat Request or Response Status == Routine Not Complete)
    wait one second, retry command, check status (up to 2x)
    else
    error: Response Status error
    else if Command ID + 0x40 == Response ID
    success: Response Status success
    else
    error: Incorrect Response ID

    And for flash commands, the retry logic is slightly different:
    wait 1 or 2 seconds (2: first retry, 1: subsequent retry), retry command, check status (up to flash timing info count - 1)

    If BB Flash were to implement this logic, I think it would be a lot more reliable and safer to use on all interface types.

  8. #8
    Join Date
    Dec 2012
    Location
    Houston under a book
    Posts
    1,419
    Rep Points
    2,749.0
    Mentioned
    66 Post(s)
    Rep Power
    28


    Yes Reputation No
    I could trial some 07 changes since I have a few computers that do and do not work, my coding cable is currently in another city though.

    The errors on computers that don't work are usually timeouts iirc, like every few packets had to be retried or something, I'll try to find an old log. It's odd that the computers processor would be the defining thing here, never made any sense to me.

  9. #9
    Join Date
    Apr 2014
    Posts
    8
    Rep Points
    14.6
    Mentioned
    1 Post(s)
    Rep Power
    0



    Yes Reputation No
    Yeah the cpu shouldn't really matter if it is from this millennium, especially with a usb device, unless the driver is being extremely screwy/stupid. Even if the cpu was the issue, one would think that reducing the baud rate would fix it. If using an early multicore processor, another issue could be tsc drift between cores, causing timing to get all messed up when using rdtsc and you didn't have the sw installed to keep them in sync.

    If you end up finding some logs, send them my way. I'm curious to see if the failures were really timeouts, the errors i mentioned or something else entirely.

  10. #10
    Join Date
    Dec 2012
    Location
    Houston under a book
    Posts
    1,419
    Rep Points
    2,749.0
    Mentioned
    66 Post(s)
    Rep Power
    28


    Yes Reputation No
    Click here to enlarge Originally Posted by tacotruck Click here to enlarge
    Yeah the cpu shouldn't really matter if it is from this millennium, especially with a usb device, unless the driver is being extremely screwy/stupid. Even if the cpu was the issue, one would think that reducing the baud rate would fix it. If using an early multicore processor, another issue could be tsc drift between cores, causing timing to get all messed up when using rdtsc and you didn't have the sw installed to keep them in sync.

    If you end up finding some logs, send them my way. I'm curious to see if the failures were really timeouts, the errors i mentioned or something else entirely.
    Made this thread a while back, there's a screen shot of a typical log from most of the computers a few posts down. My 2007 failed with literally every Intel computer until Haswell 4th gens, but worked with 3 AMD based computers. Who knows. Regardless, still interested in a coding cable port.

    Old thread with a log screenshot http://www.bimmerboost.com/showthrea...474#post495474

  11. #11
    Join Date
    Apr 2014
    Posts
    8
    Rep Points
    14.6
    Mentioned
    1 Post(s)
    Rep Power
    0



    Yes Reputation No
    Hrm interesting. I see it is failing reading which is really strange since even without proper error handling, reading always seems to work ok. I also took a closer look at BB Flash and it turns out it is handling those errors similar to how I described except for some of the timing waits and maximum retries. Those differences wouldn't explain the issues with various PCs and K-Line cars though.

    I'll double check the link configuration and some other things to see if I can spot something that might explain these problems.

  12. #12
    Join Date
    Dec 2012
    Location
    Houston under a book
    Posts
    1,419
    Rep Points
    2,749.0
    Mentioned
    66 Post(s)
    Rep Power
    28


    Yes Reputation No
    Click here to enlarge Originally Posted by tacotruck Click here to enlarge
    Hrm interesting. I see it is failing reading which is really strange since even without proper error handling, reading always seems to work ok. I also took a closer look at BB Flash and it turns out it is handling those errors similar to how I described except for some of the timing waits and maximum retries. Those differences wouldn't explain the issues with various PCs and K-Line cars though.

    I'll double check the link configuration and some other things to see if I can spot something that might explain these problems.
    I've suspected something on the bt cable end dealing with their drivers on different computers, but not really sure, just a wild guess. A port for the normal cable would answer that question I would think.

  13. #13
    Join Date
    Feb 2013
    Location
    Germany
    Posts
    159
    Rep Points
    370.0
    Mentioned
    28 Post(s)
    Rep Power
    4


    Yes Reputation No
    @tacotruck any progress on the ICOM port front or your lib?

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may post replies
  • You may not post attachments
  • You may not edit your posts
  •