I've made a simple temperature meter, with means of series of Ge diodes, followed by 10k resistor. I am applying +5V to topmost diode cathode, and measuring voltage drop between resistor and ground


simulate this circuit – Schematic created using CircuitLab

Now I am trying to find formula for V(T). It's totally non linear, Probably I could make conversion in software. But, I need to know, what does it looks like?

PS. If interested, for a calibration I know that Rdiode is ~20k for +5C and ~1k for 20C. And I only need narrow range -20C to +30C for rude street temperature measurement.

  • 1
    \$\begingroup\$ Where the hell do you still take Ge diodes from? These been obsolete since the mid-60s, roughly? \$\endgroup\$ Apr 21, 2020 at 21:52
  • 1
    \$\begingroup\$ Which also means your Ge diode is decades old stock, and probably not built to modern precision – so, really, the worst positive temperature coefficient thermosensor you could pick. What's the motivation to use exactly this diode?= \$\endgroup\$ Apr 21, 2020 at 21:53
  • 1
    \$\begingroup\$ (by the way, the relationship is exponential – Shockley diode equation, the most very basic equation to describe diodes) \$\endgroup\$ Apr 21, 2020 at 21:53
  • 1
    \$\begingroup\$ @MarcusMüller From father of my friend, he was old soviet electrician, and had a lot of interesting stuff. I've used it just because it is by hand, precision does not matter alot to me. I know nowadays there are precise sensor ICs, I dont want to buy specialized sensors. Shockley diode equation is tied to current, I dont have ammeter by hand. How to expose voltage, (but not current), for this simple circuit? \$\endgroup\$
    – xakepp35
    Apr 21, 2020 at 21:58
  • 2
    \$\begingroup\$ hmmmm you're already measuring the current. You know that the voltage U you're measuring is R·I :) \$\endgroup\$ Apr 21, 2020 at 22:08

2 Answers 2


Germanium diodes are not obsolete, they are better than silicon ones and have better temperature stability and parameters. The function that you are looking for is a datasheet parameter. You can easily measure it, its a function of current or voltage change based on temperature. Its called a diode temperature characteristic.

The characteristic will change in quadrants 1 and 3 based on the temperature, meaning the voltage and current through the diode will change with the temperature in a border.

enter image description here

The characteristic and the original image.

Formulas and explanations.

  • \$\begingroup\$ I would say that they ARE obsolete. They're no longer manufactured, (except MAYBE by some small outfits that I'm unaware of), no longer used in mainstream manufacturing, and though they had a smaller forward drop than silicon PN junction diodes they are pretty leaky. Most or all of what's for sale is NOS. \$\endgroup\$
    – John D
    Apr 21, 2020 at 23:47
  • \$\begingroup\$ @JohnD It's of no importance - are they manufactured/obsolete or not - totally out of current scope. Consider they DO exists and alredy working in my circuit. Only 2 questions that matters are: "Forward vs reverse" and "Is a experimentally found formula is correct?" Reverse seems to be more sensitive, and formula works for day-to-night temps, dont know how good/precise would it be for +30C .. \$\endgroup\$
    – xakepp35
    Apr 22, 2020 at 11:40
  • 1
    \$\begingroup\$ I didnt mean to offend you, Germanium diodes are used in military technology do to their much better properties tha silicium ones. In the user market its not impossible that you have not heard of them much and that you don't use them. Silicium is only used because its cheaper, not because its better. \$\endgroup\$
    – CFCBazar
    Apr 22, 2020 at 11:46
  • \$\begingroup\$ As per answer. 1. Old Ge diodes are NOT better than silicone - leaky and parameters vary alot. But they may be useful for measuring temperature. 2. Diode temperature characteristic is NOT function of time. 3. Link is broken. 4. Answer is not answering question. Missing formula, allowing to find temperature based on measured voltage drop, (or resistance/voltage drop, based on temperature, that may be converted to required) \$\endgroup\$
    – xakepp35
    Apr 22, 2020 at 11:48
  • 1
    \$\begingroup\$ I will address all concerns as soon as I can. \$\endgroup\$
    – CFCBazar
    Apr 22, 2020 at 12:45

I've solved the task in a following manner.

  1. Choose a proper resistor.
    • Given temperature range, that I to want measure most precisely, -10C to +30C, midpoint is +10C.
    • My reference voltage is 4.95V, wned reverse-applied to my system of diodes and a 47K resistor in series, it gives almost 50/50 voltage drop across resistor and diodes series, at my desired +10C (Actually diodes are 44K at that temp, but that is not a big deal, following would correct us)
  2. Calibrate system. Sample input with arduino and ref voltage. Take 2 temperature points at both sides and notice, that:
    • At +12.6C voltage drop across 47K resistor is 0.616*4.95V
    • At +3.9C voltage drop is 0.315*4.95V
  3. Assume that nonlinearity is provided by compression function of form y = 1/(1+exp(-x))enter image description here
  4. Solve this stuff, with any tool of taste. No need doing math, but better to have a clue how to properly rotate/adjust it for your task. You'll get function to get rid of nonlinearity: enter image description here
  5. To adjust and scale I need func like y = k*x+b where x is linearized(normalized(measured voltage)).
    • ln(0.616/(1-0.616)) = 0.4726
    • ln(0.616/(1-0.616)) = -0.7768
  6. Solve system of linear equation, with any tool of taste, in order to get k and b:
    • k ~= x7
    • b ~= +9.3C
  7. Enjoy the resulting formula:
    • temperatureCelsius = 7*ln(Vadc/(4.95-Vadc))+9.3C
  8. Also we know that midpoint is at +9.3C.
  9. Also looking at graphed formula: enter image description here we may know that arduino 10-bit adc is theoretically capable of measuring:
    • from -30C to +50C with ~1C precision
    • from -20C to +40C with ~0.1C precision
    • from -10C to +30C with ~0.01C precision Which, for our typical outdoor temperatures range is nice, and well enough for my task.

PS. I think this info may be useful, if someone else would want to make something like this cheap diy temp sensor, not going to shop, but from old parts from their attic. Best regards!

  • \$\begingroup\$ Thanks for the detailed explanation, it would help others. If you decide to buy parts from the shop, you can try LM335. Its a good temperature sensor and when you connect 2 of them, your accuracy increases. \$\endgroup\$
    – CFCBazar
    Apr 26, 2020 at 2:08
  • \$\begingroup\$ @CFCBazarcom Maybe, but it's range is too huge, and unamplified sensitivity is small. Along with it, probably a preamp could be used as some frontend, like in this useful articles \$\endgroup\$
    – xakepp35
    Apr 26, 2020 at 13:17
  • \$\begingroup\$ It works great, its calibrated for Kelvin, you can check the basic circuit without calibration in the datasheet. It has 1degree accuracy, its a professional device and gives 10mv/degree. A problem can come from the resistor, which is affected by the temperature, you should pick a 1% resistor or lower. With a 10bit ADC you do not need an amplifier. Most arduinos have a 10bit ADC, despite that I don't recommend arduino. ti.com/lit/ds/snis160e/snis160e.pdf?ts=1587916734125 \$\endgroup\$
    – CFCBazar
    Apr 26, 2020 at 15:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.