Jump to content

Custom UCONNECT Access


Recommended Posts

ALPHA 0.1.0 released! Hardware requirements can be found on our page, www.Auto-Mated.com

So i'm in the process of sniffing all the ODB calls for most, if not all of the features in my journey. My hope is to create a webservice for remotely starting my car, viewing travel information, as well as logging any vehicle troubles. I'm also taking it a step further in automating things (Think, Jarvis from Ironman), but i'm sure that most of you won't be interested in that.

In either case, I successfully sniffed the remote start/stop as well as the lock, unlock calls for my journey last night, and was able to replicate them all with my laptop/cellphone. Now that I have the basic uconnect features locked down (all other odb calls such as errors and metrics are simple), i'm going to build the raspberry pi image and test it out. I'm going to use this forum post to keep folks up to date on things and take suggestions for additional features.

I'm a developer by trade, so i'll probably end up making a community site like uconnect access, that allows you to login and remotely start your car, track oil changes, travel summaries and all other data we can yank from the vehicle. I expect that I will provide more information and control of your journey, than the stock Uconnect Access provides..

Stand by for updates!

Oh, btw. I plan on making the service opensource, but with a very very small fee to cover server costs, outside what it would cost you to get a wireless access dongle from a reputible cellular carrier.

AMAZON ITEM LIST:

http://amzn.com/w/3O0EQA5K1PQAF

Edited by HawtDogFlvrWtr
Link to comment
Share on other sites

If anyone wants to test my results, here are the calls i've currently sniffed. Please note that I used a odblink lx bluetooth odb connector in the vehicle and used bluetooth terminal for my android smartphone, with the "append \r\n" setting enabled. For the remote start features to work, you obviously have to have the factory remote start functions in your journey already, or added it after the fact. if you're using an aftermarket remote start device, these will probably not work, but would appreciate if you reported back if they did or not.

START VEHICLE:
STP31
ATSH1C0
69AA37901100

STOP VEHICLE:
STP31
ATSH1C0
6AAA37901100

UNLOCK VEHICLE:
STP31
ATSH1C0
24746C901100

LOCK VEHICLE:
STP31
ATSH1C0
21746C901100

These are my first tests and I wasn't standing outside next to the car, so they may be flipped. I've confirmed that the start car calls and stop car calls work, and I got a response from the lock and unlock, I just can't remember what order I did them in. I'm going to confirm this later.

post-10820-0-85723000-1427890664_thumb.p

Edited by HawtDogFlvrWtr
Link to comment
Share on other sites

ok, so i've made some progress with this. I'm currently able to roll down/up all windows or just individual windows, start and stop the car, lock all doors, unlock just the driver door or unlock all doors from the web. It's not 100% yet, and I still have other features I want to add, like only cracking the windows when the temperature outside gets above a defined value, cracking the sunroof (if equiped), etc..

The good news is, it appears there is location information associacted with each window, which I can read to determine how far it's been lowered. This will be good for folks with those window vent plastic thingies that allow them to roll the window down slightly in bad weather without getting soaked. My intent is to allow you to click a button from your cell, or a website that drops the windows about an inch at any time, and then roll them back up. Still trying to figure out how to make this happen when the car isn't on... i'll keep working on that, though.

if you can think of anything else you want to automate, let me know... one of them I was thinking of, was notifications if the alarm was tripped for some reason. perhaps add a camera module to the raspberry pi, and create a nice mount on the rear view mirror, or somewhere else, that snaps a photo and quickly emails it to you with whoever is jacking with the vehicle... call me paranoid, but if i'm capable of doing it, i'd like to do it...

Edited by HawtDogFlvrWtr
Link to comment
Share on other sites

ok, so i've made some progress with this. I'm currently able to roll down/up all windows or just individual windows, start and stop the car, lock all doors, unlock just the driver door or unlock all doors from the web. It's not 100% yet, and I still have other features I want to add, like only cracking the windows when the temperature outside gets above a defined value, cracking the sunroof (if equiped), etc..

The good news is, it appears there is location information associacted with each window, which I can read to determine how far it's been lowered. This will be good for folks with those window vent plastic thingies that allow them to roll the window down slightly in bad weather without getting soaked. My intent is to allow you to click a button from your cell, or a website that drops the windows about an inch at any time, and then roll them back up. Still trying to figure out how to make this happen when the car isn't on... i'll keep working on that, though.

if you can think of anything else you want to automate, let me know... one of them I was thinking of, was notifications if the alarm was tripped for some reason. perhaps add a camera module to the raspberry pi, and create a nice mount on the rear view mirror, or somewhere else, that snaps a photo and quickly emails it to you with whoever is jacking with the vehicle... call me paranoid, but if i'm capable of doing it, i'd like to do it...

This is incredible :)

Link to comment
Share on other sites

i'm glad you like.

Another update:

I was just able to get things working on my linux laptop with a small python script that I wrote with pybluez. That's probably spanish to folks, but i wanted to put it on here for my reference later. I'm able to now do all of the functions i mentioned above from a pc. This is the first step to converting everything over to working on a raspberry pi. The only setback i've seen, is the remote start for our journeys only allows you to remotely start it once without actually starting the car. I assume the same thing happens when you autostart it and it times out and turns off. It throws the message "remote start disbaled, please start car to reset" or something like that. This isn't that big of a deal, it just means that we can't start and stop it over and over again.

I'll start working on the deeper portions of the python code, primarily making a webcall to a site that i'll make later that will let you start the car remotely. The raspberry pi will check in with the server every 30 seconds or so to see if there is a message waiting to do something "like start the car, roll down windows, etc". This means that it won't be instant, but it will happen in half a second, depending on when the last time it checked in with the web server. This is the same way that uconnect access works... i'll try to figure out a faster way of making it happen.. perhaps a push function or something that keeps the pi connected to the server until it receives something, vs checking now and again... will have to see.

Notes for myself (How I got it running):

  • need python-dev and libbluetooth-dev installed on the system to connect leverage pybluez.
  • also need to install the pybluez python egg from https://github.com/karulis/pybluez.git, with python setup.py install
  • ensure that rfcomm is installed
  • Test script in python that was created
  • """
    A simple Python script to send messages to a sever over Bluetooth
    using PyBluez (with Python 2).
    """
    
    import bluetooth
    
    serverMACAddress = '00:04:3E:08:42:2F'
    port = 1
    s = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
    s.connect((serverMACAddress, port))
    while 1:
            text = raw_input() # Note change to the old (Python 2) raw_input
            if text == "quit":
                    break
            s.send(text)
    s.close()
    
  • edit /etc/bluetooth/rfcomm.conf for manual run... pybluez does this for you so it won't be needed to establish a connection that's already registered via push button on the obdlink lx
  • #
    # RFCOMM configuration file.
    #
    rfcomm0 {
    #       # Automatically bind the device at startup
            bind yes;
    #       # Bluetooth address of the device
            device 00:04:3E:08:42:2F;
    #       # RFCOMM channel for the connection
            channel 1;
    #       # Description of the connection
            comment "odblink lx";
    }
    
    
Edited by HawtDogFlvrWtr
Link to comment
Share on other sites

I'm uploading a video to youtube so everyone can see where I am. The window work isn't working as it should so i've removed that function for the time being. I'm going to get start, stop, unlock and lock finished and working from the web, on a pi, then i'll work on sniffing the rest of them correctly. My guess is, there are checks and balances that need to be in place to deal with the windows (possibly, the call changes each time)

Edited by HawtDogFlvrWtr
Link to comment
Share on other sites

Database is up and the schema has been added. A basic website has been created for just my vehicle.. no it won't work as of yet.. i'm just testing buttons and getting the php backend worked out. I'll start working on the user creation portion of the site next week sometime, and begin working on the raspberry pi custom image.

http://www.mytankstats.com/uhacknect/

Link to comment
Share on other sites

I'm watching this closely, as I find it fascinating. There was a guy on the Nitro Forum, over in England, using raspberry pi doing the same sort of thing, because he could not get any Uconnect module to work in his vehicle. He was slowly making progress when I left the forum to hang out over here.

Link to comment
Share on other sites

Site is online but still a shell with a lot of generic text. Added basic api functionality and the ability to add vehicle via vin. It calls back to the edmunds api to resolve the vehicle year, make, and model. Api keys are generated for new users for use on the pi when the image is done. If you would like to sign up for an account now for early access and to be a tester, feel free. After much consideration, I'm going to have to take a small monthly fee to cover server costs, but it will be very very small. If you want to be exempt from this charge in the future, sign up for an account now and you'll be exempt from future fees when they are put in place.

Http://www.uHacknect.com

Edited by HawtDogFlvrWtr
Link to comment
Share on other sites

Here's a quick preview of the dashboard. I've added all recall information for all of your vehicles. I've added the abilty to add and remove vehicles. Most of the API work is complete. I've also added a list of all recent actions you've performed. I'm going to be adding a list of current issues with your car as reported by obd, so you can track that dreaded "check engine light".

Let me know what you think!

post-10820-0-87748900-1428430509_thumb.p

Edited by HawtDogFlvrWtr
Link to comment
Share on other sites

initially it will be web based, but formatted to work on your phone. In the long run, i'll be making apps for all major phone os's, yes. This will be able to remote start/stop, unlock, lock and track if your alarm was triggered. For certain vehicles, you'll be able to roll down windows, and other features.

Link to comment
Share on other sites

Got my raspberry pi 2 in today. Loaded ubuntu core on it. Getting everything setup to start working on the final images. Checking to ensure I can get all the libraries needed to make it work, on the pi. If I can't make it work with ubuntu core, I'll back out to rasbian. I'm going to create a configuration website also, to allow configure wifi connections, bluetooth connections, and yadda yadda. Will update soon!

Link to comment
Share on other sites

Will do. I've got most of it working on the raspberry pi, now. The only part i'm having issues with is pairing the devices. The bluetooth support for arm systems is limited and antiquated. It doesn't support SSP either, which is what the LX uses.. i'll figure it out though.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...