Notices

My new CarPC Project - Honeycomb Here I Come

Thread Tools
 
Search this Thread
 
Rate Thread
 
Old 04-20-2012 | 11:25 PM
  #51  
ShellDude's Avatar
Thread Starter
weeeeeeeeee
iTrader: (12)
 
Joined: Jun 2008
Posts: 4,200
Likes: 229
From: Outside Philadelphia
So tonight's exercise was to be some exploring of the high speed can bus looking for things like TPMS... I quickly learned that my cheapo chinese v1.2a elm327 reader can't reliably maintain a 500kbps connection so what am I to do now?


This puppy apparently is about as good as it gets... and will hopefully arrive in the next week or so.

in the meantime I've powered up my old xp x32 VM, installed my bluetooth drivers and am going to see if I can sniff the virtual serial port with portion and hope to pick off some of the well hidden Mazda PIDs.

Last edited by ShellDude; 04-21-2012 at 12:08 AM.
Old 04-21-2012 | 12:07 AM
  #52  
ShellDude's Avatar
Thread Starter
weeeeeeeeee
iTrader: (12)
 
Joined: Jun 2008
Posts: 4,200
Likes: 229
From: Outside Philadelphia
Wow, that was easy.


Yes, I know... I need to balance my tire pressure... lol... tpms light has been coming on in the mornings this past week.
Attached Thumbnails My new CarPC Project - Honeycomb Here I Come-screen-shot-2012-04-20-11.58.53-pm.png  
Old 04-22-2012 | 02:02 PM
  #53  
ShellDude's Avatar
Thread Starter
weeeeeeeeee
iTrader: (12)
 
Joined: Jun 2008
Posts: 4,200
Likes: 229
From: Outside Philadelphia
More progress ...

Code:
83659  0.00000000  ???  IRP_MJ_WRITE  BtPort1  Length 7: 22D102.
83659  0.00004825  SUCCESS  
83687  0.00000295  SUCCESS  Length 1: 2
83688  0.00000095  SUCCESS  Length 1: 2
83689  0.00000089  SUCCESS  Length 1: D
83690  0.00000087  SUCCESS  Length 1: 1  ---------- PID ECHOED BACK
83691  0.00000086  SUCCESS  Length 1: 0
83692  0.00000087  SUCCESS  Length 1: 2
83693  0.00000086  SUCCESS  Length 1: .
83694  0.00000339  SUCCESS  Length 1: 7
83695  0.00000095  SUCCESS  Length 1: 5 ----------- HEADER FILTER
83696  0.00000089  SUCCESS  Length 1: 9
83697  0.00000089  SUCCESS  Length 1:  
83698  0.00000088  SUCCESS  Length 1: 0 ----------- NOT SURE BUT SEEMS TO BE HEADER
83699  0.00000088  SUCCESS  Length 1: 4
83700  0.00000087  SUCCESS  Length 1:  
83701  0.00000084  SUCCESS  Length 1: 6 ----------- NOT SURE BUT SEEMS TO BE HEADER
83702  0.00000088  SUCCESS  Length 1: 2
83703  0.00000083  SUCCESS  Length 1:  
83704  0.00000085  SUCCESS  Length 1: D --- 0xD1 HEX == 209 == WHEEL 4 TIRE PRESSURE IN kPA ??? 
83705  0.00000085  SUCCESS  Length 1: 1
83706  0.00000084  SUCCESS  Length 1:  
83707  0.00000084  SUCCESS  Length 1: 0 ------------ MAYBE FOOTER / CHECK SUM
83708  0.00000083  SUCCESS  Length 1: 2
83709  0.00000085  SUCCESS  Length 1:  
83710  0.00000085  SUCCESS  Length 1: 8 ------------ MAYBE FOOTER / CHECK SUM
83711  0.00000084  SUCCESS  Length 1: 9
83712  0.00000460  SUCCESS  Length 1:  
83713  0.00000091  SUCCESS  Length 1: .
83714  0.00000094  SUCCESS  Length 1: .
83715  0.00000094  SUCCESS  Length 1: >
This is a great sign! Have been analyzing the data I collected the other night and it looks like that I may have found tire pressure. I've been meaning to head back out to the car and scan the individual TPMS PIDs but haven't had a chance (it's been raining the past couple days).

Anyway, I'll be able to validate soon enough. The possibility of the data being there un-encoded is really exciting for me!

Last edited by ShellDude; 04-22-2012 at 02:05 PM.
Old 04-22-2012 | 02:37 PM
  #54  
ShellDude's Avatar
Thread Starter
weeeeeeeeee
iTrader: (12)
 
Joined: Jun 2008
Posts: 4,200
Likes: 229
From: Outside Philadelphia
bah... looked a little deeper ... likely a fluke .. D1 02 appears to be the PID just echoing back... if anything 89 is the value for this pid... now what the hell do I make of 0x89/137 ???
Old 05-03-2012 | 01:33 AM
  #55  
oltmann's Avatar
Registered
 
Joined: Sep 2010
Posts: 531
Likes: 1
Originally Posted by ShellDude
bah... looked a little deeper ... likely a fluke .. D1 02 appears to be the PID just echoing back... if anything 89 is the value for this pid... now what the hell do I make of 0x89/137 ???
Yup, from ISO14229:



oops, that came out big.

Anyhow, 62 is the response code from the TPM and I think 759 is its identifier, D102 is the PID, and 89 is the value.

This is all hex though, so 0x89 = 137. Guessing that the scaling is X/10 so 13.7Volts?

I think tire pressure is in the C90x range, and scaling is X*1.373
Attached Thumbnails My new CarPC Project - Honeycomb Here I Come-22resp.png  
Old 05-03-2012 | 01:53 AM
  #56  
ShellDude's Avatar
Thread Starter
weeeeeeeeee
iTrader: (12)
 
Joined: Jun 2008
Posts: 4,200
Likes: 229
From: Outside Philadelphia
Dude, you rock!
Old 05-03-2012 | 01:57 AM
  #57  
ShellDude's Avatar
Thread Starter
weeeeeeeeee
iTrader: (12)
 
Joined: Jun 2008
Posts: 4,200
Likes: 229
From: Outside Philadelphia
I'll portmon just one of the tpms pids tomorrow night. Have been meaning to get back to them.
Old 05-03-2012 | 01:57 AM
  #58  
timmytriangles's Avatar
Tim8
 
Joined: May 2009
Posts: 196
Likes: 0
From: Long Island, N.Y
coming along great, car pc's rock. i wish someone wud sell these things
Old 05-03-2012 | 02:17 AM
  #59  
ShellDude's Avatar
Thread Starter
weeeeeeeeee
iTrader: (12)
 
Joined: Jun 2008
Posts: 4,200
Likes: 229
From: Outside Philadelphia
Oh, and you're right oltman... The Mazda PID for battery voltage was in the sampling I was scouring. Values match.
Old 05-04-2012 | 12:31 AM
  #60  
ShellDude's Avatar
Thread Starter
weeeeeeeeee
iTrader: (12)
 
Joined: Jun 2008
Posts: 4,200
Likes: 229
From: Outside Philadelphia
So I recorded individual sessions tonight for:
  • TPMS tire pressure for each wheel
  • TPMS tire temperature for each wheel
  • ENGINE Brake pedal pressed (boolean)
  • ENGINE In Gear (boolean)

Here's the full conversation (I dropped the unimportant responses) I recorded for requesting TPMS tire pressure for wheel #1:

Code:
ATE1
>
ATL0
>
ATI
>
STI
>
STCAFCP 7E0,7E8
>… OK
STFAFC 07E9,FFFF
>… OK
STCAFCP 7E1,7E9
>… OK
STFAFC 07EA,FFFF
>… OK
STCAFCP 7E2,7EA
>… OK
STFAFC 07EB,FFFF
>… OK
STCAFCP 7E3,7EB
>… OK
0100
>...
ATRV
>...
ATSH000751
>…
0100
>...
22C9011
>22C9011
>759 07 62 C9 01 93 88 93 97
97 hex to decimal == 151

151 * 1.373 = 207.323 kPa

We have a winner! I'll post up the others in the next day or two.
Old 05-04-2012 | 01:19 AM
  #61  
ShellDude's Avatar
Thread Starter
weeeeeeeeee
iTrader: (12)
 
Joined: Jun 2008
Posts: 4,200
Likes: 229
From: Outside Philadelphia
So it just dawned on me and I confirmed by briefly looking at my Tire #2 pressure log. All 4 come back for 22C9011

0x93 = 147 * 1.373 = 201.831 kPa
0x88 = 136 * 1.373 = 186.728 kPa (I really do need to get around to putting air in this tire)
0x93 = 147 * 1.373 = 201.831 kPa
0x97 = 151 * 1.373 = 207.323 kPa
Old 05-04-2012 | 04:50 AM
  #62  
oltmann's Avatar
Registered
 
Joined: Sep 2010
Posts: 531
Likes: 1
Awesome!

Old 05-04-2012 | 11:53 PM
  #63  
ShellDude's Avatar
Thread Starter
weeeeeeeeee
iTrader: (12)
 
Joined: Jun 2008
Posts: 4,200
Likes: 229
From: Outside Philadelphia
Here's the header and pid for TPMS Temperature:

ATSH0007DF
22C9021

last 4 bytes of the response are each tire's temperature in hex similar to how pressure comes back. Once converted to decimal subtract 40 and you then have the tire temperature in celsius.
Old 05-05-2012 | 12:03 AM
  #64  
ShellDude's Avatar
Thread Starter
weeeeeeeeee
iTrader: (12)
 
Joined: Jun 2008
Posts: 4,200
Likes: 229
From: Outside Philadelphia
Engine Brake and Engine In Gear don't look quite right. I may need to re-record them.
Old 05-05-2012 | 07:48 PM
  #65  
ShellDude's Avatar
Thread Starter
weeeeeeeeee
iTrader: (12)
 
Joined: Jun 2008
Posts: 4,200
Likes: 229
From: Outside Philadelphia
Was having a hard time getting libVoyager to read alternate/multiple ECUs and came up with a hack of sorts to work around it.

I use its built in RoutineScan class with a refresh interval of 500ms to retrieve mode 1 PIDs --- a handful of which I added myself to its sqlite database:

Code:
	hs.setRoutineScanDelay(500);

	hs.getRoutineScan().addDPN("VOLTS");
	hs.getRoutineScan().addDPN("TEMP_INTAKE");
	hs.getRoutineScan().addDPN("TEMP_COOLANT");
	hs.getRoutineScan().addDPN("MAF_FLOW_RATE");
	hs.getRoutineScan().addDPN("FUEL_LEVEL");
	hs.getRoutineScan().addDPN("WIDEBAND_O2");
	hs.getRoutineScan().addDPN("CATALYST_TEMP_B1S1");

And I pretty much bypass it to get at the mode 22 PIDs supplied by the TPMS ECU once every 5 seconds:

Code:
	obd.getHs().getEBT().sendATCommand2("ATSH000751");
				
	final String tpmsPresBuf = obd.getHs().getEBT().sendOBDCommand("22C9011");
	final String tpmsTempBuf = obd.getHs().getEBT().sendOBDCommand("22C9021");
				
	// reset our connection to clear the headers -- need to figure out a better way
	obd.getHs().getEBT().sendATCommand2("ATD");
				
	final String[] tpmsPres = tpmsPresBuf.split(" ");
				
	final float tpmsPres4 = Integer.parseInt(tpmsPres[tpmsPres.length - 2], 16) * 1.373f * KPI_TO_PSI_MULTIPLIER;
	final float tpmsPres3 = Integer.parseInt(tpmsPres[tpmsPres.length - 3], 16) * 1.373f * KPI_TO_PSI_MULTIPLIER;
	final float tpmsPres2 = Integer.parseInt(tpmsPres[tpmsPres.length - 4], 16) * 1.373f * KPI_TO_PSI_MULTIPLIER;
	final float tpmsPres1 = Integer.parseInt(tpmsPres[tpmsPres.length - 5], 16) * 1.373f * KPI_TO_PSI_MULTIPLIER;
				
	final String[] tpmsTemp = tpmsTempBuf.split(" ");
				
	final float tpmsTemp4 = (float) (1.8 * (Integer.parseInt(tpmsTemp[tpmsTemp.length - 2], 16) - 40) + 32);
	final float tpmsTemp3 = (float) (1.8 * (Integer.parseInt(tpmsTemp[tpmsTemp.length - 3], 16) - 40) + 32);
	final float tpmsTemp2 = (float) (1.8 * (Integer.parseInt(tpmsTemp[tpmsTemp.length - 4], 16) - 40) + 32);
	final float tpmsTemp1 = (float) (1.8 * (Integer.parseInt(tpmsTemp[tpmsTemp.length - 5], 16) - 40) + 32);
As best as I can tell the original author focused primarily on GM ECU. At this rate I'll likely end up just writing my own COMM API as talking ELM is very similar to the old Hayes modem command set.
Old 05-06-2012 | 01:14 PM
  #66  
ShellDude's Avatar
Thread Starter
weeeeeeeeee
iTrader: (12)
 
Joined: Jun 2008
Posts: 4,200
Likes: 229
From: Outside Philadelphia
Starting to run out of things to do (good sign -- means I'm getting closer to releasing the code)


For the Fuel Level PID I skinned a Warning Light for it and tied in a blink effect + notification sound for when the current level is < 15%

Attached Thumbnails My new CarPC Project - Honeycomb Here I Come-screen_20120506_1244.jpg   My new CarPC Project - Honeycomb Here I Come-lowfuel.png  

Last edited by ShellDude; 05-06-2012 at 01:24 PM.
Old 05-07-2012 | 10:17 AM
  #67  
ShellDude's Avatar
Thread Starter
weeeeeeeeee
iTrader: (12)
 
Joined: Jun 2008
Posts: 4,200
Likes: 229
From: Outside Philadelphia
For anyone interested (I'm actually considering one as a backup) Buy.com has a refurbed 3G version of the Streak 7 up today for $189.99

http://www.buy.com/prod/dell-streak-...230985256.html
Old 05-11-2012 | 12:53 PM
  #68  
ShellDude's Avatar
Thread Starter
weeeeeeeeee
iTrader: (12)
 
Joined: Jun 2008
Posts: 4,200
Likes: 229
From: Outside Philadelphia
Another decent tablet deal... looks like Polaroid rebranded one of the China MIDs.

Ice Cream Sandwich... $120 ... heard you can get it even cheaper elsewhere and I'm very confident it would fit just fine in the OEM nav hood.

http://www.buy.com/prod/polaroid-7-a...ngid=211101545
Old 05-11-2012 | 01:54 PM
  #69  
HiFlite999's Avatar
Registered
iTrader: (2)
 
Joined: Jun 2009
Posts: 2,257
Likes: 5
From: MI
Originally Posted by ShellDude
Another decent tablet deal... looks like Polaroid rebranded one of the China MIDs.

Ice Cream Sandwich... $120 ... heard you can get it even cheaper elsewhere and I'm very confident it would fit just fine in the OEM nav hood.

http://www.buy.com/prod/polaroid-7-a...ngid=211101545
No built-in GPS though.
Old 05-11-2012 | 03:14 PM
  #70  
ShellDude's Avatar
Thread Starter
weeeeeeeeee
iTrader: (12)
 
Joined: Jun 2008
Posts: 4,200
Likes: 229
From: Outside Philadelphia
yeah, that would suck
Old 05-13-2012 | 12:33 AM
  #71  
ShellDude's Avatar
Thread Starter
weeeeeeeeee
iTrader: (12)
 
Joined: Jun 2008
Posts: 4,200
Likes: 229
From: Outside Philadelphia
finally got around to adding tire temperature.



next I hope to track down the addresses for the cruise control buttons like what PS is doing with the rxduino.
Attached Thumbnails My new CarPC Project - Honeycomb Here I Come-screen_20120512_2332.jpg  

Last edited by ShellDude; 05-13-2012 at 12:37 AM.
Old 05-20-2012 | 12:11 AM
  #72  
mine0778's Avatar
Registered User
 
Joined: Mar 2012
Posts: 4
Likes: 0
From: silvis, il
that is sick man i am gonna have to try this how much for a pre-programmed tablet?
Old 05-20-2012 | 10:46 AM
  #73  
ShellDude's Avatar
Thread Starter
weeeeeeeeee
iTrader: (12)
 
Joined: Jun 2008
Posts: 4,200
Likes: 229
From: Outside Philadelphia
I don't plan on selling anything listed here... It's much more so a build type thread for similar enthusiasts.

I also plan on open sourcing my front-end and bluetooth library at some point once I'm happy with them baseline code wise. I may release a commercial version of it on Google Play with a couple different skins, but that'll likely be the extent of it.

Some of the logic I implemented within the front-end may also be utilized to release some stealth tracking software too.

It's all really just one big proof of concept.
Old 05-21-2012 | 10:32 AM
  #74  
mine0778's Avatar
Registered User
 
Joined: Mar 2012
Posts: 4
Likes: 0
From: silvis, il
It was worth a shot not the best with the programming of the androids guess this will make me learn. Thanks anyway just ordered the dash kit looking for a tablet now
Old 05-21-2012 | 03:42 PM
  #75  
houstonrx8er's Avatar
what was I thinking
iTrader: (8)
 
Joined: Jun 2004
Posts: 2,408
Likes: 0
From: Converse, TX
sweet project dude!

OEM nav screen is a joke!


You have already rated this thread Rating: Thread Rating: 0 votes,  average.

Quick Reply: My new CarPC Project - Honeycomb Here I Come



All times are GMT -5. The time now is 11:48 AM.