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.


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)


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.


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).

  • \$\begingroup\$ Questions of this breadth are difficult to answer. You have many questions in here. Some of them are subjective, and some are off topic (shopping). You will, at best, get broad, general answers. I think you will get a better response if you break this up into several smaller, focused, objective questions and ask them separately. \$\endgroup\$
    – Phil Frost
    Commented Jun 26, 2013 at 15:31
  • 1
    \$\begingroup\$ @Phil: You are right in that there are various details that could be asked about separately. However, the overall high level architecture is important in a device like this, so it is valid to discuss that here. I'm not voting to close this one (despite the fact that arduino was mentioned). \$\endgroup\$ Commented Jun 26, 2013 at 16:14
  • \$\begingroup\$ All the common bicycle computers I've used do go into a low-power mode when the bike isn't moving, and do store the results in a memory. Batterly life is usually many months. I usually lose them in the snow before the battery is dead. However, as you say, they don't timestamp the results; they just store a few counters like total distance, total time moving, etc. \$\endgroup\$
    – Phil Frost
    Commented Jun 26, 2013 at 16:19
  • \$\begingroup\$ @Phil: Actually the PowerTap does (at least used to) store the results. That was a while ago when available EEPROMs were smaller, so it could only store a ride or two. Maybe by now these things can store a month of data. \$\endgroup\$ Commented Jun 26, 2013 at 16:46
  • \$\begingroup\$ A quick google search brings up this gps tracker which detects movement and powers down when not in use (even has a built in magnet). They say it lasts 3-14 days when used on a vehicle. \$\endgroup\$ Commented Jun 26, 2013 at 19:36

2 Answers 2


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.


On the plus side I think that is an interesting project (juggling low power requirements, figuring out how to capture and interpret odometer sensor data, figuring out how to log it to a data shield to save it, keeping the price low). On the minus side, I think that is very very ambitious for a beginner.

There are a lot of parts to your whole picture. I think I would start with figuring out how to get the Arduino to read bicycle movement first (not storing it, not waking up to read it, not anything else). Have an Arduino mounted on the handle bars and figure out how to get movement data into it. Maybe it is capturing and interpreting input from an off the shelf digital odometer, maybe there is a module, maybe the thing to do is just record changes in location with a GPS module every x seconds and calculate distance traveled from that. I don't know, you'll have to explore.

My first recommendation would be to break it into small parts like that and advance the parts to get to the whole.

My second recommendation would be to go post this question (or even better - specific questions about specific parts of the project) to http://forum.arduino.cc/ They are more likely to help you out. Your "question" is broad enough you won't find much help here, and will probably be down voted and closed.

Good luck! It sounds like a fun idea!

  • \$\begingroup\$ Ok thank you. I guess I thought that maybe someone had an 'off-the-shelf' solution around here that does something similar. You're absolutely right that I need to get the basics right. GPS is unfortunately not an option due to privacy issues for participants, but I will explore those alternative options more. Cheers. \$\endgroup\$ Commented Jun 26, 2013 at 15:41
  • 1
    \$\begingroup\$ Why so serious? You present it all in bad light. All he needs is simple Arduino LilyPad with LiIon battery embedded. No GPS of cause. Count wheel rotations by magnet and reed, sure. Storage is a problem as long as you want to store everything. Don't. Find a way to do statistics in place and keep only results. Make your device to beep every hour if memory full - will make those test rats to upload data in time. \$\endgroup\$ Commented Jun 26, 2013 at 17:25

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