Announcement

Collapse
No announcement yet.

Tinkerer's ( and others ) FPGA backend processor

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

  • #31
    Detect a Quarter one meter deep in the ground

    Originally posted by moodz View Post
    After some time off for the easter holidays here ... more code bashing on the TMPI ( tinkerer / moodz PI ) is getting somewhere.
    The differential ADC capture is now fully functional with a 3.5 pF input capacitance.
    The GPX4500 has 5 input channels .... the TMPI has 512 channels. The gain of each channel can be varied digitally from 1 to 100 or blanked. The output "flatness" at max gain of 100 across all channels is 4.7 uVolts. Each channel is the digital equivalent of the conventional sample and hold / demod / integrator found in conventional PI circuitry.
    Input is dual differential ( ie two ADCs ) and the TX drive can also drive differential switching. The interface will work with Mono, IB, Differential Coils.
    All channels are simultaneously available for processing thanks to Xilinx dual port RAM blocks in the FPGA. ( ie you can read AND write the ram at the same address at the same time )
    The noise output of each channel at max gain / input grounded is better than 3 uV
    The default TX / RX window is 512 uS.
    The TX pulse is stored in a small RAM block in the FPGA and is locked to the RX waveform sampler. This means that any duty cycle / pulse repetition waveform can be generated by loading the RAM with a TX 'Pattern' . The input channels sample across the TX flyback and RX windows. The default clock for the TX / RX sync is 100Mhz ... 10 ns resolution. Each ADC channel aquisition time is a minimum of 67 nS.

    Things to do ... build the tinkerer front end. Code the menu etc ...
    This is very impressing, even overwhelming.

    I think it is time to give the DREAM DETECTOR a go.

    DREAM DETECTOR? I guess that is as good a name as any for a PI detector that can detect a Quarter in one meter of ground and gives good FE discrimination too.

    So I want to set this as a design goal.

    Design the front end and the power supply. It will need some power!!!

    What should the power limits be?

    Any suggestions anybody?

    What size coil would be the best?

    With a fairly large coil, we have to think of the ergonomics.

    Any good ideas out there????????????????

    Tinkerer

    Comment


    • #32
      Update on the FE discrimination

      Originally posted by Tinkerer View Post
      Thin, very rusty scraps of cans litter many places where gold nuggets or relics could be found.
      These scraps are a bit difficult to differentiate from non magnetic metals.
      In the endeavor to find a solution to this problem I made some tests with targets that can represent the trash found in the field.

      The targets are 3 steel disks of 30mm diameter.

      One disk is new and still painted
      The other disk I burned the paint off, then gave it a rinse in muriatic acid and then packed it into a wet paper towel with some salt, to speed up the rusting.
      The third disk is very rusty. not much steel is left. At some places there are holes rusted through, where one can see light through the disk.

      For this test I used the same setup, coil etc. as for the thickness test where I used copper targets above.
      This setup is optimized for exciting eddy currents in the core of thick targets.

      This steel scraps respond better to a TX pulse that is optimized for generating skin effect eddy currents.

      I will repeat the tests when I have a setup that is optimized for that.

      http://www.geotech1.com/forums/showp...5&postcount=26

      The following is the test with steel disks, new, rusty and very rusty. The same setup as above has been used. No tweaking.

      Steel disk. New with paint

      Flat = negative 5mV
      45 degrees = negative 4mV
      90 degrees= positive 25mV

      Steel disk, very rusty, some see through holes

      Flat = negative 3mV
      45 degrees = positive 2mV
      90 degrees = positive 13mV

      Steel disk, rusty, bent 90 degrees

      Lying on half bent = positive 7mV
      Vertical = positive 25mV

      Steel can of beans of 450ml full, at 50cm
      Flat = positive 2mV, Vertical = negative 2mV

      Aluminium soda can of 355ml, empty, at 50cm
      Flat negative =3mV Vertical negative = 3mV

      With tweaking the magnetic response and using a TX pulse that is optimized for thin targets , the results can be improved.

      So I will tweak and then show the tweaked results.

      I hope the use of the FPGA will make it possible to have the choice of several different TX pulse methods that will make it possible to obtain much more information about the buried target, thus saving a lot of unnecessary digging.

      Tinkerer
      So I will tweak and then show the tweaked results. I said above. So here is the follow up:

      I did some more tests with the steel disks. I knew I could get a more precise response, because I had had it before, when using a DD coil.
      It turned out to be a very simple change.
      In the early test I used :
      Time of the samples taken at………6uS, 16uS, 42uS after TX switch OFF

      By changing the sample timing to 6uS, 16uS and 47uS, after switch off, none of the steel targets gave a negative response in any position. 100% discrimination.

      Amazing what a difference of 5uS in the sample timing can do. Makes me wonder what we will be able to do with moodz's FPGA, where the timing possibilities are just about infinity!!!!!!

      Actually not quite right. The can of beans, at 50 cm distance from the coil, still gives a very slight negative response when in the vertical position.

      This can of beans is my most difficult target. The volume is 450cc. It is made of tin coated steel. I have had it discriminated with the DD coil, but with the 44cm diameter concentric coil the discrimination is not good yet.

      What can be the cause? My guess is that it is a matter of skin effect. The outer skin is tin. The response of the tin is higher than the reactive response
      of the steel.

      Now, this test is done with the setup that gives a good response to the thickness of the targets.

      With the DD coil, I used the standard TX pulse, that gives a pronounced advantage to the skin response.

      So why is the response of the tin skin higher than that of the steel?

      What about the position. Why is the relative magnetic response weaker when in the vertical position? It is not so with steel nails and other long targets that give a good magnetic dipole response.

      The enigma persists.

      I will have to bring another update when I get it solved.

      Tinkerer

      Comment


      • #33
        Progress report

        ...a busy night coding the scope function which I believe will be a very useful feature for examining in real time the goings on inside the FPGA and for lining up coils and timings etc without lugging a real scope around ... and you cant probe the inside of the chip anyway with a 'real' scope.

        the old version only had one channel .... this one has 4 !! in color no less. I can fit a maximum of 8 channels in this FPGA I am using at the moment including the CPU and processing for the TMPI. I have just ordered in a bigger board with three times the capacity however a 24 channel scope .... hmmm

        Below is the FPGA scope in action you should be able to see a yellow , magenta, white and red trace. The 3 flat liners are the traces from the 512 channel bank and the noise magenta is the input .... see the digital filters do work Notice also the small blips on the outputs are all synced together ... totally synchronous tracking.

        The screen is 800x600 pixel on a samsung 20 inch vga monitor.

        Moodz


        Click image for larger version

Name:	4ch.jpg
Views:	1
Size:	71.0 KB
ID:	325478

        Comment


        • #34
          .. progress report

          ... adding the first filter bank for ground balance .... below are traces from the built in scope funtion showing the TX pulse ( yellow ) the input signal ( purple ) the target signal ( white ) and the reference ( red ) I have demonstrated a target showing how the target signal white moves away from the red reference. Note how the digital filters have extracted the clean reference ( red ) from a very noisy input .... cant even see it on the input signal ( purple )... that is one smokin filter even if I say so myself.

          The input signal is depends to some degree on the TX pulse, the target signal is derived from the input signal and so on.

          The red reference is the equivalent of sampling with a 28 bit ADC ... moodz filter function .. and to think I hated maths at school.

          This milestone shows a number of things ....
          1. all four channels are working correctly on the built in scope function
          2. sync lock is rock solid
          3. the filters work better than I expected.

          ... also posted in my New differential thread ... he he ....

          The significance of this step is that the first balance channel has been created ... there will probably be more than one ...
          Ground balance channel.
          EMI cancellation channel
          Earth field channel
          Descrimination channel ( Metal )
          Descrimination channel ( earth void )

          that is as long as I dont run out of ram blocks in the FPGA ... each filter burns up at least 1 and this chip only has 20 internally.

          Moodz

          No Target pic
          Click image for larger version

Name:	notarget.jpg
Views:	2
Size:	106.3 KB
ID:	325504

          With Target pic
          Click image for larger version

Name:	TARGET.jpg
Views:	2
Size:	94.4 KB
ID:	325505

          Comment


          • #35
            CHIRP TX METHOD for FPGA

            A TX method that has great potential is the CHIRP METHOD. See an older post below:
            http://www.geotech1.com/forums/showp...&postcount=185

            With the immense computing power a FPGA, this becomes a real possibility.

            The CHIRP METHOD gives so much information about the target, that it gets quite complicated to unravel all of it in the old Analog way.

            But with FPGA and digital signal processing, it might just become THE METHOD OF THE FUTURE PI.

            What does CHIRP STAND FOR?

            Look at: http://en.wikipedia.org/wiki/Chirp

            Now let's consider a single pulse TX. Say 100uS duration. This would be best to excite eddy currents in a target with a TC of 30uS.

            All other targets, smaller or larger would not be fully excited.

            How would a CHIRP TX excite the targets?

            Let's take a first pulse of 300uS followed by a series of TX pulses, each one halve the one before, until the last pulse of the series with, say about 5uS.

            This would produce optimum target excitement for EVERY TARGET with a TC less than 100uS.

            Any ideas?

            Any suggestions?

            Tinkerer

            Comment


            • #36
              FPGA progress EMI reduction

              ... EMI ingress is a problem with some coil types depending on build quality and efficiency of shielding .... Had bit of a problem with the front end ADC missing a bit on one of the channels due to a subtle logic errror ... however all fixed now
              Below is a screen shot of the output of the FPGA engine showing rather extreme EMI ingress on a single ended sheilded 22 cm monocoil.
              The yellow trace is the unfiltered input.
              The white trace is the output of the first filter stage
              and the red trace just visible under the white trace is the output of filter stage 2.
              The pink horizontal line is the other input for differential coils ( not used on mono coils of course. )
              The Tx pulse is bipolar and the scale is approx 0.3 mV / division.
              Because the ADC is so sensitive no external frontend amplification is used ( only active flyback protection ) The resolution is approximately 4.7 uVolt / pixel on screen.
              Homework questions ...
              What is the maximum amplification that can be applied to the frontend ? What is the procedure for finding this maximum gain ?

              Moodz.

              Click image for larger version

Name:	EMIreduce.jpg
Views:	1
Size:	296.2 KB
ID:	325612

              Comment


              • #37
                What is the maximum amplification that can be applied to the frontend ? What is the procedure for finding this maximum gain ?

                How much amplification? As your scope shot shows, there is a lot of noise entering through the coil. The more we amplify this noise together with the signal, the more noise we will have to filter out later.

                One way to better the S/N, is to produce a signal of greater amplitude. This depends a lot on the TX. The way the target is excited. This is why I have started a new thread here,
                NEW TX METHODS.. http://www.geotech1.com/forums/showthread.php?t=16580

                But, how much amplification?

                The preamp has it's limitations. When it saturates, the amplification is too much. If the signal saturates at one spot in time, it will take a considerable time to come out of saturation and the signal is distorted. Distortion in the target signal obliterates some of the information contained in the signal.

                Different opamps behave differently in this respect.

                How to define the limits for he maximum preamp gain?

                This is where the dynamic range comes into play. The preamp should not saturate under the usual working conditions. This includes ground response and large targets. The maximum size of targets is the designers decision.

                At the same time, the amplification needs to be enough so that the smallest target that the MD is designed for, can be detected. On the small end, the S/N plays a heavy role. Of course, the filtering capability defines the minimum S/N relationship.

                Tinkerer

                Comment


                • #38
                  working out the maximum gain for a digital system.

                  1. terminate the input amplifier in with its characteristic input impedance.
                  2. note NOB level for ADC ... minimum noise input that will cause the ADC to output the next binary level eg if ADC output is 000000000 then the next term is 000000001 ...or ....
                  3. Crank gain on input amp till NOB level goes up one.

                  Of course the hardest thing is setting the input impedance correctly .... most assume it is purely resistive which for very sensitive inputs may not be.

                  moodz.

                  Comment


                  • #39
                    Originally posted by Tinkerer View Post

                    Any ideas?

                    Any suggestions?

                    Tinkerer
                    Hi Tinkerer

                    It is difficult to follow yours and moods ideas, so dont ask for some additional.

                    This reads like the most exciting novel, good job.

                    Wish you full success.

                    Comment

                    Working...
                    X