Page 3 of 10 FirstFirst 12345678910 LastLast
Results 51 to 75 of 228

Thread: E90 Can bus project (E60, E65, E87....)

  1. #51
    Join Date
    Feb 2012
    Location
    Korntal-Münchingen
    Posts
    24
    My Cars
    1991 850Ci, 2006 760Li
    Hello Thaniel,

    nice project and very nice work!

    I'm own an E65 instrument cluster and would like to control them, on the start just rpm and speed. Could you say me the can messages, which you used to set rpm and speed?

    I've build a small test environment on my desk:





    The whole thing is up and running, I'm able to read errors and so one. But, I'm not able to set any values (ie fuel consumption, speed, rpm, ...)

    @RobertButtigieg: = 0x130 is "ignition status" and have to be send every 100ms.

    @TerraPhantm: In which directory/file did you find this codes?

  2. #52
    Join Date
    Nov 2005
    Location
    Kilmarnock, VA
    Posts
    1,873
    My Cars
    E53, E90, Triumph GT6
    Quote Originally Posted by HeinrichG View Post
    Hello Thaniel,

    nice project and very nice work!

    I'm own an E65 instrument cluster and would like to control them, on the start just rpm and speed. Could you say me the can messages, which you used to set rpm and speed?

    I've build a small test environment on my desk:





    The whole thing is up and running, I'm able to read errors and so one. But, I'm not able to set any values (ie fuel consumption, speed, rpm, ...)
    Good setup. Looks like you have about what you need. I am sending values based on the "LOOPYBUNNY" website. Here are the subroutines that I use to form the RPM and Speed messages.

    void send_AA(int CAN) //About every 10 millis
    {

    time_AA=millis();
    word RPM_A;// rpm value for E90
    RPM_A=RPM*4;
    id[CANS] = 0x0AA; //From ECU
    len[CANS] =8;
    data[CANS][0]= 0xFE;//0x5F;
    data[CANS][1]= 0xFE;//0x59;
    data[CANS][2]= 0xFF; //TPS low
    data[CANS][3]= 0x00; //tps high
    data[CANS][4]= lowByte(RPM_A);
    data[CANS][5]= highByte(RPM_A);
    data[CANS][6]= 0xFE; //0x80;
    data[CANS][7]= 0x99;

    CAN_send(CAN,1);
    }//end RPM Loop

    void send_1A6(int CAN) //100 millis ///Speed
    {
    word MPH_A=(((millis()-time_1A6)/50)*MPH/2);
    word MPH_2A= MPH_A +lastMPH;
    lastMPH=MPH_2A;
    //word MPH_2A=MPH;
    time_1A6=millis();
    id[CANS] = 0x1A6;
    len[CANS] =8;
    data[CANS][0]= lowByte(MPH_2A);
    data[CANS][1]= highByte(MPH_2A);
    data[CANS][2]= lowByte(MPH_2A);
    data[CANS][3]= highByte(MPH_2A);
    data[CANS][4]= lowByte(MPH_2A);
    data[CANS][5]= highByte(MPH_2A);
    data[CANS][6]= lowByte(counter_1A6);
    data[CANS][7]= highByte(counter_1A6)|B11110000;
    counter_1A6+=200;
    CAN_send(CAN,0); //can send
    }

    Something is wrong with the speed equations though. It works for awhile then skips. Expect there is some small change in the messages not captured in the loopybunny code.

    Looks like you are setup to have a some fun :-)

    Thaniel

  3. #53
    Join Date
    Feb 2012
    Location
    Korntal-Münchingen
    Posts
    24
    My Cars
    1991 850Ci, 2006 760Li
    Hello Thaniel,

    yes, it was a setup just for fun. My ex-employer is a supplier for OEMs in automotiv industrie, like Bosch, Delphi, ... and BMW, Mercedes, ... So, and I could take a couple of ECUs and so one, so I've installed the stuff on my desk and played a bit around.

    The setup contains:

    • control display
    • navigation computer
    • ask
    • central gateway module
    • cas (but this I'm able to emulate in software )
    • idrive controller


    Thank you for the infos regarding CAN IDs. So, RPM is 0x0AA with DLC 8 and speed is 0x1A6 with DLC 8 too.

    As I found LoopyBunny-page, I've just tryed to send the both messages "as is", but just a couple of timer (on event so to say) and not periodically... my mistake. And after nothing is happend, my idea was: I need something like a "commit", that mean "set the value from i.e. 0x0AA NOW". This approach have the clusters from VW, the first step is to set the value and the say "display it now"...

  4. #54
    Join Date
    Nov 2015
    Location
    SF Bay Area
    Posts
    40
    My Cars
    2000 BMW 328Ci
    Hey guys, my name is Tyler.

    I'm very quietly planing on doing an N54 swap next summer and have started planning now expecting roadblocks since VERY few have achieved this. I'm learning leaps and bounds about E46 programming and such, which is what has led me here. In fact, I spend more time on BMW diagrams than I do my college studies...yikes.

    I hope to learn how to bench some modules and send them commands. This sounds totally cool and exactly what I want to do in my free time (lame? hmm). I was naturally led here once I discovered CAN issues I'll have with my swap. Thanks to Thaniel, I have now realized that the car the motor goes in (E46) will be speaking in CAN while the motor going into my E46 (N54) will be speaking in PT-CAN, easily my biggest issue. PT-CAN goes to PIN 1 and 14 of X60001 (on the DME). I am sure this is key to keeping DSC and ABS. My other issue is integrating KOMBI to accept all the errors of E46. I haven't looked at the E46 cluster pinout yet but I assume they are getting the commands from two different forms of CAN. A lot of the sensors I need KOMBI to recognize start from modules that only deliver "yes no" commands (ex: door open, washer fluid low, etc.). Perhaps I can carry over the module that translates those "yes no" commands to F-CAN to bypass that issue entirely. Just thinking out loud with you guys. As it is, I will be integrating CAS (E90) and KGM (E60) into my E46 prior to the motor swap.

    Huge thanks to the original post on the E46 thread that explained how you intemperate the commands. It shined a lot of light about how we discover what does what and on what lines. Interested in what Terra says about reverting E9X to E46 commands. I also have a Siemens MSV80 I am willing to donate for the price of shipping. It's 4AM so talk soon!

  5. #55
    Join Date
    Nov 2016
    Location
    Gozo
    Posts
    7
    My Cars
    BMW E90
    Hi TerraPhantm,

    Are those CAN ID's for the E90?

    Thanks

  6. #56
    Join Date
    Nov 2015
    Location
    SF Bay Area
    Posts
    40
    My Cars
    2000 BMW 328Ci
    anything I could be doing with just a DME?

  7. #57
    Join Date
    Aug 2007
    Location
    Toronto, Canada
    Posts
    78
    My Cars
    85 325e M52t - 06 330i
    I'd love to jump in on this and help anyway I can. I'm gathering parts for a LSx into my E90. I've seen one person online who did the swap, but I was turned off from it when I saw every light on the dash.

    I know Vorshlag used the MRS electronic module to act as a gateway to interface the LSx ECU to the Subaru body side so I looked around for something similar to do the same. I found the CANBUS triple which apparently can do translation.

    I'm a BMW tech and have a bunch of spare modules kicking around. I may know someone who might have some more info on the ID's for the BUS. I have minimal knowledge of CAN but am fascinated by it. I would love to have a LSx E90 while retaining all the factory functions.

    I have a Raspberry Pi, to do captures I would need a PiCAN correct? Or do you recommend the Arduino board?

    Sam

  8. #58
    Join Date
    Nov 2005
    Location
    Kilmarnock, VA
    Posts
    1,873
    My Cars
    E53, E90, Triumph GT6
    Hi Sam,

    Good to hear from you. Sorry for being slow writing back. Summer is here and all sorts of projects have popped up. Including some car ones. But i've not touched my can bus stuff in a bit.

    I totally agree that all the lights on the dash isn't cool. hardware wise it shouldn't be a problem. I use an Arduino Mega and a couple sets of can bus chips to interface between 2 can bus ECU's. Has worked well on the E46's anyway. The tough part will be decoding and testing all the messages. Granted with the learning from the E46 I expect somethings will go easier. But on the downside the E9x has many more messages. I'm sure we can get it it is just how much time it takes.

    >I have a Raspberry Pi, to do captures I would need a PiCAN correct? Or do you recommend the Arduino board?
    Lots of things work. I use the Arduino's because that's what I put in the car in the end so It saves having different equipment. And from what i've seen they are cheap in comparison to some other things. But expect costs have dropped since I've looked. In the end whatever can capture the data stream will work to help decode it.

    For me I really need to get a port installed in my E90 so I can take some samples from it. It's on my "to do list". It's getting nearer to the top. Few more items I have to get done first. In the middle of an X5 timing chain guide replacement at the moment.


    Thaniel

  9. #59
    Join Date
    Jun 2017
    Location
    Maryland
    Posts
    3
    My Cars
    E36 325ic 94 - E46 330xi
    Sorry for this post, I know this is not the right place but up to know couldn't find answer and this could be the place. I have a set of E93 seats, the ones with the control black box under both. If I give power and ground seats works until I let them rest for 10/15 secs and everything dies. The solution for what I dig is to connect pin 2 and 3 to KCan H and KCan L. The explanation is if seat module doesn't talk to KCan go to sleep. I'm train to install seats on a E36 so no KCan or KBus.
    Sorry for the long post, but here goes the question, is there any way to make the seat think that the KCan network is there? I know KCan is not your main concer but you may have a solution.
    Again sorry for the big post. Your work is inspiring, in my wish list a engine swap is next step...
    TKS J

  10. #60
    Join Date
    Jan 2016
    Location
    Poland
    Posts
    4
    My Cars
    525i
    The easiest and confident way to do that is to build unit based on Arduino and CAN bus shield,and simple program, that will be send any data in proper CAN bus speed. In this case it will be a 100 Kbps.
    Last edited by cdxa; 06-16-2017 at 05:22 AM.

  11. #61
    Join Date
    Nov 2005
    Location
    Kilmarnock, VA
    Posts
    1,873
    My Cars
    E53, E90, Triumph GT6
    Quote Originally Posted by Luky0707 View Post
    is there any way to make the seat think that the KCan network is there? I know KCan is not your main concer but you may have a solution.
    As mentioned above. I'd try sending the wake-up messages just like those using a bare instrument cluster (K can only). No guarantee but expect that is what is is looking for. The detail on the messages I've included earlier in this thread or in my blog post http://e46canbus.blogspot.com/2015/11/e90-can-bus.html


    K Can is a "fault tolerant" can bus. You will need a compatible transceiver. Which is not the standard Can bus chips.

  12. #62
    Join Date
    Jul 2007
    Location
    Philadelphia, PA
    Posts
    5,660
    My Cars
    2005 M3 & 2004 330i
    If the only message is the wake-up message, the non fault-tolerant transceivers can probably handle it at least short term. I rigged mine up just to get an ICOM to work with a D-CAN KGM on my bench (it needs to see the wakeup signal to switch to D-CAN mode), and it works fine. I do get a transmission error every few seconds (and many transmission errors if I flash a module sitting on the K-CAN bus), but it still seems to be good enough to keep things like an instrument cluster awake.

    That said, I do want to try building an actual fault tolerant setup. Do you have any tips? Can I get it to work with the various libraries already out there?
    Last edited by TerraPhantm; 06-17-2017 at 05:32 AM.

  13. #63
    Join Date
    Nov 2005
    Location
    Kilmarnock, VA
    Posts
    1,873
    My Cars
    E53, E90, Triumph GT6
    Quote Originally Posted by TerraPhantm View Post
    That said, I do want to try building an actual fault tolerant setup. Do you have any tips? Can I get it to work with the various libraries already out there?
    The transceiver is all that needs to be changed. The software can remain the same. On my setup I just switched the MCP2551 for the NXP TJA1055.

    I use a MCP2515 to interface between my micro controller and the transceiver. Either transceiver. If I'm not explaining it well or you want more info feel free to ask.

    Thaniel

  14. #64
    Join Date
    Jul 2007
    Location
    Philadelphia, PA
    Posts
    5,660
    My Cars
    2005 M3 & 2004 330i
    Hmm, cool, sounds fairly simple then. I'll order a couple TJA1054/1055s and play around.

    On another note, do you know what the K-CAN voltages should be when the modules are asleep? My E60's K-CAN-LOW is registering 11.4ish volts which sounds way high to me. When the modules wake up it's in the 4.x range which seems more typical. I suspect this is the source of my K-CAN faults (which according to my airbag module, have been around for about 50k miles). Trouble shooting is proving to be difficult.

    Edit: Well, CAN-LOW being at ~VBat is apparently normal when the TJA1054/5 is idle. So whatever is causing my K-CAN issues, it's not that. I might just leave well enough alone since it hasn't caused trouble for the ~3 years the faults have been present.
    Last edited by TerraPhantm; 06-22-2017 at 02:24 AM.

  15. #65
    Join Date
    Nov 2005
    Location
    Kilmarnock, VA
    Posts
    1,873
    My Cars
    E53, E90, Triumph GT6
    Last night I measured the voltage on my test rig. When not doing anything I had near 5V on one line (think it was KCan L) and near zero on the other. Still don't haven't installed an access point to my E90's KCan. Few more weeks before that gets to the top of the "to-do" list.

    I wondered if the high voltage was due to a dropping resistor somewhere with no current flowing. I've sometimes gotten high voltage readings on some circuits from that.

    Thaniel

    Quote Originally Posted by TerraPhantm View Post
    Hmm, cool, sounds fairly simple then. I'll order a couple TJA1054/1055s and play around.

    On another note, do you know what the K-CAN voltages should be when the modules are asleep? My E60's K-CAN-LOW is registering 11.4ish volts which sounds way high to me. When the modules wake up it's in the 4.x range which seems more typical. I suspect this is the source of my K-CAN faults (which according to my airbag module, have been around for about 50k miles). Trouble shooting is proving to be difficult.

    Edit: Well, CAN-LOW being at ~VBat is apparently normal when the TJA1054/5 is idle. So whatever is causing my K-CAN issues, it's not that. I might just leave well enough alone since it hasn't caused trouble for the ~3 years the faults have been present.

  16. #66
    Join Date
    Jul 2007
    Location
    Philadelphia, PA
    Posts
    5,660
    My Cars
    2005 M3 & 2004 330i
    Quote Originally Posted by Thaniel View Post
    Last night I measured the voltage on my test rig. When not doing anything I had near 5V on one line (think it was KCan L) and near zero on the other. Still don't haven't installed an access point to my E90's KCan. Few more weeks before that gets to the top of the "to-do" list.

    I wondered if the high voltage was due to a dropping resistor somewhere with no current flowing. I've sometimes gotten high voltage readings on some circuits from that.

    Thaniel
    According to this NXP document, CANL being at Vbat in low-power mode is the expected behavior (pages 41, 42, 43). So I'm not sure if that's truly where my fault lies.

    Termination resistance seemed normal. I was getting almost exactly 120Ω on both lines, which is close to the 100Ω target specified.
    Last edited by TerraPhantm; 06-28-2017 at 12:56 AM.

  17. #67
    Join Date
    Nov 2005
    Location
    Kilmarnock, VA
    Posts
    1,873
    My Cars
    E53, E90, Triumph GT6
    Hello All,

    Few updates.
    Helped a guy with a N52 into a E46 swap with an interface between the N52 can and the E46 can. This is more or less the opposite of what we are trying to do (Put a new motor into an E90). But with the E46 stuff already figured out thought it was worth a try. Tach and temp work just fine. Still sorting out a few more things.

    Other news is I FINALLY tapped the K-CAN and PT-CAN buses in my E90. I grabbed the K-CAN from the back of the IHKA. For PT CAN I grabbed it from under the Drivers side dash. Picture below of where I tapped it.
    PT-CAN tap.jpg


    My son had made me a program to grab the Engine temp and put it on a LCD screen which I've put in the ash tray. Nice to finally have the coolant temp visible.

    Thaniel
    Last edited by Thaniel; 07-31-2017 at 12:09 PM.

  18. #68
    Join Date
    Jan 2014
    Location
    SF, CA
    Posts
    63
    My Cars
    S/C LS2 e46, LS e367&8
    Woah! So we're close to being able to LS swap the E92? I cannot wait!!

  19. #69
    Join Date
    Aug 2016
    Location
    Bulgaria
    Posts
    2
    My Cars
    BMW e87 120d

    Smile

    Hello everyone
    First , great job! I've been following the E90 and E46 threads for a while ..decided its time to join in the fun.
    The project I'm working on in going in another direction from your work, but in the end, sharing any info on the can bus will end up being useful for someone.
    So a bit about my project... Its listening on the K-CAN (its kind of like Trevor Cook's project.. and mostly based on his work), its separated into two peaces
    Oh.. and maybe I have to say, I have e87...so all that is for e87 ...but not much differences between e87 and e90 from what I've seen so far.
    1. Arudino + CanBus Shield - Reading & parsing can data, Control 2 relays (one to power RPi, another one to cut power to the fuel pump.).
    2. Raspberry Pi (3) - Wifi AP, 4G Dongle (for the internet), OpenVPN to my home, Web interface with realtime data, mpd + ympd for web interface (all of the audio is from the RPi, controlled by the steering wheel buttons), GPS module.

    You pretty much get the idea ... the cool part is the fuel pump relay ... long story short, if you lock from the remote , the car goes into "lockdown" mode.. so when key is detected it will cut the power to the fuel pump, untill "code" is entered.
    And when I say "code" I mean specific sequence of keys pressed on the steering wheel. (btw another way to go is to start flooding the pt-can bus with low IDs...but tbh I dont know if that can do any damage, so I decided to go the easy way - add relay).

    btw I should note... I can't write code.. I don't know C ... and the code is not even alfa yet...more like POC. (attaching the ino file)
    Alot of things can be improved...for example start storing the lockdown status in the internal Arudino EEPROM, and so on... Oh and some of the things like mpg, steering_wheel and not spitting sane values ..just havet got time to get to them.
    Attached Files Attached Files

  20. #70
    Join Date
    Aug 2017
    Location
    Texas
    Posts
    1
    My Cars
    E90 335i
    Awesome work guys! I'm about to get into a very similar project in connecting my canbus to my home automation project via an Echo Dot. Already have the echo dot in place and can trigger the transceiver via IFTTT, but I'm learning AWS and Java right now to make it cleaner.

    - - - Updated - - -

    https://youtu.be/IX3PjKE3X7E
    No canbus connection in this video. Just showing default functionality of the echo.

  21. #71
    Join Date
    Nov 2005
    Location
    Kilmarnock, VA
    Posts
    1,873
    My Cars
    E53, E90, Triumph GT6
    Thank you for the responses and additional info on others projects. Yes this forum is a great place to Share data.

    After we installed the engine temp gauge I got to thinking. I've been using an ipod in the car for music through the aux port in the arm rest. Well the arduino is in there (for now) for the engine temp. And well it can listen for the buttons on the steering wheel. One thing lead to another and My son put together the program for an E90 ipod controller along with the temp display. A few small changes to the the arduino wiring and we were golden. So nice to be able to skip songs and have the ipod turn on and off with the car on it's own. May put the song titles up on the LCD screen too. In the E46 we put them on the radio screen. The radio being on the MOST bus instead of K-Can that's not happening anytime soon. Well enough of that.

    Started looking more into the A/C and check engine messages. The A/C in the E90 is very different than the E46. IF doing something like a LSx swap it won't really matter. That is if using the LSx AC compressor. But if wanting to use the E90 compressor there are things to know. The E90 compressor is a variable displacement one. It's not just an on off. It's signal to make it work is a variable pulse width signal. Not just an on off. The signal is Sent by the junction box (JBE) The AC pressure is captured by the Junction box (JBE) and passed to the IHKA by K-Can. this is done on ARBID 0x2D2. Byte 0 is the AC pressure. Formula seems to work out to be Byte0*.51 = pressure in Bar (verified using INPA). It's still unclear to me at this point which module makes the final decision on AC on or off. It seems a combination of DME, IHKA and JBE. Not sure if the DME has final say or IHKA or JBE. I had thought DME as it would want to cut it off when full throttle or high engine temp. But so far haven't found the code that does it. Still more looking to do on this one.

    Also spent time looking of which bit (yes bit not byte) of all the data changes when the MIL (check engine light) is meant to be lit. Well that too looks to be confusing. After looking for quite some time we found that 1B4 Byte4, bit4 shows the check engine light status. But this is coming from the KOMBI. Not the DME. Humm.... And in the coding of the DME there is an option for "control of the MIL". Humm so maybe my DME isn't even controlling the MIL. more to look at there too.

    Think that's about all the useful stuff we've learned. Doesn't seem like much for all the time spent. But it's something.

    Quote Originally Posted by l4m3rx View Post
    Hello everyone
    First , great job! I've been following the E90 and E46 threads for a while ..decided its time to join in the fun.
    The project I'm working on in going in another direction from your work, but in the end, sharing any info on the can bus will end up being useful for someone.
    Thanks. Yes. Share what you can. Never know what might help someone else.

    Thaniel.

  22. #72
    Join Date
    Aug 2016
    Location
    Bulgaria
    Posts
    2
    My Cars
    BMW e87 120d
    It will e really cool if we can turn On/Off the AC with a CAN message ...that combined with the information on the throttle pedal /while throttle >80% -> ac_off/ ... reminds me of a meme
    when-i-turn-the-a-c-off-to-have-more-power-25338094.png

  23. #73
    Join Date
    Nov 2005
    Location
    Kilmarnock, VA
    Posts
    1,873
    My Cars
    E53, E90, Triumph GT6
    Yesterday I finally did some data logging on My E90. With the CAN bus taps in place it was quite easy. Took 12 logs. Now to see what We can find in the information.

    Quote Originally Posted by l4m3rx View Post
    It will e really cool if we can turn On/Off the AC with a CAN message ...that combined with the information on the throttle pedal /while throttle >80% -> ac_off/ ... reminds me of a meme
    That meme totally made Garrett and I laugh. Great stuff. I used to push AC off when I wanted power when driving. Then I learned most cars turn off the AC at full throttle. So it automatically diverts life support to thrusters.

    In other news Apparently the E90 uses the evaporator temperature to vary the pulse width going to the E90 AC compressor. Or at least that's what I've read. For those swapping out the compressor this is of little interest. But for those wanting to use the E90 compressor this is useful info.

    The Evap Temp is captured at the IHKA. Did some testing and it reports that on ARBID 0x32E byte 4 (KCAN only). Formula is something like Byte4*0.3638+12.716 (I just let excel best fit). I didn't write down the units. Whatever INPA reports. Probably C but could be F. I'll recheck. Way I understand it the IHKA takes this info then spits out a load data on ARBID 0x1B5 (KCan and then transfered to PT CAN). Unfortunately this only happens when the car is running. Saw that in the data logs already. A question that remains is:

    Does the JBE set the pulse width going to the AC compressor:
    -1. Based on a signal from the DME
    -2. Or based on info from the IHKA and ok for AC or not OK for AC message from the DME.
    -3. Or something else entirely

    Oh. Almost forgot. I did mess around with sending more messages to the KOMBI to make it happy and not kick out some more errors. It takes a lot of CAN bus messages to make the KOMBI happy. I've not got them all sorted out yet but seen evidence that it does work. Getting the timings and counters all correct is the trick. One more interesting thing. Saw that 0x480 appears to be the wake and sleep message. Not sure if that was noted before by someone else. My bench test KOMBI complains that is missing. On the car data that is the very first message sent and also one of the last. Another thing noticed is that despite the speed of the PT bus many messages get "stepped on" or don't get to send due to their priority. This was seen as I triggered the AC (on off and on off) which starts on the K CAN and then is transferred to the the PT can Bus (0x242). Not all the messages made it across to the PT bus. Which I find interesting.

    Thaniel
    -

  24. #74
    Join Date
    Jul 2007
    Location
    Philadelphia, PA
    Posts
    5,660
    My Cars
    2005 M3 & 2004 330i
    Quote Originally Posted by Thaniel View Post
    Hello All,

    Few updates.
    Helped a guy with a N52 into a E46 swap with an interface between the N52 can and the E46 can. This is more or less the opposite of what we are trying to do (Put a new motor into an E90). But with the E46 stuff already figured out thought it was worth a try. Tach and temp work just fine. Still sorting out a few more things.

    Other news is I FINALLY tapped the K-CAN and PT-CAN buses in my E90. I grabbed the K-CAN from the back of the IHKA. For PT CAN I grabbed it from under the Drivers side dash. Picture below of where I tapped it.
    PT-CAN tap.jpg


    My son had made me a program to grab the Engine temp and put it on a LCD screen which I've put in the ash tray. Nice to finally have the coolant temp visible.

    Thaniel
    I think you'd be better off flashing that DME with the E85 software if it's an MSV70, or the E83 software if it's an MSV80. That way it will send E46 compatible can messages without having to have a translator in between

  25. #75
    Join Date
    Nov 2005
    Location
    Kilmarnock, VA
    Posts
    1,873
    My Cars
    E53, E90, Triumph GT6
    Few more thoughts after more playing with my bench test setup and looking through the E90 data samples I took. First off is the JBE does indeed filter or change messages between buses. Noticed some (many?) of the messages that are transferred from the PT bus to K Can only repeated on the K-CAN at 10th that speed. For example 0x0AA is sent by the DME every 10ms. This same message is only seen on the K Can at 100 ms. Seen the same with DSC messages and other messages being sent at a decent speed.

    The other interesting thing we saw the JBE do was continue to send a message after we had stopped. In our test setup we were sending a particular message on the PT Bus and then after we send a shut down message we stop sending. But in watching the can bus data stream on K-Can we noticed that the message was sent 4 or 5 times more with all the data being FF. Something our program wasn't doing. Not sure why the JBE felt the need to do that but it's interesting.

    It looks like only 2 of the IHKA messages make it onto the PT bus. 0x242 and 0x1B5 make it to the PT bus. Still trying to figure out the fine details of 0x1B5 but at this time I think the data in this message may be used to set the pulse width of the AC PWM signal.

    We also found the source of our KOMBI doing some strange things. For example resetting/Turning off and back on. It came down to the messages being sent were getting corrupted. Let me explain more in detail what we did.

    But first let me mention the CAN bus volume. The E90 sends much more traffic than the E46. In the E46 the DME sends 3 different ARBID can bus messages. The E90 DME sends something like 21 different ARBID's. This becomes a problem when simulating the modules. When I simulate an E46 DME we use a separate register for each message (there are 3 in a MCP2515) This allows for more accurate timing and the messages keep from being accidentally overwritten by another. If I understand the hardware for the MS42 properly this is similar to how the DME does it. In our E90 text bench we needed to send many messages so we used each register for multiple messages. My goal for this testing was to make the KOMBI happy. I started with sending the basic CAS messages and then used INPA to check the KOMBI to see what CAN ID errors the KOMBI reported. Then I'd add that message to my program. I used my E90's data samples to set timing and help form a good message. Then see I'd check to see if that error would go away. Kept repeating until adding another message made everything worse not better. We suspected it was volume related so we spread the load to 2 sets of can bus chips. One connected to the PT can bus side and the other to the K-can side. Had already noticed the JBE doing thing and thought this the best to send the simulated messages on the bus the module it was simulating was on. Anyway with that change we managed to get quite a few more can bus related error codes out of the KOMBI. The error light that is a Red car on the lift were all gone and the only error light left on the KOMBI was the RDC light. My car doesn't have RDC so I couldn't simulate this message. Things were going well and we noticed the KOMBI reset spontaneously. Watching the data stream we noticed our CAS message, 0x130, was showing on the bus incorrectly at the exact time the KOMBI shut off. Further looking and we realized that the 0x130 message was being overwritten with another message while it was waiting for a clear space on the bus to be sent. An example of why using multiple registers is important. So we move the 130 to it's own register just to ensure it didn't get messed up and voila all happy. Looks like we need to use a different sending strategy if we are going to pack a ton of messages in. we've got some ideas. If nothing else we can add more can bus chip sets.


    Quote Originally Posted by TerraPhantm View Post
    I think you'd be better off flashing that DME with the E85 software if it's an MSV70, or the E83 software if it's an MSV80. That way it will send E46 compatible can messages without having to have a translator in between
    I remembered you mentioning that and did suggest it to the owner. It probably would work nicely for the gauges. For whatever reason this option wasn't taken (perhaps flashing the DME is not easy?). But did get me thinking more about this option for N52 to E46 swaps.

    I looked up the wiring diagrams for the A/C. In the E46 the DME is wired to the compressor, in the E90 the JBE is wired to the compressor, Z4 (N52) the IHKA is wired to the compressor. Pretty sure the E46 A/C is setup of for strictly an On and off magnetic clutch and the E90 A/C compressor is a PWM signal (some E90's have both the PWM and the magnetic clutch). Thinking for AC hardware would have to be changed in the E46 to get it to work with an N52 compressor with flashing the DME. In this particular case the Owner had already installed the JBE and it was wired to the A/C compressor. Just needed to send the right codes to trigger it

    Thaniel

Page 3 of 10 FirstFirst 12345678910 LastLast

Similar Threads

  1. E46 Can bus project.
    By Thaniel in forum Engine Conversions
    Replies: 985
    Last Post: 02-26-2024, 09:42 AM
  2. BMW Dual 3" Tip Peformance Muffler Exhuast E39 E46 E38 E90 E92 E36 E30 E60 E65 E66
    By BimmerKing12 in forum Engines, Performance Parts & Software
    Replies: 1
    Last Post: 11-28-2013, 06:45 AM
  3. BMW Dual 3" Tip Peformance Muffler Exhuast E39 E46 E38 E90 E92 E36 E30 E60 E64 E65
    By BMW112 in forum Engines, Performance Parts & Software
    Replies: 22
    Last Post: 08-20-2013, 05:44 PM
  4. FS: Brand new DIAGNOSTIC SCANNER E60 E63 E65 E87 E90
    By bumer325 in forum Engines, Performance Parts & Software
    Replies: 15
    Last Post: 07-07-2012, 05:03 PM
  5. CAN Bus IDs - Working for PC integration on E65!
    By xolmatic in forum Car Audio & Electronics sponsored by Bavsound
    Replies: 0
    Last Post: 02-14-2008, 08:06 PM

Bookmarks

Posting Permissions

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