Sharp Memory LCD Breakout Boards Ready For Production

I’ve finally finished designing a couple of breakout boards for the lovely Sharp Memory LCDs and am now busy getting quotes for the manufacture of an initial batch of them from a small number of UK based PCB manufacturers.

Memory LCDs are the type of ultra low-power, ultra high-contrast displays used in smartwatches like the Pebble and the Agent. But you’re not getting a fancy watch from me, just a breakout board so you can easily use the same sort of display in your next Arduino project.

Why do you need a breakout board for these LCDs? Well, luxurious and ergonomic as they look inside a smartwatch, as a bare component they are nothing but a small rectangle of glass with a delicate and breadboard-unfriendly 0.5 mm pitch flat flex cable dangling off one edge.

With the breakout board, you get the following features that make using the Memory LCD easy:

  • 0.5 mm pitch flat flex cable connector to connect the Memory LCD
  • 0.1″ header strip for compatibility with breadboards
  • 3V LDO voltage regulator and logic level shifting IC (all Memory LCDs have a 3V logic-high level).
  • Jumper to select the correct supply volage for the particular Memory LCD model (some Memory LCDs have a 5V power requirement)
  • Jumper to select the display refresh signal source
  • Positions for 6 – 8 optional tactile switches around the perimeter of the LCD
  • 3mm mounting holes for easy mounting of the board inside an enclosure
  • Double-sided adhesive pads to secure the LCD to the PCB

The two breakout boards share the same circuits and components, with the principal difference being their size.

The small breakout board is 54 x 58 mm (W x H) and is designed for Memory LCD models:

  • LS013B4DN02 (1.35″, 96 x 96 pixels, requires 5V supply)
  • LS013B4DN04 (1.35″, 96 x 96 pixels, requires 3V3 supply)
  • LS013B7DH03 (1.28″, 128 x 128 pixels, requires 3V3 supply)

The large breakout board is 88 x 68 mm (W x H) and is designed for Memory LCD models:

  • LS027B7DH01 (2.70″, 400 x 240 pixels, requires 5V supply)
  • Possible future 2.70″ models assuming Sharp revise this size of display to use a lower supply voltage like they’ve done with their smaller models.

I expect to have the boards available for sale before the end of June. In the meantime, here’s a sneak preview (courtesy of GerbV) of what they should look like:

MakerDyne Sharp Memory LCD Small Breakout Board front view MakerDyne Sharp Memory LCD Small Breakout Board back view MakerDyne Sharp Memory LCD Large Breakout Board front view MakerDyne Sharp Memory LCD Large Breakout Board back view

Sharp Memory LCD Breakout Boards

This is the index page for all information about the Sharp Memory LCD breakout boards I will be selling soon.

    Breakout boards ready for production
    Small Memory LCD Breakout Board details
    Large Memory LCD Breakout Board details
    Using the Memory LCD with an Arduino
    Purchase a Sharp Memory LCD Breakout Board

BOINC, power cuts and an APC UPS

I’ve experienced a number of power cuts here today due to repairs being carried out on the local grid after the recent freezing weather. Not a problem, I thought, as I’ve got uninterruptible power supplies on all my computers. As long as the electricity isn’t off for too long, it’ll be fine.

And indeed, “Server Corner” in the room upstairs was fine. My LAN switch, the HP Microserver, Raspberry Pis and their external HDs carried on running on their UPS throughout the whole power cut.

The trouble was that my internet router and the house phone share their UPS with my main PC – which happened to be keeping the room warm while I was out walking the doy by running BOINC full-chat on its four CPU cores and on the GPU too. It’s power consumption is pretty close to the UPS’s rated capacity when doing that, so when the power failed, my APC Back-UPS 650 CS was hit with a load close to its recommended load capacity (>90%).

This shouldn’t have been a problem but for three things that have happened since we last had a long power cut. First, I’ve started running BOINC on my main PC again. Second, I recently removed the control cable from the back its APC UPS in order to test a “for spares or repair, no cables and sorry about the sticky mess” APC UPS I scored on eBay (it was fine – it just needed a new battery… and disinfecting). Third, I forgot I’d moved the UPS control cable over to the 99p eBay UPS and had then baulked at buying another control cable when I discovered that they cost nearly as much as a new battery. The cable in question being one of APC’s proprietary USB-to-not-quite-an-ethernet-jack ones.

The result of all this was that my main PC never received a signal from its UPS that the power was out, carried on running BOINC at full-chat and fully depleted the UPS battery in around two minutes. Having reached a critical battery level, UPS then shut itself down, depriving the internet router and house phone of power.

So much for sustaining essential services during a power cut!

Anyway, I’ve now returned the UPS data cable to my main computer and configured apcupsd (the Linux APC UPS daemon) to automatically shut down boinc-client when mains power is lost and restart it when power is restored.

To do this, three files must be edited:
/etc/apcupsd/apcupsd.conf
/etc/apcupsd/onbattery
/etc/apcupsd/offbattery

but before that, start boinc-client and then from the command line, run the command sudo apcaccess status to display your UPS status data. We’re interested in the TIMELEFT value. Note it down.

NB: I’m assuming that you already have apcupsd installed and configured for your UPS and have the data cable connected.

Now open /etc/apcupsd/apcupsd.conf in your favourite text editor. Look for the variables ONBATTERYDELAY, MINUTES, BATTERYLEVEL and TIMEOUT.

ONBATTERYDELAY should be set to only a few seconds – we want boinc-client running on batteries for as short a time as possible.

MINUTES must be set to less than the TIMELEFT value obtained from the output of the apcaccess status command while boinc-client is running· Otherwise a complete system shutdown will be initiated before boinc-client can be stopped.

BATTERYLEVEL should be set to the battery percentage you do want to initiate system shutdown at. I’ve set mine to 70 in order to leave a decent capacity for running the internet router and house phone.

TIMEOUT is set to zero.

Now save the file and restart the apcupsd daemon.

The final step is to add the appropriate commands for stopping and starting boinc-client to /etc/apcupsd/onbattery and /etc/apcupsd/offbattery. In each file the command should be added after the #!/bin/bash line but before the default emailing script that’s already in the files.

To /etc/apcupsd/onbattery add the line /sbin/service boinc-client stop (or it’s equivalent for your system – first experiment with starting and stopping boinc-client from the command line if you’re not sure) and to /etc/apcupsd/offbattery add the line /sbin/service boinc-client restart. Save and close the files. You should now be set up for automatically turning the CPU and GPU intensive boinc-client off whenever the power goes out.

If you want to test this, load up your sysstem monitor so you can see the graph of CPU utilisation. It should be pretty high with boinc-client running. Now cut the power at the wall socket. Within seconds, the CPU utilistation should drop as apcupsd reads the onbattery script and kills boinc-client.

To illustrate the benefits this has, here are the numbers for my system. With boinc-client running, apcaccess status shows

LOADPCT  :  88.0 Percent Load Capacity
...
TIMELEFT :   4.5 Minutes

and the power meter at the wall socket that the UPS is plugged into shows a UPS load of 3000W/325VA. Whereas without boinc-client I get

LOADPCT  :  47.0 Percent Load Capacity
...
TIMELEFT :   14 Minutes

and the power meter at the wall socket that the UPS is plugged into shows a UPS load of 140W/170VA.

This is quite a useful improvement in UPS runtime and just goes to show both how much boinc-client can stress a powerful machine when it’s running and how efficiently Intel processors and nVidia GPUs can throttle back when there’s no load on them.

Grid Computing

After a long hiatus where I’m ashamed to admit that I completely forgot about it – given that I’ve had a server running 24/7 with a very low workload for the last year – I’m back crunching numbers for the World Community Grid with both the server and also my desktop computer.

I installed BOINC on both my computers without any trouble. My server (HP Microserver) runs Debian and my desktop (Intel i2500K based system) runs OpenSuSE. Both had BOINC in their repositories and after very minimal configuration, both were up and running the World Community Grid projects.

I’ve also harnessed the power of my GPU in the desktop (an nVidia GTX 560 Ti) to run a different project – the GPU Grid – as the World Community Grid doesn’t have any projects that harness the GPU active at the moment. At least, not for Linux. Note: SuSE seems to require that the user boinc join the group video before it can detect any GPUs. This prevents the message “no usable GPUs found” from appearing in the BOINC logfile.

Click the links and donate your spare processing power today!