Pedal Rotation Angle and Velocity Measurement Using an Arduino Microcontroller


In the Powerbike project we develop methods for data acquisition, analysis, modelling, optimisation and visualisation of performance parameters in endurance sports with emphasis on competitive cycling. Essential part of the project is a bicycle simulator based on a Cyclus2 ergometer and our own PC-based control software. The simulator enables to collect high-precision data and simulate real-world tracks in our lab. To improve the simulation we plan the integration of an arduino microcontroller with additional sensors e.g. optical or magnetic ones in order to better measure the rotation angle and velocity of pedals.


  1. Get familiar with the Arduino Due and magnetic and optical sensors
  2. Develop an electronic circuit to interface the optical and magnetic sensors attached at the chain ring
  3. Program the Arduino microcontroller to collect sensor events and to compute the pedal position and velocity

For extension towards a thesis:

  1. Calibrate the measurement setup
  2. Design and implement a communication protocol for data exchange between the Arduino and our simulation software


  • Knowledge of C/C++ is of advantage.



  1. Arduino
  2. Arduino Due
  3. Arduino Language Reference
  4. Arduino Tutorials

Serial Communication

  1. Serial Programming Complete Wikibook
  2. Campbell, Joe. "C programmer's guide to serial communications." Sams publishing, 1994.
  3. Axelson, Jan. "Serial Port Complete: COM Ports, USB Virtual COM Ports, and Ports for Embedded Systems (Complete Guides series)." Lakeview Research (2007).


Alexander Artiga Gonzalez

Maciej Gratkowski