Open source access to ~2002 Forester XT SH7055 ECUs is now possible using an ordinary USB to OBD cable*.
Full credit to MiikaS who did all the testing on a ECU. Full credit to fenugrec as the author of the original nisprog / npkern.
The current status is experimental, and it needs a little more testing (volunteers welcome!). I can't do the testing because I don't have one of these ECUs. A summary is:
- ECU access process is described here (in the SH7055 section at the end of the file):
https://github.com/rimwall/nisprog/blob ... ruSIDs.txt- *Note that access requires a method of generating a ~218ms pulse on Line-End-Check 2
- A modified npkern kernel has been successfully loaded to the ECU and used for a successful dump operation. This was done using other comms software, so the nisprog portion has not yet been tested. And using the kernel for flashing has not yet been tested.
- A modified nisprog has been prepared to do the communications, and needs to be tested. There are probably bugs to be fixed.
- the modified npkern kernel is available here:
https://github.com/rimwall/npkern/tree/ssm_test with a pre-compiled kernel under /pre-compiled called ssmk_SH7055_02fxt_18.bin
- the modified nisprog is available here:
https://github.com/rimwall/nisprog/tree/ssm_test. This needs to be compiled on your platform for use.
- testing has so far only been successful in the car. Testing on the bench has used the minimal connections (power, k-line, ground) but hasn't yet worked - there must be one or two additional connections required that exist when the ECU is in the car.
Testing requested:
Code:
- Test the two additional commands in nisprog:
- spconn02fxt - provides access to normal SSM commands such as ECU init.
- testing sequence would be:
1. run 'nisprog -f ssmprog.ini' with ignition already on (engine not running)
2. enter 'spconn02fxt'. ECU ID should be reported.
3. try an SSM command such as 'diag sr 0xBF' which is ECU Init command. ECU response should be reported
- sprunk02fxt - provides access to ECU load / run kernel sequence
- testing sequence would be:
1. run 'nisprog -f ssmprog.ini' with ignition off
2. enter 'sprunk02fxt ssmk_SH7055_02fxt_18.bin'
3. turn ignition on (don't start car) and apply 218ms pulse to LEC2 as per required timing
4. try a ROM dump command to the kernel such as 'dm TestDump.bin 0 0'
5. try a ROM flash command to the kernel such as 'flrom newROM.bin'
Other contribution requested:
- a schematic for a simple circuit to provide the 218ms pulse on LEC2 for example using a 555 timer
- working out what additional pins to connect to get it working for an ECU on the bench
Enjoy!