After about a year and a half of messing around, I finally got this very cheap seismometer system working and displaying real-time data under both Windows and Linux (More on how to set up Linux later.) Educationally, it has great potential.
It consists of the sensor and an interface box. This interface is radically different from traditional digitizing methods. The earthquake signal, after being amplified, then modulates a fixed 5 KHz audio tone. That plugs into the microphone socket of a computer running three pieces of software under Windows (XP in the one shown here). They are, 1) the one I put together – “seismochop”, which retrieves the earthquake signal from the audio tone and converts it to serial data, 2) a virtual serial port package called com0com which acts as a relay, and 3) Amaseis – software that records and displays earthquake data. These three can be downloaded free.
This very cheap and rather unusual way to digitize an earthquake signal was inspired by my experience in ham radio, when AM transmitters were common. When I found the same principle (amplitude modulation of a carrier wave, or more correctly here, pulse amplitude modulation) used in “cheapchop“, even including the basic software, I was able to get it working.
Here is a screen shot of a local quake I recorded today. There’s a DOS window I brought to the foreground for the screen shot. That’s seismochop showing the data samples at about 11 samples per second.
The sensor used in the one shown here is a simple pendulum (more on its construction at the end of this post), which is great for local quakes, while the Lehman style shown in this post is better for distant ones. The one pictured has a neodymium magnet suspended over a roll of 44 swg wire I got at a local electronics shop. It has a resistance of 4,000 ohms and probably has several thousand turns. Actually it turned out to be an overkill. The signal from it was so large I had to reduce the gain of the amplifier (with the addition of a 330 ohm resistor between pins 1 & 8 of the LM386 – see circuit diagram below).
(Update Dec 2012 – I have since discovered that the pendulum style works quite well even with direct, unchopped audio on some sound cards. See the post: Simplest Seismometer – Experiments with direct recording through PC sound card)
The sensor plugs into the interface box which can be built for a couple of dollars. That has two cables to the computer, one to the mic plug and a second for 5v USB power. Ideally though it’s better to use a separate power source as the USB 5v can have a lot of glitches and ups and downs. This is its circuit diagram:
And here it is in a plastic box:
My software is set up for a pair of ports at COM7 and COM8. It sends data to port 8 while Amaseis is set up to receive data from port 7.
Installing software and setting up
The sequence is:
1) Download com0com here: http://sourceforge.net/projects/com0com/files/com0com/22.214.171.124/ and set up a virtual serial port pair. Name them “COM7” and “COM8”.
2) I just realized at this point I’d better make a DISCLAIMER: This next software, “seismochop,” comes with no guarantees that it will work or that it won’t cause any damage to your computer. I am not a professional programmer and the software may contain blunders that could have unpredictable consequences. Download and use it at your own risk. Now that you’re sufficiently alarmed, I will add that I’ve used it on several computers running XP, two running Vista and a couple running Windows 7. No problems, but this is not very extensive testing. If you have vital data on your computer you may wish to make backups or use some old unimportant computer for your own peace of mind. When you’re ready, click here to download seismochop then unzip it and put the executable (seismochop1-com.exe) and two .dll files in the folder you wish to run it from. I put mine in Amaseis’s working directory. The source code is included in the zip file in case you want to modify it.
3) Download and install AmaSeisSetup.exe and under “Device” in the settings menu, choose “AS1”. Set it up for COM7. Seismochop will send the data out to COM8 and the virtual serial port pair are there to link them together.
If the COM port setup was successful, you can execute “seismochop1-com.exe” (this version is set up for one channel – the one which is on the center tip of the mic plug in my computer). It will open in a DOS window and then wait for Amaseis to take data from COM7, so the next thing to do is to start Amaseis. You should see seismochop displaying data values when Amaseis is running. With no interface box, the data values should be around -16000 and the drift compensation figure (“temp drift”) that I put in the software will start dropping as it attempts to pull the reading closer to zero – center scale. If the interface box is plugged in and working, set its output level control or adjust the mic input level on the PC to obtain a reading as close to zero as possible. Check that shaking the sensor produces a change in the data values. Amaseis should be displaying a trace at this point. Experiment with gain settings in Amaseis for a clear display.
(Note 3 Jan 2013) Some people have been confused about what is happening with the 5KHz carrier signal and how to set up the audio input. The problem begins with the fact that Amaseis expects +/- values, but the sound card is only giving us positive numbers, up to around 32,000. The solution used then is to subtract, by software, 16,000 from the measured amplitude (loudness) of the 5 KHz signal, giving us a range of -16,000 to +16000.
In other words, with no seismic signal present, the 5 KHz signal is adjusted to drive the input to about half volume, as below:
We know when it’s correct because seismochop will give us an output of “zero” after having subtracted 16,000. Seismic signals will then cause the 5 KHz carrier wave to increase and decrease according to the wave shape, as below:
And seismochop then sends that measured data in the range +/- 16,000 onto the virtual serial port for Amaseis.
I have been recording earthquakes continuously for about a year and a half using Ubuntu Linux. The main shortcoming my system has had is that one could not view the seismometer trace in real time. Using my original software which was basically “cheapchop” re-written to save data in Amaseis format, one had to wait until a full hour’s trace was saved, then it could be copied into Amaseis’s data files and viewed. I did manage to get it partially running under Windows but still could not get my software to send data to Amaseis directly. Handicapped by a lack of programming skill, I fumbled around and gave up several times before finally working it out a couple of weeks ago.
Feel free to contact me via the “Contact” page if you need any help.
UPDATE 29 June 2012 Seismometer construction
Here are some shots of the final setup after a few modifications – the interface has been built into the base and the whole thing was stained and lacquered:
The following shot shows how I mounted the audio interface. Note that I used a different circuit here based on a 555 timer I.C.. There was no apparent difference in performance. (update: Nov 24, 2014: I have since observed that it’s slightly noisier than the original HC4066 circuit.) Here is the circuit diagram:
And here is a picture showing how it was assembled (click for larger view):
Update 26 July 2012
A 6.5 quake in the Solomon Islands appeared on the pendulum seismometer trace tonight. After observing several distant and local quakes, I’ve noticed that this one is particularly good for local quakes since it doesn’t respond much to the lower frequency background noise that I pick up on the Lehman in this location. That being the case though, naturally it doesn’t see much of the S waves from distant quakes. I did record 12 second period S waves from a huge quake in Indonesia earlier this year but they were tiny. The Lehman, on the other hand, recorded them so well they swamped the display. The trace below shows P waves only from the Solomon Islands, still, I was happy to see them as I didn’t expect anything at all from a 6.5 at that distance.
The USGS report of the quake is in the link below.
Update 17 Sept. 2012
This is the first earthquake recorded by Richard, one of my students who recently made the pendulum seismometer during the summer vacation classes. It was sitting on a bookshelf, I believe, plugged into his father’s notebook running Windows 7. Nice work Richard!
Update October 3 2012
I don’t need to bother keeping any records for “the most distant quake” recorded on this device now, after the recent 7.3 quake in Columbia (Sept. 30, 16:31). One can’t get much further away from Taipei. The S waves were not detected, as I expected for a sensor with a one-second period, but the P waves were very plain, much the same as small local quakes appear on the trace. Here is a screen shot: