Measure Skateboarding Device.


The concept is to use technology to physically reconnect with our bodies and our environments. The concept is to go skateboarding. The device tracks, measures and excels individual and communal progression in skateboarding.

Using an accelerometer located within a riser pad data would be wirelessly be transmitted to an application on a smart phone via Bluetooth. This data would be linked to the users Skateboarding social media profile where accumulated data would be sorted and displayed in the following categories; trick performed, trick speed, trick height. When the user preforms the same trick repeatedly trick percentages (consistency) and total number of tricks would be calculated.

Users with profiles could then be placed on a global ranking scale and could compete to be the best in the world.

The goal would be for this devise to be put into production and sold on a large scale to the public.

When the device is used in conjunction with a smart phone such as an iPhone, Google maps could then cluster what tricks where performed where and when. This would help with the skateboarding phenomenon of “already been dones”. Google maps would start to collect clusters of good skate spots. This would help individual skaters to find spots they have never been to furthering progression.

The system would allow individual skaters to track their progression and skills in a real-time. By allowing the skater to see/measure/track their skills/progression compared to others it pushes them to make more/bigger/more consistent tricks.

Skateboards are built to be very modular because they take a fair amount of damage and parts need to be replaced at different times. Riser pads are a piece of plastic that separates the trucks from the deck giving the complete board more height.  I have contained my electronics inside of a hard plastic riser pad that I’ve milled so there are no exposed parts. This project works because the user doesn’t have to do anything. Everything is done autonomously. All the user has to do is create a profile and go skateboarding.

Experience Prototype

i. User Buys device.

ii. User downloads App from AppStore and registers their account.

iii. User creates an account on the Skateboarding social media website and syncs App.

iv. User syncs phone with device.

v. Install Rider Pads on skateboard with four bolts.

vi. User is free to go skateboarding.

vii. When tricks are performed App syncs with online profile, and Google Maps.

viii. When board is inactive sleep mode initiates saving batteries.

ix. Data is now available online for all users to view.

Physical Prototype

In my prototype I’m using an Arduino Pro Mini, an accelerometer, Bluetooth Smurf Silver, and a Lithium polymer battery.

i. 3rd attempt at perf board circuit sucsessful. Included accelerometer, Arduino Pro Mini.

ii. BluetoothSmirf Silver (not the compatible Bluetooth Mate Silver) I had to jump the pins to make the proper connections.
iii. Lithium Polymer battery 3.7V.

iv. Completed Circuit.

v. 2 piece Riser Pads with bolts. I milled the center cores out of these so electronics could be

contained within but still provide adequate foundation for the trucks.

vi. Electronics Stashed in riser pad.

vii. Final prototype assembled.

Arduino Sketch

I have created an Arduino sketch that recognizes if a user ollies, and kickflips.
// these constants describe the pins. They won’t change:
const int groundpin = 2;             // analog input pin 2 — ground
const int powerpin = 4;              // analog input pin 4 — voltage
const int zpin = A2;                  // z-axis of the accelerometer
const int ypin = A1;                  // y-axis
const int xpin = A0;                  // x-axis (only on 3-axis models)
int sensorValue;
void setup()
// initialize the serial communications:
// Provide ground and power by using the analog inputs as normal
// digital pins.  This makes it possible to directly connect the
// breakout board to the Arduino.  If you use the normal 5V and
// GND pins on the Arduino, you can remove these lines.
void loop()
// print the sensor values:
// print a tab between values:
// delay before next reading:
Processing Sketch

Working from a tutorial I found here I was able to post to my Twitter account with a mouse click. I then combined it with code from the graph example and was able to create serial driven Tweets. The problem is that the posts go to my Twitter account anytime there is any data from the serial, which is every 100(millis). The accelerometer when at rest reads around 550 due to gravity, therefor a post goes to my Twitter account every 100(millis) instead of whenever a Trick is preformed.

I’ve added and if statement in relation to the zpin to try and control this but now Tweets have stopped all together for now. I am continuing to work this out with the help of users of the Arduino and Processing forums.


Uses Twitter4j,

For more info:

Daniel Soltis, September 2010

Edited by Michael Vaughan, April 2011.


import twitter4j.conf.*;

import twitter4j.internal.async.*;


import twitter4j.internal.logging.*;

import twitter4j.http.*;

import twitter4j.api.*;

import twitter4j.util.*;

import twitter4j.internal.http.*;

import twitter4j.*;

import processing.serial.*; //new

String msg = “Ollie”; //my tweet

//copy and paste these from your application in

String consumer_key = “cv50u99znWOAOnOEUkhDA”;

String consumer_secret = “dzVnD4nLzQd9FAUg47AyEVJKPQgY6ey6dsdOZDsj2FY”;

String oauth_token = “276648172-s7m9Z4BPDlREyGJkllFKu84lguDeWkJU4ZKm6Y9E”;

String oauth_token_secret = “zKN1i9SGNeh6PDjrEmv8BzeAYrErRac3Mjfs9XjU”;

color bgcolor = color(255);

long timer;

Serial myPort;        // The serial port

int zpin = 2;                  // z-axis of the accelerometer

int ypin = 1;                  // y-axis

int xpin = 0;

void setup() {


//new below

// List all the available serial ports


// I know that the first port in the serial list on my mac

// is always my  Arduino, so I open Serial.list()[0].

// Open whatever port is the one you’re using.

myPort = new Serial(this, Serial.list()[0], 9600);

// don’t generate a serialEvent() unless you get a newline character:


//new above


void draw() {


bgcolor = color(255);


void loop(){

if((zpin)>600) {

Twitter twitter = new TwitterFactory().getOAuthAuthorizedInstance (

consumer_key, consumer_secret,

new AccessToken( oauth_token, oauth_token_secret) );

try {

Status st = twitter.updateStatus(msg + ” ”  + second());

println(“Successfully updated the status to [” + st.getText() + “].”);

bgcolor = color(0,0,255);

timer = millis();


catch (TwitterException e) {




Leave a Reply

A sample text widget

Etiam pulvinar consectetur dolor sed malesuada. Ut convallis euismod dolor nec pretium. Nunc ut tristique massa.

Nam sodales mi vitae dolor ullamcorper et vulputate enim accumsan. Morbi orci magna, tincidunt vitae molestie nec, molestie at mi. Nulla nulla lorem, suscipit in posuere in, interdum non magna.