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