Rower sensor reverse-engineering help

Hello everyone,

Arduino & electronics newbie here...maybe you can help me with my little project: I am building a replacement for my Waterrower's A1 monitor (which only gives basic stats) with an Arduino Yun and an LCD shield.

A bit of background: Recently I bought a Waterrower A1 which comes with a simple monitor that only keeps track of a bunch of stats (rowing time, meters rowed, speed, etc.).

Unfortunately I am growing tired of having to copy the stats on an excel sheet every time I finish exercising, so since it's 2015 and we have the technology I decided to build a replacement monitor (better,stronger,faster) with an arduino Yun.

It seemed pretty simple at first because the rower keeps track of the rowing via what I believe is a 2 wire reed-switch sensor placed statically on the frame. Under it there is a wheel with 6 magnets placed at the same distance one from the other that constantly spins under the sensor whenever I row. I verified with a multimeter that whenever one of the magnets gets placed under the sensor there is continuity between the 2 wires.

I was able to hook up and read the sensor via digital pin 2 and count the number of impulses using an interrupt and I have already made the Yun give me stats on time elapsed, meters rowed and meters/min performances.
I have also managed to write to the SD card to save the stats and show the results in a graphical way via the web server and some code using the c3js graphic library. Considering this is the first time I work with an Arduino I'm pretty psyched!

Now, since the meters/rotation ratio is not 1:1 I needded to find out what the ratio of impulses : meter is, so what I did was to hook up the sensor in parallel to both the original monitor and the Yun so that I can compare the readings. This way, after rowing for about 10 min and having the Yun keep track of the number of impulses and the original monitor the number of meters I was able to come up with a ratio of 4.805 impulses/meter.

The problem that I am having now is that everything works fine with the sensor hooked up to BOTH monitors (i get a discrepancy of about 5M every 1000 but that's good enough for me), but as soon as I disconnect the original monitor then it seems that the Yun is counting MORE impulses (like 2/3 more) than it should, thus throwing off all of my calculations.

I am thinking that the original monitor has some kind of filter that reduces the number of impulses, but by taking it apart and looking at the traces I can't really tell what's going on. Also I do not have the specs for the sensor so I do not know what kind of voltage it's expecting.

Here is a picture of the original monitor's board

...can someone give me some tips?

Thanks in advance,

Giordy

gbianchi:
Hello everyone,

Arduino & electronics newbie here...maybe you can help me with my little project: I am building a replacement for my Waterrower's A1 monitor (which only gives basic stats) with an Arduino Yun and an LCD shield.

Thanks in advance,

Giordy

What is your circuit for the sensor when you connect it to the Yun?

chuck.

Do you have pull up R in use with the sensor?

Weedpharma

@chuck: the negative lead of the sensor is connected to ground and the positive to pin 2.

@weedpharma: in the setup() i have

pinMode(ROWERINPUT, INPUT_PULLUP);
digitalWrite(ROWERINPUT, HIGH);

which I believe activates the internal pull up resistor of the pin.

FYI I did some more research yesterday and I came to the conclusion that the original monitor has a de-bounce circuit.

As a simple test I tried to make the two leads coming out of the original monitor touch in order to close the circuit and simulate an impulse from the reed switch and I see that the meters increase every 5 times they touch, where if I do the same thing with the Yun the meters skip ahead a lot faster.

To get around this I added a simple de-bounce routine in the code. I'm still tweaking the timing but it looks pretty good so far.

This week I'm going to do some 20-min sets and compare them to the ones I did with the original monitor.

If you are up for sharing your code, please upload to:

i've put as far as I have got with a similar project on an air-rower (not-concept2) - where I wanted a more accurate computer and informative than the one that came with it.

Steve

Hello Steve,

I'm glad we're working on something similar!
I actually expanded the project quite a bit...you can find it here.

PM me if you need any help.

gbianchi:
FYI I did some more research yesterday and I came to the conclusion that the original monitor has a de-bounce circuit.

On the image you supplied component 103 is probably your debounce capacitor and 100K looks like a link to VCC to charge the Capacitor.