First Test

Today was the first test of the engine with the control unit and it worked! Albeit only for a short time and a bit roughly (only had about 10 minutes to test). Initially I just needed to check that the ECU was triggering the ignition and fuel injection, and find a roughly suitable ignition angle.


Turns out that it will start with an ignition angle of about 33 degrees before Top Dead Centre (TDC). Cranking speed with the pull chord is around 300 RPM.

I now need to make a few modifications to the software from observations I’ve made today:

  • Add a way to stop the engine by stopping ignition and fuelling

7 thoughts on “First Test

  1. Dennis

    Your ECU Project is very cool. I am trying to get a 1.8l 90hp Volkswagen engine running with your (modified) ecu. The Hardware is not the problem, but rather the Code. Could you send me your arduino Sketch and the fuelmap ? I have some trouble with the rpm-reading…

    Reply
    1. Scott Snowden Post author

      Well at the moment, it will only work for a single cylinder engine, so you would have to modify it quite a lot for your 4 cylinder engine, but if you’re able to do that, then I would be very interested to know how you get on. What Arduino software are you using at the moment? Do you have all the hardware for driving the coils and injectors? I will upload the Arduino sketch and post a link.

      What type of crank sensor does your engine have?

      Reply
      1. Dennis

        The ignition is pretty simple because the engine has a ignition distributor. The hall crank sensor gives me a positive rectangular signal at every tdc of a cylinder. The project is still in the “developing phase” and I think that i would drive the ignition coil and the injectors with n-Channel Mosfets. I have just some Problems with the code (running regular Arduino IDE) because I am not shure how to realize the RPM measuring (one of m mates said that he would start a timer at the start of the loop and measure how much signals the hall sensor gives and at the end of the loop stop the timer and divide the number of signals by the cylinders (4) and by the time. Then multiply the signals per miliseconds by 60000 to get the RPM. The last problem is that I have no idea how to integrate a a fuel map into the code. Thats the point where I need your code and help.

        Reply
        1. Scott Snowden Post author

          Well, I would probably suggest doing the RPM slightly differently. If you have one pulse per engine revolution, then I would use the Arduino micros() function to measure the time that it takes for the pulse to come around once. Then if you take the inverse of that, you will have the frequency of revolution. If you multiply that value by 60, then you will have the RPM. You shouldn’t need to do anything with the number of cylinders.

          Reply
          1. Dennis

            Can you send me your code via email? I am not shure how to use the micros() function because in the playgroubd is written that is measures the time betweeen the start of the arduino and now. My email adress is d.behnsen@googlemail.com
            Thanks

  2. Pingback: Updates | An Engineer's Blog

Leave a Reply

Your email address will not be published. Required fields are marked *