Personal tools
User menu

Difference between revisions of "Porsche 928 LH Replacement Prototype"

From Francois Louw

Jump to: navigation, search
(Big Update and working system 1 April 2014)
 
Line 1: Line 1:
 
<metadesc>LH Replacement ECU Prototype</metadesc>
 
<metadesc>LH Replacement ECU Prototype</metadesc>
 
<metakeywords>Porsche,928,S4,LH,Replacement,ECU,Fuel computer,LH ECU,fuel injection,replacement,replace,fix,bosch lh,bosch,bosch ecu,engine control unit,electronic control unit,porsche ecu repair,jetronic,lh jetronic,porsche lh jetronic,ecu replacement,porsche 928 lh ecu,928 ecu repair,lh replacement,porsche 928,repair ecu,ecu replacement,bosch lh jetronic,928 porsche,porsche ecu rebuild,porsche ecu repair,porsche ecu replace,gt,gts,928 s4,928 gt,928 gts,928 s2,35 pin,25 pin,fuel map,performance,engine control,lh-jetronic,l-jetronic,module repair,module rebuild,ECU repair,ECU rebuild,ECM,EZK repair, EZF repair, fuel injection, Mass Airflow Meter repair, MAF, MAF calibration, Porsche repair, lh test, ECU test, MAF test, LH 2.0, LH 2.2, LH 2.3,MAF, Mass Air Flow Meter, Porsche 928, ECU, Porsche Hammer, ECU Repair, SharkTuner,Fault Find,Fault Diagnosis</metakeywords>
 
<metakeywords>Porsche,928,S4,LH,Replacement,ECU,Fuel computer,LH ECU,fuel injection,replacement,replace,fix,bosch lh,bosch,bosch ecu,engine control unit,electronic control unit,porsche ecu repair,jetronic,lh jetronic,porsche lh jetronic,ecu replacement,porsche 928 lh ecu,928 ecu repair,lh replacement,porsche 928,repair ecu,ecu replacement,bosch lh jetronic,928 porsche,porsche ecu rebuild,porsche ecu repair,porsche ecu replace,gt,gts,928 s4,928 gt,928 gts,928 s2,35 pin,25 pin,fuel map,performance,engine control,lh-jetronic,l-jetronic,module repair,module rebuild,ECU repair,ECU rebuild,ECM,EZK repair, EZF repair, fuel injection, Mass Airflow Meter repair, MAF, MAF calibration, Porsche repair, lh test, ECU test, MAF test, LH 2.0, LH 2.2, LH 2.3,MAF, Mass Air Flow Meter, Porsche 928, ECU, Porsche Hammer, ECU Repair, SharkTuner,Fault Find,Fault Diagnosis</metakeywords>
==Porsche 928 LH Replacement ECU Prototype Build Page==
+
=Porsche 928 LH Replacement ECU Prototype Build Page=
 
[[Porsche 928 LH Replacement ECU|Back to Project Page]]
 
[[Porsche 928 LH Replacement ECU|Back to Project Page]]
  
Line 12: Line 12:
 
__TOC__
 
__TOC__
  
==Hardware Selection==
+
=Hardware Selection=
===Requirements===
+
==Requirements==
  
 
1) I need to know what each pin of the ECU connector does. In the end when everything is done I want to plug my module in and do nothing to the rest of the car and it should work.
 
1) I need to know what each pin of the ECU connector does. In the end when everything is done I want to plug my module in and do nothing to the rest of the car and it should work.
Line 28: Line 28:
  
  
===Component Selection===
+
==Component Selection==
  
 
Ok here is my list of components, I know that you can get better and the whole ARM vs. MIPS instruction sets blah blah blah...
 
Ok here is my list of components, I know that you can get better and the whole ARM vs. MIPS instruction sets blah blah blah...
Line 46: Line 46:
 
These components are the major components and I did not list all the masses of resistors, caps and diodes used in the circuit.
 
These components are the major components and I did not list all the masses of resistors, caps and diodes used in the circuit.
  
==Schematics==
+
=Schematics=
 
Here are low resolution pic of my schematics, I made it low res on purpose, I don't want other people stealing my design and making money out of it.  
 
Here are low resolution pic of my schematics, I made it low res on purpose, I don't want other people stealing my design and making money out of it.  
  
Line 67: Line 67:
 
[[File:ECU1-page5-8.jpg|500px]]
 
[[File:ECU1-page5-8.jpg|500px]]
  
==PCB Layout==
+
=PCB Layout=
 
Here is a low res version of the PCB layout
 
Here is a low res version of the PCB layout
  
 
[[File:ECU1-PCB.jpg|500px]]
 
[[File:ECU1-PCB.jpg|500px]]
  
==PCB Creation and populating==
+
=PCB Creation and populating=
  
 
The PCB that I must make is a two layer pcb with 0.006" gaps between tracks and 0.012" vias. That is small, and I cannot do it at home. So I sent the info to specialists and received my PCB (5 of them).
 
The PCB that I must make is a two layer pcb with 0.006" gaps between tracks and 0.012" vias. That is small, and I cannot do it at home. So I sent the info to specialists and received my PCB (5 of them).
Line 82: Line 82:
 
There was a small delay with getting the processors, thus the last photo here is the PCB complete without processor.
 
There was a small delay with getting the processors, thus the last photo here is the PCB complete without processor.
  
==Integration==
+
=Integration=
  
 
Ok, this step is a really important one. I have to check my design to see if everything works, fits and doesn't blow up.
 
Ok, this step is a really important one. I have to check my design to see if everything works, fits and doesn't blow up.
Line 98: Line 98:
 
the next step is to program the unit. The programming will be the remaining steps
 
the next step is to program the unit. The programming will be the remaining steps
  
==Programming phase 1==
+
=Programming phase 1=
  
 
Ok, here is a video clip of the car starting and idling with my ECU (1 Minute).
 
Ok, here is a video clip of the car starting and idling with my ECU (1 Minute).
Line 132: Line 132:
 
Afterwards I will modify the PCB and make units that will be able to work with the 25 pin LH2.2.
 
Afterwards I will modify the PCB and make units that will be able to work with the 25 pin LH2.2.
  
==Programming Phase 2: Fuel adjustment according to RPM==
+
=Programming Phase 2: Fuel adjustment according to RPM=
  
 
Ok, lets give the youtube link first then I will give my boring explanation.
 
Ok, lets give the youtube link first then I will give my boring explanation.
Line 148: Line 148:
 
The next step is to program the unit to take the MAF into account. That will not be done today, If I am lucky (read: will not sleep a lot tonight) tomorrow the MAF will be sorted and I will post a video of me driving around the block.
 
The next step is to program the unit to take the MAF into account. That will not be done today, If I am lucky (read: will not sleep a lot tonight) tomorrow the MAF will be sorted and I will post a video of me driving around the block.
  
==Programming Phase 3: Fuel adjustment according to MAF and RPM==
+
=Programming Phase 3: Fuel adjustment according to MAF and RPM=
  
 
Ok, here is the video...
 
Ok, here is the video...
Line 166: Line 166:
 
While I wait for the tranny I can continue with some of the coding.
 
While I wait for the tranny I can continue with some of the coding.
  
==Programming Phase 4: LH Functionality==
+
=Programming Phase 4: LH Functionality=
  
 
Ok, during the time the car was in for repairs I continued working on the coding. The following stuff is implemented and works:
 
Ok, during the time the car was in for repairs I continued working on the coding. The following stuff is implemented and works:
Line 193: Line 193:
 
*Windows Tuning - The interface to tune and adjust all the settings must still be written
 
*Windows Tuning - The interface to tune and adjust all the settings must still be written
  
==Programming Phase 5==
+
=Programming Phase 5=
  
 
Ok, took me quite a while to get to this point. There was a lot of small bugs that had to be fixed. Unfortunately the only time when the bug popped up was while driving. After about a month of proper ECU testing and driving I am confident that all the bugs have been sorted. The "Accelerator jet" coding is also done, and is working perfectly.
 
Ok, took me quite a while to get to this point. There was a lot of small bugs that had to be fixed. Unfortunately the only time when the bug popped up was while driving. After about a month of proper ECU testing and driving I am confident that all the bugs have been sorted. The "Accelerator jet" coding is also done, and is working perfectly.
Line 206: Line 206:
 
Geeky part: I have decided to use Qt for the interface software. A few reasons made me decide on Qt instead of Visual Studio 2010. At the moment at work I am constantly using Qt and like the functionality available to me. Second, I have a working demo program of Qt using the serial port and it works with my usb code that sits on the ECU. Third Qt is free, VisualStudio 2010 costs more than my car (not really, but it is still way too much). Lastly Qt has awesome graphics, gauges needles etc. that I can use.
 
Geeky part: I have decided to use Qt for the interface software. A few reasons made me decide on Qt instead of Visual Studio 2010. At the moment at work I am constantly using Qt and like the functionality available to me. Second, I have a working demo program of Qt using the serial port and it works with my usb code that sits on the ECU. Third Qt is free, VisualStudio 2010 costs more than my car (not really, but it is still way too much). Lastly Qt has awesome graphics, gauges needles etc. that I can use.
  
==Programming Phase 5-update==
+
=Programming Phase 5-update=
  
 
USB feedback is 100% operational and adjustments and tuning can be made. The changes cannot be saved yet. Once power is off and back on it resets to the pre programmed defaults.
 
USB feedback is 100% operational and adjustments and tuning can be made. The changes cannot be saved yet. Once power is off and back on it resets to the pre programmed defaults.
Line 218: Line 218:
 
[[File:ecu-interface3.jpg|500px]]
 
[[File:ecu-interface3.jpg|500px]]
  
==Bunch of Micro-updates all thrown together==
+
=Bunch of Micro-updates all thrown together=
 
And I found a few problems that needs adressing.
 
And I found a few problems that needs adressing.
 
When the board is in firmware update mode, then the injectors are opened (stupid mistake on my part)
 
When the board is in firmware update mode, then the injectors are opened (stupid mistake on my part)
Line 272: Line 272:
 
I will keep everyone updated as I move along the final stages of this project.
 
I will keep everyone updated as I move along the final stages of this project.
  
==Update: USB-Interface demo==
+
=Update: USB-Interface demo=
 
here are a few youtube videos
 
here are a few youtube videos
  
Line 287: Line 287:
 
{{#ev:youtube|RJguEPvmYIo}}
 
{{#ev:youtube|RJguEPvmYIo}}
  
==Demo of USB working in car and revision 2 update==
+
=Demo of USB working in car and revision 2 update=
  
 
Ok, has been a while since last update, but here it is!
 
Ok, has been a while since last update, but here it is!
Line 305: Line 305:
 
The build of the second revision will be better explained in its own project page (Coming soon!)
 
The build of the second revision will be better explained in its own project page (Coming soon!)
  
==Logging 16 March 2013==
+
=Logging 16 March 2013=
  
 
One important feature that would be very nice is to be able to log real time data on the computer, and then save it in a CSV file that can be opened by any other application.
 
One important feature that would be very nice is to be able to log real time data on the computer, and then save it in a CSV file that can be opened by any other application.
Line 321: Line 321:
 
Future options will be to add a trigger system where the user can decide when the logging starts, e.g. WOT, or >2000 rpm etc.
 
Future options will be to add a trigger system where the user can decide when the logging starts, e.g. WOT, or >2000 rpm etc.
  
==Code Cleanup 17 March 2013==
+
=Code Cleanup 17 March 2013=
  
 
Ok, during all my coding and bug fixing and feature adding I completely messed up the Interface software code. Everything still worked but the code was a mess. Improper variable naming, bad coding, repetition of code, zero comments etc. etc.
 
Ok, during all my coding and bug fixing and feature adding I completely messed up the Interface software code. Everything still worked but the code was a mess. Improper variable naming, bad coding, repetition of code, zero comments etc. etc.
Line 331: Line 331:
 
This also resulted in the build number of the Interface software to take a big jump! New version is build number 539. This will probably change in the near future, but it should be in the download section soon! (This code is compatible with firmware build 1068 to 1099. Probably will support future versions up to a point.
 
This also resulted in the build number of the Interface software to take a big jump! New version is build number 539. This will probably change in the near future, but it should be in the download section soon! (This code is compatible with firmware build 1068 to 1099. Probably will support future versions up to a point.
  
==User Manual 18 March 2013==
+
=User Manual 18 March 2013=
  
 
Ok so I need to start writing that also. It is far from complete, but currently I have a few pages written down on how to enter Bootloader mode, update firmware, and basic usage of the software.  
 
Ok so I need to start writing that also. It is far from complete, but currently I have a few pages written down on how to enter Bootloader mode, update firmware, and basic usage of the software.  
Line 339: Line 339:
 
The manual have also been added to the download section.
 
The manual have also been added to the download section.
  
==Debug Mode 2 April 2013==
+
=Debug Mode 2 April 2013=
  
 
Added a debug feature. So far in this page the fuel injection time can be overridden. This is useful when adjusting fuel maps and testing. When the injector time is overridden then the fuel map and WOT map and temperature compensation will be ignored and only the given value will be used.  
 
Added a debug feature. So far in this page the fuel injection time can be overridden. This is useful when adjusting fuel maps and testing. When the injector time is overridden then the fuel map and WOT map and temperature compensation will be ignored and only the given value will be used.  
Line 345: Line 345:
 
This is to be used rarely, and only when tuning the engine or for testing different settings. This feature is available from Interface569 and firmware 1158.
 
This is to be used rarely, and only when tuning the engine or for testing different settings. This feature is available from Interface569 and firmware 1158.
  
==EZK Load Signal 9 April 2013==
+
=EZK Load Signal 9 April 2013=
  
 
This was a bit overdue, but before the ECU did not send a EZK Load signal to the EZK computer. This resulted in the timing not being adjusted correctly according to load.
 
This was a bit overdue, but before the ECU did not send a EZK Load signal to the EZK computer. This resulted in the timing not being adjusted correctly according to load.
Line 361: Line 361:
 
An extra field was also added to the Real Time Data tab to show the EZK load signal being sent at the moment.
 
An extra field was also added to the Real Time Data tab to show the EZK load signal being sent at the moment.
  
==New USB (LibUSB-win32) 22 April 2013==
+
=New USB (LibUSB-win32) 22 April 2013=
  
 
Ok, so far I have used serial emulation to communicate between the PC and the ECU. Not a very elegant solution, but its quick and easy to implement. Downsides were that the user needed to select the correct serial port before being able to connect. After connecting initially there was no problem and the user could forget about reconnecting. Well now I implemented a proper solution. The device now uses the LibUSB generic USB interface.
 
Ok, so far I have used serial emulation to communicate between the PC and the ECU. Not a very elegant solution, but its quick and easy to implement. Downsides were that the user needed to select the correct serial port before being able to connect. After connecting initially there was no problem and the user could forget about reconnecting. Well now I implemented a proper solution. The device now uses the LibUSB generic USB interface.
Line 381: Line 381:
 
On to more testing!
 
On to more testing!
  
==Adding Debug Tab 5 May 2013==
+
=Adding Debug Tab 5 May 2013=
  
 
Sometimes with tuning the car you want to completely ignore some values and override them with custom values to debug the car. A very good example is the fuel mapping. Sometimes to test the car and get exact injector timing you want to ignore the fuel map.
 
Sometimes with tuning the car you want to completely ignore some values and override them with custom values to debug the car. A very good example is the fuel mapping. Sometimes to test the car and get exact injector timing you want to ignore the fuel map.
Line 391: Line 391:
 
[[File:ECUDebugTab.jpg|500px]]
 
[[File:ECUDebugTab.jpg|500px]]
  
==More columns in the logging tab 10 June 2013==
+
=More columns in the logging tab 10 June 2013=
 
I have added some more columns in the logging tab, these extra values are purely for debugging and testing and shows all of the sensor data that is being read. This will help with any sensor problems, as you can see real time feedback of the values that are being read.
 
I have added some more columns in the logging tab, these extra values are purely for debugging and testing and shows all of the sensor data that is being read. This will help with any sensor problems, as you can see real time feedback of the values that are being read.
  
Line 423: Line 423:
 
The debug values are used for software debugging and in normal usage can be safely ignored.
 
The debug values are used for software debugging and in normal usage can be safely ignored.
  
==ECU Renaming 18 August 2013==
+
=ECU Renaming 18 August 2013=
  
 
I realised that calling this system the "Porsche LH Replacement ECU" is kind of infringing on the trademark of Porsche. So to avoiding any trouble I have remaned it to "LH Replacement ECU" or LHR Ecu. This should avoid any legal trouble. If it is infringing I will happily rename it more.
 
I realised that calling this system the "Porsche LH Replacement ECU" is kind of infringing on the trademark of Porsche. So to avoiding any trouble I have remaned it to "LH Replacement ECU" or LHR Ecu. This should avoid any legal trouble. If it is infringing I will happily rename it more.
Line 429: Line 429:
 
I also added a bunch of micro bug fixes and optimisations. These changes are too small and numerous to mention.
 
I also added a bunch of micro bug fixes and optimisations. These changes are too small and numerous to mention.
  
==Better Idling Control 27 October 2013==
+
=Better Idling Control 27 October 2013=
  
 
Thus far the idling has been a static value, and frankly it makes the car hunt while idling. To solve this I have reprogrammed the idle control. This also gives more flexibility to the user. Currently the idling can be adjusted from 500RPM to 1000RPM in 25ROM intervals. The general tab in the interface siftware was also rearranged a bit.
 
Thus far the idling has been a static value, and frankly it makes the car hunt while idling. To solve this I have reprogrammed the idle control. This also gives more flexibility to the user. Currently the idling can be adjusted from 500RPM to 1000RPM in 25ROM intervals. The general tab in the interface siftware was also rearranged a bit.
Line 437: Line 437:
 
[[File:ECUGeneralNew.jpg|500px]]
 
[[File:ECUGeneralNew.jpg|500px]]
  
==More Real Time Data 1 November 2013==
+
=More Real Time Data 1 November 2013=
  
 
Seeing that I am debugging and testing the system more and more I found that I want more data to be displayed in the real time tab. So here is the new Real Time Data tab that I am using
 
Seeing that I am debugging and testing the system more and more I found that I want more data to be displayed in the real time tab. So here is the new Real Time Data tab that I am using
Line 443: Line 443:
 
[[File:ECURealTimeNew.jpg|500px]]
 
[[File:ECURealTimeNew.jpg|500px]]
  
==Big Update and working system 1 April 2014==
+
=Big Update and working system 1 April 2014=
  
 
Ok, it has been a long time since I  updated. I went to South Africa for a holiday during February and March. This allowed me to do some major updates and testing. The result? A working and stable, reliable LHR ECU. I also went on a tour of South Africa with my girlfriend and this tour included a long road trip in the Porsche. Before I could do the road trip I did some changes.
 
Ok, it has been a long time since I  updated. I went to South Africa for a holiday during February and March. This allowed me to do some major updates and testing. The result? A working and stable, reliable LHR ECU. I also went on a tour of South Africa with my girlfriend and this tour included a long road trip in the Porsche. Before I could do the road trip I did some changes.

Latest revision as of 12:00, 24 July 2014