Announcement
Collapse
No announcement yet.
DSP in commercial prospecting and treasure hunting metal detectors ... and GPZ 7000 speculation
Collapse
X
-
Ok Davor sorry if I offended you, I was only offering you some good hearted support with your experiments.
-
For the time being here we have downright poisonous environment to start any kind of enterprise, and I don't wish to risk my family starve on my whim to run a business. I have some other things to attend to, so it will wait. Unless of course I get some solid support in it and it happens sooner.
Leave a comment:
-
Dont stop nowBesides, I might just suddenly start some production - who knows?!?!
Leave a comment:
-
I have ordered one of these. Discovery Board for STM32F411EOriginally posted by Davor View PostPerhaps it would be easiest to play in a micro. For start I'll need to overcome my aversion to micros, find a platform I can trust not to do vanishing act in a year or two, which also has some decent specs on ADC, lots of memory, low power consumption, and easy programming tools. Any suggestions?
http://au.rs-online.com/web/p/proces...-kits/8463503/
Good price, good speed, 12 bit ADC plus a few added goodies like onboard Audio DAC
Leave a comment:
-
I can only speculate about results until I can get any. These ideas cost money and time. I'm short on time, and I can't expect anyone to invest time or money over some half-done ideas. I'm pretty certain it will not happen this year at this pace.
Besides, I might just suddenly start some production - who knows?!?!
Perhaps it would be easiest to play in a micro. For start I'll need to overcome my aversion to micros, find a platform I can trust not to do vanishing act in a year or two, which also has some decent specs on ADC, lots of memory, low power consumption, and easy programming tools. Any suggestions?
Leave a comment:
-
Davor are you planing to post your results even if they are good or bad ?It can be made incredibly simple, but I'm not sharing as yet. I need to try it first.
Leave a comment:
-
Total overkill. You need only 4 samples to obtain any phase shift you want. A little bit of trigonometry is all you need. With single frequency rig all you need to do is a way to increment/decrement phase shift in small steps, say 1°. You only need a shifted Q phase such that it remains at zero while bobbing a coil. You can achieve that by two buttons, or a single button for semi-automatic solution.Originally posted by scrungy_doolittle View PostI want to port this to a decent processor that can take at least 180 samples over the full cycle, which would give you a 2 degree resultion.
As for multifrequency, you may use coil in resonant mode, or non resonant, and you may use various waveforms. CZ uses a simple square wave and observes the 3rd harmonic. It can be made incredibly simple, but I'm not sharing as yet. I need to try it first.
Leave a comment:
-
"because you would need to drive 3 coils at different frequencies simultaneously and be able to extract and separate the 3 signals and process each of them. This is obviously what the 3 frequency whites machines are doing."
Id guess they utilise the fact that a resonant circuit will resonate at the fundamental, and the odd integer multiples ,,,, 3rd 5th etc
Leave a comment:
-
ROTFLMAO!Originally posted by Davor View Post@scrungy_doolittle, first off, I consider you lucky to receive the ground balance concepts before other concepts mess your head too much.
Ground is balanced in multiplicative way in VLF, and additive way in PI. Additionally in PI you start sampling after the full response of ferrous ground, and most of the salts have subsided, and you only need to remove the superparamagnetic (viscous) soil response typical for the gold fields. Simple PI devices gained popularity because of virtually no ground response on easy soils.
Using addition to remove ground works in multifrequency VLF though. I did not think highly of it before, but I changed my mind.
You may consider ground as one huge target. Easy groud responds in phase (~0°) with Tx, and it is only shifted for the degree determined by salts. Most nowadays VLF-s have up to 30° regulation for ground balance. You can't remove ground by simple offset as I believe you had impression so far, simply because coil wobbles over ground and proximity changes. Removing offset works against "air signal" though.
In PI easy ground follows the Tx field verbatim, so when flyback subsides you only have responses of targets, a coil (!), and the soil viscous effects - if any. Offset is removed in PI by means of EF sample.
Remove offset and too slow changing phenomena, like temperature, battery voltage etc. A strong source of offset is "air signal" - a residual voltage that is impossible to remove completely while balancing a coil. Air signal is also affected by Tx amplitude, so noisy Tx destroys your depth.
Such filter is basically a simple boxcar averaging lowpass whose value is subtracted from the incoming signal, servo style. Each phase on its own.
Not. You need to remove offsets so that your trigonometry starts working. Otherwise you have no target ID.
Nope, just offsets.
It does not remove ground matrix because the ground effects are dynamic, and offsets not so much.
By implementing a PLL/Costas loop GB chasing procedure in a single frequency implementation, and only some simple arithmetic in case of multifrequency.
Which is barely enough to make a semi-decent detector for your kids.
I thought of that, and concluded that only an interactive automatic GB makes sense in single frequency VLF. Call it semi-automatic if you like. Fully automatic would GB on the targets as soon as you start pinpointing, rendering it useless when you approach a target and become slow.
Much easier is a multifrequency approach, assuming I regained my liking for the micros.
Typically when pinpointing you don't have GB present. I am using my whites 5900di pro (actually a 6000 Di Series 3) for my comment. I search about 70% of the time in TR mode without ground balance, but with a VDI meter. I have found a lot of stuff that way, just yesterday I hit my second Sacajawea US dollar! But I digress. I also do use GEB TR, but when you go to pinpoint mode, it does geb normal.
Since TR mode is a non motion/slow motion mode, I use it to pinpoint a lot of the time. I'm basically just a coin shooter at this point.
One has to walk before running. So a simple manual ground balance in a computerized one is a good first step. So if we can just add the code to this arduino sketch, that would give you ground balance, i.e.
Raise the detector, press a button. lower the detector, listen to the signal if it changes, alter the ground balance and repeat until it doesn't change, then we have a detector that can be tweaked to be at least as good as the 6000 di series 3. The 6000 di pro did an auto ground balance and tracking, and an awful lot of guys didn't like that. The old manual gb was more popular.
That being said, auto gb would be a good thing, and would be fairly easy to add.
The problem I see with doing this on the arduino code, is that there is no way, with 8 samples to be able to apply some arbitrary phase shift and get data. I want to port this to a decent processor that can take at least 180 samples over the full cycle, which would give you a 2 degree resultion. Even better would be 360 samples, so you have a single degree resolution for phase shifting and sampling the digitized data.
So for theoretical: Suppose that we could digitize a waveform at 360 samples per cycle. We can get the sample points by indexing into the buffer at indexes correspondint to the 8 samples, and put those in the boxcar filter. At that point, we have exactly what he has in the arduino code. BUT we also have all the other sample points available. If you digitized the received signal and transmitted signal, then you can do anything with them.
That being said, I still wonder how one would do GB on the same code. I would think that multi frequency would actually be much harder, because you would need to drive 3 coils at different frequencies simultaneously and be able to extract and separate the 3 signals and process each of them. This is obviously what the 3 frequency whites machines are doing.
Get a single frequency one done and working first.....
Leave a comment:
-
@scrungy_doolittle, first off, I consider you lucky to receive the ground balance concepts before other concepts mess your head too much.
Ground is balanced in multiplicative way in VLF, and additive way in PI. Additionally in PI you start sampling after the full response of ferrous ground, and most of the salts have subsided, and you only need to remove the superparamagnetic (viscous) soil response typical for the gold fields. Simple PI devices gained popularity because of virtually no ground response on easy soils.
Using addition to remove ground works in multifrequency VLF though. I did not think highly of it before, but I changed my mind.
You may consider ground as one huge target. Easy groud responds in phase (~0°) with Tx, and it is only shifted for the degree determined by salts. Most nowadays VLF-s have up to 30° regulation for ground balance. You can't remove ground by simple offset as I believe you had impression so far, simply because coil wobbles over ground and proximity changes. Removing offset works against "air signal" though.
In PI easy ground follows the Tx field verbatim, so when flyback subsides you only have responses of targets, a coil (!), and the soil viscous effects - if any. Offset is removed in PI by means of EF sample.
Remove offset and too slow changing phenomena, like temperature, battery voltage etc. A strong source of offset is "air signal" - a residual voltage that is impossible to remove completely while balancing a coil. Air signal is also affected by Tx amplitude, so noisy Tx destroys your depth.Originally posted by scrungy_doolittle View PostSuppose we have the 4 second "boxcar" high pass filter. What do you do with that?
Such filter is basically a simple boxcar averaging lowpass whose value is subtracted from the incoming signal, servo style. Each phase on its own.
Not. You need to remove offsets so that your trigonometry starts working. Otherwise you have no target ID.Originally posted by scrungy_doolittle View PostAnd where and how would you use that to implement ground balance?
Nope, just offsets.Originally posted by scrungy_doolittle View PostI think his calibrate is a crude ground balance, as it takes a reading presumably over a non target, and saves it.
It does not remove ground matrix because the ground effects are dynamic, and offsets not so much.Originally posted by scrungy_doolittle View Postby subtracting that from the ongoing signals, you essentially remove the sensed component that you calibrated, and that should be the ground matrix.
By implementing a PLL/Costas loop GB chasing procedure in a single frequency implementation, and only some simple arithmetic in case of multifrequency.Originally posted by scrungy_doolittle View PostSo how would you implement an auto ground balance?
Which is barely enough to make a semi-decent detector for your kids.Originally posted by scrungy_doolittle View PostPlease note, that he is using an 8 BIT dac, because at the sampling rate he is using, the arduino can only resolve 8 bits, but he is gaining 5 bits in the boxcar filter.. However, with a 12 bit ADC and a 1024 boxcar, by the same logic mentioned in another post (and I think it was you that said it) , it should be equal to a 16 bit.
I thought of that, and concluded that only an interactive automatic GB makes sense in single frequency VLF. Call it semi-automatic if you like. Fully automatic would GB on the targets as soon as you start pinpointing, rendering it useless when you approach a target and become slow.Originally posted by scrungy_doolittle View PostRegardless, lets see if we can take this logic and manage to add ground balance, and auto-tracking ground balance to it. Even with the bad dac. Cause it will be fairy easy to move the code to a more capable platform.
Much easier is a multifrequency approach, assuming I regained my liking for the micros.
Leave a comment:
-
It appears from his description that the calibrate function is really a form of self-adjusting threshold (SAT), which is not the same as ground balance. His implementation is essentially a T/R detector, and would require the coil to be kept parallel to the ground, and for the ground to be flat.Originally posted by scrungy_doolittle View PostI think his calibrate is a crude ground balance, as it takes a reading presumably over a non target, and saves it. by subtracting that from the ongoing signals, you essentially remove the sensed component that you calibrated, and that should be the ground matrix.
Leave a comment:
-
O.k. Davor, lets assume that you have dropped, for the moment and the purposes of discussion, your aversions to microsOriginally posted by Davor View PostNo, it would give me a motion detector, and a perfect one in case of a boxcar (FIR moving average) high pass. The only thing I can't do in analogue electronics is FIR filtering. Some other are difficult to achieve, but FIR is downright impossible.
I couldn't care less about USB in metal detecting. I can use low power bluetooth, and perhaps even IR, but I have no use for USB(wires) nor WiFi (too much juice). I do care about ADC dynamic range, and 12 bits ADC is ****-poor on its own. Maybe in some differential configuration, but straight 12 bit is just silly.
Recursive filters are known as IIR filters, and they have implementations in analogue world. If I want to use an IIR filter, I simply put a capacitor.
In metal detecting you have one elusive thing that only select few detectors have sorted properly. That's a recovery speed, and XP Deus among detectors. The vast majority of nowadays detectors have incredibly stupid amounts of inappropriate excessive filtering. IIR filters smear the response, and a sharp signal becomes blunt. After many stages of filtering the signal is so much bludgeoned and spread in time that you can't distinguish it from the next signal, and the vast majority of detectors simply cant discern, say, two coins in a row. Deus can, and my IGSL can as well.
Time-wise the best of FIR filters is the simplest one, a boxcar. It has a very finite time response, and silly but usable frequency response. In frequency response the most important feature is -3dB bandwidth that limits the noise and keeps S/N in favourable limits. That's it. Everything on top of it excessive.
. I assume you certainly understand enough of C to write some.
Given the way this code uses "boxcar" filters (which I have always called 'bucket' ) filters, can you express the additions that would be necessary in the code to give a ground balance?
Suppose we have the 4 second "boxcar" high pass filter. What do you do with that? And where and how would you use that to implement ground balance? I think his calibrate is a crude ground balance, as it takes a reading presumably over a non target, and saves it. by subtracting that from the ongoing signals, you essentially remove the sensed component that you calibrated, and that should be the ground matrix. So how would you implement an auto ground balance? Please note, that he is using an 8 BIT dac, because at the sampling rate he is using, the arduino can only resolve 8 bits, but he is gaining 5 bits in the boxcar filter.. However, with a 12 bit ADC and a 1024 boxcar, by the same logic mentioned in another post (and I think it was you that said it) , it should be equal to a 16 bit.
Regardless, lets see if we can take this logic and manage to add ground balance, and auto-tracking ground balance to it. Even with the bad dac. Cause it will be fairy easy to move the code
to a more capable platform.
Leave a comment:
-
That could do fine, and perhaps some future generation of rigs will have such option, now that accelerometers are so ubiquitous. You'll not get much improvement that way, but some improvement nevertheless. We are not advancing lately at all, so that would be something.
Leave a comment:
-
One potential improvement in response is the use of adaptive filters who alter their response.
For fast swingers it would move the filter up and vice versa.
So the BW isnt high all of the time, reducing S/N
Lots of machines have a filter a little tight, set a little low forcing the user to a slow swing, and at an exact rate, but often the user swings at 'their' rate and looses sens as any targets would be reduced by the roll off.
For top sens and least noise for - all users - all of the time, a small accellerometer would give info for swing rate. The filters would centre on the freuquency where signals would come thru
the other thing that sprung to mind writing this is, the fastest part of the swing is in front of you, and zero at the ends- the filters could track the sweep so all of the signal was in the filter
Leave a comment:
-
No, it would give me a motion detector, and a perfect one in case of a boxcar (FIR moving average) high pass. The only thing I can't do in analogue electronics is FIR filtering. Some other are difficult to achieve, but FIR is downright impossible.Originally posted by scrungy_doolittle View PostSo a high pass filter of 4 seconds would give you a gb signal that is updated every 4 seconds?
I couldn't care less about USB in metal detecting. I can use low power bluetooth, and perhaps even IR, but I have no use for USB(wires) nor WiFi (too much juice). I do care about ADC dynamic range, and 12 bits ADC is ****-poor on its own. Maybe in some differential configuration, but straight 12 bit is just silly.Originally posted by scrungy_doolittle View PostAs Tinkerer says, it is impressive, but you have to run it at 96 mhz if you want to use the USB channel for comms.
Recursive filters are known as IIR filters, and they have implementations in analogue world. If I want to use an IIR filter, I simply put a capacitor.Originally posted by scrungy_doolittle View PostAnd as for a high pass FIR there are two ways to do this. keep a lot of memory readings, remove the oldest add in the newest. I do that with a 32 entry buffer in the medical device. BUT
There is also a way to do it with only having to store one value.
I don't have the basic algorithm handy, but my memory serves to tell me it involved taking a single stored value, and a sample value, and modifying the stored value by a multiply and divide involving the input.
In metal detecting you have one elusive thing that only select few detectors have sorted properly. That's a recovery speed, and XP Deus among detectors. The vast majority of nowadays detectors have incredibly stupid amounts of inappropriate excessive filtering. IIR filters smear the response, and a sharp signal becomes blunt. After many stages of filtering the signal is so much bludgeoned and spread in time that you can't distinguish it from the next signal, and the vast majority of detectors simply cant discern, say, two coins in a row. Deus can, and my IGSL can as well.
Time-wise the best of FIR filters is the simplest one, a boxcar. It has a very finite time response, and silly but usable frequency response. In frequency response the most important feature is -3dB bandwidth that limits the noise and keeps S/N in favourable limits. That's it. Everything on top of it excessive.
Leave a comment:
Leave a comment: