Multimeter Backlit LCD Mod

by kukubee in Circuits > LEDs

17809 Views, 28 Favorites, 0 Comments

Multimeter Backlit LCD Mod

IMG_7108-001.JPG
IMG_7115.JPG
Hello Instructables. I have wanted to join this amazing community for a long time and I am happy that I finally did!

In this instructable I am going to show you how to convert your standart multimeter's LCD into a baclkit LCD. We will use some LEDs and some clever programming to modify our stock multimeter. Thus, we will design a better product and most important we'll help ourselves do measurements in dark places!

The high-end multimeters have this function built in, unfortulantely not all of the affordable ones have it. It is handy to use the LCD backlighting sometimes, so lets just do it.


Compatibility?

Not a problem I think - all electronic devices that have LCDs have pretty much same looking display components, if you wonder where it will work or not, just open the multimeter to see, it is straight forward.

HOW?

I wanted to design the whole thing as it would be in a real off-shelf device.

After the modification there are no hanging wires and swithes, no messy batteries around.

When you press one of the standard multimeter's buttons - the yellow one in my case - and  voila the LCD is lightende for 15 seconds! And what is more cool - you can program the 15 seconds delay to your preferences and change it to one minute for example!

INEXPENSIVE?

Yes!

HARD TO DO?

I'd say a bit tricky.

Parts List & Tools

IMG_6919-001.JPG
All parts you need are:

> SMD LEDs x 2 (Mine are tiny! 1.6mm (L) x 0.8mm (W) x 0.8mm (H))
> ATtiny85 microcontroller
> Cables 


Tools:

> Screwdriver
> Soldering iron and wire
> Super glue
> Heat shrink tubes
> PC & Arduino Uno to program the microcontroler

Open the Multimeter

IMG_6923-001.JPG
IMG_6924-001.JPG
IMG_6926-001.JPG
IMG_6928-001.JPG
Not much to say here.

Grab a screwdriver and open the multimeter. Remove the battery cover, the batteries, the back shell and then detach the PCB from the front shell. Take the LCD plastic frame out.

Locate a Suitable Place for the LEDs

IMG_6931-001.JPG
The LEDs have to be put on the sides of the LCD. In my case I used the plastic frame that was covering the LCD.

See the narrow dent on the inner edge of the plastic frame - this is just the perfect spot for these LEDs that I got.

Solder Wires to the LEDs

IMG_6939-001.JPG
Use double sided sticky tape to hold the SMD LED for you. I put a regular resistor to make it more clear to you what the scale is.

Use separate single wire from a cable for each connection.

Test

IMG_6940-001.JPG
When ready with soldering, plug a 3V battery source and connect the LEDs in parallel.

Glue the LEDs to the LCD Frame

IMG_6944-001.JPG
IMG_6949-001.JPG
Use super glue to attach the LEDs to the plastic frame.

Glue the Wires

IMG_6953-001.JPG
Wait for the glue to dry and bend the soldered wires to the shape of the plastic frame. Then add more glue.

Solder Extension Wires

IMG_6959-001.JPG
IMG_6960-001.JPG
IMG_6964-001.JPG
Shorten the LEDs' wires and solder longer pieces to each terminal. Glue each longer piece to the plastic frame.

Glue Reflectors to the Inner Edge of the Plastic Frame

IMG_6969-001.JPG
IMG_6997-001.JPG
We want to get all the available light into the LCD. We will make the light reflect from the edges of the LCD back by putting something shiny. I used aluminium foil as it is thin, easy to work with and widely available.

Cut stripes of aluminium foil and attach them to the plastic with the shiny surface up.

Connect Both LEDs in Parallel

IMG_6977-001.JPG
IMG_6980-001.JPG
IMG_6999-001.JPG
Solder both anodes and a wire to each other and both cathodes to each other together with another wire.

Insulate the connections using heat shrink tube.

ATtiny Sense Circuit Overview

Multimeter-001.jpg
IMG_7007.JPG
IMG_7008.JPG
IMG_7012.JPG
What?

As I have mentioned before, we will sense the press of the yellow soft button and activate our LEDs for some time. This can be done in Analog or Digital way. If analog, then we'll need to play around with capacitors, resistors, time delay constants ... we'd have to mess around with the multimeter's circuitry a lot ... AND WE DO NOT WANT THIS.

Instead, we'll use a mirocontroller to "sense" that the yellow button was pressed and then activate the LEDs on for some time. We are going to do this with the ATtiny85.

For the ATtiny85 we need:

> Power supplies
> Some signal on the input to trigger the LCD illumination output

Resistor R24 gets the supply voltage from the batteries when the multimeter is switched on. This will be our positive power supply terminal for the ATtiny85.

There is a negative (ground) power supply terminal where the battery leads are soldered to the board.

As the video in the beginning shows the red bar above the screen is powered on for a short period of time when the yellow button on the front of the multimeter is pressed. This is from the non-contact voltage measuring system.
We will use this function to sense that the yellow button was pressed and then activate the LCD illumination.

Program the ATtiny

IMG_7019-001.JPG
052746.jpg
Steps to connect ATtiny85 to Arduino Uno for programming:

1  Download this file: https://github.com/damellis/attiny/zipball/Arduino1
2  Unzip and put the "attiny" folder in the "hardware" folder where tha Arduino is installed on your PC. The path looks like this: Documents > Arduino > hardware > attiny> (Other downloaded files... etc)
3  Start the Arduino Application and open the ArduinoISP from the FIle>Examples menu
4  Upload the sketch to the Arduino Uno.
5  Now change the following settings:
6  Check the ATtiny85 (8 Mhz) checkbox in the Tools > Board menu.
7  Check the: "Arduino as ISP" in the Tools > Programmer menu.

Pins connections:

ATtiny   ::  Arduino Uno
    1       ::          10
    5       ::          11
    6       ::          12
    7       ::          13
    4       ::        GND
    8       ::          5V


Download the attachment and upload my code to your ATtiny85!

Code characteristics:

If you want to change the input trigger value, then change the "800" I have to something in between 0 to 1023 (0 is 0.00V, as 1023 is 5.00V).

In case you want to change the illumination period, change my "2000" to anything you want. 2000 in my case corresponds to 15 seconds.

Sleep Mode

The ATtiny is programmed to minimise power consumption. Not only it is powered on only if the multimeter is powered on, but when it operates, it goes into sleep mode while waiting for the input signal. This is enabled by the watchog functionality. Our ATtiny "sleeps" for 128 miliseconds and "wakes up" only to check the input value. If it is not high it goes to sleep again, otherwise it turns the output on for 15 seconds and after that tirns it off and then goes to sleep. This saves a lot of power because when the micricontroller is in sleep mode, it consumes only 0.5 microamps. This is 200 times less compared to usual.

Program Code
_________________________________________________________________________________________
#include <avr/sleep.h>
#include <avr/wdt.h>

#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif
volatile boolean f_wdt = 1;

int button_in  = 3;         // hard pin 2 on ATtiny85
int illumination = 4;       //hard pin 3 on ATtiny85

//Set Up Instrictions
void setup() {               
  pinMode(button_in, INPUT);
  pinMode(illumination, OUTPUT);
  setup_watchdog(3); //Sleep time: approximately 128ms sleep
  // 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec
}

//Main Program Loop
void loop() {
  if (f_wdt==1) {  // wait for timed out watchdog / flag is set when a watchdog timeout occurs
    f_wdt=0;       // reset flag
    //
    if(analogRead(button_in) > 800){ //Reads the value of the input and compares it to the trigger value: 0 to 1023
      digitalWrite(illumination, HIGH); //LEDs on
      delay(2000); // Illumination delay
      digitalWrite(illumination, LOW); //LEDs off
    }
    //Now put the system to sleep
    system_sleep();
  }
}


// set system into the sleep state
// system wakes up when wtchdog is timed out
void system_sleep() {
  cbi(ADCSRA,ADEN);                    // switch Analog to Digitalconverter OFF

  set_sleep_mode(SLEEP_MODE_PWR_DOWN); // sleep mode is set here
  sleep_enable();

  sleep_mode();                        // System sleeps here

  sleep_disable();                     // System continues execution here when watchdog timed out
  sbi(ADCSRA,ADEN);                    // switch Analog to Digitalconverter ON
}

// 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms
// 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec
void setup_watchdog(int ii) {

  byte bb;
  int ww;
  if (ii > 9 ) ii=9;
  bb=ii & 7;
  if (ii > 7) bb|= (1<<5);
  bb|= (1<<WDCE);
  ww=bb;

  MCUSR &= ~(1<<WDRF);
  // start timed sequence
  WDTCR |= (1<<WDCE) | (1<<WDE);
  // set new watchdog timeout value
  WDTCR = bb;
  WDTCR |= _BV(WDIE);
}
 
// Watchdog Interrupt Service / is executed when watchdog timed out
ISR(WDT_vect) {
  f_wdt=1;  // set global flag
}

Connect the ATtiny to the PCB

IMG_7026.JPG
IMG_7027.JPG
IMG_7024.JPG
Solder a cable for each of the terminals:

Red cable for power supply positive terminal.
Black cable for power supply negattive terminal.
Green cable for input signal.

ATtiny Socket

IMG_7023-001.JPG
IMG_7044.JPG
You need to attach 5 cables to the ATtiny:

1   Power
2   Ground
3   Input signal
4   Output signals for LEDs: Power and Ground

I used an 8-pin chip socket to do the soldering onto. Just in case that I want to reprogram the ATtiny.

Cut off the legs that you don't use.

Don't forget heat shrink tube for insulation!

Attach Your Circuitry Somewhere Inside

IMG_7045.JPG
IMG_7047.JPG
Put a piece of insulating tape underneath the ATtiny.

I used a cable tie to secure my components to the device speaker. This stops it all from moving around inside the multimeter.

Hot glue is also suitable, but be careful with surface mount components and fragile capacitors ... inductors ... ICs.

Ready!

IMG_7031-001.JPG
IMG_7035-001.JPG
IMG_7037-001.JPG
IMG_7052-001.JPG
IMG_7053-001.JPG
IMG_7057-001.JPG
Confirm operation, close back everything together and enjoy!

Thanks for Watching!

IMG_7112.JPG
IMG_7057-001.JPG
IMG_7117.JPG