• Stars
    star
    203
  • Rank 186,585 (Top 4 %)
  • Language
    C
  • License
    Other
  • Created over 10 years ago
  • Updated almost 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Driver for the ED060SC4 E-ink display
1. Introduction

This is a driver for ED060SC4 800x600 e-ink display panel manufactured by
Prime View. Note that this driver uses a direct connection to the panel from
the processor; it does not use a separate controller chip between the processor
and the panel.

To use the driver, you need to be able to control the following signals from
your processor:

Gate driver: SPV, CKV, GMODE.
Source driver: CL, LE, OE, SPH, D0-D7.
Power supply: +-15V, +22V, -20V, digital Vdd

The file "example_schematics.png" shows how to connect the signals to e.g. a
STM32L151 microcontroller. It also includes an example circuit for providing
the panel supply voltages.

Note that the larger panels (such as the 800x600) consist of multiple segments
with separate gate driver signals. These can be daisy chained as shown in the
example schematic.

Please see here for more information on the panel:
http://essentialscrap.com/eink/


2. Frame buffer emulation

Because there is not enough memory to store a full frame buffer on the
processor, this driver emulates a frame buffer by storing the display data in
blocks. It will buffer up to EINK_NUMBUFFERS blocks and then write them to the
screen. The following #defines control the buffering. Larger numbers will
result in faster drawing, but also use more RAM on the processor:

#define EINK_BLOCKWIDTH 20    // Width of a single block in buffer
#define EINK_BLOCKHEIGHT 20   // Height of a single block in buffers
#define EINK_NUMBUFFERS 40    // Number of blocks to buffer

After drawing your images, you should flush the buffers using the following
command:

    #include <ed060sc4.h>
    gdispControl(GDISP_CONTROL_FLUSH, 0);

The buffers are also flushed whenever you turn the display off using:

    gdispSetPowerMode(powerOff);



3. Display clearing and writing waveforms

This driver does not know the official Prime View waveforms for driving the
display, mostly because those are trade secrets and not publicly available.
Instead, it uses reverse engineered waveforms that are mostly functional.

The following #defines control the waveforms:

#define EINK_BLINKCLEAR TRUE      // Clear to opposite color first
#define EINK_CLEARCOUNT 10        // Number of sweeps to clear the display
#define EINK_WRITECOUNT 4         // Number of sweeps when writing to display

Increasing the clearcount and writecount can improve contrast, but will also
slow down the drawing and use more power.



4. Clock speeds

Because the driver bit bangs the display, the clock frequency of the processor
is quite significant. This is controlled by EINK_CLOCKDELAY variable. Set it
so that the delay is atleast 50 nanoseconds.



5. Support for other kinds of panels

Most of the Prime View panels should work using this driver, but only ED060SC4
has been tested so far. Some points of consideration:

- Some displays may use 4 bits per pixel. The driver currently assumes 2 bits
  per pixel.
- Larger displays may require some other way of daisy chaining than shown in
  the example schematics.

  

More Repositories

1

libfixmath

Cross Platform Fixed Point Maths Library
C
702
star
2

libfixmatrix

C library for fixed point matrix, quaternion and vector calculations
C
410
star
3

focus-stack

Fast and easy focus stacking
C++
196
star
4

STM32_Trace_Example

Example on using the ITM/ETM tracing on STM32 (and generally any Cortex-M3)
C
99
star
5

Baselibc

Small C library for microcontrollers. Code is based on klibc.
C
93
star
6

QuadPawn

Pawn scripting language for the DSO Quad pocket oscilloscope.
C
76
star
7

latex-datasheet-template

LaTeX document class for electronics datasheets
TeX
68
star
8

dso-quad-logic

Logic analyzer for the DSO Quad
C
33
star
9

esp-walkie-talkie

Software for a ESP8266 based walkie talkie radio (doesn't work very well)
C
24
star
10

dso-quad-usb-analyzer

USB Full-Speed (12Mbps) protocol analyzer for the DSO Quad
VHDL
21
star
11

ebike-controller

Chibios-based ebike controller
C
15
star
12

nanopb-benchmark

Benchmark of several Protocol Buffers implementations suitable for use on embedded devices.
Protocol Buffer
15
star
13

AlterBIOS

Extensions and fixes for DSO Quad BIOS (SYS.HEX)
C
11
star
14

owon-xdm2041-info

Information about Owon XDM2041 internals
Python
11
star
15

esp-walkie-talkie-hw

Hardware for ESP8266 based walkie talkie (doesn't work particularly well)
OpenSCAD
10
star
16

blender_addons

Blender addons development
Python
8
star
17

crs-c500c-utils

Utilities for Thermo CRS C500C series robot arm controllers
Rebol
7
star
18

tem-cell

DIY TEM cell design for EMC measurements
5
star
19

arm_coresight_decoder

Unfinished ARM Coresight (ETM/ITM) decoder in Rust
Rust
3
star
20

bletalk

Beginnings of a Silicon Labs BGM113 + GCC project
C
1
star
21

nerm

Nerm - No Effort Requirements Management
Python
1
star
22

tardis-controller

STM32F030 bare bones project
C
1
star