Uni-PI - Universal Pulse Induction Metal Detector board for microcontrollers like Ardiuno, PIC, AVR or whatsoever.
If you have nothing to do at that boring snowy, rainy ... or desert hot day you can tell something about the idea
to create universal analog PI detector board to connect it to any microcontroller like Ardiuno, PIC, AVR or any you like.
How to connect it for example to ATTINY85 you can see on schematic:




Construction is more than classic. Practically it is Surf PI reincarnation
with microcontroller and some simplification.
TX Coil drive with P-channel MOSFET receiving logic signal from 5V microcontroller of your choice.
Capacitive coupling to preamplifier build on very low noise single supply OpAmp ISL28291.
Gain from 1 up to 1:2000 can be set with trimmer depending on schematics, coil ans software conditions.
Additional sensitivity pot can be used for fast adjustment by the way.
Then two SPST (NO) switches feeding signal to differential integrator with gain 1:475
to take positive and negative samples according individual algorithm you are preferring to play.
After Low Pass RC filter signal goes out to separated PSB to microcontroller ADC input.
To connect Uni PI board to your favorite microcontroller there is a six wires bus:
TX - Transmit impulse input.
S2 - Ground sample impulse input.
GND - Ground.
S1 - Target sample impulse input.
+5 - +5V power to microcontroller. Careful!!! Some of MC using different power voltages like 3.3V or even 1.8V. Do not connect if not sure.
ADC - Output signal to microcontroller ADC.
Classic timing diagram that widely used you can program:
All inputs are LOW all the time except:
1. 50 microsecond TX HIGH
2. 15-25 microsecond delay (depending on coil)
3. 50 microsecond S1 HIGH. Reading target signal.
4. 250 microsecond delay.
5. 50 microsecond S2 HIGH. Subtracting ground signal.
6. Reading ADC signal by microcontroller ADC, averaging it and comparing with saved overages from previous periods to provide indication of target. Or any algorithm you like.
That cycle usually has 600 repetitions per second. So you need to create an interrupt with one of the timers in your microcontroller to repeat cycle in set time periods.
Sure because of flexibility of microcontroller you can experimenting with more complex timings and frequencies including those for advanced ground balancing or target identification.
Coil is for SurPI (240-300 uH. 1-2 Ohm.) For different coils and timing sequences please be sure you have adjusted dumping resistor 390 Ohm 2W to proper value.
Good Luck!!!
If you have nothing to do at that boring snowy, rainy ... or desert hot day you can tell something about the idea
to create universal analog PI detector board to connect it to any microcontroller like Ardiuno, PIC, AVR or any you like.
How to connect it for example to ATTINY85 you can see on schematic:
Construction is more than classic. Practically it is Surf PI reincarnation

TX Coil drive with P-channel MOSFET receiving logic signal from 5V microcontroller of your choice.
Capacitive coupling to preamplifier build on very low noise single supply OpAmp ISL28291.
Gain from 1 up to 1:2000 can be set with trimmer depending on schematics, coil ans software conditions.
Additional sensitivity pot can be used for fast adjustment by the way.
Then two SPST (NO) switches feeding signal to differential integrator with gain 1:475
to take positive and negative samples according individual algorithm you are preferring to play.
After Low Pass RC filter signal goes out to separated PSB to microcontroller ADC input.
To connect Uni PI board to your favorite microcontroller there is a six wires bus:
TX - Transmit impulse input.
S2 - Ground sample impulse input.
GND - Ground.
S1 - Target sample impulse input.
+5 - +5V power to microcontroller. Careful!!! Some of MC using different power voltages like 3.3V or even 1.8V. Do not connect if not sure.
ADC - Output signal to microcontroller ADC.
Classic timing diagram that widely used you can program:
All inputs are LOW all the time except:
1. 50 microsecond TX HIGH
2. 15-25 microsecond delay (depending on coil)
3. 50 microsecond S1 HIGH. Reading target signal.
4. 250 microsecond delay.
5. 50 microsecond S2 HIGH. Subtracting ground signal.
6. Reading ADC signal by microcontroller ADC, averaging it and comparing with saved overages from previous periods to provide indication of target. Or any algorithm you like.
That cycle usually has 600 repetitions per second. So you need to create an interrupt with one of the timers in your microcontroller to repeat cycle in set time periods.
Sure because of flexibility of microcontroller you can experimenting with more complex timings and frequencies including those for advanced ground balancing or target identification.
Coil is for SurPI (240-300 uH. 1-2 Ohm.) For different coils and timing sequences please be sure you have adjusted dumping resistor 390 Ohm 2W to proper value.
Good Luck!!!
Comment