We have recently started using Particle Photon to obtain CAN data over the OBD 2 port. Carloop_minimal gives a good introduction on how to get started with it.
We wanted to know if there are any similar resources to understand how the underlying libraries are written and ways in which we can leverage those functions to create our own applications for streaming the OBD 2 data.
Thanks for getting back! Yes, we are trying to work on Honda Civic 9 generation and BMW M235 i. We want to control the carās peripherals For eg: lights, locks etc. though the OBD 2 port using particle photon + carloop.
Can you suggest ways in which we can sniff the IDās and examples to write back to the CAN bus? Would there be any security layer that we need to go through?
It documents all the members of the CANMessage structure and has examples for transmitting and receiving.
When transmitting, check the return value of can.transmit(message). If it is true it means the transmit buffer is full which means either youāre transmitting too fast or the messages are not being sent properly. Check the wiring and CAN bus speed. can.errorStatus() != CAN_NO_ERROR would also indicate that the messages are not being sent properly.
To sniff the IDs you can use the example and just print out the IDs of every message you receive.
For transmitting, thereās no additional security than not knowing what each byte in each messages represents to the modules receiving those messages.
(1) We can read the ID and data out of Honda Civic, but the BMW just throws out ID 0x130 (PID for ignition). Have you seen this before or aware of what could be happening?
(2) Carloop library runs with 500KBps. Is there a simpler way to modify it to access all possible CAN speeds by tweaking the code?
(3) Also, I am unable to locate āapplication.hā header file when I try to git clone carloop repo. It will be great if you can redirect me to that header file.
(3) Also, I am unable to locate āapplication.hā header file when I try to git clone carloop repo. It will be great if you can redirect me to that header file.
(2) Carloop library runs with 500KBps. Is there a simpler way to modify it to access all possible CAN speeds by tweaking the code?
The easiest way is to include the Carloop library under Particleās Web IDE and then with one line of code: carloop.setCANSpeed(125000);
(1) We can read the ID and data out of Honda Civic, but the BMW just throws out ID 0x130 (PID for ignition). Have you seen this before or aware of what could be happening?
Regarding BMW ID 0x130.
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:
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.
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?
I would recommend getting the factory service manual (online, DVD or print if available) for the car you are targeting. You should find a ton of information about the vehicleās network.
Let me give you an example. In my Honda Odyssey, I wanted to access the Body CAN (BCAN) network, which is not exposed on the OBD2 port. I tapped into the BCAN network at my heated seat module after decoding the pinout using my service manual. I had to build a wiring harness to make it work with the Carloop but that was super easy.
Iām doing that now with my 2014 Dodge Charger. I have the CANBUS layout.
I managed to get 2015 and 2017 chargerās CANBUS layouts too. Can I share that without getting contacted by Chrysler lol?
Iām trying to figure out why I can only control the passenger window through the OBDII port. I can get it to go up and down but thatās the only window I can control lol none of the other windows show up in cansniffer when itās running. I found someone on instagram that makes custom harness so Iām definitely planning something soon. Iām still working on my code
Iāve posted alot of info on the site, just use the carloop socketcan sketch and linux. From
There just push buttons and observe cansniffer. Super simple sounds hard at first but once you read through all the docs and info it becomes clear
I just noticed the wealth of info youāve posted. This was also very helpful. Thanks! Hopefully Iāll be able to contribute back some wealth of knowledge.
Yea man let me know.
I also contributed to the āzauto tazerā made the cluster swap happen!!! All thanks to the carloop! This device is powerful man you just have to code what you want it to do!! I can change vin, enable srt pages, change the 8.4ā screen to ādodge, ram, Maserati, Lancia, jeep, chryslerā doing that also changes the color of the cluster all with the carloop dude! This thing does it all Iām working on ECU flashing now and it can be done too!
Going to follow you on Instagram. Part of Space City LX I see. I am the founder and creator of the NJ Mopar Group. Glad to meet another fellow Moparian hacking their car.