Announcement

Collapse
No announcement yet.

Moodz' Awesome Gold Pulse Induction Version 3 - MAGPI V3 Project

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

  • Teleno
    replied
    I think the gate capacitor C1 = 1uF is seeing current spikes from Q1 during Tx turn on and flyback, coupled through the drain-gate capacitance. It will accumulate noise from one period to the next destabilizing the bias point.

    A solution would be to isolate this capacitor with a JFET voltage follower whose output controls a larger cap C1b (via a small 0.1 ohm resistor to avoid ringing) This second cap would drive the gate and absorb the spikes. The follower restores the charge in C1b back to the stable reference in C1, all within one period, so that the errors are corrected from one sample to the next and do not accumulate.

    Click image for larger version  Name:	Schermopname (554).png Views:	0 Size:	6.9 KB ID:	449641

    Leave a comment:


  • Teleno
    replied
    Originally posted by moodz View Post

    I dont know what simulations you did but the transmit voltage is 5 volts and R12 is 330 ohms ... so the theoretical maximum current is 5/330 = 15.5 ma .. not a "few hundreds of mA".
    In the actual circuit the current is less than 10 ma ( 5 volts - diode drop voltages / 330 = 9 ma approx. )
    My bad, I was simulating with a higher voltage and a smaller resistor.

    Did you remove R6 from any of your prototypes and still work?

    Modulating the pulse width at U4B can be used for coarse/fine adjustment of the operating point.

    Even if it's a motion detector, with a faster loop (about 10ms response time) the voltage at C1 reacts to a target as a step change. This could be used as a static target indicator, but its amplitude will be about 10 times smaller than the unamplified signal ( d(Vzp)/d(Vgs) ~ 11 in my simulation).

    Instead of R12 I place a 50 ohm resistor between Q1 source and U2 (-) with R6 in place. The gain becomes less dependent on Rdson variations and the coil is still very overdamped for a soft-landing after the fast kick down. It's interesting to see that the currents from the target last longer and peak about 2us - 4us later, and the peaking depends on the time constant, so a fixed sampling delay benefits some targets in the detriment of others.

    If only I had the spare time and peace of mind to build this...

    Click image for larger version  Name:	Schermopname (553).png Views:	0 Size:	26.9 KB ID:	449614

    Leave a comment:


  • moodz
    replied
    Originally posted by Teleno View Post
    Been studying and simulating the preamp and control loop of this circuit and want to share some observations.

    R12 solves a ringing problem but is hast a downside. During the Tx time, current flows from VP through Q1, D3, the body diode of Q2 and R12 to GND. It amounts to a few hundreds of mA, very inefficient. It can be remedied with an NMOS type in series with Q2, its gate driven by the Tx pulse, closing when Q1 is open and vice-versa.

    ......
    I dont know what simulations you did but the transmit voltage is 5 volts and R12 is 330 ohms ... so the theoretical maximum current is 5/330 = 15.5 ma .. not a "few hundreds of mA".
    In the actual circuit the current is less than 10 ma ( 5 volts - diode drop voltages / 330 = 9 ma approx. )

    Leave a comment:


  • Teleno
    replied
    Been studying and simulating the preamp and control loop of this circuit and want to share some observations.

    R12 solves a ringing problem but is hast a downside. During the Tx time, current flows from VP through Q1, D3, the body diode of Q2 and R12 to GND. It amounts to a few hundreds of mA, very inefficient. It can be remedied with an NMOS type in series with Q2, its gate driven by the Tx pulse, closing when Q1 is open and vice-versa.

    When switch U4A is open (low pass filter disconnected from feedback), U2 is configured in open loop, acting as a comparator with reference in the voltage held in C3. Since this happens during the target period I wonder how it can ampliffy anything. Perhaps there's some fact I'm missing, but it puzzles me.

    It has been speculated that the early signal could be an X component. In my opinion it's just an artifact. As the coil current approaches zero, Q2 transitions from saturation to linear regime and negative resistance occurs at the sharp elbow caused by active damping. The time constant of the target affects this transition giving rise to unusual behaviour, such as short tau signals appearing under the baseline and long taus above it (from simulations), but later in the period they return to normal.

    Leave a comment:


  • Teleno
    replied
    Originally posted by moodz View Post
    doh ... typo on the damping mosfet ... Here is the FINAL FINAL schematic.

    Click image for larger version

Name:	image.png
Views:	1409
Size:	824.8 KB
ID:	423318
    R6 (10K) across U2 is gone, was that intentional?

    Leave a comment:


  • moodz
    replied
    Originally posted by ahmet View Post
    Hi Moodz, thank you for your reply. I redesigned the circuit as an SMD and tried to adapt it to Teensy 4.1. However, even though I played around with the S2 and S3 windows, I couldn't remove the ferrite core. If you have the voltage oscilloscope values ​​you need, I can measure them.​​​​​​
    I dont know why people rebuild circuits with very different parts and then expect them to work identically to the "published" circuit.
    Even if you build the orginal circuit there are various gotchas that can bring you unstuck ....my orignal intention with Magpi3 was to demonstrate the active damping frontend .. its not some sort of super detector.
    With a working original circuit you can reduce the effect of ferrite / hot rocks by adjusting S2 / S3 .. but it wont cancel a ferrite placed directly on the coil ferinstance.

    Take a scope shot of the output of the first preamplifier and I should be able to see what is happening there.

    moodz

    Leave a comment:


  • ahmet
    replied
    Moodz' Awesome Gold Pulse Induction Version 3 - MAGPI V3 Project

    Leave a comment:


  • ahmet
    replied
    details in next post pic---> teensy
    Last edited by ahmet; 04-26-2026, 04:47 PM.

    Leave a comment:


  • moodz
    replied
    Originally posted by ahmet View Post
    Hi everyone, has anyone tested the response to ferrite cores? Do I need to make hardware changes, or can I delete the response using software? I've watched videos, but I haven't been able to find clear information on how to delete it.
    There are many questions here.

    What sort of ferrite cores ? How close to the coil ? What size coil ? What is your coil inductance ? Is your active damping working properly ?
    Some photos might help.

    moodz.

    Leave a comment:


  • ahmet
    replied
    Hi everyone, has anyone tested the response to ferrite cores? Do I need to make hardware changes, or can I delete the response using software? I've watched videos, but I haven't been able to find clear information on how to delete it.

    Leave a comment:


  • ahmet
    replied
    The STM32H743/753 lines contain the Arm® Cortex®-M7 core (with double-precision floating point unit) running up to 480 MHz. Performance
    • 480 MHz fCPU/, 2424 CoreMark /1027 DMIPS executing from Flash memory, with 0-wait states thanks to its L1 cache
    • L1 cache (16 Kbytes of I-cache +16 Kbytes of D-cache) boosting execution performance from external memories
    ​perfect..

    Leave a comment:


  • ahmet
    replied
    I think the project is quite successful, but I have some observations, and the idea is important to me. In projects like this, isn't the input voltage regulator, noise, and current sufficiency inadequate? Wouldn't using a booster and a low-noise LDO be a better option? Wouldn't the voltage drop tendency lead to op-amp level changes? Wouldn't measuring the discharge time in metal identification be more stable than measuring the phase shift? If I implement these changes in the code and hardware, will I get positive results in terms of stability? Thank you for your answer.

    Leave a comment:


  • moodz
    replied
    Thanks .. I have been busy in VLF design / projects .. I did some work on MAGPI V4 a few months ago .. but cant publish it as it all needs tieing together.
    However I have been using a STM32H743 chip and something like this chip will be used in the V4 .. this will greatly simplify the project.
    I might get the AI to work on it because I dont have alot of time at the moment.

    Leave a comment:


  • ahmet
    replied
    Hi, congratulations on the great project, Moodz!! Has the project finished, or is it continuing elsewhere?

    Leave a comment:


  • van0014
    replied
    Moodz, I really appreciate this design you’ve made. It’s a heck of an upgrade from the detector I had, the gm1000. I didn’t want to spend any more than what those are worth, but wanted the same or better sensitivity. Then out of the blue, your design shows up. I’ve looked a bit through the source too, and can really appreciate what goes into it. I do a bit of arduino programming, and saw you must’ve put a fair bit of work in on the bench with this detector, having set up a fair bit of serial debugging code in the source

    For the firmware version I have, I wanted to try a different approach to the signal processing. In the ADC ISR, the signal is averaged by first looping 16 times then bitwise shifting down 16, I think. I used to think that was an exponential measuring method, but it could be a way of averaging. I experimented with this ISR, and tried to get a nice and configurable exponential result. It ended up working, with adjustable rise and fall time for the target. But also seemed to introduce sensitivity loss. It was a really nice response though. The largest of targets that would basically overload the signal for a short while would now still be able to give a strong response but also a double response as they’re passed over the cores of the coil. I liked that, but gave up with it after the AI frustrated me, and kept forgetting my strict parameters such as C89 compliance, not initialising variables inside for loops.
    I’m hoping to work on it again, and to make smaller changes to have a more useable result. Focusing on practical things. I think using ISR for the encoder worked well, and gave better response for adjusting. I was removing unused delay code and looking for spare ISR and change notice capabilities to use. A quadrature lookup table for the encoder may also have been what made it respond better, if the ISR alone was not the reason. I really enjoyed going through your code, and learned a bit more about your circuit in the process​

    Leave a comment:

Working...
X