Dekoboko 凸凹

Bicycle-powered road quality measuring and mapping

Similar projects worth following
Using various sensors attached to a bike frame to measure road quality (cobblestone, gravel, bumps, holes) and log it by combining it with GPS and odometry data. The data can be analyzed to extract road features, classify different types of roads and detect damaged areas.

The aim is to provide cyclists (and eventually: skateboarders, longboarders and others) with smarter route planning by prioritizing smooth roads. Additionally, it can serve local governments to focus repair work on the streets that need it most.

The system can also be used to measure the intensity of downhill and offroad tracks. This allows the user to measure their own performance over time, compare different runs (also against other users), and choose new paths based on the desired difficulty/intensity.

Data analysis goals:
- Averaging of crowdsourced data
- Route planning choosing the smoothest path
- Road classification: asphalt, cobblestone, gravel, ...
- Defect detection: rough spots, potholes, ...


( Dekoboko / でこぼこ )
adjective, Japanese: bumpy, rough, uneven, irregular

We want to make your ride less bumpy!

The workflow.

Artist's rendition of the final product attached to the bike frame.

The system architecture.

Team Dekoboko 凸凹 after winning the Intel IoT Hackathon in Berlin!
Left to right: Ben, Maxim and Daniel

Current status:


  • Recording accelerometer data, smoothing
  • Parsing GPS data
  • Logging timestamped data
  • Basic pothole detection (indicated by dedicated LED)
  • Basic visualization of route and road quality


  • One-touch upload (integrate ESP8266)
  • Detailed analysis of data

Version history:

First version:
Created during the Intel IoT Roadshow Hackathon, using the Intel Edison and Grove modules for the accelerometer, GPS, LED bar graph and upload button.
Visualization website is up and running.

Second version:
Switched to Arduino plaftform, still using the Grove modules. Rewrote firmware from scratch. New custom cardboard box to keep wiring under control. Data is output through the serial port, as no WiFi chip was available at the time.

Third version:
Currently under development. Arduino + Adafruit Ultimate GPS Logger shield (with built in RTC and SD card). The accelerometer, LEDs and WiFi modules will be attached to the protoboard section of the shield.

  • 1 × Microcontroller Arduino Uno (originally Intel Edison)
  • 1 × Adafruit Ultimate GPS Logger Shield
  • 1 × Accelerometer ADXL345 (previously Freescale MMA7660FC)
  • 1 × GPS module on Adafruit Shield (originally Grove module)
  • 1 × RPM sensor (custom) For odometry data and sensor fusion

View all 15 components

  • THP

    Daniel09/21/2015 at 07:57 0 comments

    Unfortunately, we have not been able to update the project in order to compete for a place in the finals for The Hackaday Prize 2015.

    This was mostly due to the holiday period, including me spending some time completely off the grid (no electricity even, for some days). Also, since our team is now scattered across continents after the initial hackathon together, cooperation has been more difficult. Finally, there have been some delays in acquiring some new hardware necessary to advance the prototype to the next stage.

    We will nevertheless try to continue working on Project Dekoboko. We thank the organizers and everyone who has given support and feedback; we wish the best of luck to all the other participants and look forward to the Hackaday event at the Berlin Maker Faire. :-)

  • Artist's and Engineer's Rendition

    Daniel09/13/2015 at 15:55 0 comments

    In order to give a better sense of how the hardware will be attached to the bike frame, we created a quick sketch using a picture of our awesome bike and overlaying the envisioned design using a Wacom tablet.

    And for the fellow Mechanical Engineers among us, here is a hand-drawn sketch of the zip tie gripping mechanism as well as the attachment between the electronics' case and the mounting brackets. Four keyholes allow a quick and easy removal of the electronics. The mounting brackets could be custom designed to fit any bike frame (tube diameter, horizontal/vertical mounting, ...) and 3D-printed on demand.

    The left side of section B-B shows the mounting screws, while the right side reveals the way the zip ties are routed through the mounting bracket for optimal grip. Since my bicycle frame's tube is not round, the tapered edges also serve as a lock against any rotation along the tube's axis. Nice!

  • What to do with the data?

    Daniel08/14/2015 at 18:43 0 comments

    While the measuring hardware is working fine and collecting nice data, we are still working on what to do with that data afterwards. Currently, we are simply saving the maximum peak from the previous time frame (1 s) every time we log a new datapoint. The visualization then draws a line from one point to the next, with the color of the line representing the intensity of the vibration.

    Green areas are smooth roads, whereas orange and red areas represent medium and high surface roughness. It is easy to see how the main streets are rather smooth excluding some small defects, whereas the smaller, perpendicular cobblestone roads instantly stand out as long red lines.

    We can probably do a lot more by looking at the detailed waveform of the vibration.

    Blue: Raw data from accelerometer
    Orange: Smoothed envelope of vibration profile
    Red: Maximum acceleration measured within a certain timeframe

    Left part: bumpy road
    Right part: single potholes/bumps

    Potholes and bumps can be extracted not only by their short duration, but by the ratio of the red and orange curves.

    By looking at the envelope of the vibration over time, we could try to classify different types of roads. Maybe even a Fourier transform to get a detailed profile of a road, to determine whether it is a regular pattern (cobblestone) or a random roughness profile (going over grass, gravel, etc.).

    Detailed peak analysis could reveal features such as curbs and train tracks crossing the road.

  • Improving the enclosure and mounting system

    Daniel08/14/2015 at 07:00 0 comments

    While the first version of the enclosure did its job to demonstrate the feasibility of the project, there was clearly room for improvement.
    Some requirements:
    - The enclosure should be as water, weather and shock proof as possible
    - The power source (USB power bank) should be housed together with the electronics
    - No dangling wires; everything should look neat
    - Quick access to the controller's USB port should be possible, as well as the charging port

    Initial sketch.

    The mounting brackets are attached to the bike frame via zip-ties, which proved very reliable and robust during the hackathon. The case housing the electronics can be removed from the bike by releasing four screws, without having to remove the zip ties. Additionaly, a lid can be removed for quick servicing such as a firmware upgrade or for rechargint the USB battery pack.

    Here are some renderings of the new design, created to be 3D-printable, easy to assemble and adressing all the requirements mentioned above:

    We will use Adafruit's Ultimate GPS Logger Shield, as it provides GPS, RTC and SD Card logging, as well as enough prototyping space to attach the accelerometer and WiFi modules (for uploading).

    The blue PCBs are the Arduino and the Logging Shield. The case is longer than the PCBs to accomodate the USB battery pack that resides within the lower compartment, and the corresponding cabling.

    We keep the inside and outside of the box strictly separated, especially at the mounting holes. We took care to ensure there were absolutely no through holes on the top part of the enclosure, with could be exposed to rain while riding. None of the screw holes and nut inserts for the mounting mechanism provide a way for water to enter the enclosure.

    You can see this in the following pictures. Notice the orange cross sections. The case is actually upside down in the pictures; the PCBs will 'hang' from the mounting pads visible in the center.

    The bottom 'lid' will provide a lid to prevent water from leaking in from the bottom side. We will need to perform some rain tests to see whether this setup will stand up to the lovely German weather.

    We use keyhole style mounting holes to easily detach the unit from the bike frame (thanks Hackaday for providing the video with the inspiration for this!). Removing the cover on the underside reveals the USB port (for firmware updating) and the USB battery pack (for recharging).

  • Switching from Edison to Arduino

    Daniel08/14/2015 at 06:50 2 comments

    While we started off with the Intel Edison as the controller for the computer, some flaws or deficiencies soon became apparent:
    - It was rather big and clumsy
    - It drew a lot of power
    - It was a hassle to program, and the IDE (Intel XDK) was extremely slow

    We decided to switch to an Arduino Uno for the next iteration, to address these problems as well as to make the project available to a greater number of people already familiar with the platform. As a long time Arduino user myself, this also greatly sped up the development process, even though it initially meant rewriting everything from scratch.

    The sensor setup will stay the same for now, as the Grove base module is actually *designed for* the Arduino. Later on we shall develop a custom PCB to house all sensors and displays, to reduce the cost and keep the number of wires to a minimum.

    This is a view of the second iteration, still made out of cardboard, but much more compact and neat.

    Top: Individual LEDs (left), LED bar graph (right)
    Right: GPS module and antenna
    Bottom: Accelerometer module (screw-mounted), USB port
    Center: Arduino (bottom), Grove base module (top), red electrical tape (everywhere)

  • We won the Intel IoT Hackathon!

    Daniel08/14/2015 at 06:45 0 comments

    The idea for the project was born during the preparation for the Intel IoT Roadshow Hackathon held in Berlin on April 25, 2015.

    Initially wanting to build an (all-purpose) bike computer, we decided to focus on the aspect of measuring road quality seeing as this had not been done very often before, and it seemed like the perfect fit for the event, both in the time required to build a first working prototype, as well as regarding the hardware we were provided, which included the Intel Edison, an accelerometer, GPS module and other useful bits and pieces.

    After 24 hours of intense coding and debugging (most of the time was spent trying to get *any* program running on the Edison at all) and a quick test run around the block with the device attached to the bike frame and a MacBook in the backpack serving as a $1000 battery pack, we were able to present the project to the judges including actual, real measurement data! They were impressed!

    The mechanical design, a combination of a 3d-printed mounting bracket for the sensor and LEDs and a quick-and-dirty cardboard box hack to house the controller, was a looker, too!

    This event did not only provide the spark of inspiration for the project, but also the right tools for the job, the perfect athmosphere for getting things done quickly, and last but not least, the encouragement of the judges to keep on working on this idea after the hackathon

View all 6 project logs

  • 1
    Step 1
  • 2
    Step 2
  • 3
    Step 3

View all 4 instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates