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)