Thursday, November 14, 2013

PLX Devices Project

For my college project, I am pursuing an open-source solution to extracting and monitoring raw data coming from any OBD-II enabled vehicle.  Most likely this will be web-based and will communicate through straight tcp/ip over wifi.

Hopefully this will become a direct replacement for dash command, but less pretty and more functional.

I will update with a link to the source code as I progress with this project.

Update: 11/15/2013
I have successfully received the rpm of my jeep from the kiwi 2 wifi module using netcat.  Simply by connecting over wifi using a laptop (mac in my case) and issuing a couple of commands, my rpm has populated in straight ascii over tcp/ip.  When sending a message to request the rpm for example, we ask the car to shoot back the result from mode 1 pid 0c as messaged 010c.  To delimit the request we have to add a "\r"... but not in the literal sense.  This is a carriage return and submitting an ascii value of this as 0d is dependent upon the operating system and keyboard layout.  I don't know what it is on windows but on mac you have to type a Control+v enter enter.  yes, two enters.  When using a packet sniffer you see the payload as 303130630d0a.  The car responds and shoots back your response.

To do:
when accessing the car through netcat, the connection times out rather quickly if i don't send any response within 10 seconds and it terminated by the kiwi 2 wifi device.  I have to find a way to prolong the connection.
Develop an application like dashcommand except open source.  Most likely going to be web-based.

Update 11/23/2013
I have successfully connected to the car using a project called WebTCP and it works!
I requested the available PIDs by sending 0100\r\n and it returned BF BE B9 90 which corresponds to 10111111101111101011100110010000.  These values are the PID numbers that are available discerned by either a 1 or 0 as true or false.  For example, 1011 means PID 1,3,4 are available.  This is all in mode 1.  Next step, using squel.js to query the appropriate values.

No comments:

Post a Comment