Arduino Due-based metal detector project - finding meteorites!

G'day guys!

I'm about to kick off my first ever Arduino project, using a Due.

I've been designing, building, debugging, and repairing hardware and software since Z80 CP/M days, and I have around 20 PIC-based projects under my belt. Most are very, very simple, because I didn't have the mathematic skills needed to do really clever things with the limited Microchip libraries. So I'm really looking forward to expanding my horizons with the Due!

The project I have in mind is a metal detector, for (primarily) meteorite detection, but also precious metal detection as well. I've been designing and building metal detectors since 1975, mostly other people's kits (ETI 1500, Heathkit Groundtrack 1290, White's Surfmaster, and so on), but a couple of my own VLF and PI designs as well, just to try ideas out.

Like others here, I'm focusing on using PI (pulse induction) in this project, for the simple reasons that

  • it works very well in a variety of ground types

  • it allows identification of different metals (discrimination)

  • the designs are extremely robust and easy to get your head around; and

  • not enough is known about this topic, and it seems that there are many interesting ideas that could help make a really good metal detector.

For example, how fast can the detector switch between VLF (best overall sensitivity), PI (best overall discrimination), and BFO (best overall accuracy)? I.e. run in VLF mode until something is found, automagically switch to PI to determine if it's worth digging up, then BFO to pin-point it. Many commercial units do exactly this (or something vaguely similar), so it must be worth investigating!

The only concern I have is the terribly slow A/D conversion rate on the Due - something like 10 microseconds (100ks/Sec). And the relatively low impedance of the ADCs are a problem too.

Now, since the area of the returned pulse I'm interested in is in the 50-120uS area, my sampling resolution is very limited - probably less than 10 samples in that area, which isn't enough for detailed analysis (though it might be fine for basic detection and so on). But I'm really interested to see how far the PI data can be pushed - is it possible to distinguish between a ring (like an aluminium ring-pull tab off a beer can) and an aluminium or other metal disc at the same depth? No-one knows!

So I'm considering a separate, high-speed buffered ADC, to enable a few thousand very high-res (12-bit or better) samples to be taken across the time window. Then, when the data is ready, I'll read it in, do all the fancy magic mathematical stuff, and see what pops out. You can't have too much data - especially when it comes to Fourier analysis and such things!

So first, I'll try the Due and see what the native ADC allows me to do. Since the rest of the MPU should be more than powerful enough to do all the matrix operations and so on, as well as drive the coil(s), present the UI, and so on, it could be a terrific project to get started with. If it doesn't pan out (pun intended!), I'll still use the Due as the "core", use the ADC for potentiometer adjustments for all the parameters (which I'll do anyway, even if the native ADC does work for the coil component), and design in a standalone megasampler.

If anyone has any suggestions about getting started (I haven't yet downloaded the environment for my Macbook Pro), I'd certainly appreciate any pointers. I'd also be very interested in any ideas for a buffered, kilo-count high-res sampling circuit as well - I don't want to reinvent the analogue wheel if I can avoid it!

Thanks for reading, and if you have any questions or comments, I'd be pleased to hear them!

Cheers,

Cephas (Pete)

Sounds pretty cool. On the A/D, I would start with the external high speed one, in whatever resolution your project finds useful. If 12bit does the trick, no need to go to 16 bit. But if 16 bit is a benefit then do it. I don't know how metal detectors work, but I would think even an Uno R3 could do this. But heck, the Duo is very cool!

Hm, here is a similar thread:

http://arduino.cc/forum/index.php/topic,65712.0.html

Thanks for the suggestion! I actually requested an update on that thread before posting this one... I'll still keep an ear open though...

Without boring the pants off you, the metal detector works simply (ha!) by pulsing a largeish horizontal coil at about ground level, then watching for a reflected and modified magnetic field. That's it!

Well, after ignoring the 450V spike from the TX coil, about 40-90 uS later, any metal in the ground will be detectable via a tiny (~50mV) decay slope after the spike. After another 200uS or so, it's all over, and the cycle begins again.

So the magic all happens between 50 and 200uS after the spike, that's where the ADC needs to capture as many samples as possible.

I misread the Due specs, too - I should be able to get 1uS samples happening with the native 12-bit ADC. That should be more than enough to provide spike end timing, plus a sliding window of a couple of hundred 4096-scale conversions, at a resolution of roughly a mV per LSB. That's actually as good as, if not slightly better than, the upper-mid-range commercial detectors on the market : in the $800 - $2,500 bracket!

It all depends on the maths. And, since I'm a 'silicon guru', but a mathematical Neanderthal, I have a lot to learn!

You're right, the Due seems to be an excellent package for everything I need in this project. The hardware will probably be minimal - a couple of fast, low-noise op-amps, a couple of analogue switches, a handful of precision caps, and a long learning curve!

I can't wait for the module to arrive...

Just a point on the finding meteorites part of the title.

You do know that meteorites come in a number of different types that form a continuum between stony and iron so there will be no unique signature for a meteorite. Even the iron ones have varying amounts of nickel in them as well.

Mike, yes, I'm aware of the amazing range of compositions and formations of hot rocks from the sky!

I'm actually trying to find some scientifically interesting metallic meteorites, so one of the parameters of the design will be the ability to detect nickel. Since I'll most likely be prospecting well away from any human presence, I don't really care about coin clutter. The added benefit is the presence of a high amount of nickel and bismuth in the gold ores around here, so I don't really mind if it's a meteorite or a nugget!

With all that said... It looks like I was sadly mistaken at the initial approach I was following. So I've subscribed to the GeoTech forums, where people MUCH smarter than I are doing some incredible things with PI and discrimination. All else being equal, it should be possible to harness a good coil design and front-end to a Due and do some phenomenal things with a little bit of maths!

The only thing that scares me about that sentence is the word "maths"... Sigh. :disappointed_relieved:

But thank you so much for your interest and comment - I live to learn.

Remember that bismuth is paramagnetic, that is it is repelled by magnets.
Have you a link to the site?
Way back in the 60s I used to build and test metal detectors as part of my first job so I do know how they work, or did back then.
Good luck.

Hello Guys

I'm new to arduino due, just play with it few days, but i have some experience with MD.
Currently i'm working over new PI MD and my plans are:

  1. Square wave generator with adjustable frequency 25,50,100,150,200,500,900,1200 Hz - small 25-50 for frame coil 2x3m medium for normal use and high for small objects
  • HIGH pulse period adjustable from 25 us to 300 us
  1. Signal inverter OP37 or LF 357
  2. Part of ARM uC - ADC for measure decay signal.

On the attached image is shown decay from PI coil which is fast but SAM ADC should be enough fast to check:

-first parameter - how fast decay volage drop on the level 0,6V - if faster than reference - non ferro magnetic target if later than reference time - iron

  • second - measure at 10 15 20 25 30 us will let to have some idea about object size due the magnetic object saturation.

Can anyone give me hand with interrupt adjustable (with 8x 0/1 dip switch) quare generator for Ardiuno DUE

On the attached image is shown decay from PI coil which is fast but SAM ADC should be enough fast to check:

Are you sure? I measured the Due's A/D speed to be about 10uS.

According to the SAM3X8E datasheet ADC speed - 1000 ksps = 1us, or Atmel is liar.
Another thing i know project using ATTINY45 using internal 10bit ADC with max speed 15 ksps and is working well.

or Atmel is liar

No you are misunderstanding what you will get from a Due.
Obviously you don't believe me so try it for yourself.

Hi,

Just came across this and was curious whether you ever managed to get it off the ground?

Cheers
Greg.

gregcan:
Hi,

Just came across this and was curious whether you ever managed to get it off the ground?

Cheers
Greg.

OP appears to be no longer a member of this forum.