I'm trying to make a seismograph. I already tried using a wall brick, a transformer coil, and a magnet, with an LM358 amplifier and an Arduino Nano running the nerdaqII code. However, the results didn’t meet my expectations. The sensitivity is pretty bad—it doesn't detect footsteps, only jumps.
Now I'm planning to buy a 4.5 Hz geophone with 28.8 V/m/s sensitivity. I think I’ll use the ADS1256 ADC with the Arduino Nano to get 24-bit resolution, but I’m not sure which amplifier to use. I read in another post that op-amps like the TLV2462 are useful, but I’d prefer a ready-made module, like one with the INA333.
I’m planning to transmit the signal wirelessly to another Arduino Nano using RF modules, and then send the data to my PC to visualize it in jAmaSeis.
How much gain does your LM358 circuit have? It's probably OK as a preamp with enough gain.
An amplifier with a gain of 100 would give you 2.88V which is "good" (easily measurable). BUT I don't now what "m/s" translates to... It seems like maybe a major earthquake?
A lot of microphone amplifiers have gain of 1000 or more (and they usually have a gain control).
Your probably don't need 24-bits. Your "resolution" will be limited by noise. Analog electronics always have some electronics. Some amplifiers are noisier than others but a high-gain preamp amplifies noise along with the signal. Noise is almost always a challenge with low-level analog signals.
More bits can give you more "headroom" (for major earthquakes, etc.) but I'd worry about noise first.
One thing that you have going for you is that it's possible to use a low-pass filter to filter-out everything except the low-frequency signal and low-frequency noise.
Also, most ADCs can't read the negative half of a sine wave so you'll need to bias the signal. The bias can be built-into the preamp and then subtracted-out in software. (Most Arduino "sound sensors" have biased output.)
Check out the offerings from MindSets UK. They sell the same geophone used by RaspberryShake, as well as a 24 bit amplifier/ADC (with Rpi Pico 2) and some other accessories at very reasonable prices.
The sensor says 28.8 Volts per meter per second, but really the earthquakes are in the um/s which would mean that for seismic noise it would (1-5um/a ir would make 28.8uV, that's why the amplifier, the one I have is very noisy but it has 10,000x amplification capacity, I would like a amplifier with low noise to maybe be able to measure the um/s movements, there's the screenshot with some idea of ground movement
So even if you were interested only in weak shaking, you'd be looking at up to 0.014 m/s... times 28.8 volts per m/s = 0.4 V, for which an amp may not be necessary. And "light" shaking would be about four times larger.
I've built a number of DIY seismometers and agree that if one wants to detect very distant earthquake events, a geophone and interface of the type mentioned makes perfect sense.
But they are certainly not needed to detect someone walking on the floor or driving a car on a nearby road.
Of course, if you can feel the ground shaking, the seismometer doesn't tell you anything new.
The TC-1 with nerdaq interface has the best performance of the DIY ones, and is sensitive enough to easily detect someone walking on the floor two rooms away, but it is several orders of magnitude less sensitive than the geophone + SeismicStream interface linked in post #4 above.
This is a P-wave recording from the TC-1 made of a magnitude 5.7 earthquake in Fakfak, Indonesia on Feb 18 2025 at 23:39 UTC. TC-1 is on the west coast of the USA.
I found a seller offering a geophone very similar to the one sold by Mindset — same frequency and resistance. I believe Mindset sources it from an AliExpress seller, since the same model is cheaper on AliExpress than on Mindset.
My only concern is about the amplifier and ADC. I’m considering the INA333 because of its low noise, and the ADS1220 as it also offers low noise with 24-bit resolution. My goal is to detect signals from 1 µm/s and above.
If you can feel the ground shaking, a seismometer (esp. one suited for strong motion) will tell you all sorts of new and interesting things, if you are a structural engineer, seismologist, or even, perhaps, a lay person.
What I would like is to monitor the ground and maybe see distant earthquakes, like the raspberry shake, the problem is that it is to expensive for me so I can only make one
I made the TC-1 out of scrounged materials from the shop, a slinky, five neodymium magnets and a spool of #38 wire, more or less as described here.
Total cost was less than US$10.
BTW I rewrote the nerdaqII code, as it has a bizarre oscillatory response to an impulse that takes many seconds to damp down. Posted here, works much better.
After experimenting with the RaspberryShake-like setup, and examining some publicly available RaspberryShake data, I'm pretty disappointed with the performance.
I've concluded that for geographically quiet locations like mine, the rather expensive Shake is not an improvement over DIY TC-1 seismometers, as the higher bandwidth and resolution greatly increases the noise level (and reduces the SNR) for detection of the low frequency signals from distant earthquakes.
A writeup of my research, and much improved Arduino code for the TC-1 are posted on Github.
See below for comparison of seismograms from two DIY spectrometers (top) and a RaspberryShake station (bottom), all on the west coast of the U.S., of a magnitude 6.3 event in Ecuador on 4/25/2025 at 11:44:55 UTC, > 6000 km distant.
Click on the image to expand. See the problem?
As discussed on the Github page, it can be solved with additional filtering (post-processing), but then you are back to the response and sensitivity of the TC-1.
I see, however the station is going to detect local quakes too, because it's part of a national private network we are trying to build (with RS shakes, mine one will be diy however) the Geophone and rest of the things are already ordered, so I need to wait to get them, I still have the TC in mind though. Thank you for your research!
We are going to watch it using swarm, so the Geophone needs to pick the background seismic noise, in swarm you can put filters for frequencies so with the Geophone we can se lots of waveforms from the same sensor, on jAmaSeis you can just see one