# 09 Rabbit 2.5L Tuning - Going to attempt it



## zer0hz (Apr 1, 2014)

Hey guys, 

So, I have an 09 Rabbit w/ the 170bhp 2.5L (Engine code CBUA). Recently, we got a Hex-CAN cable from Ross-Tech to troubleshoot my brother's Passat. This got me to tinkering; tinkering got to curiosity, and now I'm here.

After surfing around NefMoto for a while, I figured, "Hey, I can do this myself!"

I don't want to pay hundreds of dollars for a tune when all I have on the car is a CAI and a Cat-Back, though, I'd take a tune after getting a SRI. 

Learning and learning, I thought I'd use the NefMoto ME7 flasher, since my car has a Bosch ME7.1.1 ECU. After trying and trying with various applications to communicate to the ECU with the VCDS cable, I gave up and asked for help. Come to find out, the ME7x flasher from NefMoto doesn't support the particular ECU in our cars.

HOWEVER, they suggested using MPPS.

After trying with software for VAG K+CAN Commander and MPPS, I wasn't able to get the VCDS cable to connect.
I broke down and ordered a VAG K+CAN Commander clone cable, and am currently awaiting shipment.

Hopefully, this will allow me to dump the ECU's EEPROM so that I can use a hex editor to tweak the tune. My first attempt, once I get the dump (and after backing it up!), will be to simply turn off the vehicle speed limiter. I figure the easiest way to test if I've found the correct memory address would be to lower the speed limiter to something obnoxiously low (like 60km/h), see if I hit it, then set it obnoxiously high (like 400km/h or whatever it maxes out at). After that, I intend on figuring out the memory address mapping for the ignition and fuel maps, timing, etc. and best of all:
*I'm going to document ALL of it! * Or at least most of it.

Background on me:
- My day job is as an IT tech.
- I have been programming since I was 13 (I put out a website at 13 in 2003)
- I have learned Java, Visual Basic, C++, C, VHDL, and more
- I studied electrical engineering for 3 years
- In that time, I learned about integrated systems programming, digital logic, and more, which is why I feel like this won't be an impossible project.
- I really, REALLY want to share the information I find so that there are more public options out there for people to tune their cars. I don't like the monopoly that big tuning companies have in the VW scene. 

Tips/Pointers? Anyone attempted this on our Engines? Do you think I could find some guidance from the M-Box definition file that is so readily available (even though the 2.5L is N/A?)

Updates as they come, but right now, I'm waiting for a cable... :banghead:


----------



## Rabbid Rally Rabbit (May 5, 2013)

Ok, let's begin:

I've asked around for help doing exactly what you want to do --I REALLY want to tune my car myself too. I slammed my head into a wall for probably six months trying to figure out a way to tune my car myself. I've been tuning my own cars since i started college, and am fairly familiar with SCT and WinOLS.

The resource I found most helpful in trying to DIY was calling Chris at C2. Chris also owns Alientech USA which sells flashing tools and software for our cars --it'll cost you a couple grand for a flash tool, base mad and the software you'll need to get everything done, but if you're dead set on this, Chris will gladly sell it to you.

That said, I couldn't afford the price tag. I owe Uncle Sam for law school, so a couple Gs on tools is just too rich for my blood right now.


----------



## Rabbid Rally Rabbit (May 5, 2013)

That said, if you figure out another way in

...let me know it. I'd still LOVE to tune this sumbeotch myself!


----------



## zer0hz (Apr 1, 2014)

Rabbid Rally Rabbit said:


> Ok, let's begin:
> 
> I've asked around for help doing exactly what you want to do --I REALLY want to tune my car myself too. I slammed my head into a wall for probably six months trying to figure out a way to tune my car myself. I've been tuning my own cars since i started college, and am fairly familiar with SCT and WinOLS.
> 
> ...


I definitely couldn't afford a genuine tool, so I ordered a clone, which there are plenty of cracked softwares out there (not that I condone this) that have been adapted to work with clones. 

In theory, though, the VAG K+CAN Commander clone I ordered *should* work with the VAG-ME7x ECU, at least for flash reading/writing. If I can get that far with this, then I'll be well on my way to making progress. I can't find an XDF file for TunerPro for our ECU's, but ECM Titanium (the software) looks like it might have more information than nothing, so it's a good starting point (at least for identifying memory addresses of particular maps).

However, the cable shipped yesterday, and should be here anytime between today and Monday. I'm hoping it's before Monday, as I'd like to play with it a bit before having to get back to the grind.

Something that would be AWESOME would be if the clone cable lets me interface with the ECU using V-Tune, Lemmiwinks, etc. I don't need to make massive changes at this point, but it'd be nice to be able to control timings/fuel trims/etc. easily. Unfortunately, though, those programs seem to have been written with boosted cars in mind. I guess I'll find out soon enough. :snowcool:


----------



## chezzestix (Nov 15, 2009)

I thought about this awhile back. Bought an extra ECU, an ECU connector to build a harness and researched it a little before getting distracted when I ran into walls looking for pins.

I'm a self taught programmer too. Our "resumes" look pretty similar really. If you really wanted to do some custom programming, interfacing a COM port to K-Line or OBD-II wouldn't be tough and COM ports are relatively easy to program for. Libraries for C++ are unfortunately sparse but I've found the specs for both protocols before.


----------



## zer0hz (Apr 1, 2014)

chezzestix said:


> I thought about this awhile back. Bought an extra ECU, an ECU connector to build a harness and researched it a little before getting distracted when I ran into walls looking for pins.
> 
> I'm a self taught programmer too. Our "resumes" look pretty similar really. If you really wanted to do some custom programming, interfacing a COM port to K-Line or OBD-II wouldn't be tough and COM ports are relatively easy to program for. Libraries for C++ are unfortunately sparse but I've found the specs for both protocols before.


Well, I forgot to mention that I first taught myself Java (After HTML, XML, CSS, JavaScript, etc. [These don't count to me]), and didn't really do well at it. In highschool, I took visual basic, took part in a Business Partners of America programming contest, and our team (my two best friends at the time and I) won first at Regional, Second at state, and were going to go to nationals, but some **** went down between the school and one of the team members, so suddenly the chances of being funded for that trip to Nevada were suddenly slashed. 

In college, I took C++ and C for Embedded systems programming, and took VHDL for Digital Logic. I ended up switching to a business major because of the massive workload from being an EE major (16+ credit hours/trimester), and switched to a Management Information Systems major (Still a Bachelor's of Science). That's when I took classes in Java. Since then, I dropped out, feeling unfulfilled by the ease of my new major. I took a job as an IT tech and am now working a contract for our company doing PC refreshes. That's too easy, so in my spare time I've been picking up Visual Basic again. Using .NET to interface with other applications has been some of the most fun I've had in programming in a while! 

I don't think I'll need to write up my own program, but if I find the maps for the 2.5L in the EEPROM dump, I could write a simple program for tuning the 2.5L Rabbits (At least the 08.5-09's. I'm not sure about the 06-08's, they might be different with the whole 150bhp/170bhp stock difference. Anyone who'd like to try it when it's there is free to do so! (AT YOUR OWN RISK) (I'm going to be saying AT YOUR OWN RISK a lot, very soon, so I might as well start now.

I should mention that one of my friends from the HS programming team is still my best friend. After I got my 09 Rabbit, he picked up an 08 or 09 GTI with a TSI (TFSI?). He's as into this type of thing as me, so once I mention it, I might be able to get the same sort of information for you 2.0T folks!


----------



## chezzestix (Nov 15, 2009)

Heh, you're me except I'd blow my brains out if I had to deal with VB for more than a day. I did C++ in BPA 2nd in region, 1st in state and 12th at nationals. I did a statewide competition for Java and my team made it to state but I've never been big on anything OO. I'm in my CS degree but I'm crap at math so I'll probably go CIS and certify for Network+, Security+ and CCNA R/S and security.

I was actually implying writing K line tool because I got about halfway though your original post and started skimming and missed you buying the VAG K+CAN commander. Here's hoping you get it figured out with that tool. Open sourcing these ECUs might be cool unless you get murdered halfway though by the Aftermarket Tuning mob. :laugh:


----------



## Rabbid Rally Rabbit (May 5, 2013)

zer0hz said:


> Well, I forgot to mention that I first taught myself Java (After HTML, XML, CSS, JavaScript, etc. [These don't count to me]), and didn't really do well at it. In highschool, I took visual basic, took part in a Business Partners of America programming contest, and our team (my two best friends at the time and I) won first at Regional, Second at state, and were going to go to nationals, but some **** went down between the school and one of the team members, so suddenly the chances of being funded for that trip to Nevada were suddenly slashed.
> 
> In college, I took C++ and C for Embedded systems programming, and took VHDL for Digital Logic. I ended up switching to a business major because of the massive workload from being an EE major (16+ credit hours/trimester), and switched to a Management Information Systems major (Still a Bachelor's of Science). That's when I took classes in Java. Since then, I dropped out, feeling unfulfilled by the ease of my new major. I took a job as an IT tech and am now working a contract for our company doing PC refreshes. That's too easy, so in my spare time I've been picking up Visual Basic again. Using .NET to interface with other applications has been some of the most fun I've had in programming in a while!
> 
> ...


There's already some decent HEX-editors for related ECUs on NefMo


----------



## zer0hz (Apr 1, 2014)

chezzestix said:


> Heh, you're me except I'd blow my brains out if I had to deal with VB for more than a day. I did C++ in BPA 2nd in region, 1st in state and 12th at nationals. I did a statewide competition for Java and my team made it to state but I've never been big on anything OO. I'm in my CS degree but I'm crap at math so I'll probably go CIS and certify for Network+, Security+ and CCNA R/S and security.
> 
> I was actually implying writing K line tool because I got about halfway though your original post and started skimming and missed you buying the VAG K+CAN commander. Here's hoping you get it figured out with that tool. Open sourcing these ECUs might be cool unless you get murdered halfway though by the Aftermarket Tuning mob. :laugh:


I'm fearful that the Aftermarket Tuning Mob might get a *little* upset if I figure it out and make it public. 



Rabbid Rally Rabbit said:


> There's already some decent HEX-editors for related ECUs on NefMo


Yeah, I plan I on utilizing some of them at first, but then writing a hex-editor that's user-friendly (all the time with vw tuning they say don't try it, it's a very difficult process, so I plan on making it easier. That's post-research and testing, of course. :laugh:


----------



## Rabbid Rally Rabbit (May 5, 2013)

zer0hz said:


> I'm fearful that the Aftermarket Tuning Mob might get a *little* upset if I figure it out and make it public.


There are always garage tunes when someone is willing to live off pizza long enough to figure it out. By the time you figure it out --they'll be making money on newer cars :beer:


----------



## zer0hz (Apr 1, 2014)

Rabbid Rally Rabbit said:


> There are always garage tunes when someone is willing to live off pizza long enough to figure it out. By the time you figure it out --they'll be making money on newer cars :beer:


Maybe then, we could coax them to open source their tunes for older models.. *wishful thinking*


----------



## Rabbid Rally Rabbit (May 5, 2013)

zer0hz said:


> Maybe then, we could coax them to open source their tunes for older models.. *wishful thinking*


Ain't happnen'.


----------



## zer0hz (Apr 1, 2014)

I've been banging my head against the wall ever since that stupid cable came. :banghead::banghead::banghead::banghead:

TURNS OUT:

The 2.5L ME7.1.1 does not have a K-Line
I got a cable that reads ECU EEPROM through K-Line
I need to find a way to flash read/write the ECU through CAN only

However, I _was_ able to learn that with the FTDI chips in the cables that are widely available, you can reprogram them using MProg. I tried to "transform" my current cable into an MPPS-compatible cable, but to no avail. I need to know the specifics behind the MPPS cable programming. BUT, it turns out that the MPPS cables may/may not have an FTDI chip in them. Either way, I was lucky enough to get one of the clone cables with an FT234R chip, meaning I can reprogram it as I please. However, there's word floating about on the interwebs that the MPPS cables have some sort of extra circuitry that prevents me from being able to use my current cable with MPPS. 

That being said, I have another cable on the way (ScanTool OBDLink SX) that I wanted to get just for the OBDWiz software for logging/etc. That should be here tomorrow, but who knows. 

I'm currently looking around for ways to flash read the ECM/ECU through the CAN Bus, so I'll post an update when I get that part all sorted out. 

I might just pull the trigger on one of those MPPS v.13 clone cables if I find out they will 100% work with the MKV 2.5L. 

For the record: 
There's a reason everyone says "oh, you need to really know what you're doing in order to self-tune these ECU's." There's very, very little documentation (and the documentation that is there is in German). I figured that a Bosch ME7.1.1 ECU is a Bosch ME7.1.1 ECU. Turns out the older ME7.1.1's had a K-Line, which makes it harder to distinguish which cables will possibly work, and which one's wont, because they like to say "Oh, yes, this cable will work on Bosch ME7x or ME7.x ECU's," but fail to mention that it requires K-Line and there's little to no support for CAN Bus systems.

Now, let me bang my head against the wall again for the next week or so while I try to hammer this out. If I could just get the EEPROM dump, the rest should be relatively easy, though, who knows, there might be zero correlation between the S4's "M-Box" ME7.1's map locations and the ME7.1.1 CAN-Only map locations. I'm betting that's the case, so fun "let's try not to brick my ECU" time will ensue. 

:banghead::banghead::banghead::banghead::banghead::banghead::banghead::banghead::banghead::banghead:


----------



## Jefnes3 (Aug 17, 2001)

FYI: your '09 is not ME7.x


A few notes:
'05 and '06 2.5L is 1 Meg ME7
'07and '08 2.5L is 2 Meg ME7
'09 is ME17 
'10-up is ME17 with secuirty exploit closed (i.e. must be opened to unlock)


If you have a MAF: ME7
If you do not have a MAF: ME17

Good luck, 2.7T stuff is not exactly close to 2.5L.

-Jeffrey Atwood


----------



## zer0hz (Apr 1, 2014)

Jefnes3 said:


> FYI: your '09 is not ME7.x
> 
> 
> A few notes:
> ...


I actually just found out that mines an ME17 the other day, on another forum, but I didn't know of the vast differences between the 2.5L ECUs; Great stuff, thanks!

Now, if the >09 ME17's have the security exploit closed, would that be in reference to a seed tequest/key response? If so, I just need to figure out the algorithm for access through the CAN bus...


----------



## Rabbid Rally Rabbit (May 5, 2013)

zer0hz said:


> I just need to figure out the algorithm for access through the CAN bus...


As I understand it, it's a variant of RSA 1028.


----------



## zer0hz (Apr 1, 2014)

Rabbid Rally Rabbit said:


> As I understand it, it's a variant of RSA 1028.


I did a quick read through of this post on NefMoto about Seed/Key algorithms for the ME9 ecu; I'm thinking the protocol may be similar... :laugh:

Edit: Quick paraphrase/explanation of the content in the link:

After requesting a seed, you get a response with the seed, let's say it says 0x0C F4 23 3D..
To figure out the write access key, you must first convert to binary:


```
HEX 0C F4 23 3D
BIN 0000 1100 1111 0100 0010 0011 0011 1101 =
```
Bit shift left 5 times and add the overflow to the result (the same as taking the left 5 bits and tacking them on at the end. This give us:

```
BIN 1001 1110 1000 0100 0110 0111 1010 0001
```
XOR with 0x5F BD 5D BD:

```
HEX 5F BD 5D BD
BIN 0101 1111 1011 1101 0101 1101 1011 1101 =
```


```
BIN 1001 1110 1000 0100 0110 0111 1010 0001
BIN 0101 1111 1011 1101 0101 1101 1011 1101 XOR
BIN 1100 0001 0011 1001 0011 1010 0001 1100 =
HEX C1 39 3A 1C =
```
Which means the key to respond with is 0xC1 39 3A 1C.

I'm hoping this follows the same pattern as the MED9 ECU that he was using, but if not, the way he figured out the algorithm was to capture the CAN communications for write access from a clone tool, which gave him:


```
SEED HEX 0C F4 23 3D
KEY  HEX C1 39 3A 1C

SEED BIN 0000 1100 1111 0100 0010 0011 0011 1101
KEY  BIN 1100 0001 0011 1001 0011 1010 0001 1100
```
He noticed that if you shift the Seed <<5, then XORED the Seed<<5 with the Key, you get:

```
SEED BIN 1001 1110 1000 0100 0110 0111 1010 0001
KEY  BIN 1100 0001 0011 1001 0011 1010 0001 1100 XOR
CODE BIN 0101 1111 1011 1101 0101 1101 1011 1101 =
CODE HEX 5F BD 5D BD =
```
Which was in his dump from the ECU, so if I'm unable to use the same EXACT code, it can probably be deciphered using similar means.

But, first we need to READ, not write, which is apparently as simple as adding DEC 70000 (HEX 00 01 11 70; BIN 0000 0000 0000 0001 0001 0001 0111 0000) to the seed to figure out the key.

After getting access, you have the ability to send read commands, which, combined with a loop, can produce the contents of the ECU's memory (the jackpot, at this point). After getting the dump, it's a matter of locating maps, then implementation of a writing loop for writing to the ECU. That's the scary part opcorn:


----------



## le0n (Jun 12, 2013)

this thread is so over my head, yet it's one of my favorites.

good luck


----------



## Rabbid Rally Rabbit (May 5, 2013)

zer0hz said:


> I'm hoping this follows the same pattern as the MED9 ECU that he was using, but if not, the way he figured out the algorithm was to capture the CAN communications for write access from a clone tool


You'll be lucky if that protocol works. Most aftermarket tuners can tune an MED9 through the port.


----------



## zer0hz (Apr 1, 2014)

Rabbid Rally Rabbit said:


> You'll be lucky if that protocol works. Most aftermarket tuners can tune an MED9 through the port.


They can tune the ME17.5 ('09 model) through the port too (See here)

Anyways, did some coding tonight, as I've given up trying to get a cable/software that will just "work"

I decided that I'd give it a shot to just connect using the serial COM API provided in .NET (with the FTDI VCP drivers) to see if maybe, just maybe, I'd be able to get something to happen. Didn't get a chance to finish the program, but I've got a half written program that is able to connect to the cable and maybe write bytes to the cable's buffer.. Whether or not that will actually transmit the bytes through the cable is another story itself... 

It should be pretty error-proof, seeing as almost everything is in Try-Catch's and option strict is on... 

Once I finish this over the next couple days, it'll be time to test by trying to do something like read an OBD PID. If that works, I know that my plan has succeeded and then it's time to send things using the CAN protocol, which will require writing in the CRC calculations, making it so that it produces a proper CAN frame, etc. 

Here's the code, though. (VB .NET)

Definitions:

```
nudCOMPort = number up down box
cmbBaudRate = combo box
cmbTimeout = combo box
txtData = text box
txtOutput = text box (read-only): Will show input/output from the cable, but for now is just used for half-assed debugging
```
And here's the for Form1:

```
Option Strict On

Public Class frmMain
    Public FTDI As New System.IO.Ports.SerialPort()
    Private Sub btnEstablish_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEstablish.Click
        Try
            FTDI.PortName = "COM" & nudCOMPort.Value.ToString()
            FTDI.BaudRate = CInt(cmbBaudRate.Text)
            FTDI.ReadTimeout = CInt(cmbTimeout.Text)
            FTDI.WriteTimeout = CInt(cmbTimeout.Text)
            txtOutput.Text = "Attempting to connect to COM" & nudCOMPort.Value.ToString() & vbNewLine & txtOutput.Text
            txtOutput.Text = "--Baud Rate: " & cmbBaudRate.Text & vbNewLine & txtOutput.Text
            txtOutput.Text = "--Timeout: " & (CDbl(cmbTimeout.Text) / 1000).ToString & " seconds" & vbNewLine & txtOutput.Text
            FTDI.Open()
            txtOutput.Text = "Connection Established!" & vbNewLine & vbNewLine & txtOutput.Text
            txtData.Enabled = True
            btnEstablish.Enabled = False
            btnTerminate.Enabled = True
            btnSend.Enabled = True

            nudCOMPort.Enabled = False
            cmbBaudRate.Enabled = False
            cmbTimeout.Enabled = False

        Catch ex As Exception
            txtOutput.Text = ex.Message & vbNewLine & txtOutput.Text
            Return
        End Try
    End Sub

    Private Sub btnTerminate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTerminate.Click
        Try
            txtOutput.Text = "Closing Connction..." & vbNewLine & txtOutput.Text
            FTDI.Close()
            txtOutput.Text = "Connection Closed!" & vbNewLine & vbNewLine & txtOutput.Text
            btnSend.Enabled = False
            txtData.Enabled = False
            btnTerminate.Enabled = False
            btnEstablish.Enabled = True

            nudCOMPort.Enabled = True
            cmbBaudRate.Enabled = True
            cmbTimeout.Enabled = True
        Catch ex As Exception
            txtOutput.Text = ex.Message & vbNewLine & txtOutput.Text
            Return
        End Try
    End Sub

    Private Sub btnSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click
        Try
            txtOutput.Text = "Sending: " & txtData.Text & "..."
            Dim tempCoup As String = ""
            Dim ByteList As New List(Of Byte)
            txtData.Enabled = False
            While Not txtData.Text.Equals("")
                tempCoup = txtData.Text.Substring(0, 2)
                txtData.Text = txtData.Text.Remove(0, 2)
                txtData.Text = txtData.Text.Trim()
                ByteList.Add(CByte("&H" & tempCoup))
            End While
            txtData.Enabled = True
            Dim ByteArray As Byte() = ByteList.ToArray()
            If FTDI.IsOpen() Then
                FTDI.Write(ByteArray, 0, ByteArray.Length())
            End If
        Catch ex As Exception
            txtOutput.Text = ex.Message
            txtData.Enabled = True
            txtData.Clear()
            Return
        End Try
    End Sub
End Class
```
Used option strict to try and make it so I don't accidentally try to send something stupid through the cable that the ECU would be like "what?", such as an ASCII string instead of a byte array.

I guess worth mentioning is that the data is simply put in in a hex byte format, with spaces between the bytes. If the inputted data is not in that exact format, it should just throw an error and stop before doing any harm, but that can't be guaranteed


----------



## zer0hz (Apr 1, 2014)

zer0hz said:


> They can tune the ME17.5 ('09 model) through the port too (See here)


Sorry for the double post, but I wonder if I got that Unitronic cable if:
1. They'd even sell it to me without buying their software
2. I'd be able to use a logging software to try and log the Seeds/Keys to see if I could grab the algorithm from there
3. The software does dumps or has map locations... I'm assuming this one is a big fat *NO!* 
4. It's actually anything different from all the other FTDI-based clone cables that are out on the market today


----------



## le0n (Jun 12, 2013)

When I went to the unitronic site, I couldn't get it to pull up programs for the 2009.


----------



## zer0hz (Apr 1, 2014)

Gotta know the secret way 

Just google "09 Rabbit Unitronic" it should be the top result


----------



## zer0hz (Apr 1, 2014)

Ever get so excited about a project that you glaze over the little things?

Yeah, this is a prime example. 

I don't need to use a custom program to do this (communicating to the ecu through obd)

I figured out yesterday that I'd skipped over the part that people described using Hyperterminal (built into XP) to send commands and sniff the CAN bus. 

Luckily, the other day, I received an anonymous tip on NefMoto about what the security exploit for gaining security access on the write level. I won't share what it is until I get it to work, but I'll say that these systems are designed with safety in mind first, then security, so older exploits from the early days of the internet typically apply to these systems. 

I didn't have time last night to boot up Hyperterminal and start forcing my way in, but I did find out I don't need another cable (thankfully), as the OBDLink SX cable I have has an STN1111 or something like that chip in it which is the successor to the ELM 327 chips.... With backwards compatibility! 

So, now it's time to get down and dirty, start throwing hex at the ECU (using old modem commands in Hyperterminal) and seeing what happens. 

That chase is back on!


----------



## lessthanalex (Oct 12, 2009)

Looking forward to seeing where this goes.


----------



## le0n (Jun 12, 2013)

wow. i recall transferring cad files over a 56k modem in windows nt via hyperterminal ca. 1999.


----------



## zer0hz (Apr 1, 2014)

le0n said:


> wow. i recall transferring cad files over a 56k modem in windows nt via hyperterminal ca. 1999.


I am such a slow progress maker... Much like that 56k modem haha

played around with HyperTerminal. Couldn't get much to happen, but its communicating. The girlfriend got bored before I could make serious progress and I've been waking up late for work so it's been slow moving. 

Key point is that I'm not giving up yet!


----------



## lilGaffer (11 mo ago)

zer0hz said:


> I am such a slow progress maker... Much like that 56k modem haha
> 
> played around with HyperTerminal. Couldn't get much to happen, but its communicating. The girlfriend got bored before I could make serious progress and I've been waking up late for work so it's been slow moving.
> 
> Key point is that I'm not giving up yet!


did you ever end up getting any further with this?


----------

