Hi,
well, it took me > 2 years, and I didn't expect to spend so much time on this, but I finally wrote a reflashing kernel for Consult-II (approx MY99 - MY10, maybe even later too?) ECUs that communicate through the OBD K line.
I literally spent thousands of hours reverse engineering stock ROMs to figure out the steps required to transfer and execute code on the ECU, without needing to open the case. Of course everyone who followed the >10 page thread (
viewtopic.php?f=45&t=10897 ) is now well aware of the process.
Then I wrote a kernel for reflashing - something I really wanted to avoid, from the beginning - and I think it could be a tremendous help to the tuning community. As Shuher and AK_Eyes can confirm, writing a kernel is not trivial P-)
Because of the ridiculous, insane amount of work that I've put in this (see that thread; the commit logs of freediag since 2014; the wiki @
https://nissanecu.miraheze.org/wiki/Main_Page , etc), I just can't give away my kernel for free. What I want to do however is release it under GPL3, including
- complete source code of course
- linker script and Makefile ( a lot of trial and error went into these for reliable compilation !!)
- startup asm code that makes the kernel 100% independant of the location in RAM where it gets copied (this varies between ROMs)
The project is designed to be compiled with a GNU gcc-sh toolchain (free, crossplatform, OSS), instead of Renesas' "shc" compiler which is not cross-platform, and a bit finnicky to get working reliably.
The kernel uses a mostly iso14230-compliant protocol, which is well defined and pretty simple. So far I have added a few "nisprog" commands to freediag for this. kernel SIDs include
-reset ECU
-read from ROM/RAM/external EEPROM (standard SID 0x23, and faster SID 0xBD @5.4kB/s !)
-write to RAM (SID 0x3D)
-erase FLASH block
-write FLASH chunk
So, the deal is :
- I have kernel code that can save everybody a *lot* of work
- I'm not giving it away for free
so, I want to set up some kind of crowdsourcing (maybe with "stretch goals" ? I have a few ideas). I may post it in the
classified section to respect this forum's rules.
Or, if I suddenly get a few generous donations, the project might just appear on github P-)