Arduino and Plotly Based Seismograph




Introduction: Arduino and Plotly Based Seismograph

This is a simple arduino based Seismograph that send the data it collects to a python script that graphs the data live and can export it to plotly. This seismograph is fairly sensitive, it can detect a person jumping beside it. The seismograph is mostly made of wood and uses a simple arduino circuit to record the data. You can see a plotly graph of me jumping beside it here.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Tools and Materials


  • One 7 1/2" X 18 1/2" Piece of 3/4" or 1/2" plywood
  • Two 16 1/2" Pieces of 2 1/2 X 3/4" wood
  • Two 7 1/2" Pieces of 2 1/2 X 3/4" wood
  • One 13" Piece of 2" X 2"
  • One 4" Piece of 2" X 2"
  • Screw
  • 1/8" X 18" of steel rod
  • A Ball
  • Hard Drive Magnet
  • Fishing Line or Thin Cable
  • 2" X 2" piece of 1/4" metal
  • Gravel
  • Arduino
  • Breadboard
  • LM6386-N
  • Jumper Wires
  • Python with pygame and plotly library(See last step)


  • Hot Glue Gun
  • Drill and Drill Bits
  • Bench Grinder
  • Center Punch

Step 2: The Base

To make the base start by lining up the four 2 1/2" X 3/4" pieces of wood to make a rectangle as shown. Next drill a pilot hole 3/8" from the edge of the shorter pieces of wood and into the ends of the longer pieces. Finally, screw the four pieces together using the pilot holes tho make a rectangle.

Step 3: The Arm

To make the arm start by drilling three 1/16" holes about 3/4" apart in the center of the 4" piece of 2X2(See second picture). Next drill a pilot hole in the top of the 13" 2X2 and at the opposite end of the 4" 2X2 from the three holes. Finally, screw the two pieces using the pilot hole to make a L shape.

Step 4: The Hinge

To make the hinge start by drilling a hole with a 7/64" bit as deep as the pointed part of the bit in the center of the piece of metal. Then drill a hole that is big enough for a screw to pass though about 1/4" away from the edge and repeat for the opposing edge. Lastly screw the metal plate into the arm 4" from the bottom(see last picture).

Step 5: Assembling the Base

To assemble the base just screw the L shaped arm to the center of the shorter edge of the piece of plywood using pilot holes.

Step 6: The Boom

Start by sharping one end of the 1/8" rod with a bench grinder or Dremel. Next, using the center-punch mark a hole about 2 1/2" from the unsharpened end of the rod and then drill a 1/16" hole though the rod(see second picture). Then cut off 2 1/2' of thin cable or fishing line and feed about an inch though the hole you just drilled and then bend the one inch part of the wire so it is parallel to the rod and duct tape it into place(second picture). After that, hot glue the hard drive magnet in place as shown in the second and third picture. Now we will start making the counter weight, first cut the ball in half and drill a 1/8" hole in the center of one of the halves. Next slide the unsharpened end of the rod though the hole in the ball until it reaches the the duct tape holding the cable in place and then hot glue the half ball in place(second last picture). Finally, fill the half ball on the rod with gravel or sand and hot glue the two halves together.

Step 7: The Feedback System

To make the feedback system, start by following this instructable up to step three. Next feed the cable from the boom though the holes in the arm as shown in the second picture and then line the pointed end of the boom up with the shallow hole in the metal plate as shown in the third picture and adjust the cable until the boom is level and adjust the top part of the arm by loosening the top screw and moving the top of the arm until the boom is straight. Lastly measure how high off the ground the magnet on the boom is and subtract the height of the transformer plus 1/8" and cut a 2X2 that length and then hot glue the transformer to one end of the 2X2.

Step 8: Final Assembly

Begin by lining up the 2X2 with the transformer with the magnet on the boom and marking that spot with a sharpie. Next, drill two pilot holes in the area you just marked out and in the end of the 2X2 and then screw the 2X2 in to place using the pilot holes. After that, screw the plywood platform to the 2 1/2" X 3/4" base using a screw in each corner.

Step 9: The Electronics

Begin by attaching jumper wires to the transformer and then hook the arduino up as shown in the first picture replacing the microphone with the wires from the transformer.

Step 10: The Arduino Sketch

Once you have uploaded the sketch to the Arduino open the serial monitor, if all you see is X when the seismograph is not moving then you don't need to change anything(picture 3). If are alternating numbers on the serial port(picture 2) then replace 581 in the if statement with the larger of the two numbers on the serial port and 580 with the smaller.

Step 11: The Python Script

To use the python script you will need pygame and plotly libraries and a plotly account. To make the script work you just have to replace "serial port" on line three with the serial port your arduino is connected to which can be found in the bottom left hand corner of the arduino ide. You will also have to replace "user name" with your plotly user name and API key with your plotly API key found here.

Data Visualization Contest

First Prize in the
Data Visualization Contest

Full Spectrum Laser Contest

Participated in the
Full Spectrum Laser Contest

Arduino Contest

Participated in the
Arduino Contest

Be the First to Share


    • Trash to Treasure Contest

      Trash to Treasure Contest
    • Wearables Contest

      Wearables Contest
    • Fix It Contest

      Fix It Contest

    9 Discussions


    Question 1 year ago on Step 11

    The programming shows invalid syntax in 65th line where it is showing "print len (x)". How to solve that problem?

    Invalid syntax.png

    2 years ago

    Why am i keep taking maximum prices?


    First thought was lm386 gain but after setting it at 200 gain my potensiometer doesn't change results at all.


    3 years ago

    This is a seismometer, not a seismograph. A seismometer is a singular device that is used to detect seismic activity, and may even record that data in some format. A seismograph is a device that may have a single point of observation or many (often geophones) and stores the data in some format which may include a graph or chart but a seismometer may also include these data representation formats. Great project though


    3 years ago

    Awsome Projects


    5 years ago

    I live in Christchurch NZ where there have been over 18,000 quakes since 2010. The two biggest were 7.1 in 2010 and a 6.3 magnitude in 2011 where 183 lives were sadly lost. At the time it had the record for the highest peak ground acceleration in history pulling something like 2.2g! It was flipping scary! So this would be handy...


    5 years ago on Introduction


    could also be used to monitor the movements of a cradle!


    5 years ago on Introduction

    any video will helps to understand the mecchanics of this construction. An other issue is the separates the erarthquake vibres from any other vibration......I ve made once a seismograph with a an vertical axle about 50cm long and was about 30-35cm deeped in ground. Then on this axle i had a coil about 20turns The vibration was trasmited to electricity. I had connected the probes to the university earthquake center (i live in Greece and its easy to have earthquakes)