The Lazy Man's Germanium Tester

Started by Kevin Mitchell, October 06, 2021, 11:51:52 PM

Previous topic - Next topic

Kevin Mitchell

I got lazy. And so can you!

I had breadboarded the germanium leakage and true gain tester from Geofex as I finally decided to order boxes of those recently popular new-old-stock Russian germanium transistors.
Because I absolutely hate math I had put together a spread sheet with the formulas ready to go! All I had to do was punch in the two measurements - open base voltage & closed base voltage.
Well apparently that was too much work for me and I got sick of it real quick. Numbers kept changing and results were slightly different each time I retyped the measurements

So the thought occurred to me early this afternoon, can I make an arduino do it? Turns out I can! And it's surprisingly accurate in comparison to the manual method.
Devices tested in this photo are MP39B - with noted gains between 20 & 60 according to our archives around the forum.


Before I draw up a schematic I will say that the parts in the photo are certainly overkill as the majority of both ICs & Arduino are unused. I had also kept some uneeded values in the code just in case I wanted to display them to manually to check the results against a DMM & my pre-formulated spreadsheet.

Here's my code for anyone interested. I'll try to put up a schematic tomorrow, but it's rather straight forward. The number .00488 is to convert the resolution of the 10-bit ADC @ 5 volts to the actual voltage (5/1024 =  ~0.00488).
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3F, 16, 2);

int pulsePin = 55;
int adcPin = A0;

float voltageA;
float voltageB;
float voltageLeak;
float voltageGain;

void setup() {
  lcd.begin();
  lcd.backlight();
  pinMode(pulsePin, OUTPUT);
}

void loop() {
  //read open base
  digitalWrite(pulsePin, LOW);
  delay(50);
  voltageA = analogRead(adcPin)*.00488;
  //read closed base
  digitalWrite(pulsePin, HIGH);
  delay(50);
  voltageB = analogRead(adcPin)*.00488;
 
  //print result
  voltageGain = (voltageB-voltageA)*100;
  lcd.clear();
  lcd.print("TGain = ");
  lcd.print(voltageGain, 1);
  lcd.print(" hfe");

  voltageLeak = voltageA/2472*1000000;
  lcd.setCursor(0, 1);
  lcd.print("Leakage = ");
  lcd.print(voltageLeak, 0);
  lcd.print(" uA");
}


That's it for tonight  8)
  • SUPPORTER

bluebunny

That's very cool, Kevin.   8)

Talking of cool, have you also devised a robot to pick up and connect each transistor in turn to avoid heating them up with your fingers?   ;)
  • SUPPORTER
Ohm's Law - much like Coles Law, but with less cabbage...

digi2t

  • SUPPORTER
Dead End FX
http://www.deadendfx.com/

Asian Icemen rise again...
http://www.soundclick.com/bands/default.cfm?bandID=903467

"My ears don't distinguish good from great.  It's a blessing, really." EBK

Kevin Mitchell

#3
Quote from: digi2t on October 07, 2021, 06:23:44 AM
You had me at "lazy". :icon_wink:
:icon_lol: :icon_lol: :icon_lol:

Quote from: bluebunny on October 07, 2021, 04:07:47 AM
Talking of cool, have you also devised a robot to pick up and connect each transistor in turn to avoid heating them up with your fingers?   ;)
Okay that's a bit much  :icon_lol:

Since the device updates the two measurements faster than we could and also without transferring body heat from getting near to close the base lead the measurements stabilize rather fast!

Before I go into any details about the circuit itself (sorry for so many edits here!) I'm going to see about simplifying it with a 1P2T analog switching IC and also a smaller micro controller. Time to do some shopping!
  • SUPPORTER

Ben N

You know what they say: one man's laziness is another man's freebie! Thanks, Kevin, looking forward to it.
  • SUPPORTER

Mark Hammer

Outstanding!  I've been looking for something useful to do with the Arduinos I have, plus a reason to compel me into digging deeper into programming.  This looks like the ticket.  I'm off on a long distance drive out to the coast over this weekend, but look forward to hunkering down when I return, and eagerly await the schematic.

Thanks for this Kevin.  A real act of forum citizenship.

Kevin Mitchell

Thanks, Mark! And thank you for your kind words. Hope you have fun with it!

Worth noting for folks wanting to try this;
If you don't have an I2C display or something similar around you could simply use the Arduino IDE's serial monitor - only you can't clear it so the data just keeps stacking. A couple 3 or 4 digit segment displays and some shift registers was my first idea.

Tonight I'll verify if a buffer is necessary - used a 4049 to raise the pulse voltage for the CD4016 as it has +9v VDD for lower on-resistance. Could probably get away with +5v as the transistor measurements don't exceed a few volts. Then I'll draw up the schematic of what's on the breadboard.

I'm going to design a board that uses an ATtiny and a single analog SPST IC. TS12A4514P seems like a good candidate. Just have to shop around for a display I like and an appropriate controller for it. And also means to protect the controller from >5 volts hitting the ADC from potential user error while also not mucking up the readings.
  • SUPPORTER

287m

yeah, ATtiny ftw. Overkill use big boy arduino.

years of pedal building, i never build Ge Fuzz for myself. Hahaha, laugh hard to myself.

PRR

#8
What you really need is one of these. I doubt anybody will build it. Not enuff sexy mojo.





3-page PDF https://pdfhost.io/v/YsOJNBbNM_Image2
  • SUPPORTER

Kevin Mitchell

#9
Quote from: PRR on October 07, 2021, 09:07:56 PM
What you really need is one of these. I doubt anybody will build it. Not enuff sexy mojo.
Now that's retro  8)

Here's a quick schematic. Told ya it was straight forward!



I had a late thought about the accuracy of the ADC. Since it relys on an unstable VCC voltage that isn't exactly 5 volts it isn't as accurate as most of our multimeters. But after running some tests with my Arduino Mega I feel safe saying it's close enough for this purpose. There are methods of improving the ADC of some arduinos like the Uno by utilizing a more stable internal reference. So if anyone is worried about that I suggest following one of the many tutorials on dealing with ADC accuracy. Sadly the Mega doesn't have that reference voltage. I also seen someone mention adding 4 ADC measurements & divide by 2 resulting in 4 samples averaged and displayed as an extra bit to help negate any noise from the ADC results.

For a PCB version I would use an external ADC of higher resolution with a stable reference voltage.
  • SUPPORTER

PRR

#10
That polarity does not look right for a PNP?

Actually I'm not sure what that rig measures.

If you use 4066 you do not need 4049?
  • SUPPORTER

Rob Strand

#11
QuoteThat polarity does not look right for a PNP?

Actually I'm not sure what that rig measures.

If you use 4066 you do not need 4049?

Need to flip C and E.

The switch opens the base to measure leakage.  It's basically RG's circuit,

http://www.geofex.com/Article_Folders/ffselect.htm


QuoteWhat you really need is one of these. I doubt anybody will build it. Not enuff sexy mojo.
You could do a "DMM Adaptor" version which uses a DMM to display the readings.   I guess not much different to RG's ckt.
Send:     . .- .-. - .... / - --- / --. --- .-. -
According to the water analogy of electricity, transistor leakage is caused by holes.

Kevin Mitchell

#12
Wrong way? What do you mean?  ::)
I was tired lol. Fixed. Thanks, guys!

Quote from: PRR on October 07, 2021, 11:39:49 PM
If you use 4066 you do not need 4049?
Depends on the threshold of a 4016 or 4066 running on 9 volts. I'm using a 4016 and ~4.8v from the Arduino wasn't cutting it to trigger the switch.

There's of course alternatives to a buffer. It was just the easiest thing for me to do in a pinch.
  • SUPPORTER

rutabaga bob

Life is just a series of obstacles preventing you from taking a nap...

"I can't resist a filter" - Kipper

BetterOffShred

This project is rad, do you think an ATTiny85 could do this?


PRR

Quote from: Rob Strand on October 08, 2021, 01:31:41 AM...You could do a "DMM Adaptor" version which uses a DMM to display the readings. ....

The sweet thing about needle meters is you can do a LOT of math by marking the scale to suit. Division with a constant (which seems to be the objection to the simple plans) is just marking the scale 1 to 0. Multiplication, 100 to 0.

The really snazzy needle meters were the old SWR meters. The intersection of two needles, read on the middle lines 1 thru 8, does a division of two variables.

  • SUPPORTER

Kevin Mitchell

#17
Quote from: BetterOffShred on October 08, 2021, 11:17:44 AM
This project is rad, do you think an ATTiny85 could do this?
That was the first one I had considered as an alternative. The ADC is 10 bit as well. I'd imagine if you have a stable 5 volts supply voltage it would be just as good if not better than the AIO arduinos with dodgy 5 volt references. I think I might have one or two kicking around I could try!

Could always use an external ADC. I was just looking at the MAX1241. A little pricey though perhaps worth the accuracy if you're looking for precision here.

Quote from: Big Monk on October 08, 2021, 11:39:25 AM
This is my Lazy Man's Germanium tester:

https://www.amazon.com/Pocketable-Multifunctional-Backlight-Transistor-Capacitor/dp/B07X5YS1JN/ref=asc_df_B07X5YS1JN/?tag=hyprod-20&linkCode=df0&hvadid=416638923984&hvpos=&hvnetw=g&hvrand=4105942515975511802&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9005070&hvtargid=pla-845729973092&psc=1&tag=&ref=&adgrpid=93604202533&hvpone=&hvptwo=&hvadid=416638923984&hvpos=&hvnetw=g&hvrand=4105942515975511802&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9005070&hvtargid=pla-845729973092
I've thought about grabbing one of those before. Does it display leakage as well? Has it been tested against other methods? Just curious.
  • SUPPORTER

Big Monk

Quote from: Kevin Mitchell on October 08, 2021, 01:01:37 PM
I've thought about grabbing one of those before. Does it display leakage as well? Has it been tested against other methods? Just curious.

Yes. It displays leakage with enough similarity to my R.G. Calcs that I have largely abandoned those.

In the end, I don't really want to know exact hFE and leakage values but merely ones close enough to allow me to rough sort and pick devices for circuits.

It's also much more convenient for testing ALL components than a meter.
"Beneath the bebop moon, I'm howling like a loon

Rob Strand

#19
QuoteThe sweet thing about needle meters is you can do a LOT of math by marking the scale to suit. Division with a constant (which seems to be the objection to the simple plans) is just marking the scale 1 to 0. Multiplication, 100 to 0.

The really snazzy needle meters were the old SWR meters. The intersection of two needles, read on the middle lines 1 thru 8, does a division of two variables.
Very very true.   The scale can have a whole heap of evil tricks built in.

It's a total pain trying to emulate that stuff with analog electronics so a DMM display produces the right numbers (and also does it accurately).   Even simple stuff like temperature measurements with thermocouples and RTD's have non-linearity which should be corrected (but is often not done in cheap DMM's ).

For modern stuff with microprocessors and LCD displays it's no problem doing the conversions.
Send:     . .- .-. - .... / - --- / --. --- .-. -
According to the water analogy of electricity, transistor leakage is caused by holes.