OLED screen usage

The CurrentRanger has an I2C header where a small SSD1306 based 128×64 OLED can be plugged in. This header has this order of pins (left to right): [GND, 3.3V, SCL, SDA]. During power-ON if a screen is detected at I2C address 0x3C (typical of most small 128×64 OLEDs) the unit will periodically refresh the screen with data:

    • battery reading (actual voltage, “LoBat” if <3.4V)
    • output voltage reading – this is done by the SAMD21 12bit ADC, with usable accuracy via oversampling
    • output range (nA, µA, mA) – this is also always visible on the LED range indicators
    • any other useful information can be added in open sourced code
The OLED readings are sampled through the SAMD21 MCU’s 12bit ADC and are reasonably good for on-the-go or getting a ball-park idea what the load is doing. Do not expect the same high accuracy readings with the OLED, as by measuring from the output terminals with a true RMS DMM.
Expect some extra high frequency noise at the output when the OLED is attached, seen at the OLED refresh intervals (100ms default). This will be more visible on a scope, not on a RMS DMM. This is because the ADC (SAR architecture) sampling cycles can couple some noise into the output lines of the opamps. This should be minimal if the LPF is turned ON.

Here’s a sample capture of a 58Ω resistive load from a 2xAA battery pack, the OLED is attached, the LPF and AUTORANGING are both ON:

Caution: OLEDs are fragile!

Use caution when handling these OLED displays. They are fragile especially in the corners where the glass is unsupported and if the glass breaks, the OLED will most likely stop working.

The small OLEDs are sourced from China (unfortunately) – they are the most affordable generic solution. However they are not top quality. Each is tested to ensure it has a bright image. Sometimes a weak image is also caused by a weak connection on the flex ribbon. Sometimes a weak connection can become loose later rendering a weak image or disabling the OLED completely. Several OLEDs are found like this during testing. Please always use the OLED case with the OLEDs, this is to ensure you cannot plug in the OLED incorrectly and damage it that way, and it also protects the glass.

Here is what a weak connection or broken ribbon can look like, if your OLED is somehow not working please check this ribbon first with a magnifier, if you find such a broken or weak connection you can add some liquid flux and touch the connections with a soldering iron:

Proper OLED install

You should first ensure the OLED pins are not bent, if they are, gently bend them to perpendicular position against a straight surface, without touching the glass. Breaking the OLED glass will render it useless!

Then seat the OLED in the enclosure and carefully press it with your finger into the 4 pillars. Not a lot of pressure is required and your finger should cover the glass uniformly and 

3D printed OLED case

The m3f file for the OLED enclosure which is adjustable can be found on Thingiverse. This was initially kindly contributed by Nate Lewis here. It has been adapted to allow the stock OLEDs to seat more properly and limit possible damage when removing them (side slots only).

Removing the OLED

If for some reason you need to remove the OLED, do it this way to avoid damaging the fragile ribbon and glass:

  • use only the side slots of the case, this is to avoid touching the ribbon under the PCB.
  • carefully pry it from the case from both sides until it loosens up
  • you may also push it through the header slot if that is necessary
  • a pinch on the ribbon or a broken glass will most likely destroy the OLED