Announcement

Collapse
No announcement yet.

Arduino Tachometer - How to interface w/ ignitor?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Arduino Tachometer - How to interface w/ ignitor?

    So I have a grand dream of being an electronics whiz, so I tend to dream up projects but never follow through with them when I realize my knowledge just isn't there. This might be yet another one of those projects

    I found this post going over the use of an Arduino module that has a digital display, LEDs, and multiple buttons.



    And after watching the video at the bottom of that page, this would be an awesome way to implement a tachometer, gear indicator, and even fuel level meter (could even do a speedometer) using all of the stock sensors.



    Now, there are multiple ways that the AVR microcontroller (MCU) on the Arduino can interface with the ignitor unit (well, off of the coil input). One option is an external frequency to voltage converter (read through the data sheet on the LM2907 and got lost), which then gets read on an input to the MCU. Another is to connect the coil input directly (through a voltage divider or something) to an input pin, then poll it or set an interrupt. The code will then calculate the frequency.

    However, this is all pointless unless I know how the ignitor works. I read the sticky thread by kokar which is pretty impressive. I know the ignitor on the GS650 is different, but it is pretty much connected the same way. To me it seems that ignitor powers up the primary coil by opening up a ground connection (+ is always connected to the coil), and it uses the signal from the signal generator to know when to close the connection, causing the coil to fire to the plug. If this is the case, couldn't I just check how often the (-) side of the coil is pulled low? Will I have any scary voltage spikes on the primary coil circuit? It's at this point that I tend to get lost when people start talking about how to get a reliable voltage value on an input.

    I've done AVR programming before, so I have that covered. I'm just hoping to figure out a simple way to obtain a frequency signal without having to get a degree in electrical engineering. Any help would be appreciated!
    1983 GS650G
    Build thread: http://www.dotheton.com/forum/index.php?topic=66251.0

    #2
    Look into tapping the wire that comes from the signal generator. I think that's what the call it they sensor at the crank. A certain auxiliary tach I used found a signal there. (A SportVue MC1, speedo works, tach display is so useless I disconnected it.)
    Dogma
    --
    O LORD, be gracious to me; heal me, for I have sinned against you! - David

    Skeptical scrutiny is the means, in both science and religion, by which deep insights can be winnowed from deep nonsense. - Carl Sagan

    --
    '80 GS850 GLT
    '80 GS1000 GT
    '01 ZRX1200R

    How to get a "What's New" feed without the Vortex, and without permanently quitting the Vortex

    Comment


      #3
      I'll have to figure out what type of signal is being generated though. Maybe I'll pick up a cheap digital oscilloscope and see what's going on.
      1983 GS650G
      Build thread: http://www.dotheton.com/forum/index.php?topic=66251.0

      Comment


        #4
        Originally posted by JonnyC View Post
        However, this is all pointless unless I know how the ignitor works.
        It works by grounding and un-grounding the ignition coil. Some units also have the advance curve built into them as well, but that has no relevancy on what your intended purpose is.
        De-stinking Penelope http://thegsresources.com/_forum/sho...d.php?t=179245

        http://www.thegsresources.com/_forum...35#post1625535

        Comment


          #5
          Originally posted by JonnyC View Post
          I'll have to figure out what type of signal is being generated though. Maybe I'll pick up a cheap digital oscilloscope and see what's going on.
          Have you looked at the open source DSOs? They're cheap enough that I'm tempted to pick one up just in case.
          Dogma
          --
          O LORD, be gracious to me; heal me, for I have sinned against you! - David

          Skeptical scrutiny is the means, in both science and religion, by which deep insights can be winnowed from deep nonsense. - Carl Sagan

          --
          '80 GS850 GLT
          '80 GS1000 GT
          '01 ZRX1200R

          How to get a "What's New" feed without the Vortex, and without permanently quitting the Vortex

          Comment


            #6
            Originally posted by Dogma View Post
            Have you looked at the open source DSOs? They're cheap enough that I'm tempted to pick one up just in case.
            Yup, that's exactly what I was looking at. I've had this Ebay listing open in my browser for quite some time...

            1983 GS650G
            Build thread: http://www.dotheton.com/forum/index.php?topic=66251.0

            Comment


              #7
              I think generally anything on the primary side is going to be close to a low duty cycle square wave between 0-12V but there are positive and negative spike above and below this.

              I did quite a bit of signal conditioning for the Innovate MotorSports LM-2. Basically that device has the tach signal going into a counter input of a embedded processor. On the LM-2 there is some signal conditioning but in addition to that I did some clipping between ground and 5V.

              The LM-2 manual is available on line and there are some instructions on how to condition the signal. Unfortunately I cant find any of the scope traces that show input and output and the forum over there (where it was all posted) is shut down.

              Comment


                #8
                Originally posted by posplayr View Post
                I think generally anything on the primary side is going to be close to a low duty cycle square wave between 0-12V but there are positive and negative spike above and below this.

                I did quite a bit of signal conditioning for the Innovate MotorSports LM-2. Basically that device has the tach signal going into a counter input of a embedded processor. On the LM-2 there is some signal conditioning but in addition to that I did some clipping between ground and 5V.

                The LM-2 manual is available on line and there are some instructions on how to condition the signal. Unfortunately I cant find any of the scope traces that show input and output and the forum over there (where it was all posted) is shut down.
                This is great info, thanks! It's those swings outside of 0-12v that scare me, as I don't know how input pins in the microcontroller will handle them. Looking at the LM-2 manual, they seem to only suggest using a potentiometer (variable voltage divider) on the tach input. Maybe this would be enough.
                1983 GS650G
                Build thread: http://www.dotheton.com/forum/index.php?topic=66251.0

                Comment


                  #9
                  Can't you slap a zener diode on the inputs or use an opto-isolator?
                  De-stinking Penelope http://thegsresources.com/_forum/sho...d.php?t=179245

                  http://www.thegsresources.com/_forum...35#post1625535

                  Comment


                    #10
                    Originally posted by rustybronco View Post
                    Can't you slap a zener diode on the inputs?
                    Yes I think that is what I used to clamp the input to that absolute (+) voltage range.

                    Comment


                      #11
                      To make your application a little more universal, why not just trigger it from the ground side of the coil?

                      Regardless of whether the bike has points or electronic ignition ("igniter"), the coils have a constant supply of 12V at one terminal and the ground terminal is switched, so it is intermittent.

                      Just remember that there is nothing "magical" about the ingiter, it is simply a box of transistors that do the switching of the coil ground wire, instead of mechanical points.
                      Except for the later units ('83 and up?), that is all that happens in the igniter box. The newer units also did the ignition advance.

                      Reading your pulsed signal at the coil would then not matter which type of system you have.

                      .
                      sigpic
                      mine: 2000 Honda GoldWing GL1500SE and 1980 GS850G'K' "Junior"
                      hers: 1982 GS850GL - "Angel" and 1969 Suzuki T250 Scrambler
                      #1 son: 1986 Yamaha Venture Royale 1300 and 1982 GS650GL "Rat Bagger"
                      #2 son: 1980 GS1000G
                      Family Portrait
                      Siblings and Spouses
                      Mom's first ride
                      Want a copy of my valve adjust spreadsheet for your 2-valve per cylinder engine? Send me an e-mail request (not a PM)
                      (Click on my username in the upper-left corner for e-mail info.)

                      Comment


                        #12
                        Originally posted by posplayr View Post
                        Yes I think that is what I used to clamp the input to that absolute (+) voltage range.
                        Did you project against swings above (+)12v then?
                        1983 GS650G
                        Build thread: http://www.dotheton.com/forum/index.php?topic=66251.0

                        Comment


                          #13
                          Originally posted by Steve View Post
                          To make your application a little more universal, why not just trigger it from the ground side of the coil?
                          That's what I plan to do now. Now I just need to figure out how to do it. And despite this being basic electronics, like I said, I pretty much don't know anything, so it's amazing how long it takes me to think through this stuff.

                          From the MCU datasheet:

                          Port B is an 8-bit bi-directional I/O port with internal pull-up resistors (selected for each bit). The Port B output buffers have symmetrical drive characteristics with both high sink and source capability. As inputs, Port B pins that are externally pulled low will source current if the pull-up resistors are activated. The Port B pins are tri-stated when a reset condition becomes active, even if the clock is not running.
                          And reading about pull-up resistors here...



                          if I have this right, if I enable the pull-up resistor on the input pin, it should read HIGH whenever the ignitor ("button" in the image above) disconnects the primary coil circuit (firing), and read LOW whenever the primary coil circuit is connected (charging).

                          Would the only other thing to do then is add a diode between the input pin on the ground side of the coil to prevent current from flowing into the input pin? (well, actually out of the input pin - that positive/negative thing always confused me).

                          I apologize if this is not the right place to discuss this stuff, or if it's too elementary. One site forum that has a lot of information is allaboutcircuits, but they prevent people from talking about anything automotive related.
                          1983 GS650G
                          Build thread: http://www.dotheton.com/forum/index.php?topic=66251.0

                          Comment


                            #14
                            Originally posted by JonnyC View Post
                            ...
                            I apologize if this is not the right place to discuss this stuff, or if it's too elementary. One site forum that has a lot of information is allaboutcircuits, but they prevent people from talking about anything automotive related.
                            Oh, this is the right place, all right. Carry on.

                            Myself, I'm interested in this thread because I sometimes daydream of an all-Arduino gauge cluster that compares a combination accelerometer and GPS speedo against wheel speed to monitor tire pressure. Readouts would be stepper-driven needles, possibly with digital displays to supplement.

                            Just a daydream of course. I have far more ideas than time and money, so I have to live vicariously through others.
                            Dogma
                            --
                            O LORD, be gracious to me; heal me, for I have sinned against you! - David

                            Skeptical scrutiny is the means, in both science and religion, by which deep insights can be winnowed from deep nonsense. - Carl Sagan

                            --
                            '80 GS850 GLT
                            '80 GS1000 GT
                            '01 ZRX1200R

                            How to get a "What's New" feed without the Vortex, and without permanently quitting the Vortex

                            Comment


                              #15
                              I've also been thinking about building a microcontroller based system for the GS bikes.

                              I recently got a low end Owon DSO (http://www.saelig.com/PSBEB100/PSBEB100005.htm), so now I can start exploring the electrical system. It'll probably be a few weeks before I can really dig in, but I'll make sure to post everything up here when I do.

                              JonnyC: The description you have of the ATmega pin is correct, and you'll want to use a Zener clamp to limit the voltages going in (http://sound.westhost.com/appnotes/an008.htm).

                              The design I've been thinking about has a central brain that controls everything. I wanted to do a custom PCB that can be mounted somewhere near the battery, and allows connections from each of the different sensors (fuel gauge sender, brake light, headlight switch, etc) and the various outputs (headlight, taillight, turnsignals, etc).

                              The second piece of the system would be the gauges. I've been trying to find an older speedo/tach that I can modify to use steppers. If I don't find that, I'll end up using LEDs and a shift register.

                              The two pieces will talk with each other via a common bus (UART or CAN). The cool part is that then I can build different displays that would just use the same data from the brain.

                              Sorry if I hijacked a bit, but this project just got me excited to start my own!

                              Comment

                              Working...
                              X