# Sensing magnetic pulses from a rowing boat impeller

I'm a mechanical engineer at uni who has some basic experience in electronics and programming. I'm building a system for my rowing boat to help me with my training. This will give me feedback on a variety of things like speed and rudder position. I'm using an arduino to build the project. I'm having a little trouble finding out what to use for the speed sensor. I have an rowing boat impeller which looks like this:

Basically the flow of the water causes the impeller to turn. Either side contains a magnet so there is effectively two pulses per rotation. The problem I'm having is picking up the pulses of the magnet. I bought a cheap reed switch to test this out and it only picked up when the magnet of the impeller is almost touching the switch. This is not ideal as it the impeller fin holds the impeller about 15-20mm from the hull of the boat. The sensor needs to be also mounted inside the hull therefore you have to factor in the thickness of the boat which is 5-10mm. So overall I need a sensing range of about 30mm. I've read that reed switches can sense up to 40mm effectively and read that the pull in range is to do with sensitivity (the lower the AT the higher the sensitivity.) Now I'm assuming this 40mm includes a strong magnet as the impeller uses a weak magnet I assume this is less. This website is doing the current thing that I want to acheive. They are charging £240 for the sensor. They will not tell me what sensor they are using. They claim they can measure accurately up to 60mm away and have measured up to 200mm on this website: http://www.peachinnovations.com/moreboatsensorfeatures.htm. They are using the same imepeller as me. I guess they are not using a reed switch. So basically my question is what are they using? And if it is a reed switch can you help me find one which would be suitable as I am struggling to know which ones are. Another website also claims they can measure up to 11" here: http://www.nkhome.com/support/troubleshooting/speedcoachgold.html (about a third of the way down)

• You might look into a hall effect sensor. Or wind a coil and see if that will respond to the magnet moving past it. Commented Feb 20, 2013 at 20:47

The way to do this is with a Hall effect sensor. I like the Allegro A1324.

It's a simple device. Give it 5v and 0v on pins 1 and 2. Pin 3 gives a voltage proportional to the magnetic field. You can sample this with an ADC, or you can use a comparator to convert this analogue value into a digital square wave.

• What makes a Hall sensor a Chopper stabilized Hall sensor? Or would that justify a question on its own? Commented Feb 20, 2013 at 21:00
• Without reading the datasheet, I would say in general the part probably have very low offsets. But yes, chopper parts justify their own question. Commented Feb 20, 2013 at 21:04
• Commented Feb 20, 2013 at 21:05
• The offset doesn't matter. This is easily adjusted for in the firmware. Commented Feb 20, 2013 at 21:31
• Yeah, the fact that it's chopper stabilised isn't really relevant to this application. I only mention this particular device because it's one I know well. Commented Feb 20, 2013 at 22:16

What is the purpose of the impeller if not to act as a sensor? If it is purpose built to act as a sensor then I suspect there ought to be some standard sorts of accessory sensing and signal conditioning solutions available to do the sensing. Unless you're buying an impeller specifically designed to be used with and only with the peach sensor unit I assume this should be a "standard" sensor configuration which supports a "generic" sort of multi-vendor sensor solution, so researching the suggested sensing topologies recommended by the impeller vendor should be fruitful. Anyway you can probably do it if you implement something like a flux gate magnetometer does whereby you have: (1) an easily saturable sensing coil (with its axis aligned to couple well to the field from the impeller magnet when it is at its closest approach) (2) a drive circuit that applies a sinusoidal (for instance) drive current to the coil such that it is driven in and out of saturation before the sine peaks regardless of the impeller magnet orientation. (3) a signal processing unit to look at the waveform of the drive signal across the sense coil. The saturation time will be retarded or advanced proportionally to the degree which the flux from the impeller magnet aids or cancels the coil flux from the drive signal.

You can get a differential measurement by using two similarly located / oriented coils but having opposing winding polarities so that as one is aided in saturating for a given drive current polarity and impeller magnet orientation, the other oppositely wound coil is retarded in its saturation. The difference between them will relate to the external field influence.

You might also get sufficient sensitivity with a GMR sensor such as is made by NVE: http://www.nve.com/index.php though not knowing your rotation rate and other details it is hard to say what kind of pick up would be suitable among the off the shelf hall / GMR / reed sensors.

You could use a magnetic pole piece to bridge a substantial length of the magnetic circuit between the proximate impeller pole location and the sensor location to help concentrate the signal (by increasing mutual inductance) available to the sensor from the magnet pole but it is hard to imagine that is necessary if the impeller is designed to work well and normally without such magnetic/mechanical accessories.

Of course you could mount the sensor outside the hull or sense the rotation of the shaft end where it breaches the hull or some alternative possibility.