# BMW m235i f22 CAN read message reads only 0x130



## parin.dedhia (Aug 25, 2016)

Hi,

I have a BMW m235i f22 (2014), and i want to control door locks, lights remotely with my computer. I am trying to access the OBD2 port using my Arduino/Spark-fun shield to read the CAN messages, but the only CAN ID i see is 0x130. The CAN ID doesn't change before or after ignition or drive. I am using 500 kbps CAN speed, and am getting the same CAN ID across 2-3 other CAN shields (seeduino, spark fun shield, car loop/particle photon). I have limited knowledge about what could have gone wrong here. Can some one help me out? Highly appreciated. 

-Parin


----------



## shaik786 (Mar 17, 2015)

0x130 is the "keep alive" message.

What software are you using? Have you configured it to read only specific message ID's? Some software have the option of picking only a few and discarding the rest.

You may want to send a message and see if you are able to read other messages as receipt.


----------



## parin.dedhia (Aug 25, 2016)

Hi,

Thanks for your response. I am using Arduino + CAN bus shield from spark fun (here's the link - https://www.sparkfun.com/products/13262). My code is configured to read only, and it works well in my other Honda civic, but just gives out 0x130 on BMW. Not sure what happened.


----------



## shaik786 (Mar 17, 2015)

Just checked, it does indeed send only 0x130 messages.

After sniffing messages over the OBD, found out that you need to send a 0x7df (PID) message to receive a 0x7e8 which contains data.

To know the list of supported PID's, please google.

When I sent the following data on [0x7DF]:

```
02 01 0D 00 00 00 00 00
1st byte: length=2 bytes
2nd & 3rd bytes: PID=010D (Vehicle Speed)
```
I received the following data on [0x7E8]:

```
03 41 0D 00 AA AA AA AA
1st byte: length=3 bytes
3rd byte: SPEED=0 kmph
```
It implies, to read data you need to send request. If you are looking for continous flow of messages, you will need to tap into one of the available CANBUS's inside the car, for instance, I've tapped into the entertainment bus and have been able to log messages for my other project which displays many parameters of the car on a uController controlled LCD.

EDIT: Adding a screenshot


----------



## parin.dedhia (Aug 25, 2016)

This is great :thumbup:, thank you. Which software did you use, and which hardware tool? Is there any documentation which i can refer to to try my hands on? 

Is it possible to write into steering wheel's ECU's CAN, and control it autonomously?

Thanks again for all the help.


----------



## shaik786 (Mar 17, 2015)

I have this *module* that I got off eBay a few years back, and the software came along with it. The software is full of bugs and can be used only on occasions such as this where you basically are trying to figure out something simple.

You'll very rarely find software that suits your requirement, so the best thing to do is write your own. However, there are some that are openly available on the net, but most are specifically suited to the hardware modules that they sell.

By "write into steering wheel's ECU's CAN" you mean coding? I've never tried that and will never try it too considering the risk involved in experimenting with it. Moreover, there already are software like WinKFP, INPA, etc which do the job, so I would leave it to that.

If you mean sending basic messages to these modules and control simple functions like turning lights on/off, etc., yes, this can be achieved, you only need to know the message(s) and the data you need to send over the bus.


----------



## parin.dedhia (Aug 25, 2016)

Hi,

Thanks for the response. Yes, i was initially looking for turning horn, door locks, windows. However, eventually want to look into how to control steering wheel using CAN. I will def try out the one used by you, but need to start looking for ECU location to physically tap CAN H and CAN L.

Thanks,
Parin


----------



## Ledchik (Jul 31, 2017)

Hi All,



shaik786 said:


> Just checked, it does indeed send only 0x130 messages.


Does anybody have some news regarding having seen only 0x130 messages?

I also have the same issue. It seems that this is new design to show on OBD2 socket only wakeup messages. Other internal messages seems to be suppressed by a gateway (ZGM block).

I can imagine two options here:
1. There should be either special code to be sent to the gateway (ZGM) to disable filters, or maybe some pin in OBD2 to be pulled to +12.
2. Another CAN-bus to be used to monitor all activities. There should be a hidden socket or something with another CAN-bus in this case.

Does anybody have some news or ideas on this topic?


----------



## georgica23 (Aug 14, 2017)

On the F series the can bus cannot be access through the ODB2 port. You can only access the bus lines through the ODB2 port when you connect the BMW diagnosis interface (firewall). Like you i am doing a project trying to hookup a NodeMCU in my car to control everything through an amazon echo which i have embedded in the car. If you would like to access the bus lines easiest way is to tap into the head unit pin 9 can low/ pin 11 can high.


----------



## shaik786 (Mar 17, 2015)

+1 on best place to source CAN is back of the headunit. I did a similar thing on my previous E90.


----------



## 2real4u (Oct 7, 2012)

F series may have KCAN1, KCAN2, KCAN3, KCAN4, PT-CAN and D-CAN busses, to name just CAN buses. There are also LIN busses, MOST, FlexRay, Ethernet and OABR.
Specific messages are present only on the busses on which they are required.


----------



## charlesrg (Nov 10, 2020)

I'm wondering if you guys know what message can be used to turn on the seat heating and perhaps the other to enable the 'M' memory button.
Maybe someone could send me a capture while turning on/off the heat.


----------

