Notices
Drivetrain Gearbox, Diffs & Driveshafts etc

Select Monitor parameter address / converstions

Thread Tools
 
Search this Thread
 
Old 07 January 2002, 03:56 PM
  #1  
ScoobyDuck
Scooby Regular
Thread Starter
iTrader: (1)
 
ScoobyDuck's Avatar
 
Join Date: Oct 2001
Location: South East
Posts: 1,300
Likes: 0
Received 0 Likes on 0 Posts
Post

Paul,

got the interface working sweet .. can get anything out I want!

have tried initially the addresses on that web site .. 0x1335 for battery voltage etc, but to no avail .. they are always static!

so I tried starting from 0x00 and logging it and then worked my way through a HUGE speadsheet of data to see what values were moving , then plugged them back in and pressed buttons/pedals / reved engine etc etc to find some basic ones.

have found several thing..

like (all off the top of my head ..havent got the list with me)

batt volts, revs, coolent temp , throttle position sensor. switches bytes for throttle open/closed & Fan&A/C etc etc

have conversions for RPM & thottle pos.. basicly taken directly from this guys site .. but some of these values I'm guessing what they are going to be .. need some real help on what's where!!!

do you have the variable address locations ? I'd be insterested to try .. then all I have to do is work out some calculations to work it to real meaningful values !!

cheers
Steve

(editied to say writing the program in Delphi ... might transfer it to VC++ but happy with it how it is at the moment - i.e. very basic&raw!)

[Edited by ScoobyDuck - 7/1/2002 3:59:05 PM]
Old 07 April 2002, 01:44 PM
  #2  
ScoobyDuck
Scooby Regular
Thread Starter
iTrader: (1)
 
ScoobyDuck's Avatar
 
Join Date: Oct 2001
Location: South East
Posts: 1,300
Likes: 0
Received 0 Likes on 0 Posts
Arrow

Andrew / Paul

Interesting about 4800 ASCII, but I agree, the message just increases, so might not be worth the extra speed. Have to do some calculations and see what benifit it'll give us.

the 4th byte is the NUMBER OF ADDITIONAL BYTES. so if you send
0x78, 0x00, 0x00, 0x00
then you get back

0x00, 0x00 , 0x??

?? = data

if you send 0x78, 0x00, 0x00, 0x02
you'll get 0x00, 0x00 , 0x??, 0x???, 0x????
i.e. the next 2 data from sequential addrs.

Also still trying to get a connector for the SEL_MON port..
the car end is like this....




Steve
(who will be trying live data & real time parameter display tongiht!!!)



[Edited by ScoobyDuck - 7/4/2002 1:47:46 PM]
Old 07 April 2002, 02:13 PM
  #3  
Pavlo
Scooby Regular
 
Pavlo's Avatar
 
Join Date: May 2002
Location: home
Posts: 6,316
Likes: 0
Received 2 Likes on 2 Posts
Post

The only reason I highlightes the 4800bps Ascii is for people that can't program a 1953bps reader. A terminal program makes for an easy start.

You can actually use quickbasic to communicate with the serial port, so this might be quick and easy for some.

The overall speed works out about the same, assume 8 bytes per command rather than 4.

There is a limit to the output in one go due to the output buffer, i don't know how big it is, but I image it's this that stops you
reading the whole range in one go.

A pic based thing would be nice, you could log into a box (no comments please) and download to a pc at your convenience. Good for people wanting ultimate power to weight!

I've spent the last few nights tidying the garage, so i can move a PC and elec gear into it. I will try and get an adapter cable made now. As for connector, i would be inclined to splice into the cable and add a standard connector.

Edited to say that the simulator is a free one available for download from the mitsubishi tools page, address to follow.

Paul

[Edited by Pavlo - 7/4/2002 2:15:08 PM]
Old 01 July 2002, 12:35 PM
  #4  
ScoobyDuck
Scooby Regular
Thread Starter
iTrader: (1)
 
ScoobyDuck's Avatar
 
Join Date: Oct 2001
Location: South East
Posts: 1,300
Likes: 0
Received 0 Likes on 0 Posts
Question

Hi,

does anyone know of the addresses & conversion equations for the data in the select monitor ?

I have the information from this site - http://lillith.sk.tsukuba.ac.jp/~kashima/car/gc8-e.html

but the addresses aren't right !
I've found the RPM & Batt Voltage by trial and error & the conversions seem to be right, but there are a lot that are missing - e.g. waster temp etc etc.

Is there an official Subaru document / spec sheet for the monitor port anywhere? (u mail me off-line if u 'have' one)

cheers
Steve


[Edited by ScoobyDuck - 7/1/2002 12:38:31 PM]

[Edited by ScoobyDuck - 7/1/2002 12:38:48 PM]
Old 01 July 2002, 01:24 PM
  #5  
Pavlo
Scooby Regular
 
Pavlo's Avatar
 
Join Date: May 2002
Location: home
Posts: 6,316
Likes: 0
Received 2 Likes on 2 Posts
Post

what addresses are you using? Looking at the dissasembled code, the internal addresses don't always give the right info, as some of them are temporary memory locations used for calculation before the parameter is passed on to other parts of the program.

You also need to be aware of the units, as some are very strange, so they may wrong at first. Are you sure you sending the right commands and using the correct baud rate?

I haven't got rounds to building the rs-232 interface on the site you mentioned, and when I do I will have to write something to read the ECU. What software are you using?

Paul
Old 01 July 2002, 08:26 PM
  #6  
AndrewC
Scooby Regular
 
AndrewC's Avatar
 
Join Date: Jul 2000
Location: Lancashire
Posts: 2,209
Likes: 0
Received 0 Likes on 0 Posts
Post

ScoobyDuck,

Good to here you're making progress - could you answer a couple of questions for me aswell:

What MY is your car?
What baud rate are you using? or to put it another way, how tolerant of different speeds have you found the select monitor port?

Andrew...
Old 01 July 2002, 11:39 PM
  #7  
ScoobyDuck
Scooby Regular
Thread Starter
iTrader: (1)
 
ScoobyDuck's Avatar
 
Join Date: Oct 2001
Location: South East
Posts: 1,300
Likes: 0
Received 0 Likes on 0 Posts
Post

Andrew,

well it's a uk MY97/98 - some debate going on this one as the VIN says 98, but plate is a 97 .. so not totally sure - but it's post face-lift outside, but not inside .. ! that really doesnt help!

The baudrate is 1953 and that's exactly what I'm using, so havent tried to deviate from it. I know that the guys doing the ODB stuff on newer cars have found that you can make it work with baud rates that are quite far from what is should be - but thats ODB not Select - so cant really comment , sorry !


Cheers
Steve
Old 02 July 2002, 10:32 AM
  #8  
AndrewC
Scooby Regular
 
AndrewC's Avatar
 
Join Date: Jul 2000
Location: Lancashire
Posts: 2,209
Likes: 0
Received 0 Likes on 0 Posts
Post

Steve,

Thanks for the info, from your description and IMHO your car is an MY97, which is good because mine is an MY98 which means they have the same ECU.

I am approaching the connection to the select monitor slightly differently, I am using a microcontroller to talk to the select monitor which presents a simple interface on rs232 at 9600 for connection to a PC, (there is also an LCD display connected to the uC), this way I can use either a terminal emulator or a simple script to interrogate the Select Monitor port.

My end goal is a standalone ECU monitor not logging/analysis software ala ECUTEK which is why I started in this way.

I asked the speed queston because I wonder if it was possible to talk to the select port faster that 1953bps and (not being a PC programmer) I don't understand how you can get the likes of VB or Delphi to talk at non standard baud rates without writing your own device driver.

Andrew...
Old 02 July 2002, 11:22 AM
  #9  
Pavlo
Scooby Regular
 
Pavlo's Avatar
 
Join Date: May 2002
Location: home
Posts: 6,316
Likes: 0
Received 2 Likes on 2 Posts
Post

command prompt....

c:\mode COM1 BAUD=1953

Hey presto

Paul
Old 02 July 2002, 11:39 AM
  #10  
loscooby
Scooby Regular
 
loscooby's Avatar
 
Join Date: Nov 2001
Posts: 200
Likes: 0
Received 0 Likes on 0 Posts
Post

Pavlo,

Are you using the PC to connect directly to the select-monitor via a custom-made cable or something, Do you have some schematics on how to achive this?
My goal is to make an app that runs on my IPaq that presents the data in a nice gui.
Old 02 July 2002, 11:51 AM
  #11  
Pavlo
Scooby Regular
 
Pavlo's Avatar
 
Join Date: May 2002
Location: home
Posts: 6,316
Likes: 0
Received 2 Likes on 2 Posts
Post

Then we have the same aim!

I have a schematic for a serial port to TTL converter, I haven't built it yet, but should do in the next few days.

I will probably use a comm port debugger to start with, but write a program to log data in the near future,

Paul
Old 02 July 2002, 11:57 AM
  #12  
loscooby
Scooby Regular
 
loscooby's Avatar
 
Join Date: Nov 2001
Posts: 200
Likes: 0
Received 0 Likes on 0 Posts
Post

Is it possible to get a copy of your schematic over the Comm-TTL device?

//L-O
Old 02 July 2002, 11:59 AM
  #13  
Pavlo
Scooby Regular
 
Pavlo's Avatar
 
Join Date: May 2002
Location: home
Posts: 6,316
Likes: 0
Received 2 Likes on 2 Posts
Post

Please email me, and I can reply with the schematic.

Paul
Old 02 July 2002, 01:41 PM
  #14  
loscooby
Scooby Regular
 
loscooby's Avatar
 
Join Date: Nov 2001
Posts: 200
Likes: 0
Received 0 Likes on 0 Posts
Smile

Great thanks, u gor mail!

//L-O
Old 02 July 2002, 02:43 PM
  #15  
Nemis
Scooby Newbie
 
Nemis's Avatar
 
Join Date: May 2002
Posts: 15
Likes: 0
Received 0 Likes on 0 Posts
Post

look here:
http://www.planetfall.com/~jeff/obdii/
there is a schematics od obd interface for audi vw etc...
but is simple to modify.

sorry 4 errors
Old 02 July 2002, 03:35 PM
  #16  
loscooby
Scooby Regular
 
loscooby's Avatar
 
Join Date: Nov 2001
Posts: 200
Likes: 0
Received 0 Likes on 0 Posts
Post

What about new models and the select monitor, has anybody any ideas or has someone tried accessing params via the select-monitor on a MY99 or MY00 or even the new style WRX?

//L-O
Old 02 July 2002, 04:20 PM
  #17  
AndrewC
Scooby Regular
 
AndrewC's Avatar
 
Join Date: Jul 2000
Location: Lancashire
Posts: 2,209
Likes: 0
Received 0 Likes on 0 Posts
Post


EcuTek can sell you the hardware and software to do this with a Phase2 engined car. Although the underlying interface is the same, the addresses and/or scaling will be different from year to year.

Andrew...
Old 02 July 2002, 05:33 PM
  #18  
ScoobyDuck
Scooby Regular
Thread Starter
iTrader: (1)
 
ScoobyDuck's Avatar
 
Join Date: Oct 2001
Location: South East
Posts: 1,300
Likes: 0
Received 0 Likes on 0 Posts
Talking

Andrew,

have the same kind of thing planned as you too. I'm also thinking it would be nice to have some thing like Nexxxus's post he had on here a while ago .. an LCD permanatly in the car , on which you can scrool through setting in real time etc etc..

I'm into PIC uC's at the mo, so have made a sequential shift light for that & will probably get the uC side of it working when I know where and what to multiply or divide the numbers by etc etc.

Just doing it via a laptop & something like Delphi or VC++ etc is a hell of a lot easier than re-blowing a chip every time !

The baud rate as far as I know is fixed, so it's 1953 or nothing!
and in Delphi, like Pavlo said .. you just have to specify the rate to the API and it does it ! wonderful stuff, almost idiot could do it ! (that includes me )

Interface is simple .. just a MAX232 chip a 4 capacitors & a 9pin D to connect to the laptop.

Desperatly need info on where the parameters are ... but I'm working on that.... (any info would help tho !)

Steve
Old 03 July 2002, 12:12 AM
  #19  
David_Wallis
Scooby Regular
 
David_Wallis's Avatar
 
Join Date: Nov 2001
Location: Leeds - It was 562.4bhp@28psi on Optimax, How much closer to 600 with race fuel and a bigger turbo?
Posts: 15,239
Likes: 0
Received 1 Like on 1 Post
Post

you using any opto isolators or does the max232 take care of that?? I cant remember much about it from my 'season' and 'voyager' days other than it does rs232 <-> ttl

David
Old 03 July 2002, 12:26 AM
  #20  
ScoobyDuck
Scooby Regular
Thread Starter
iTrader: (1)
 
ScoobyDuck's Avatar
 
Join Date: Oct 2001
Location: South East
Posts: 1,300
Likes: 0
Received 0 Likes on 0 Posts
Post

David,

no it does 232->TTL so I'm taking that as ok. The car supplies the 12 volts, which is regulated to 5v, then the MAX uses 4 capacitors to pump-charge to 232 voltages ( +15 -> -15 )

the addition of Opto's would be a 200% safe guard .. mayb an addition to the circuit .. but feel safe enuf with the MAX232 at the mo - until it all goes POP & I need a new ECU !! Ouch !

Steve
Old 03 July 2002, 12:48 AM
  #21  
David_Wallis
Scooby Regular
 
David_Wallis's Avatar
 
Join Date: Nov 2001
Location: Leeds - It was 562.4bhp@28psi on Optimax, How much closer to 600 with race fuel and a bigger turbo?
Posts: 15,239
Likes: 0
Received 1 Like on 1 Post
Post

Thats why I thought about the isolators!

David
Old 04 July 2002, 11:04 AM
  #22  
Pavlo
Scooby Regular
 
Pavlo's Avatar
 
Join Date: May 2002
Location: home
Posts: 6,316
Likes: 0
Received 2 Likes on 2 Posts
Post

Just thought I would add, that you can convers with the select monitor port in ASCII or Binray. 1953.6 bps it the baud rate for binary, BUT, you can use 4800 for ascii I believe, which should make it possible to get going with scriptable comms program.

Paul
Old 04 July 2002, 11:29 AM
  #23  
AndrewC
Scooby Regular
 
AndrewC's Avatar
 
Join Date: Jul 2000
Location: Lancashire
Posts: 2,209
Likes: 0
Received 0 Likes on 0 Posts
Talking

Paul,

That is very interesting, confirming my suspicions that there was a way of reading the ECU faster than 1953, however, the extra speed available in ASCII mode is all but negated by the increased message size.

Myself and Steve are getting the same results using 2 very different methods of reading from the Select Monitor port using binary mode at 1953bps, although I may try ascii mode just for the hell of it.

Which MY ECU have you disassembled?

From your analysis of the code can you confirm the purpose of the 4th byte in the read command? I get different results depending on its value, I believe that it may be possible to do block reads using this byte.

Cheers,
Andrew...
Old 04 July 2002, 11:39 AM
  #24  
loscooby
Scooby Regular
 
loscooby's Avatar
 
Join Date: Nov 2001
Posts: 200
Likes: 0
Received 0 Likes on 0 Posts
Post

that sounds interesting, have you tried the 4800 ascii way of reading?
ps.
I have gotten the components to build the circuit in the drawing you sent me, have started the building process, do you know where to get a hold of a select-monitor connector?

//l-O
Old 04 July 2002, 11:44 AM
  #25  
Pavlo
Scooby Regular
 
Pavlo's Avatar
 
Join Date: May 2002
Location: home
Posts: 6,316
Likes: 0
Received 2 Likes on 2 Posts
Post

Phew, say that again?

I haven't looked at the comms part of the dissasembly. The code has no library info, routine names etc. Also I am running it on a simulator, and I have not figured out how to simulate the correct I/O, so the code may run abnormally.

Since the select monitor probably runs through one of the UARTs, I should be able to track it down from the UART port addresses. However, I have varying infomation as to the correct port addresses, and this may vary according to ecu year (I am working with 96).

I am still getting used to following the asm code, in paticular I am not used to working with a 16 processor that uses 8 bit registers with a carry flag.

If you can dump the ram from 8000h to FFFFh I can try running it on the simulator. I think your job is made harder by the fact that the 97-> ECUs probably use different monitor addresses from the 96 ecu as referenced on Koshi's website.

I will use ASCII for now, as I can just use a terminal/comm debug program. Do you know of any that can be scripted? It would be nice to have a read loop.

Paul
Old 04 July 2002, 12:27 PM
  #26  
AndrewC
Scooby Regular
 
AndrewC's Avatar
 
Join Date: Jul 2000
Location: Lancashire
Posts: 2,209
Likes: 0
Received 0 Likes on 0 Posts
Post

loscooby - I am not using an OBD connector, after figuring out the IO and power lines I stripped the plug down and soldered additional 15cm wires into the +12V, Gnd, Xmit and Recv lines which go a 4 way mini-DIN socket that I had lying around my spares box (luckily I also had a plug). I was happy to do this as my aim is to have a permanently connected monitor in the car.

Pin 16 is +12V
Pins 4 & 5 are Gnd
Pin 12/13 is Recv
Pin 13/12 is Xmit (need to check these on my car!)
** Note that the OBD connector is upside down! **

Paul - You're right in that it appears that the addresses are different for different years. I can dump the address range you requested no problem.

What simulator are you using?

I'm a unix man (and boy) so PC development tools are not my forte, I am just using a terminal emulator to talk to my AVR uC interface which effectively gives me an ascii interface to the select port, however, it also takes care of the low level messaging, I just give it a start address, size of block and it just repeatedly pumps out hex values for that address range which I log.

There is also an LCD attached to the AVR displaying some debug information. I am currently using a prototyping board but last night I started making up a 1" SIMMStick as more compact interface.

Andrew...
Old 04 July 2002, 02:38 PM
  #27  
AndrewC
Scooby Regular
 
AndrewC's Avatar
 
Join Date: Jul 2000
Location: Lancashire
Posts: 2,209
Likes: 0
Received 0 Likes on 0 Posts
Post

Steve,

Re. The 4th byte, I was getting the result you describe until I increased 'R' beyond a certain figure, but as Paul points out there maybe an output buffer size issue. Still for read small areas of memory it speeds things up quite a lot.

Also from MY98 on with the new look interior there isn't a yellow Select Monitor connector, just the OBD port, however, on '98s at least it is only usable for the select monitor protocol as the ECU isn't OBD2 comlpiant.

Paul,

I agree that the Ascii protocol suggestion is a good idea and if was starting again I might go down that route, however, I like to do things the hard way!

Also I have seen the page you mentioned and have downloaded the Mitsubishi 7700 Family Software Guide, but it frightened me!

Andrew...
Old 04 July 2002, 03:17 PM
  #28  
Pavlo
Scooby Regular
 
Pavlo's Avatar
 
Join Date: May 2002
Location: home
Posts: 6,316
Likes: 0
Received 2 Likes on 2 Posts
Post

It is quite frightening. I have picked up the basics, and I think the cpu in the ecus is a little older, so some of the newer instructions in the manual aren't used in the ECU.

Main ones from memory are:

LDX load into register X
LDA load into accumulator A
SBC subtract compliment of carry bit and memory from accumulator
MPY multiply
STA store accumulator to memory

There are a few memory addressing modes, but mostly DT is used for direct memory referencing.

So LDA DT:8010h loads the contents of 8010h into accumulator A. You have to take note of the 'm' flag, as it determines whether a 8bit byte or 16bit big endian word is loaded.

Just takes ages to get used to, the ram watcher is useful as you can set break points on ram reads/writes and watch the values change as you go (changes are highlighted).

paul

Old 04 July 2002, 04:32 PM
  #29  
ScoobyDuck
Scooby Regular
Thread Starter
iTrader: (1)
 
ScoobyDuck's Avatar
 
Join Date: Oct 2001
Location: South East
Posts: 1,300
Likes: 0
Received 0 Likes on 0 Posts
Lightbulb

Paul,

might try dumping the whole of the memory and see what I can get in the Sim, but it's a pain that I can only get 127 (7F) addresses out at a time (even though that's quite slow!!!) must be something to do with the o/buffer as you say.

interesting that the program starts at 8000F, I take it the lower addresses are all MAP's ?

all my moving data variables are in 0007->005d (mayb a bit more)
I'm wondering if these might be 'temp' Var's ?!?

will try playing more tonight & see what I can get in real terms (with syringe and all sorts)

Steve
Old 04 July 2002, 04:44 PM
  #30  
Pavlo
Scooby Regular
 
Pavlo's Avatar
 
Join Date: May 2002
Location: home
Posts: 6,316
Likes: 0
Received 2 Likes on 2 Posts
Post

erm, I can't remember what I said, and now it's gone as I reply. Data area appears to be 8000h-8fffh and programs area 9000h - ffffh

Everything 7fffh and below is blank on the rom image, but used by the program when running, well bits of it.

I realise now I screwed up initially, as 8000h-7fffh isn't much room for data!

If it's a hassle to dump the whole rom, don't worry about it, I am sure your programme will be perfected soon enough.


Quick Reply: Select Monitor parameter address / converstions



All times are GMT +1. The time now is 03:50 AM.