Are there any DIY conductivity sensors that will hold calibration for long periods? {multiple months}
I've built DIY conductivity probes for subglacial measurements. Unfortunately my sensors remain under ~100m of ice so I haven't be able to recover them to check the calibration, but for the same reason, I've taken multiple measurements to reduce calibration drift, as I'm unable to re-calibrate them. So far, they have produced sensible data for 2+ years, but I haven't check the calibration. However I can share the results of my tests and research in order to produce a stable sensor.

There are two main types of conductivity measurements: The first one is the potentiometric method. This is the most common one, and measures conductivity by creating an electric current between two or more electrodes embedded in the medium to measure. The second type is the inductive method, in which is a magnetic field what goes trough the medium, and you measure conductivity through variations in the induction effect that that magnetic field have in a coil.


(picture  taken from Knight)

Inductive probes are contactless, therefore, the most stable ones. However, they are more complex to build and don't work well with very low conductivity (&lt; 100 uS/cm). Glacier water is often in that very low conductivity range, something that, in addition to the higher complexity made me choose the potentiometric method (you can see a bit of my attempts to put together an induction sensor in this forum).

For potentiometric probes, oxidation, deposition of salts or others chemicals can change the calibration parameters. This would be enhanced when direct current is used, as that will create acids in the water that will quickly corrode the probe. To reduce that problem, probes of inert materials are used, like platinum, gold or graphite (more common in DIY projects due to its lower cost). But to reduce deposition of chemical compounds in the probes you still need to avoid direct currents and use high-frequency alternating currents with zero mean, otherwise if there is a net current towards one electrode, you will accumulate acids or ions there that can degrade or coat the electrode and change its properties (i.e. change the calibration).



The picture above shows an example of an electric signal that can be generated using a false ground and the PWM output of an Arduino board. The setup could be as follows:


Where R1 and R2 have in general to be equal to ensure a signal with zero mean, and the value have to be chosen depending of the range of conductivity values you want to measure and the resolution. If you want to cover  a wide range (pure cave water to marine water), you will have very low resolution (un less you use a AD converter with more resolution than the 10-bits provided by Arduino boards). Alternatively you can have multiple sensors each one optimized for a different range.

For probes meant to be deployed outside of lab conditions, concentric electrodes are recommended, otherwise natural currents going trough the ground/water can affect the measurements. The setup I used is this one:

Where a central graphite electrode is surrounded by a ring of graphite electrodes. As  you can't solder to graphite, I used conductive epoxy to glue it to a piece of plumbing copper tube modified with legs so it can be solder to a PCB. It looks like this:


To avoid gluing, some people choose aluminium or stainless steel electrodes, that are affordable and do not suffer much of chemical corrosion.

Some of the data that was produced by this probes were used for this publication.

Many comercial setups use three or four electrodes. I don't understand all the advantages of those sensors. In some cases they are just multiple sensors each one calibrated  for a specific range.
I've also seen three concentric electrodes. I haven't do the math, but my suspicion is that they measure the current in two independent electrodes with different surface area. Then, you can model and calculate the resistivity of the layer of deposits/corrosion that covers the electrodes and compensate your reading accordingly, reducing the calibration drift issues.