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).
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.
1) Download com0com here: http://sourceforge.net/projects/com0com/files/com0com/2.2.2.0/ 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.
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.
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.
P waves from 6.5 earthquake in the Solomon Islands recorded on short pendulum seismometer using sound card input.
The USGS report of the quake is in the link below.
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!
This entry was posted in Electronics, Seismology and tagged recording earthquakes, seismometer for students, soundcard earthquake recording. Bookmark the permalink.
Wow! This is great. What a breakthrough! That is fantastic that we can see things in real time now. I like the new seismometer too!
Hope you get an opportunity to make one when you come back. The interface box you made for the magnetometer just needs an amplifier added for the seismometer, plus of course the new software. Hopefully by then I’ll have the bugs ironed out of the dual channel version.
Congratulations, you have done a really good job with this sismo and sound card !
Please, dou you have the schema (and eventually typon) for the electronic card with 555 timer IC (your update 29 june) ?
I really want to try your system !
I’ve just added the circuit diagram in that same update section. Let me know how you get on, and if you have any trouble getting it working.
i don’t understand the 555 stage, could you explain me what the 555 stage does?
And, using the sound card what program i can use to measure in richter a seismic event?
If you need some help in programming i will help you on compiling and programming the windows interface in c# or Vb.net…But i need to know how to measure the richter scale using the signal acquired by Audio interface.
The 555 is there to create a 5 kHz signal. It’s wired so that the seismic signal coming out of the LM386 is shorted to ground every time the 555 goes low, (It does nothing when high, because of the diode in the circuit.) The result is a 5 kHz square wave which is amplitude modulated by the seismic signal. This was necessary because sound cards won’t respond to the low frequencies of seismic waves. The software then does the rest.
I don’t know of any easy way to measure the magnitude of the waves in any meaningful way. In practice, after seeing many of them I can make a fairly good guess, but that’s all.
That would be great if you could help with the programming. It’s not as user-friendly as it could be. Have you downloaded it? The source code is in the zip file.
Still a little question about the electronic diagram of the sismometer with LM386 and NE555.
In datasheet’s applications of the LM 386, we can see that with no connection between pin 1 and 8 of the chip, the gain of the chip is 20.
and with no resistor R (0), just a capa (10u) between 1 and 8 : gain 200.
But in your shot, there is no capacity 10u between pins 1 and 8, just a resistor 330 ohms).
Yes, that’s correct. For our purposes you can ignore the capacitor. You might see in the data sheet that you can simply short pins 1 & 8 and also get a gain of 200. The 10 uF capacitor reduces the response to very low frequencies, which might be desirable for normal audio use, but not for us because we’re most interested in that low part of the spectrum.