Hi everyone,
Last year I was finally able to design my first IB metal detector. Now I’ve decided to run some experiments using a more modern approach—this design is heavily based on the Quasar ARM metal detector.
The TX side is fairly self-explanatory. It consists of a half H-bridge driven by discrete components. I think most of this could be eliminated by using a half-bridge driver with an integrated gate driver, or by moving directly to a full H-bridge with an integrated driver. For now, I’ll leave it as is. The input is controlled by a PWM signal that sets the strength of the TX signal. The TX current is averaged and made available for measurement through the MCU’s internal ADC.
The RX side consists of a differential amplifier with active compensation for residual coil imbalance. A signal generated by the MCU’s DAC is calculated to mitigate the effects of a not-perfectly-balanced coil. The conditioned signal can be acquired either directly by the MCU’s ADC (with an STM32F303, that’s 12 bits at a few MSPS) or by an external AD7685 SPI ADC (16 bits, 250 kSPS). Both options are available on the board.
The power supply section is pretty straightforward: input protection, a +5 V regulator for the TX circuit, a +5 V regulator for the analog front end (to be replaced with a low-noise version as soon as possible), and a 3.3 V regulator for logic. Here I have to give a shout-out to the original designer for the extremely clever power-button arrangement. Basically, BTN1 allows the voltage to pass through Q1, and once the MCU has booted, it keeps the gate of Q1 pulled to GND through Q3. The best part is that BTN1 remains usable by the MCU. Incredibly smart design.
The audio section is also taken from the Quasar ARM design. The S_F signal is a square wave at a given frequency, with its amplitude modulated by S_A—an analog signal generated by a second MCU DAC. At least, that’s my understanding of how it works.
Both the PCB and the components are on their way, and I expect them to be delivered by the end of the month. In the meantime, I have a question I’d like to ask:
Please note that there is no MCU on the PCB. I plan to test the design using a Nucleo board to avoid pin-assignment mistakes. An ST7789-based display will also be connected to the system.
Schematic is attached. Unfortunately I am unable to attach the KiCad project due to its size of 10MB (3MB limit), and I am also unable to attach STL files for the enclosure (STL not permitted for some reason).
Please let me know if you think this can be improved in any way, or if you have other ideas or suggestions.
Last year I was finally able to design my first IB metal detector. Now I’ve decided to run some experiments using a more modern approach—this design is heavily based on the Quasar ARM metal detector.
- TX: half-bridge with discrete MOSFET driver
- RX: MCP6022 (single supply)
The TX side is fairly self-explanatory. It consists of a half H-bridge driven by discrete components. I think most of this could be eliminated by using a half-bridge driver with an integrated gate driver, or by moving directly to a full H-bridge with an integrated driver. For now, I’ll leave it as is. The input is controlled by a PWM signal that sets the strength of the TX signal. The TX current is averaged and made available for measurement through the MCU’s internal ADC.
The RX side consists of a differential amplifier with active compensation for residual coil imbalance. A signal generated by the MCU’s DAC is calculated to mitigate the effects of a not-perfectly-balanced coil. The conditioned signal can be acquired either directly by the MCU’s ADC (with an STM32F303, that’s 12 bits at a few MSPS) or by an external AD7685 SPI ADC (16 bits, 250 kSPS). Both options are available on the board.
The power supply section is pretty straightforward: input protection, a +5 V regulator for the TX circuit, a +5 V regulator for the analog front end (to be replaced with a low-noise version as soon as possible), and a 3.3 V regulator for logic. Here I have to give a shout-out to the original designer for the extremely clever power-button arrangement. Basically, BTN1 allows the voltage to pass through Q1, and once the MCU has booted, it keeps the gate of Q1 pulled to GND through Q3. The best part is that BTN1 remains usable by the MCU. Incredibly smart design.
The audio section is also taken from the Quasar ARM design. The S_F signal is a square wave at a given frequency, with its amplitude modulated by S_A—an analog signal generated by a second MCU DAC. At least, that’s my understanding of how it works.
Both the PCB and the components are on their way, and I expect them to be delivered by the end of the month. In the meantime, I have a question I’d like to ask:
- In the RX circuit, all resistors are thin-film with 1% tolerance, they’re kept physically distant from switching signals, the MCP6022 has very low noise performance, and all capacitors are NP0. However, doesn’t the compensation DAC signal ruin everything? The output of a DAC isn’t particularly clean, and it only goes through minimal filtering. Is that really enough? What are the effects in terms of overall noise performance?
Please note that there is no MCU on the PCB. I plan to test the design using a Nucleo board to avoid pin-assignment mistakes. An ST7789-based display will also be connected to the system.
Schematic is attached. Unfortunately I am unable to attach the KiCad project due to its size of 10MB (3MB limit), and I am also unable to attach STL files for the enclosure (STL not permitted for some reason).
Please let me know if you think this can be improved in any way, or if you have other ideas or suggestions.

Comment