Personal tools
User menu

Difference between revisions of "Porsche 928 LH Replacement Prototype"

From Francois Louw

Jump to: navigation, search
m (EZK Load Signal 9 April 2013)
 
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).
  
All the components were ordered from Digi-Key. 34 Different components, 840 components in total for 5 boards)
+
All the components were ordered from Digi-Key. 34 Different components (840 components in total for 5 boards)
  
 
After I got the PCB and components it was time to play around with solder paste and put all the components on. I baked the PCB, and then soldered on the through hole components.  
 
After I got the PCB and components it was time to play around with solder paste and put all the components on. I baked the PCB, and then soldered on the through hole components.  
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:
Fuel Pump Safety switchoff - After 10 sec of no engine turning the fuel pump will switch off
+
*Fuel Pump Safety switchoff - After 10 sec of no engine turning the fuel pump will switch off
Low battery compensation - When the battery voltage drops the injector open time is increased to compensate
+
*Low battery compensation - When the battery voltage drops the injector open time is increased to compensate
Resonance Flap - The resonance flap opens and closes depending on the RPM
+
*Resonance Flap - The resonance flap opens and closes depending on the RPM
Idle speed control - The idle speed control signal is sent out.
+
*Idle speed control - The idle speed control signal is sent out.
Closed Loop - The exhaust sensor is read and depending on the adjustment pot the fuel is enriched or leaned out (Can be enabled/disabled)
+
*Closed Loop - The exhaust sensor is read and depending on the adjustment pot the fuel is enriched or leaned out (Can be enabled/disabled)
Initial engine warm up sequence - Mixture is enriched upon initial engine startup
+
*Initial engine warm up sequence - Mixture is enriched upon initial engine startup
AC Enrichment - When the AC is switched on the fuel is slightly enriched
+
*AC Enrichment - When the AC is switched on the fuel is slightly enriched
Auto Idle Drop - When the box is in neutral the mixture is leaned out a bit
+
*Auto Idle Drop - When the box is in neutral the mixture is leaned out a bit
Engine Temperature - Mixture is enriched when engine is cold
+
*Engine Temperature - Mixture is enriched when engine is cold
WOT Mapping - Uses a different fuel map on WOT
+
*WOT Mapping - Uses a different fuel map on WOT
  
 
All of the above is working and is customiseable (how much to enrich with what temperatures, the amount to enrich/lean out with the AC, Idle Drop etc)
 
All of the above is working and is customiseable (how much to enrich with what temperatures, the amount to enrich/lean out with the AC, Idle Drop etc)
Line 189: Line 189:
  
 
The following still needs to be done:
 
The following still needs to be done:
"Accelerator Pump" - When the pedal is pressed the mixture must be enriched to compensate
+
*"Accelerator Pump" - When the pedal is pressed the mixture must be enriched to compensate
USB - The coding for the USB port still needs to be done
+
*USB - The coding for the USB port still needs to be done
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 351: Line 351:
 
The addition made was a simple 2D map, similar to the fuel map. The RPM intervals are 500RPM and the MAF voltage intervals are every 0.6V. This map is significantly more simple than the fuel map. There are also hard limits for the minimum and maximum signal that is sent.
 
The addition made was a simple 2D map, similar to the fuel map. The RPM intervals are 500RPM and the MAF voltage intervals are every 0.6V. This map is significantly more simple than the fuel map. There are also hard limits for the minimum and maximum signal that is sent.
  
The signal is a PWM signal at the same frequency of the input RPM signal from the EZK. The values rang from 0 to 255, with 0 being no signal and 255 being 100%.  The EZK signal can also be completely disabled. This results in a 0 load signal.
+
The signal is a PWM signal at the same frequency of the input RPM signal from the EZK. The values range from 0 to 255, with 0 being no signal and 255 being 100%.  The EZK signal can also be completely disabled. This results in a 0 load signal.
  
 
Here is a screenshot of the new tab in the Interface Software  
 
Here is a screenshot of the new tab in the Interface Software  
  
[[File:ECU-EZK.jpg|left|700px]]
+
[[File:ECU-EZK.jpg|500px]]
  
 
This table effectively allows the user to tune the EZK timing advance. The EZK can be programmed for different timing advances for different input signals. This allows exact tuning of the EZK timing advance.
 
This table effectively allows the user to tune the EZK timing advance. The EZK can be programmed for different timing advances for different input signals. This allows exact tuning of the EZK timing advance.
  
 
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=
 +
 +
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.
 +
 +
I had to rewrite the code on the ECU to use the new Microchip USB stack and I used the libUSB-win32 port. Most of the time the USB port communication in Windows is implemented using static libraries, and compiled into the Interface Software but I prefer to use dynamic linking. By using dynamic linking I don't have to worry about any problems integrating it into Qt.
 +
 +
New USB drivers are required when the new firmware is executed, as Windows detects a new device. After the new drivers are installed your Device Manager should have an entry like this:
 +
 +
[[File:ECUNewDeviceManager.jpg]]
 +
 +
With the new USB interface I don't have to rely on the slightly unstable Qt serial library. The coding required a complete rewrite of the Qt Interface communication protocol because the LibUSB implementation that I use is synchronous communication (vs. asynchronous with the serial emulation), requiring the Interface software to send a "Request for Data" instruction before reading the data. The Firmware required little change, seeing that on both instances I just empty the buffers that I use. On the firmware side I have 2KB buffer for receiving and another 2KB buffer for sending. That should be more than enough for any delays in data that can occur on the USB line. The windows interface uses 4KB send 4KB receive buffers because the way that Qt works there is more delays in the Interface software than in the Firmware.
 +
 +
Difference in operation to the user now is that in the Interface Software you don't need to select "Connect" anymore, and all detecting and communication happens automatically. when you switch on the ignition then the Interface software will detect and connect to the ECU. The Interface Software also gracefully detects disconnects and reconnects.
 +
 +
The USB code in the Interface Software is also threaded to allow for smooth communication.
 +
 +
Another change that was made was the status message box. I changed it to fix an annoying memory leak (shame on me for it being there in the first place).
 +
 +
On to more testing!
 +
 +
=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.
 +
 +
For this purpose I have added a debug tab. At the moment there is only one override value, for the fuel map.
 +
 +
a screenshot is shown.
 +
 +
[[File:ECUDebugTab.jpg|500px]]
 +
 +
=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.
 +
 +
The columns are:
 +
*Date
 +
*Time
 +
*RPM
 +
*MAF Value
 +
*Engine Temperature
 +
*EGT Sensor
 +
*CO2 Adjustment POT
 +
*Injector On Time
 +
*Injector Off Time
 +
*Duty Cycle
 +
*Throttle Position
 +
*EZK Load Value
 +
*Fuel Pump Status
 +
*LH Relay Status
 +
*Flappy Status
 +
*AC Switch
 +
*Gearbox Switch
 +
*Tank Vent Status
 +
*EZKTime(debug)
 +
*AccelJet(debug)
 +
*Firmware Build(debug)
 +
*MAF Raw Value(debug)
 +
*Idle PWM Out(debug)
 +
*Current RPM(debug)
 +
*USB Buffer Count(debug)
 +
 +
The debug values are used for software debugging and in normal usage can be safely ignored.
 +
 +
=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 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=
 +
 +
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.
 +
 +
Here is screenshot of the new and improved general tab.
 +
 +
[[File:ECUGeneralNew.jpg|500px]]
 +
 +
=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
 +
 +
[[File:ECURealTimeNew.jpg|500px]]
 +
 +
=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.
 +
 +
One big change was that I installed a wideband exhaust sensor that tells me the exact air to fuel ratio. Without this tuning the car is impossible.
 +
 +
I updated some timing on the interrupts of the firmware. The USB were not loading fast enough before the car starts (by about 50ms) so I delayed the firmware by 50ms to compensate.
 +
 +
Tuned the fuel map, I did not have access to a full dyno, so the tuning was done using the wideband sensor and driving. I got someone to drive the car while I tuned and checked the wideband readings.
 +
 +
Some minor fixes, changes and optimisations were done. The result? One awesome car to drive! To test the car properly '''I drove 3800KM in the space of 2 weeks with the ECU on the road trip with zero modifications'''.
 +
 +
To show off I made a proper video of the entire ECU as it is at the moment. This includes the Interface software, logging, opening the log and plotting graphs and finally driving with the ECU in the original ECU location. This replacement ECU fits in the original housing. The only visible difference between the LHR and the original is the USB cable coming out of the side. This can be easily tucked away behind the carpet, making it invisible and just like new.
 +
 +
{{#ev:youtube|SYrvetwMzHc}}
 +
 +
'''Stuff to do'''
 +
 +
Closed loop control. The closed loop control is not programmed, at the moment the ECU works only in open loop mode. I do not have a narrowband (option on my car was without the sensor) and the wideband is not connected. I will not be able to implement and test this on my car in the near future, but any volunteers are welcome that want to test it if they have the sensor.
 +
 +
Making  revised PCB. I have started designing the revised board, it will be smaller and a lot more power efficient. I also added the option of enabling more sensors to be connected to allow for easy mods and cstomisation.
 +
 +
'''Selling prototype copies'''
 +
 +
At this moment I can make copies of this prototype for people who want it. I need to have at least 5 orders to do a batch. The lead time is 6 weeks from date of ordering the components till delivery. The price? '''US$300+p&p'''. This includes cables and the interface software and future updates to the software and firmware. What it does not include is the housing or the LH Connector. I do offer the service where you post your current ECU and I will swap it out for you with the connector and put it inside the original housing, post it all back to you, your original ECU along with the replacement. Contact me for pricing on that. Another option is a different housing with a different connector. It includes the connector that goes on the wiring side also.
 +
 +
My email is francois.louw@(this domain). Feel free to email me for information and requests.

Latest revision as of 12:00, 24 July 2014