This site is maintained in order to present a seismometer project as an educational project for schools and students. The goal of the project is to build an inexpensive but highly precise seismometer, which offers high resolution and spectral data representation.

The project is divided in its entirety into three parts, of which the first one is the computer science part (software), another part is the electrical engineering part (electrical hardware), the third and last part consists of mechanical engineering (mechanical hardware: casing and fixture of the sensors).

The seismometer essentially consists of a geophone sensor, an analog-to-digital converter (ADC), a control unit and a casing. During the project time, different approaches will been tried out; they will be documented in the following posts. The project started in January 2019 and is work in progress. One main project goal is to do a near real time spectral analysis of the data and to display the normal velocity values together with the spectral data.

The best way to follow the project is to read all posts below in chronological order.

Since the project was completed in 2020, I closed the project, but you can still leave comments.

If you like the project or have questions or remarks, use the field for comments under each post. Please always stay polite. It should be self-evidently that hateful or impolite posts will be deleted from the administrator without hesitation [“I am paying for this microphone, Mr. Green!” as Ronald Reagan said…].


Thank you very much for visiting my page.

Jürgen Abel

Dr. Jürgen Abel





The project is completed and closed.

The seismometer has been setup into the soil in december 2019.

The software is able to measure seismic data, to do some data analysis with filters and to perform a near real time spectral data analysis including the display of the spectral data, everything calculated on the Raspberry Pi.


ADC raw resolution: 32 bits

ADC noise free bits: 20 bits

Sampling rate

400 samples per second

Geophon Sensitivity

20.9 V/(m/s) with 1 kΩ termination shunt


Spectral data analysis

Posted on 20.03.2020
In this post spectral data analysis for the seismometer is presented. First a short explanation is given in order to understand the main concepts of the spectral data analysis. Then the analysis of the seismic data is described. Finally, some information about the the Goertzel algorithm is given.Spectral data analysis is a kind of analysis, which is based on a special model: the wave

Simple data analysis

Posted on 12.03.2020
Various methods of data analysis will be presented in this post:velocity,low-pass filter (a special type of averaging with lower latency) of the velocity,RMS (root mean square) value of the velocity,integral (simulation of a heavy ball on a flat surface) of the velocity,daily view of the velocity.The spectral analysis will be explained in the next post. Types of analysis Velocity The calculation of the velocity
Project decisions In a computer science project, some decisions have to be taken, which will determine the further course of the project. Sometimes, these decisions seem to be logical to other scientists, sometimes these decisions are controversial. Many times several sensible alternatives exist, and a scientist should always be able to justify his personal decisions.This post includes several important decisions for the seismometer project.
After many months of work on the hardware part with the Rapsberry Pi, the ADS1262 and the geophon SM24, the seismometer was finally installed in the ground.Hereto, a 50 cm long spike was struk into the soil.Between the spike and the seismometer, the aluminum spacer was placed and fixed with 4 stainless steel screws and some washers in order to correct the horizontal position.The

Preparation of the casing

Posted on 10.12.2019
Before installing the seismometer in the ground, a housing must be prepared. Here a small waterproof case with a transparent roof was used. The transparent roof is fixed with 4 stainless steel screws.The housing requires some holes for cable glands, geophone clamp screws, and screws that secure the housing to a spike. All holes were drilled with a CNC milling machine.A spacer has also

A pcb protoboard for the ADS1262

Posted on 09.12.2019
After the hardware with the ADC, voltage supply, geophone and termination of the geophone was setup, the hardware was transferred from the breadboard circuit to a prototyping perf board.Even though this is still a very simple and rough construction, far away from a professional multi layer circuit board, the results are quite good and close to the optimal values of the ADS1262 mentioned in

A better termination for the SM24

Posted on 06.12.2019
Since the beginning of the project, a very simple circuit has been used to couple the SM24 sensor. It consisted of three 1 kΩ resistors: the one in middle serves as the termination shunt for the SM24, as indicated in the datasheet, and the other two resistors are used to limit the maximum current and protect the ADC.Using that solution, there are two things,

Using interrupts for measurements

Posted on 02.12.2019
In the past, the voltage measurements of the ADS1262 were recorded in a polling loop. A polling loop is the simplest form for performing repeated measurements. The loop reads a measurement and then waits for a certain time, e.g. 2 ms. It uses the sleep command, which does not block the CPU from processing other threads. However, this solution is still not very good

Increasing the ADC precision

Posted on 28.11.2019
In addition to the lack of system reliability of the Raspberry Pi, which was solved by switching the power input to the GPIO pins, there was another annoying fact: The strong noise at the input of the ADS1262. To keep things simple, the input noise was measured by short-circuiting the pins AIN0 and AONCOM. The measured value should be zero, instead noise of about
During the development of the software, a strange behaviour of the Raspberry Pi could be noticed many times, as the Raspberry Pi didn’t interact after the ADC program was running for one day.Since the seismometer needs to work many days outside without manual operation at the Raspberry, this was cause for concern.Looking at the log file /var/log/syslog, hundreds of “Under-voltage detected! (0x00050005)” messages have
The ADS1115 from the last version had 16 bit resolution, which is a little few for a good seismometer. Most commercial seismometers use 24 bit resolution ADCs. Therefore, different ADCs have been looked for with a higher resolution, before much code is developed, which would have been to be rewritten because of a different ADC, exspecially if the ADC uses a different interface bus.After
The beta version V0.1 of the seismometer is based on the Raspberry Pi. The ADC is a ADS1115 analog-to-digital converter with a resolution of 16 bit. The geophon is the SM-24 geophon. This version is still very simple and only a raw proof of concept. But it is able to visualize already some geophone data. Hardware Raspberry Pi The Raspberry Pi model 3B is
Now we are going to setup the Raspberry Pi with Midnight Commander (MC), the Network File System (NFS), the powerful PostgreSQL server, a PASCAL IDE, some tools, I²C and SPI.Hereafter, PC means a PC with a LINUX operating system, here KUBUNTU 14.04 is used. Heat Sinks In order to run the Raspberry Pi in continuous operation and for overclocking, it is advantageous to use
Since of its limitation the ESP32 solution was no longer pursued. Looking for a more powerful alternative, the Raspberry Pi became the first choice, as it was used before in robotic projects. The Raspberry Pi offers many advantages and possibilities:SSD connection using an USB 3.0 to SATA converter,LINUX as an operating system,several PASCAL IDEs,several SQL servers,web servers and much more software over LINUX,Interrupt support
The first version of the seismometer is based on the micro controller ESP32. The ADC is a ADS1115 analog-to-digital converter with a resolution of 16 bit. The geophon is a SM-24 geophon from Sensor Nederland B.V.. ESP32 The ESP32 is a 32 bit micro controller loaded with a lot of utilities. The version used here is a board based on the SX1276 LoRa chip