Electronic – arduino – Building small, low-power pedometer/odometer with memory and time/date log

accelerometerarduinomemorytimer

Background

I'm a researcher looking at the use of personal tracking devices and apps (like Strava app or Fitbit device) for cycling. At the moment I'm designing a simple experiment where I want to measure the overall level of activity for a group of cyclists over a period of 1 month. Now, you will say: ask them to use an app to track it or ask them to write down the result from a low price odometer every day. The problem is that those solutions have a low reliability because they are dependent on participants commitment to track/report. What I want is something that will independently measure participants activity, and is hidden from them – let's say installed in the seat frame.

I looked at the range of low price odometers available on the market but they all have the same issues. They show the speed and distance when you cycle, but they don't give you much option for the storage of results in memory, nor they give you an option to timestamp the results. They usually have no automatic power management option – they don't turn on when you start cycling and turn off when you stop to save the battery.

Requirements

So I thought maybe the best way would be to build such device using Arduino components.

Here is the summary of the simple device I would like to get for my experiment:

  • turns on when the user moves bicycle
  • starts recording some activity-indicating data – steps, distance covered, speed, etc (whatever is the simplest to do)
  • records all the activity data in the memory
  • creates the time stamp every X minutes (or date stamp daily if thats easier)
  • turns off when person don't cycle for X minutes
  • is small enough to fit in a space like inside seat frame
  • can run on single battery for 1 month or more
  • can be build/obtained with low price (no more then ~£30)

Questions

Is it realistic to create such device using Arduino if I'm a beginner in this?

If not – what else would be realistic?

If yes – how would you do this, and what components would you use?

Alternatively, if you know existing (low price) device that meets my Requirements, I would also appreciate your feedback on this.

Update

Just to address a point by @DavidBrown and to clarify – can't use GPS, or even anything that has GPS. I wish I could use it (that would solve my problem). But ethical approvals at uni to use anything that even have a potential to track location of users are hell to obtain (i.e. takes long time).

Best Answer

I actually worked on a bicycle data logger a bunch of years ago (Used to be called the Tune PowerTap, then was bought by Graber and I don't what happened to it after that), so I am familiar with the issues .

As you say, low power is key. That means you have to do it right and not just grab a arduino just because that's all you know about. Arduinos are microcontrollers with a some hardware and a lot of software sugar coating around them. They are for people that don't want to know what is going on that just want to get a basic project working. Many tradeoffs were made for the sake of apparent simplicity. Ultra low power operation is one of them. To acheive really low power operation and near zero power standby, you need to design for that from the start, both electrically and in the firmware architecture. Physical size will also be a problem with a arduino.

It is unclear exactly what data you want to record. It appears you are only interested in distance traveled, which can be measured in terms of wheel rotations. The PowerTap used a fixed magnet on the wheel with a reed switch that would get close once per rotation. That sounds like a good transducer for you too, since it takes no power unless you want it to.

Basically, you need only a small micro connected to the reed switch signal, a large EEPROM, a 32768 Hz watch crystal to keep real time, and some sort of communication interface so that you can get a data dump. None of this is hard individually, but you need to wake up to design the hardware and the firmware architecture carefully to minimize power at every opportunity. So my answer is, yes it can be done, but it will require more expertise to do right than it appears you are currently imagining.