BMW M57 cruise control

When swapping the M57 into the Dogger I wanted cruise control,. the button was in and I wanted it to work.

It was fitted to all P38’s I think

The switches from the BMW in the steering wheel use a K-bus data stream into the engine ECU , the ECU does all the necessary stuff and works well.

But how to get the correct data into the ECU when you don’t have a BMW MFL steering wheel ? well at first I was going to make a little circuit to do this, so I acquired a switch pack from aE46 to sniff the data, but realised it would be easier to repurpose the unit.

BMW MFl steering wheel for range rover K-bus use
you dont need the M series wheel any with the cruise buttons will do.

so I did, I soldered on these wires to a plug and then linked them to the buttons on the P38 steering wheel and sent the wire with k-bus data to the DDE4 ecu. The cruise and phone buttons are on separate PCB’s and although it’s a funy shape it is a small board.

BMW MFL switch pack for cruise repurposed for a Range rover with M57 conversion in a camprvan

all the errors in the ECU dissapeared and using OBD reader I could see the button operating but speed input error was still there.

Now most old BMW ECU’s take the speed signal from one of the rear wheel ABS sensors so I did just that, the signal from the speed sensor on the P38 was the same format, but it didnt work 🙁

I still got the speed signal error!!, turns out the DDE4 ECU wants the speed on the CAN bus… I don’t have a E46 to get the data from, I roughly know the data format but cannot get it to accept it…..continued soon

unless anyone knows better …

Share your joy of knowledge with the world..

13 thoughts on “BMW M57 cruise control

  1. Miguel

    Hello,
    I am in the prep phase to convert a M57 into a P38. and came across your site! great work
    Also found in another place the ID for the road speed signal for E46:
    In the data for each ID there are 8 bytes. Labeled Byte 0,1,2,3,4,5,6,7

    ARBID: 0x153 (ASC1)
    -B0
    -B1 Speed LSB
    -B2 Speed MSB [Signal startbit: 12, Bit length: 12, 0x0008 = 1 km/hr]
    -B3
    -B4
    -B5
    -B6
    -B7
    Hope this can help you!
    regards,
    Miguel

    1. Beady

      Hi Migauel,
      Thanks for that, not sure how I missed it, but great that it is there.

      good luck with the conversion , it does make the P38 a great car.

      bd

  2. Nick Finlay

    Hi Mate, i did my m57 defender (the first) several years ago now but have always wanted cruise control working. really interested to see how you get on, could you use an Arduino to convert the speed signal to CAN? have you got a pin out / wiring diagram for your wiring the switches?

    Cheers
    Nick

    1. Beady

      Hi Nick, too busy with work and the wife jobs 🙁
      I have started to try and get a BARTH STG working with CAN bus, they are cheap for commercial quality and can be programmed using Arduino IDE , I have had problems with arduinos in cars ,they need lots of protection to make them reliable, I always used PIC’s before and never had issues with reliability , even on the Dakar cars.
      it would be easy to use the BARTH STG to take steering wheels input and output the KBUS data to the ecu, but the CAN setup on the BARTH has me stumped, its a time/life issue.
      My daughter has a E46 306D1 drift car and I intended to sniff the CAN data going into the ECU for the speed, but again its a time problem
      I will post updates if I make any, good luck and please post anything you find one here to help others who follow, we cant be the only ones trying to do this.

      1. Beady

        I now have cruise working for DDE, DDE5,and the strange but clever DDE6

        beady

        1. Wojciech

          Hi
          Just came across Your site and Your post while looking for more info about CC in dde5/6 as I’m fitting it in a f100 truck. How did You managed to get around ecu speed input?

          1. Beady

            It needs to go in over CAN-BUS but it is not so simple, it has to be correct for the gear ratios or the cruise will not kick in.
            Contact Tom on his email ‘tgcomputer97 at gmail dot com’ he will be able to help you, he makes an adapter for other vehicles
            to have even the latest BMW engine cruise control work, the latest have the cruise in the ABS system not the engine ECU

  3. M57 Nick

    Hi Mate, I did the first m57 defender some years ago now. im really interested in getting cruise control working, let me know how you get on! i was wondering if there’s a way to us an arduino to convert the wheel speed input to a can signal? also interested if you could provide a bit of a pin out / wiring diagram for your set up?
    Cheers Nick

  4. liam

    Very interesting. Does the ECU also need to see an input from the steering angle sensor for CC to work? I was considering making my own system using an arduino and simulating the throttle pedal inputs.

    1. Beady

      Hi Liam,
      no, it doesn’t need the steering angle, I once made a speed limiter for the rally cars that disconnected the throttle pedal and uses a digital pot to simulate the pedal, it read the pedal but restricted the pedal amount to keep the speed to to a limit. the driver selected the speed like 30mph and then kept their foot to the floor and the car would go as fast as possible with max power but not go over the set limit. This is used in the big desert races when we travel through villages, the organizers are very strict on speeding.
      The DDE4 ECU used on the M57 has a very good cruise, so making the original BMW MFL controls connect to the P38 wheel button , which is simple. I think this the best way to go.

      1. Liam Challis
        Liam Challis says:

        Thanks for your reply, clever idea for the speed limiter. Yes making a “digital pot” with the arduino was my plan but using the DDE4 would be far better if it can be made to work. I have done some more research on this and it appears that cruise only works in the top two or three gears and it checks that the ratio between speed input and engine RPM matches those gears. Therefore the ECU will either need to be coded for the different ratios in the land rover or you need feed a modified speed signal to the ECU which it deems to be “plausible.”

        1. Beady

          coded ratio’s, would be easy in the Arduino code.

  5. P38 Autobox comms with the M57 engine – BeaDy

    […] BMW M57 Cruise control in a conversion […]

Leave a Reply

Your email address will not be published. Required fields are marked *