[WORKING!] Hacking the GA-NET (IEBus) to get touchscreen coordinates
#41
'06 NBP : 6MT : NAVI
Join Date: Feb 2006
Location: Pittsburgh, PA
Age: 41
Posts: 167
Likes: 0
Received 2 Likes
on
2 Posts
angrycamel,
I don't know if you've seen my thread yet. But I was able to get the touchscreen to interface with my computer through USB!!
Here's the thread: https://acurazine.com/forums/showthread.php?t=146789
How is your module coming along?
Mike
I don't know if you've seen my thread yet. But I was able to get the touchscreen to interface with my computer through USB!!
Here's the thread: https://acurazine.com/forums/showthread.php?t=146789
How is your module coming along?
Mike
#42
Instructor
Thread Starter
Join Date: Jul 2006
Location: ric.va.us
Age: 42
Posts: 178
Likes: 0
Received 0 Likes
on
0 Posts
Great Work
Wow, great job! Thats nice to see the original idea actually working. I never wanted to really get into the hardware hacking of the dash since mine is so early in the waranty still. Hence the move towards the IEBus instead.
Well I really wish I had more time here lately, you're making me feel like a slacker. :P I have been really busy to be honest but I am looking forward to getting back on this project starting next week.
Congrats on your new touchscreen system and deffinately keep in touch. I am realizing that this IEBus module has the potential for many more features than just interfacing the touchscreen, aka: anything going over IEBus.
Well I really wish I had more time here lately, you're making me feel like a slacker. :P I have been really busy to be honest but I am looking forward to getting back on this project starting next week.
Congrats on your new touchscreen system and deffinately keep in touch. I am realizing that this IEBus module has the potential for many more features than just interfacing the touchscreen, aka: anything going over IEBus.
#43
'06 NBP : 6MT : NAVI
Join Date: Feb 2006
Location: Pittsburgh, PA
Age: 41
Posts: 167
Likes: 0
Received 2 Likes
on
2 Posts
Thanks angrycamel.
I was a little worried for a bit that it might not end up working. Trust me, I'm glad it did.
I hope your IEBus module works out. I'm still very interested in this. It would be great to take advantage of more than just the touchscreen.
As for the warranty, I got my TL at the end of May of this year. It just rolled over 8900 miles. Oh well on the warranty.
I was a little worried for a bit that it might not end up working. Trust me, I'm glad it did.
I hope your IEBus module works out. I'm still very interested in this. It would be great to take advantage of more than just the touchscreen.
As for the warranty, I got my TL at the end of May of this year. It just rolled over 8900 miles. Oh well on the warranty.
#44
angrycamel / met152 - I am looking into getting a TL very shortly and am very interested in your threads. I would like to offer any help I can. I understand basic circuits but most of my knowledge is in software such as windows applications. If you need a test subject or any software written, please let me know...
#48
Instructor
Thread Starter
Join Date: Jul 2006
Location: ric.va.us
Age: 42
Posts: 178
Likes: 0
Received 0 Likes
on
0 Posts
Horrible News
My car got flooded: https://acurazine.com/forums/showthr...110#post641110
If anyone has the time or expertise to work on this project while I am out of a vehicle I am willing to send them everything I have so far. It may be quite some time before I can move forward with it.
If anyone has the time or expertise to work on this project while I am out of a vehicle I am willing to send them everything I have so far. It may be quite some time before I can move forward with it.
#49
Originally Posted by angrycamel
My car got flooded: https://acurazine.com/forums/showthr...110#post641110
If anyone has the time or expertise to work on this project while I am out of a vehicle I am willing to send them everything I have so far. It may be quite some time before I can move forward with it.
If anyone has the time or expertise to work on this project while I am out of a vehicle I am willing to send them everything I have so far. It may be quite some time before I can move forward with it.
I am attacking the problem on two fronts A ) looking to hook third party software into the existing Windows CE Nav system B ) hack the video and control to add a car PC.
I don't want to alter the existing system in any permanent way and want the end result to use the existing display and control/touch screen.
Several companies now offer video devices but as Angry Camel knows no one has yet interfaced the existing screen controls.
As I see it the final result should have these minimum components...
a ) Video Y cable and sync controller with VGA and 3 video inputs. (solved)
b ) GA-net snoop that can capture the touch screen and display button
c ) 2 A/D converters to snoop on the steering wheel buttons. These Buttons BTW connect various resistors in series producing a distinct voltage level for each switch.
d ) Reverse gear sense.
e ) 2 CAN controllers
f ) Speed rate sensor input
At this point the Car PC can sense and control just about anything in the car.
#50
Instructor
Thread Starter
Join Date: Jul 2006
Location: ric.va.us
Age: 42
Posts: 178
Likes: 0
Received 0 Likes
on
0 Posts
Good to hear there is some interest from someone to carry on with this project.
Do you have any experience with microcontrollers?
Here is what I have currently drawn up but without the car I cannot test it. I also do not really know how in the world to interface the I2C connection between the SX and the IEBus chips.
Do you have any experience with microcontrollers?
Here is what I have currently drawn up but without the car I cannot test it. I also do not really know how in the world to interface the I2C connection between the SX and the IEBus chips.
Last edited by angrycamel; 12-02-2006 at 01:03 PM.
#51
Originally Posted by angrycamel
Good to hear there is some interest from someone to carry on with this project.
Do you have any experience with microcontrollers?
Here is what I have currently drawn up but without the car I cannot test it. I also do not really know how in the world to interface the I2C connection between the SX and the IEBus chips.
Do you have any experience with microcontrollers?
Here is what I have currently drawn up but without the car I cannot test it. I also do not really know how in the world to interface the I2C connection between the SX and the IEBus chips.
I was thinking a slightly different approach along the lines of this $39 jewel and converting the IC you chose directly to RS232 or maybe USB.
Converts two Can Buses to USB Link is here
http://www.infineon.com/cgi-bin/ifx/...geTypeId=36102
That way it is only one development process all the way to the final goal.
#52
Instructor
Thread Starter
Join Date: Jul 2006
Location: ric.va.us
Age: 42
Posts: 178
Likes: 0
Received 0 Likes
on
0 Posts
Well the touchscreen and other multimedia data does not go over the CAN bus. So I don't see where it would help much on that font. Am I missing something?
#53
Originally Posted by angrycamel
Well the touchscreen and other multimedia data does not go over the CAN bus. So I don't see where it would help much on that font. Am I missing something?
Strictly speaking they are independent of the video and touch/button interface as you point out.
#55
Can either of you guys recommend a good starter book on digital electronics. I have PIC book here but I'm not sure if that would relate to something like this. I have built small circuits before but none that used a microcontrollers. I'm a software engineer so I feel I would pick it up pretty quickly. I'm just not sure which book to buy.
I planned on installing a carputer since I don't have the navi edition but really wanted to interface the character displays or bus that controlls them to the computer.
I planned on installing a carputer since I don't have the navi edition but really wanted to interface the character displays or bus that controlls them to the computer.
#56
Instructor
Thread Starter
Join Date: Jul 2006
Location: ric.va.us
Age: 42
Posts: 178
Likes: 0
Received 0 Likes
on
0 Posts
I don't have any books I can recomend. I generally use the interweb for everything. However I did purchase the ETM for my 06 TSX. That has been handy.
#57
Electronics Books
Originally Posted by Knertified
Can either of you guys recommend a good starter book on digital electronics. I have PIC book here but I'm not sure if that would relate to something like this. I have built small circuits before but none that used a microcontrollers. I'm a software engineer so I feel I would pick it up pretty quickly. I'm just not sure which book to buy.
I planned on installing a carputer since I don't have the navi edition but really wanted to interface the character displays or bus that controlls them to the computer.
I planned on installing a carputer since I don't have the navi edition but really wanted to interface the character displays or bus that controlls them to the computer.
I would highly recomend "The Art of Electronics" by Paul Horowitz and Winfield Hill ISBN: 0521370957
It covers everything from simple analog circuits to digital circutis including microcontrollers.
#59
Originally Posted by 2002TLSNavi
I would highly recomend "The Art of Electronics" by Paul Horowitz and Winfield Hill ISBN: 0521370957
It covers everything from simple analog circuits to digital circutis including microcontrollers.
It covers everything from simple analog circuits to digital circutis including microcontrollers.
#60
Hi,
this project sounds interesting. I also have tsx with navi and might be interested in this. My background is in EE, so I might be able to help you out. I am very familiar with the dom's install, however I didn't get a chance to work on the IEBus. Its something that I think could be done, so I would like to help any way that I can.
this project sounds interesting. I also have tsx with navi and might be interested in this. My background is in EE, so I might be able to help you out. I am very familiar with the dom's install, however I didn't get a chance to work on the IEBus. Its something that I think could be done, so I would like to help any way that I can.
#61
Advanced
Join Date: Jul 2006
Location: Port Huron, Michigan
Posts: 57
Likes: 0
Received 0 Likes
on
0 Posts
Has anyone made any further headway on this?
My TL is a non-navi, and i'm planning on putting a touchscreen LCD hooked to a PC in place of the climate control/radio, and am interested in finding a way to get that data into the computer; I have no problem with the software side (programming is my specialty), but the hardware side is a bit out of my league.
Thanks!
Dan
My TL is a non-navi, and i'm planning on putting a touchscreen LCD hooked to a PC in place of the climate control/radio, and am interested in finding a way to get that data into the computer; I have no problem with the software side (programming is my specialty), but the hardware side is a bit out of my league.
Thanks!
Dan
#62
10th Gear
Join Date: Apr 2007
Location: Atlanta, GA
Age: 76
Posts: 11
Likes: 0
Received 0 Likes
on
0 Posts
My TL is a non-navi, and i'm planning on putting a touchscreen LCD hooked to a PC in place of the climate control/radio, and am interested in finding a way to get that data into the computer; I have no problem with the software side (programming is my specialty), but the hardware side is a bit out of my league.
#63
This thread is VERY intriguing. Does anyone know if the HVAC information traverses over the GA-NET II / IEBus as well? If so, that would enable us to put in our own touch screens for our carputers and display the HVAC (amongst other things) info on our carputer screens and not mess around with extending 44 wires for the LCD's! .
#65
Instructor
Thread Starter
Join Date: Jul 2006
Location: ric.va.us
Age: 42
Posts: 178
Likes: 0
Received 0 Likes
on
0 Posts
Since I have sold my Acura TSX I am no longer actively working on this project. If anyone is interested in working on it I have the IEBus chips and other random items for putting this thing together.
If anyone is serious about moving forward with this project, let me know and I will be happy to sell you this stuff for a few bucks.
If anyone is serious about moving forward with this project, let me know and I will be happy to sell you this stuff for a few bucks.
#67
I (we) might be able to help you with that. How are you interfacing with the GA-NETII? Where do you tap in? How do you receive the packets? (via USB/serial to computer? via o-scope?) If you're receiving the data on your carputer, what software are you using to analyze your data? Are you doing any controlled tests on the GA-NETII or are you just letting everything come in Wild West style? At what rate are you receiving data? Do you have any captures that you could post for everyone to look at?
#68
Originally Posted by TokyoJoe
I (we) might be able to help you with that. How are you interfacing with the GA-NETII?
Originally Posted by TokyoJoe
Where do you tap in?
Originally Posted by TokyoJoe
How do you receive the packets? (via USB/serial to computer? via o-scope?)
Originally Posted by TokyoJoe
If you're receiving the data on your carputer, what software are you using to analyze your data?
Originally Posted by TokyoJoe
Are you doing any controlled tests on the GA-NETII or are you just letting everything come in Wild West style?
Originally Posted by TokyoJoe
At what rate are you receiving data?
Originally Posted by TokyoJoe
Do you have any captures that you could post for everyone to look at?
http://omskart.ru/spider/GA-NETII.RAR
#69
Instructor
Thread Starter
Join Date: Jul 2006
Location: ric.va.us
Age: 42
Posts: 178
Likes: 0
Received 0 Likes
on
0 Posts
When Dave tried this a couple of years ago, he pulled data directly with an oscilloscope to a binary dat file. On a Unix box, he wrote some simple logic that just processed the dat file and looks for IEBuss packets. He gave me the code and I have since ported it to a Windows console and have been enhancing it here and there.
Here is an example of some decoded binary data (an interpretation of the data rather). This example is the first of a lot of communication that happens between the touchscreen and the navigation computer when you hit the third column, while on the diagnostics/test screen.
I noticed the "code" tags below do not do a very good job of keeping the text formatted, so here is a link to a txt.
Download PacketBreakdown.txt
As you can see there is the StartBit, Master, Slave, Control, and Length fields in the header just as they should be. Then you get into the actual data being sent. In this particular chunk of data, I believe there are some coordinates in there for column and row on the screen... (the touchscreen is something like an 8x8 matrix in the 04 TSX and 16x16 in the 06 if I remember correctly).
In my car at least, the Master in the above example (0x131) was the touchscreen and it was sending a message to the slave (0x183) which was actually the navigation computer.
Now, for the data you uploaded in the rar file, you will first need to get it in a binary format rather than ascii so that I could process it. Once you do that, I can run through it and end up with a report like the one above. (of course you can do it manually)
I hope this helps you understand what the packets look like so that you can look at your data and have it make more sense. Good luck and please keep us all up to date on your progress.
Thanks,
AC
Here is an example of some decoded binary data (an interpretation of the data rather). This example is the first of a lot of communication that happens between the touchscreen and the navigation computer when you hit the third column, while on the diagnostics/test screen.
I noticed the "code" tags below do not do a very good job of keeping the text formatted, so here is a link to a txt.
Download PacketBreakdown.txt
Code:
Legend =============== S = StartBit A = AckBit P = ParityBit Raw Data Stream ================= 10001001100010000110000011001111000000110000001101111000110001100000110110000000000000000001100000001100101001111000110001100000000000000000000000000000000101011110 Detail (bit level) ====================== | |Master |Slave |Ctl |Length |Start Data Block End Data Block | |S|0x131 P|0x183 P|A|0xF |P|A|0xC |P|A|0x37 P|A|0x31 P|A|0xD P|A|0x0 P|A|0x1 P|Y|0x3 P|Y|0xA7 P|Y|0x31 P|Y|0x0 P|Y|0x0 P|Y|0x0 P|Y|0x57 P|Y| |1|0001 0011 0001 0|0001 1000 0011 0|0|1111|0|0|0000 1100|0|0|0011 0111 1|0|0011 0001 1|0|0000 1101 1|0|0000 0000 0|0|0000 0001 1|0|0000 0011 0|0|1010 0111 1|0|0011 0001 1|0|0000 0000 0|0|0000 0000 0|0|0000 0000 0|0|0101 0111 1|0| Summary ============================= Master: 0x131 Slave: 0x183 Control: 0xF Length: 12B Data: 0x37 0x31 0xD 0x0 0x1 0x3 0xA7 0x31 0x0 0x0 0x0 0x57
In my car at least, the Master in the above example (0x131) was the touchscreen and it was sending a message to the slave (0x183) which was actually the navigation computer.
Now, for the data you uploaded in the rar file, you will first need to get it in a binary format rather than ascii so that I could process it. Once you do that, I can run through it and end up with a report like the one above. (of course you can do it manually)
I hope this helps you understand what the packets look like so that you can look at your data and have it make more sense. Good luck and please keep us all up to date on your progress.
Thanks,
AC
Last edited by angrycamel; 06-16-2007 at 02:12 AM.
#70
Instructor
Thread Starter
Join Date: Jul 2006
Location: ric.va.us
Age: 42
Posts: 178
Likes: 0
Received 0 Likes
on
0 Posts
Something I forgot to include. Here is a printscreen from an o-scope of data just like what I showed you above being transmitted over the bus.
Thanks to Dave for giving this to me so long ago, since I do not have a nice scope like he does.
Thanks to Dave for giving this to me so long ago, since I do not have a nice scope like he does.
#72
Instructor
Thread Starter
Join Date: Jul 2006
Location: ric.va.us
Age: 42
Posts: 178
Likes: 0
Received 0 Likes
on
0 Posts
I believe its something around that but looking in the docs I am not entirely sure.
Here is what it says about the start bit...
Here is what it says about the start bit...
The start bit is a signal used to notify the other units of the beginning of data transmission.
Before a unit starts data transmission, it outputs a low-level signal (start bit) for a specified duration, then
outputs the broadcast bit.
Before a unit starts data transmission, it outputs a low-level signal (start bit) for a specified duration, then
outputs the broadcast bit.
#73
Angry,
I wrote up a quick Java program to convert Spidy's files into raw byte files. I don't have a website (I know, what a shame) to post files, so I emailed you the files directly. Here's the Java code>
I wrote up a quick Java program to convert Spidy's files into raw byte files. I don't have a website (I know, what a shame) to post files, so I emailed you the files directly. Here's the Java code>
Code:
package convertasciihex; import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; public class Main { /** Creates a new instance of Main */ public Main() { } /** * @param args the command line arguments */ public static void main(String[] args) { try { for(int fileNumber = 0; fileNumber<args.length; fileNumber++) { String fileName = args[fileNumber]; java.io.File f = new java.io.File(fileName); java.nio.CharBuffer buf = java.nio.CharBuffer.allocate(2048); FileOutputStream out = new FileOutputStream(fileName + ".raw"); BufferedOutputStream bOut = new BufferedOutputStream(out); FileReader reader = new java.io.FileReader(f); reader.read(buf); buf.rewind(); String contents = buf.toString(); contents = contents.replace('>',' '); String[] strings = contents.split(" "); for(int i = 0; i< strings.length; i++) { try { bOut.write(Integer.parseInt(strings[i],16)); } catch(Exception e) { } } bOut.flush(); } } catch (IOException ex) { } } }
#74
Originally Posted by angrycamel
I believe its something around that but looking in the docs I am not entirely sure.
Here is what it says about the start bit...
Here is what it says about the start bit...
The start bit is a signal used to notify the other units of the beginning of data transmission.
Before a unit starts data transmission, it outputs a low-level signal (start bit) for a specified duration, then
outputs the broadcast bit.
Before a unit starts data transmission, it outputs a low-level signal (start bit) for a specified duration, then
outputs the broadcast bit.
#75
Originally Posted by TokyoJoe
Angry,
I wrote up a quick Java program to convert Spidy's files into raw byte files. I don't have a website (I know, what a shame) to post files, so I emailed you the files directly. Here's the Java code>
I wrote up a quick Java program to convert Spidy's files into raw byte files. I don't have a website (I know, what a shame) to post files, so I emailed you the files directly. Here's the Java code>
Parser
first digit broadcast bit (1 - yes, 0 - no)
eatch parity bit mean 1 - Ok, 0 - fail
ack bits, A - OK, N - fail.
#76
Instructor
Thread Starter
Join Date: Jul 2006
Location: ric.va.us
Age: 42
Posts: 178
Likes: 0
Received 0 Likes
on
0 Posts
Compare Source Code
Originally Posted by Spider84
I allready wrote same application, which convert my logs to RAW binnary data, and try to parse as IE-Bus packet.
Parser
first digit broadcast bit (1 - yes, 0 - no)
eatch parity bit mean 1 - Ok, 0 - fail
ack bits, A - OK, N - fail.
Parser
first digit broadcast bit (1 - yes, 0 - no)
eatch parity bit mean 1 - Ok, 0 - fail
ack bits, A - OK, N - fail.
Why do I not see the 200ms startBit in the raw data you posted, did you manually remove it from the text file before posting here or did you program your ATMega8 not to send it over RS232 and instead only send you the rest of the packet?
If you have AIM you can reach me at angrycamelcom or you can send me a message to the email in my signature.
Would you be willing to post schematics for your circuit board as well as the source code for the ATMega8?
Thanks,
AC
Last edited by angrycamel; 06-17-2007 at 01:03 PM.
#77
Originally Posted by angrycamel
Can we compare source code?
Originally Posted by angrycamel
I am working on some improvements to the base code that I got from Dave last year before I post it here but I would like to talk to you about your code as well. Maybe we can help each other.
Why do I not see the 200ms startBit in the raw data you posted, did you manually remove it from the text file before posting here or did you program your ATMega8 not to send it over RS232 and instead only send you the rest of the packet?
Why do I not see the 200ms startBit in the raw data you posted, did you manually remove it from the text file before posting here or did you program your ATMega8 not to send it over RS232 and instead only send you the rest of the packet?
In log, which I posted, this bit replaced by '>' sing. My parser take first bit after '>' as Broacast bit.
Originally Posted by angrycamel
If you have AIM you can reach me at angrycamelcom or you can send me a message to the email in my signature.
Originally Posted by angrycamel
Would you be willing to post schematics for your circuit board as well as the source code for the ATMega8?
#79
Instructor
Thread Starter
Join Date: Jul 2006
Location: ric.va.us
Age: 42
Posts: 178
Likes: 0
Received 0 Likes
on
0 Posts
Not sure the data is what you expect
Spider,
I was looking at the data that you posted a couple of days ago trying to verify its accuracy. I think you may be missing some data that is causing everything to be offset.
If you look at the first example line that the Parser generates you will see in your parsed packet data that quite a few bits are NCK'ed. That would result in the master abandoning the data transmission, however the packet continues. This leads me to believe that it was actually ACK'ed but we are looking at the wrong bit to determine it after the fact.
I will be able to clear up some of the questions once I see your firmware code to decipher exactly what of the information you are sniffing is being sent over the RS232 connection. Are you transmitting the startbit or the broadcast bit?
...
After checking the docs, I noticed that the data you have in these files would not work simply by looking at the total number of bits in the packet. In the example above there are 168 bits. In order for it to be a valid packet it will need to have a 45 bit header (that includes the start bit and broadcast bits in the front of the header) and 10n bits for every chunk of data found after the header where n is the value found in the length field of the header. No matter which way I try to slice that data up and into a structured packet, it never lines up to make any sense.
Maybe your board is not sending all of the data over RS232 to the PC or maybe there is something messing with the data before it gets to these text files.
Let me know what you see when you look at it,
AC
I was looking at the data that you posted a couple of days ago trying to verify its accuracy. I think you may be missing some data that is causing everything to be offset.
If you look at the first example line that the Parser generates you will see in your parsed packet data that quite a few bits are NCK'ed. That would result in the master abandoning the data transmission, however the packet continues. This leads me to believe that it was actually ACK'ed but we are looking at the wrong bit to determine it after the fact.
Code:
10001000 00001000 10000011 01111000 00111100 11000000 00000100 00011000 10000000 00000000 11000000 00000111 11110000 00010100 00010100 00011110 00010110 00000000 00000100 01000000 00001100 0 0x101 1 0x20D 0 N 0x08 0 A 243 1 A 0x00 1 N 0x06 1 A 0x80 0 A 0x03 1 A 0x00 1 N 0xFC 1 A 0x14 1 A 0x50 1 N 0xE1 1 N 0x80 0 A 0x04 0 N 0x00 1 A
...
After checking the docs, I noticed that the data you have in these files would not work simply by looking at the total number of bits in the packet. In the example above there are 168 bits. In order for it to be a valid packet it will need to have a 45 bit header (that includes the start bit and broadcast bits in the front of the header) and 10n bits for every chunk of data found after the header where n is the value found in the length field of the header. No matter which way I try to slice that data up and into a structured packet, it never lines up to make any sense.
Maybe your board is not sending all of the data over RS232 to the PC or maybe there is something messing with the data before it gets to these text files.
Let me know what you see when you look at it,
AC
#80
IE-Bus flash
It is source of flash for ATMega. Shcematic will be later.
It is source of flash for ATMega. Shcematic will be later.