I am trying to build an ignition cut module with an arduino as part of a DIY quickshifter on a motorcycle. I have build the circuit shown below.

enter image description here

The points A and B on the circuit fit inbetween the circuit on the motorcycle that powers the primary circuit of the ignition coils. The sketch on the arduino is configured in a way that when pin D2 goes low (When the sensor trips) a HIGH signal is sent out of pin D11, this high signal lasts for around 60ms and turns off the p-channel MOSFET that that amopunt of time. The effect of this is that the spark is cut on the motorcycle for around 60ms.

The circuit works fine when attached to a 12v bulb, however, when I connect the ignition circuit, wierd things start to happen, the arduino acts like the sensor is being tripped when it remains open. I believe this is down the back EMF from cutting the power to the ignition coils primary circuit. These are cut on a regular basis by the ECU to produce the spark, not only being cut by my circuit.

My question is how can I prevent the back EMF spikes from interfering with my circuit? From my reasearch it seems a flyback diode would be needed accross the inductive load. This isn't really an option as the coils are located elsewhere on the motorcycle and are sealed units, they are only fed by wires.

EDIT: Here is a diagram explaining where the circuit fits in relation to the ignition system.

enter image description here

Unfortunately I cannot add any more links, but I can give you the part number of the MOSFET: Infineon Ipp80P03P4L-04

The MOSFET needs to be constantly open, it makes sure that the engine will run, if the MOSFET is closed the spark plugs wont spark. This is why there is a pull down resistor on the MOSFET gate, so that if there is a problem with my circuit the MOSFET should be off and the coils will still fire. I considered using a depletion mode MOSFET but they seem surprisingly much harder to get hold of.

  • 2
    \$\begingroup\$ Tip: Always place a resistor (e.g. 10k) across gate and source of a P-Ch MOSFET. Where's the point A connected to? Battery? or where? And did you measure the voltage on the point A? I'm asking this, because if low state output of the driver IC is lower than the voltage on the point A then your MOSFET will try to turn on. And final question: Which brand & model MOSFET do you use? \$\endgroup\$ – Rohat Kılıç Oct 5 '16 at 11:22
  • \$\begingroup\$ I have added another diagram showing how this circuit integrates with the motorcycle. \$\endgroup\$ – Rickerman Oct 5 '16 at 12:32
  • \$\begingroup\$ So, I should add a 10k resistor between the gate and source? This will pull the gate to 12V though? Turning the MOSFET off? I need the MOSFET to default to being ON as mentioned in the edit. \$\endgroup\$ – Rickerman Oct 5 '16 at 12:35
  • \$\begingroup\$ Inductive spikes couple to all nearby cables. To raise the coupling impedance and shunt the noise , consider twisted pairs with a ferrite sleeve (aka CM choke) and RF ceramic cap across sensitive inputs. \$\endgroup\$ – Tony Stewart EE75 Oct 5 '16 at 13:05
  • \$\begingroup\$ How do I determine what value of ceramic capacitor(s) to use? \$\endgroup\$ – Rickerman Oct 5 '16 at 13:28

Electrical noise on vehicles (auto or motorcycle) is atrocious. There are a few things you can do to mitigate this.

Hard pull ups or pull downs. If you were going to use a 10k pull up, instead use a 5k or 1k. Be sure to keep in mind the drive capability of anything on these line so you don't burn something up.

Isolate your circuit from everything. Use an isolated buck converter. Use opto-isolators on the output. Keep the noise from getting in.

Decouple everything. Add capacitors every were. Use capacitors to form low pass filters on inputs.

Debounce the button in software. Don't just read the button once and assume it's high or low. Read the button once a millisecond. If the button has stayed at a steady state for more than 50mS then change states.

Use a metal enclosure.

  • \$\begingroup\$ I think you overestimated the ignition events by a factor of 60. 2000 rpm is 33 revolutions per second. 4 stroke so 16 ignition events per second. This method is used by a variety of commercial quickshifters. \$\endgroup\$ – Rickerman Oct 5 '16 at 13:26
  • \$\begingroup\$ I have tried using a harder pull up on the sensor wire, went down to 1k and it was still false detecting. I do have debouncing in the arduino sketch. Decoupling on the MOSFET drain and source sounds interesting, how do I know what value of capacitors to use? I assumed it was the back EMF spikes causing this issue as if I connect the board to the bike, but connect a 12v bulb across the MOSFET drain and source it works as expected, so I assumed it was the primary coild circuit providing interference. \$\endgroup\$ – Rickerman Oct 5 '16 at 13:26
  • \$\begingroup\$ @Rickerman I stand corrected, I did overestimate the ignition events. Ignition cuts just give me the heebie jeebies. I'll change my answer. \$\endgroup\$ – vini_i Oct 5 '16 at 13:35
  • \$\begingroup\$ @Rickerman A capacitor source to drain on the mosfet is a snubber. The value is selected as more of a trial and error. There are also RC snubbers that you could look at. If you have access to an oscilloscope, it would be a good idea to look at all the inputs, outputs and rails to quantify the kind and location of the noise. \$\endgroup\$ – vini_i Oct 5 '16 at 13:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.