Sharp Memory LCD Displays = Ultra Low Power

This is the 128x128 Pixel Sharp Memory LCD display. This is the same display used in the Pebble Watch. Its super sharp and is perfect for outdoor applications where sunlight is coming right down onto your screen. OLED’s are nice but I could not really see them at all once I take them outside which is the reason I started looking into these screens for some projects that will be used outside in bright sunlight.

The nice thing about these screens is that they are ultra low power. They say you could run one of these for months off a single coin cell battery.

So I have 2 sizes of these and 2 different breakout boards I found.

I have these screens:

1.27 Inch Screen -

2.7 Inch Screen -

I’m going to send these to @timb and if he feels like it he can create a working library for them. They are just sitting here and I’m not smart enough to make them work right so I might as well put them in the hands of somebody who knows how to make them work with the Spark Core.

Plus Tim knows how to make a Shield for them should he desire.

Here is a few links to more info about the Sharp Memory LCD’s.


Dude, you’re awesome! :heartpulse:

I’ve done a bunch of research on these and have been dying to get my hands on some, so this will be perfect. Man, I really love everybody here; the Spark Core Community and Team is the best thing to happen to me in a long time! :heart_eyes_cat:

I can for sure get these working with little issue, they’re amazing little displays. Each pixel is like a memory cell, retaining its state with only a small amount of power. You literally can treat it like memory as well, writing to specific addresses with raw SPI bytes. You only need to provide a pulse every 1ms or so to reverse the polarization so the cells don’t lock up, but that can either happen internally or externally through a GPIO pin or even a 555 timer!’

Yeah man, these will be fun to implement!


Loving the 2.7 inch! I’ve seen that display on Adafruit, but didn’t know it was the one in the Pebble watch. Interesting!

You could use one of the 8 pwms as-is at 500Hz set to 50% duty cycle to do your screen refreshing autonomously :wink:

Cool! Glad everyone is down to get them working!

I’ll send them out today.

Also the screens I have are alittle different than the one that Adafruit sells which is not like your normal black and silver screen, it’s more like each pixel is a white frost color and the white frost is eliminated when that pixel is activated you see a mirror below the pixel which really makes the screen hard to read at alot of angles.

The best screen type is for sure the ones I have. They are easily to get from the large USA based supply houses also which is nice.

They have a nice 4.4 inch screen also that I would love to put to use in some of my applications if we can get it work with the spark core.

1 Like

The 1.26" (black and white) is the one on the Pebble. The Adafruit screen is a 1.35" silver transflective screen; the silver makes it a lot easier to read indoors with no backlight since there’s a mirror finish. I’m sure it’s a bit harder to read outdoors or at extreme angles like @RWB said, but they’re amazing in low light!

Here’s a good overview from Mouser on the Memory LCDs.

If anyone is interested, I’ve got a 2.7" eInk module from Pervasive Displays that I could get working on the Spark Core. (That kit is designed as a Booster Pack for the TI Launchpad, but it has a header and cable to hook it to Arduino and other boards.)

Also, here’s an awesome video from Mike’s Electric Stuff on the Sharp Memory LCDs:

1 Like

I’m fairly confident that the Pebble also uses an STM32, so it looks like we’re not that far off from a Wi-Fi Pebble :slight_smile:


I bet you actually could write a watch OS that was compatible with lib-pebble. They use all OS tools and since the SDK is open it wouldn’t be hard to make it work with the Pebble Apps.

If you took the headers off the Core and used custom pins to mate it directly to a thin board containing the Memory LCD, you could fit it in a case maybe a tad bigger than the Pebble.

Whatever the mind can conceive & believe, it can achieve! - Napoleon Hill / Author of > Think & Grow Rich

There is going to be some really cool stuff built on this platform. I’m happy to be here at the beginning of this journey.

1 Like

Well, I got my gifts from @RWB today! That you so much dude, I’m going to start working on getting these Sharp Memory Displays going right away! :smiley:

I desoldered the headers on the Adafruit shield because they were dry joints (man that ground pin was a bitch to get off) then I cleaned and tinned the PTH rings and soldered in a new header. The headers on the first Rengineer board were okay for the most part, I just drowned them in liquid flux and touched up the existing solder connections and soldered the pins that weren’t attached. The second Rengineer shield didn’t have a header on it, so I went ahead and soldered one on.

By the way, these Microduino are pretty neat, a lot smaller than I thought! Might be useful for a Programmable DC Load I’ve been meaning to finish (based on the Epic Re-Load 2 board).

Anyway, I put the mirrored screen on the Adafruit board and the regular and large displays on the Rengineer boards. Gonna give these a test now.


—Note— one of those Rengineer boards has a blown DC regulator on it from a reverse polarity connection I made. I think its on the Rengineer board that did not have a screen attached to it. I sent it because I thought maybe you could just get a new regulator chip or simply by pass it and still be able to use the board.

Ah yes, I see it now. It’s on the board with the smaller display, I can get a replacement for the regulator. I’ll start working with the Adafruit display.

Once you get these up and running do you have the correct equipment to measure the low current consumption of the Sharp Displays under different refresh settings?

I’m interested to see how much power it will take to keep the 2.7 inch screen on 24/7.

I’ve got three 5.5 Digit multimeters, one of them is about 20 years old and capable of microamp measurement, but I’m not sure of the burden voltage it’ll apply. Ideally I could get a uCurrent Gold in March when they become available (I missed the Kickstarter) to get the most accurate measurements!

The meter on the bottom is the oldest (early 80’s) and surprisingly has the highest range. The meter on the top is the second oldest (very late 80’s) and is the most accurate for voltage. The meter below that is the newest (2013) and is the fastest ranging and most accurate for resistance (it supports 4-Wire measurements). The handheld meter is a Fluke 87-V and is basically bulletproof!

So instead of using a software EXTCOM refresh, I’ve got a 555 Timer setup to toggle it 4 times per second. This allows me to start with a simpler implementation and then add the software toggle later on!

What does the EXTCOM function actually do?

@RWB Basically, the pixels act like memory cells, staying in a particular state (0 or 1, black or white) after being written. However, a charge tends to build up in the cells, which can prevent them from being written/rewritten so you have to periodically change the DC bias, which basically means inverting the voltage to the cells. When actively writing to the display (dynamic mode) you need to do this at about 60Hz if you want instantaneous drawing. Once the display has been written to you can go into static mode and only do it at 1Hz to save power!

The EXTCOM signal controls this.

A normal LCD requires constant voltage to keep the cells active. These Memory Displays simply require a small burst (in the micro amps) once a second to keep the cells going.

Make sense?

@Timb Yes it does make sense. Thank you.

Now the next question is why rig up the 555 timer for now instead of just having the micro controller provide the EXTCOM signal?

Because a 555 timer is easier to get going than to figure out how to set up a slow PWM output :wink:

btw: I’m guessing uint16_t TIM_ARR = (uint16_t)(65535/(6*40)); // Calc PWM period. would be about right.

Also decouples any issues that might be created by the implementation of the pin toggle… for the time being, while the display communications are being worked on.

But I don’t wanna speak for Tim :wink: He might have other reasons…

1 Like

Basically what @BDub said! In the end I programmed up an MSP43G2231 that’s connected to the display’s CS line. When the display’s being written to (CS High) I use direct port manipulation and the delay command to toggle the pin at around 60Hz; when it’s not being written to (CS Low) we toggle it every 250ms.

I can’t reliably do that on the Core right now due to the user loop code not executing on a reliable basis because of the WiFi stuff. Obviously slowing analogWrite like @BDub suggested would be the logical next step, but this just removes one problem factor in getting the display going.

You can also avoid the EXTCOM input entirely and have the display do the polarity inversion itself by sending a SPI command at a timed interval (this is what the display.refresh command does in the Adafruit library) but again, timing issues make this unreliable for now.

In an actual product, you’d most likely have an ultra low power CMOS based 555 timer or something feeding a 1Hz pulse to the EXTCOM input so the MCU could stay in sleep mode and not worry about the display. When the MCU was awake it would take care of the 60Hz inversion through software. Pretty cool, right?

If that allows a product to have a always on LCD display with basically zero current consumption then yes it’s very cool! I’l looking forward to seeing what can be done with these.

Your explanations on why the 555 timer is implemented, I follow most of it.

Here is a demo board that is using a Sharp Memory LCD on its ARM based demo board that may or may not provide any useful code.

and another project using the MSP430

Keep up the good work! :smile: