Hi everyone,
Welcome to my new project. (This thread is a continuation of comments I made on the Pickini Metal detector thread, which has been of great inspiration for this project).
After trying many metal detector circuits over the years, I have determined that the Pulse Induction (PI) metal detector is the best overall performing machine, hands down.
Everyone keeps telling me that you can't discriminate metals with a PI detector. Well I love a challenge, and I have endeavoured to prove the nay-say'ers wrong ..
I have come up with an FPGA based PI detector that DOES discriminate, and it does it very well and consistently.
The FPGA I have chosen is the Lattice ICE40HX8K. Initially I have done my development on the Lattice ICE40-hx8k breakout board to prove the project, with the intention of moving the code over to the TinyFPGA-BX module board (price $30), which I will plug into a custom carrier board that will house the coil FET driver and the pre-amp, those two items are the only extra hardware, everything else is performed in the FPGA. (The TinyFPGA-BX board can be found here: https://github.com/tinyfpga/TinyFPGA-BX )
The technology I have included in the FPGA is:
1. Fast 10-bit ADC with >200Khz bandwidth
2. Fast 10-bit DAC for op-amp auto offset control.
3. A FIR filter
4. Two IIR filters.
5. Two Slope detectors
6. A FET pulse driver
7. NCO osc to driver headphones/speaker
8. Another ADC for threshold control, (However, I may automate this)
9. A custom CPU that ties everything together and can send out diagnostic data via a USB port.
(The same USB port is used to configure the FPGA)
10. LED driver that shows discrimination results.
I have attached a rough block diagram, I would really appreciate it if someone else, could put this in a better (electronic)form
Currently I am using a board from the MPP (MiniPulse Plus) project to provide the FET driver and preamp, until I come up with my own design. (The dual stage pre-amp is ok, but not really fast enough and needs work to get rid of saturation issues)
Results:
Discrimination:
I can show metal type on the 5-LED's, they show the following:
LED 1. Gold
LED 1 & 2 Silver
LED 2 & 3. Nickel coin etc
LED 3 & 4 Iron
LED 4. large Lead
LED 5. Magnets, Al can, Large stainless steel
The visual indication is easy to see the metal type at a glance. Detection of the target is still done with tone(s) in the headphones.
Sensitivity:
This is ok for now, but does need a bit of work going forward. I can detect a thin gold wedding ring at 6", small coins at the same distance, and Al cans at 1/2 .. 2 feet ..
The main problem I see is the pre-amp, it needs to be faster in order to follow the discharge waveform, at the moment, it overshoots .. that is where I will put my efforts from now on. I am happy with the discrimination (the hard part) just not the sensitivity ..
Love to hear everyone's thought's ..
PS: I am using a pretty average coil at the moment, discharge in 12us, need a faster coil as well to match a new pre-amp.
PPS: The switch on the block diagram can allow only searching for gold/silver .. (The performance is exactly the same as "All Metal" mode)
<= Why is it that every time I post an image from my camera, it is upside down, though looks ok on my computer ...
Welcome to my new project. (This thread is a continuation of comments I made on the Pickini Metal detector thread, which has been of great inspiration for this project).
After trying many metal detector circuits over the years, I have determined that the Pulse Induction (PI) metal detector is the best overall performing machine, hands down.
Everyone keeps telling me that you can't discriminate metals with a PI detector. Well I love a challenge, and I have endeavoured to prove the nay-say'ers wrong ..
I have come up with an FPGA based PI detector that DOES discriminate, and it does it very well and consistently.
The FPGA I have chosen is the Lattice ICE40HX8K. Initially I have done my development on the Lattice ICE40-hx8k breakout board to prove the project, with the intention of moving the code over to the TinyFPGA-BX module board (price $30), which I will plug into a custom carrier board that will house the coil FET driver and the pre-amp, those two items are the only extra hardware, everything else is performed in the FPGA. (The TinyFPGA-BX board can be found here: https://github.com/tinyfpga/TinyFPGA-BX )
The technology I have included in the FPGA is:
1. Fast 10-bit ADC with >200Khz bandwidth
2. Fast 10-bit DAC for op-amp auto offset control.
3. A FIR filter
4. Two IIR filters.
5. Two Slope detectors
6. A FET pulse driver
7. NCO osc to driver headphones/speaker
8. Another ADC for threshold control, (However, I may automate this)
9. A custom CPU that ties everything together and can send out diagnostic data via a USB port.
(The same USB port is used to configure the FPGA)
10. LED driver that shows discrimination results.
I have attached a rough block diagram, I would really appreciate it if someone else, could put this in a better (electronic)form

Currently I am using a board from the MPP (MiniPulse Plus) project to provide the FET driver and preamp, until I come up with my own design. (The dual stage pre-amp is ok, but not really fast enough and needs work to get rid of saturation issues)
Results:
Discrimination:
I can show metal type on the 5-LED's, they show the following:
LED 1. Gold
LED 1 & 2 Silver
LED 2 & 3. Nickel coin etc
LED 3 & 4 Iron
LED 4. large Lead
LED 5. Magnets, Al can, Large stainless steel
The visual indication is easy to see the metal type at a glance. Detection of the target is still done with tone(s) in the headphones.
Sensitivity:
This is ok for now, but does need a bit of work going forward. I can detect a thin gold wedding ring at 6", small coins at the same distance, and Al cans at 1/2 .. 2 feet ..
The main problem I see is the pre-amp, it needs to be faster in order to follow the discharge waveform, at the moment, it overshoots .. that is where I will put my efforts from now on. I am happy with the discrimination (the hard part) just not the sensitivity ..
Love to hear everyone's thought's ..
PS: I am using a pretty average coil at the moment, discharge in 12us, need a faster coil as well to match a new pre-amp.
PPS: The switch on the block diagram can allow only searching for gold/silver .. (The performance is exactly the same as "All Metal" mode)

Comment