LCD Display advice - Low power, 3 digits, 7 segment

Thread Starter

kyleh04

Joined Jun 18, 2017
54
Hey all,

I'm working on a project that will need to control a 3 digit, 7 segment display, powered by a 3v coin cell, for a extended period of time. It also needs to be quite small and cheap. It will be based on an atmega328.

My initial thought was to use a LED display and just use PWM modulation without resistors, to save space and cost on the board, since no driver is needed. The power draw I fear is still going to be much too high for my needs. So I am now considering a LCD display, as it draws few uA of power. I'm not familiar enough with communications protocols to be able to write my own library for the drivers, and I have only found two online.

The first is this which uses parallel displays only. The drivers that it supports are more expensive than I was trying to be at. The other library is this which is written for a raspberry pi. It should be easy to port the code over to my avr, but the PCF85176 driver that it uses is way overkill for my display. It can drive 14 digits, and is a 64 pin smd, which the majority of which will be wasted, not to mention, very hard to hand solder.

I've tried to search for i2c drivers that may be compatible with the code for the PCF85176 but it's not available as a search criteria.

So my questions are:
Is a LCD display definitely the way to go?
What interface (parallel/SPI/i2C) should I use assuming LCD?
How would I go about writing a library for it, considering I am not an expert in communications protocols?

Thank you so much in advance!

EDIT: Also, forgot to add, this display will be used in a location that changes from complete darkness to well lit under a light. It will only be with the light on for maybe 10 minutes a day. So another option would be to use an LED with a photoresistor to detect when the display should be shown. I'm not sure how to calculate the current draw like this though
 
Last edited:

JohnInTX

Joined Jun 26, 2012
4,787
An LED display isn't going to do you many favors in the power department even if you dim it. I would consider a plain-glass LCD like in this image from your links:
https://raw.githubusercontent.com/supercrab/arduino-seven-segment/master/Images/Simple.jpg
You can add an LED backlight controlled by PWM. Unfortunately, the Atmega328 does not drive LCDs directly. You would need to add a dedicated LCD driver, use some LCD module or driver chip. That can add cost and power consumption. You could also use a micro-controller that has a built-in LCD driver instead of the '328.

If it were me, given your specs, I would go the plain-glass LCD and a uC with direct-LCD drive. Coin cells don't have a lot of power reserve. I am most familiar with PIC and they have lots of micro-power parts that will do the job for you. You also can use RealICE with the Power Monitor Board to get serious about counting uAmps. But since uCHIP has bought Atmel, you can look on Microchip.com for an Atmel part with LCD controller. Coding either of those involves switching individual segments on/off as bits in a register. No comms involved. The uCHIP parts are pretty impressive with their low-power features - don't know about Atmel stuff. For nighttime, add a stingy backlight, maybe sample a photo-detector or PIR (to turn on when someone's looking) at long wake-up intervals, and you are ready to rock.

Good luck!
 
Last edited:

Thread Starter

kyleh04

Joined Jun 18, 2017
54
An LED display isn't going to do you many favors in the power department even if you dim it. I would consider a plain-glass LCD like in this image from your links:
https://raw.githubusercontent.com/supercrab/arduino-seven-segment/master/Images/Simple.jpg
You can add an LED backlight controlled by PWM. Unfortunately, the Atmega328 does not drive LCDs directly. You would need to add a dedicated LCD driver, use some LCD module or driver chip. That can add cost and power consumption. You could also use a micro-controller that has a built-in LCD driver instead of the '328.

If it were me, given your specs, I would go the plain-glass LCD and a uC with direct-LCD drive. Coin cells don't have a lot of power reserve. I am most familiar with PIC and they have lots of micro-power parts that will do the job for you. You also can use RealICE with the Power Monitor Board to get serious about counting uAmps. But since uCHIP has bought Atmel, you can look on Microchip.com for an Atmel part with LCD controller. Coding either of those involves switching individual segments on/off as bits in a register. No comms involved. The uCHIP parts are pretty impressive with their low-power features - don't know about Atmel stuff. For nighttime, add a stingy backlight, maybe sample a photo-detector or PIR (to turn on when someone's looking) at long wake-up intervals, and you are ready to rock.

Good luck!
Oh wow thanks. I never thought about using an integrated mcu with a lcd driver.

The issue I see is that the atmega169 only can drive multiplexed displays, and the lcd I need to drive is 2 or 3 digits. I can't seem to find any displays that size that aren't just directly driven without multiplexing.

Thanks

EDIT:Nevermind, it can drive static displays, sorry
 
Last edited:

Thread Starter

kyleh04

Joined Jun 18, 2017
54
So I've been working on the circuit/PCB for the project, and an issue I have for the layout/spacing, is that there are no SMD LCD displays for 2-3 characters. For the display to fit on the back on my PCB, it can't be through mounted..

Any suggestions?

 

Thread Starter

kyleh04

Joined Jun 18, 2017
54
OK so I found a display I can use: http://orientdisplay.com/standard_lcd/od-202.pdf (Just going to cut the pin to use as a SMD.

Having never used the 169/329, if anyone could double check my schematic and make sure I'm not missing anything, I would really appreciate. All the board needs to do is be able to be programmed, use USART Tx, and display the LCD.



I apologize about the messy schematic, never been my strongest skill set!

Thank you so much to anyone who could check that for me, I really do appreciate it
 

JohnInTX

Joined Jun 26, 2012
4,787
I haven't used the Atmega but the schematic looks OK to me so far. The display is a 1/2 duty with 2 commons so your use of COM0 and COM1 is correct. The segments map nicely to LCDDR0 and LCDDR5 so the digit decoding should be pretty easy. Note that for routing purposes, you can mix up the segment lines among SEG0-SEG7 as needed, fix the resulting segment/bit assignment in the decoder. You could also interchange the two commons between COM0 and COM1. That would just interchange the segment registers, also a firmware thing.

I note that the LCD operating voltage is 4.3V but the max VLCD is 3.35V. That may affect max contrast.

If you can't through-hole the mount, you might consider one without pins and use zebra strips and a frame. That would take a bit of engineering. If you have vertical room, you could mount the pinned LCD on a daughterboard or flex circuit and route the wiring to a mini connector somewhere convenient. But if I read the LCD and PLCC-64 dims right, it looks like the micro will mount underneath the display between the pins maybe. The distance between the pins is 25.5mm and the PLCC is 16mm to the ends of the pads. If you can't through-hole that, try an SMT single row socket.

Good luck!
 
Last edited:

Thread Starter

kyleh04

Joined Jun 18, 2017
54
I haven't used the Atmega but the schematic looks OK to me so far. The display is a 1/2 duty with 2 commons so your use of COM0 and COM1 is correct. The segments map nicely to LCDDR0 and LCDDR5 so the digit decoding should be pretty easy. Note that for routing purposes, you can mix up the segment lines among SEG0-SEG7 as needed, fix the resulting segment/bit assignment in the decoder. You could also interchange the two commons between COM0 and COM1. That would just interchange the segment registers, also a firmware thing.

I note that the LCD operating voltage is 4.3V but the max VLCD is 3.35V. That may affect max contrast.

Since you can't through-hole the mount, you might consider one without pins and use zebra strips and a frame. That would take a bit of engineering. If you have vertical room, you could mount the pinned LCD on a daughterboard or flex circuit and route the wiring to a mini connector somewhere convenient. But if I read the LCD and PLCC-64 dims right, it looks like the micro will mount underneath the display between the pins maybe. The distance between the pins is 25.5mm and the PLCC is 16mm to the ends of the pads. If you can't through-hole that, try an SMT single row socket.

Good luck!
I noticed that with the LCD. I presume it won't effect the contrast too severely?

Yeah, I definitely am planning on doing the zebra strip approach eventually. I just need to make sure everything else is working beforehand.
Thanks so much!
 

MrChips

Joined Oct 2, 2009
30,810
You'd just have to try it and see for the contrast. Most displays I've used are pretty good at 1/2 to 2/3 drive. YMMV

EDIT: Have you seen the AVR Butterfly for the 169?
http://www.atmel.com/tools/avrbutterfly.aspx?tab=overview
Now that you mentioned it, yes I do have an AVR BUTTERFLY (ATAVRBFLY).
It has exactly what you need already built and ready to go. This way you can proceed with the programming on Atmel Studio.
 

Thread Starter

kyleh04

Joined Jun 18, 2017
54
You'd just have to try it and see for the contrast. Most displays I've used are pretty good at 1/2 to 2/3 drive. YMMV

EDIT: Have you seen the AVR Butterfly for the 169?
http://www.atmel.com/tools/avrbutterfly.aspx?tab=overview
Now that you mentioned it, yes I do have an AVR BUTTERFLY (ATAVRBFLY).
It has exactly what you need already built and ready to go. This way you can proceed with the programming on Atmel Studio.
Yeah I saw that. I already have a STK500 for the programming. I need this board to fit inside a very small 3D printed housing.
 

Thread Starter

kyleh04

Joined Jun 18, 2017
54
I have the ATAVRBFLY in my hand. The dimensions are:
66 x 44 mm
2 5/8 x 1 3/4 inch
That is pretty small. I'll keep that in mind for future use. Still won't work for me current project, going to be in a housing that is round with a 1.5 inch diameter. Barely managed to have my pcb design fit
 
Top