Announcement

Collapse
No announcement yet.

TineFPGA-GOLD Metal detector

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • TineFPGA-GOLD Metal detector

    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)


    Click image for larger version

Name:	Block_Diagram2.jpg
Views:	1
Size:	351.9 KB
ID:	371316 <= Why is it that every time I post an image from my camera, it is upside down, though looks ok on my computer ...

  • #2
    Fascinating experiment.

    I did investigate this idea in the past (but not with an FPGA) and concluded that attempting to discriminate different targets by measuring the slope was equivalent to discrimination by conductivity. I'm interested in finding out what happens when you get the design off the bench and into the real world.
    Lack of sensitivity is most likely due to only using 10-bit ADC sampling directly at the preamp output.
    Good luck. Watching with interest.

    Also, here's your block diagram the correct way round.
    Attached Files

    Comment


    • #3
      I wish you luck, sounds very interesting,

      Comment


      • #4
        "Why is it that every time I post an image from my camera, it is upside down, though looks ok on my computer"
        It's quite common these days for cameras to use meta-data to describe which of 8 'orientations' an image is created in , and they save the actual image in the same landscape-format, every time. So if you turn the camera 90 degrees for a 'portrait-mode' photo, it senses the camera rotation, takes a landscape photo, and tags it with "+90 degrees".
        The problems this creates include:
        software that doesn't use/recognise meta-tags for orientation
        resizing/cropping the image and losing the meta-data
        rotating the image, but not correcting the meta-data as well

        Pretty much all smartphones use this meta-data technique. Proper cameras less so.

        For info: the 8 orientations are 0, 90 ,180, 270 degrees rotation, and reflected/mirror image in all 4 angular rotations.

        Comment


        • #5
          Originally posted by Skippy View Post
          "Why is it that every time I post an image from my camera, it is upside down, though looks ok on my computer"
          It's quite common these days for cameras to use meta-data to describe which of 8 'orientations' an image is created in , and they save the actual image in the same landscape-format, every time. So if you turn the camera 90 degrees for a 'portrait-mode' photo, it senses the camera rotation, takes a landscape photo, and tags it with "+90 degrees".
          The problems this creates include:
          software that doesn't use/recognise meta-tags for orientation
          resizing/cropping the image and losing the meta-data
          rotating the image, but not correcting the meta-data as well

          Pretty much all smartphones use this meta-data technique. Proper cameras less so.

          For info: the 8 orientations are 0, 90 ,180, 270 degrees rotation, and reflected/mirror image in all 4 angular rotations.
          I have this issue on my tablet. My screen was upside-down and had to adjust the registry. But now when posing on some websites the photos are upside down. If I take the photo upside down there posted correctly

          Comment


          • #6
            Originally posted by Skippy View Post
            "Why is it that every time I post an image from my camera, it is upside down, though looks ok on my computer"
            It's quite common these days for cameras to use meta-data to describe which of 8 'orientations' an image is created in , and they save the actual image in the same landscape-format, every time. So if you turn the camera 90 degrees for a 'portrait-mode' photo, it senses the camera rotation, takes a landscape photo, and tags it with "+90 degrees".
            The problems this creates include:
            software that doesn't use/recognise meta-tags for orientation
            resizing/cropping the image and losing the meta-data
            rotating the image, but not correcting the meta-data as well

            Pretty much all smartphones use this meta-data technique. Proper cameras less so.

            For info: the 8 orientations are 0, 90 ,180, 270 degrees rotation, and reflected/mirror image in all 4 angular rotations.
            SaltyDog. Is the picture upside down if you select Preview Post before selecting Submit Reply .

            Comment


            • #7
              Very interesting ideas and thanks for posting about this.

              How are the slope detectors implemented?

              Comment


              • #8
                I've just examined the 'upside down' block diagram. And the raw jpeg image IS upside down, and presumably meta-data states 180o rotation.
                This may help you get pics to upload correctly in future.

                Comment


                • #9
                  Originally posted by SaltyDog View Post
                  I have attached a rough block diagram, I would really appreciate it if someone else, could put this in a better (electronic)form


                  I can re-draw the block diagram, no problem.

                  Comment


                  • #10
                    @SaltyDog - you need to add ground balance. On beach or heavy mineralized soils is useless. Check Minelab SD2000 how they do it
                    I think for 10bit ADC you have very good result with 12uS coil

                    Comment


                    • #11

                      Comment


                      • #12
                        Print Screen can solve your problem.

                        Comment


                        • #13
                          Originally posted by WM6 View Post
                          Print Screen can solve your problem.

                          Aha! got it!
                          Attached Files

                          Comment


                          • #14
                            Originally posted by flex View Post
                            @SaltyDog - you need to add ground balance. On beach or heavy mineralized soils is useless. Check Minelab SD2000 how they do it
                            I think for 10bit ADC you have very good result with 12uS coil

                            Hi,
                            I have no issue with ground balance .. I have tried on heavy mineralized soils ... not a problem (we have black sands an west coast beaches and hot rocks in river beds) gold placed on samples taken from these areas is still picked up as gold ..

                            Cheers

                            Comment


                            • #15
                              Originally posted by Qiaozhi View Post
                              Fascinating experiment.


                              Lack of sensitivity is most likely due to only using 10-bit ADC sampling directly at the preamp output.

                              Also, here's your block diagram the correct way round.
                              I will try with 16-bit ADC, thanks for rotating the block diagram

                              Comment

                              Working...
                              X