If you’ve never heard about electronic paper, crawl out from under that rock and read up on the Sony reader and the Amazon Kindle. E-paper is a flexible display made of color-changing beads that simulate ink-on-paper for easy daylight reading. The revolutionary thing about e-paper is that after it’s set, it stays that way without additional power.
This sounds great in theory, but Esquire’s cover is the first time everybody can afford to hack an e-paper display. We took the cover into the Hack a Day lab to document, test, and hack. In the end, we recycled it into something beneficial that any individual can build. We’ve got all the details on how the display works and what it takes to use it in your own projects. read about our e-paper clock hack below.
Antecedentes
The Esquire e-paper cover hit big on the net, but was swiftly panned. NOTCOT has beautiful scans of the circuit board and e-paper. popular science posted instructions for reading the code with a PICkit2. [Slaxter] verified that the photo chip can be read, and that the code protection fuses are off. [Matt] manipulated the e-paper cells directly with skillful soldering and an Arduino. So far, there hasn’t been a lot of interest in repurposing the e-paper, or reprogramming the existing microcontroller.
E-paper panels
The actual e-paper panels, manufactured by E-Ink, aren’t that exciting. Each panel has a set of predefined segments, 11 on the front panel and 3 on the rear Ford advertisement. This isn’t a matrix that we can reprogram into an e-reader. [just_mike] has a great set of ultra close-up shots of the individual beads that make up each segment.
Each e-paper segment has an individual connection, and a connection that’s shared with other cells on the panel. The segments become white or black depending on the direction of current applied to the cell. When common is low, any segment that is also connected high will darken. When common is high, each cell connected to ground will clear. The PCB uses 16 volts from five 3.3volt batteries to switch the cells, but [Slaxter] showed that 5volts was sufficient with his Arduino project.
Pruebas de rendimiento
We made several observations about the e-paper operating specifications.
First, it takes nearly 0.5 seconds to completely darken or clear a cell. In the video you can see the partial states created by switching the e-paper too fast. We’re not quite sure of the optimal change time, but between 0.25 and 0.5 seconds seems to be the minimum.
This also raised questions about the maximum change time. Does it damage the e-paper to apply current for longer than necessary? Does the e-paper continue to consume current as long as it’s applied, wasting the batteries? We took special care in our code to return all outputs to ground after a change to avoid a continuous current through the panel.
Clearing and darkening need to be done separately. It takes two complete operations to fully freshen the screen; one to clear old segments, one to darken new segments. A smart programmer will think they can save a cycle when only adding or removing items, and not doing both. This is true to some extent, but continuous manipulation of one cell without refreshing adjacent cells causes color ‘creep’. In the video, a flashing background without updates to any other segments swiftly drives the inactive segments to a mid-state between dark and light.
Driver board
The motorist consists of an eight-pin Microchip PIC12F629, two 4094 shift registers, and some supporting components.
Click here for a full size pin diagram of the e-paper motorist board(PNG).
Batteries
Esquire invited hacks of their cover with the rather lame suggestion of replacing the batteries. This makes sense, the covers were shipped all over the world in refrigerated containers to help extend the battery life. even with that effort, Esquire says that the batteries will last a few months.
Batteries 1-5 are in series and supply a 15-16volt switching current for the e-paper. The sixth battery supplies 3volts for the PIC. No word yet on which batteries die first. If you want to ‘replace’ your batteries, you’ll need to desolder the old ones, and supply a 5-16volt e-paper supply, and 3volt microcontroller supply, at the points indicated.
We eventually had to replace our microcontroller battery because we abused it a bit during development. A button battery holder with 20mm pin spacing will fit the existing holes. Mouser #534-106 will probably work, but this is unconfirmed.
4094 shift registers (IC1, IC2)
The shift registers switch the e-paper segment controls at 16 volts.
The two 4094 ICs are shift registers setup to cascade data from IC1 to IC2. This basic shift register is a minor variation on the 74HTC595 we used in our graffiti wall. The main difference is that the 4094 strobe line is usually low, and briefly pulled high to put new values on the output pins. We observed that the 4094 requires loNG Reloj y pulsos estroboscópicos. Esto podría deberse a circuitos de accionamiento perezoso entre la foto y el 4094, o simplemente la naturaleza de la serie 4000.
Mapa de salida del segmento 4094
IC
Producción
Habla a
Conexión
1
Q1
0x01
Front_box_symbol_dna
1
Q2
0x02
Front_box_guy
1
Q3
0x04
Front_box_fireworks
1
Q4
0x08
Front_on_the_west_coast
1
Q5
0x10
Front_three_hours_later
1
Q6
0x20
Front_esquire
1
Q7
0x40
Front_box_girl
1
Q8
0x80
Front_now
2
Q1
0x100
Front_Begins
2
Q2
0x200
Front_21st_century
2
Q3
0x400
Front_background
2
Q4
0x800
Front_common
2
Q5
0x1000
Back_common
2
Q6
0x2000
Back_left
2
Q7
0x4000
Back_center
2
Q8
0x8000
TRASERA DERECHA
12F629
Haga clic aquí para un dibujo esquemático de tamaño completo (PNG). Un PIC12F629 de ocho pines impulsa los registros de cambio de 4094 que controlan cada segmento de papel electrónico. Dos pasadores no están utilizados (GP4, GP5).
La función MCLR está habilitada con Resistor R8. El diseño no incluye un diodo para asegurar la foto de la corriente de programación de 13 Volt. Microchip recomienda esto, pero no hay otros ICS sensibles que compartan el circuito, así que tal vez el diseñador sintiera una resistencia era suficiente protección.
Tres pines impulsan los datos, el reloj y las líneas estroboscópicas del 4094 (GP0, GP1, GP2). El 4094 tiene que ser interconectado a la misma voltaje, interruptores, 16 voltios, por lo que la foto cambia los pasadores de la interfaz a través de los transistores. Por lo que podemos decir, las líneas de control 4094 se sienten altas con una resistencia. La foto enciende un transistor, y tira de la línea a tierra. La interfaz al 4094 está al revés. Una foto High Pin se ve tan baja en el registro de turnos, y baja se ve tan alta. La interfaz no funcionará a menos que se invierte.
Los pasadores de programación se llevan a un encabezado en la parte superior de la PCB. Soldados estándar .1 “encabezado PIN en los orificios suministrados (Mouser # 571-41033290). Los dos pasadores de programación, PGD y PGC, se comparten con los circuitos que impulsa los registros de turnos. Pudimos leer el dispositivo con un depurador ICD2. Sin embargo, no pudimos reprogramarlo, probablemente debido al controlador de registro de turnos. ¿Algún individuo tiene éxito? Independientemente, el arreglo de PIN compartido hace que sea imposible hacer la depuración en el circuito en este dispositivo.
Conexiones PIN PIN
Alfiler
Nombre
Conexión
1
VDD
+ 3.3Volts
2
Gp5
–
3
Gp4
–
4
Gp3
MCLR (Programa VPP)
5
Gp2
4094 estroboscópico
6
Gp1
4094 reloj (reloj de programa)
7
Gp0
4094 datos (datos del programa)
8
Vss
Terrestre
Toque el tablero
Es fácil tocar en el tablero y usarlo con su microcontrolador favorito. Todos, excepto una de las señales de interfaz requeridas ya se llevan a un encabezado. La línea estroboscópica se puede aprovechar a través de los medios mediante la flecha indicada. No quiere que la foto interfiera con su nuevo controlador, así que retírela o desactive al cortar el pasador de alimentación.
Biblioteca de interfaz
Nuestro primer esfuerzo para impulsar la Junta involucró nuestro pequeño servidor web, basado en PIC24F. Era útil, y la PIC24F es fácil de trabajar. Perfeccionamos nuestra biblioteca de interfaz en un MSP430 de baja potencia. Ambas versiones están en el archivo del proyecto (ZIP), pero la versión MSP430 de la biblioteca es mucho más madura.
La biblioteca incluye una rutina de bit-bang de software, funciones para interconectar la placa y de las definiciones de dirección para el segmento y las líneas comunes. Opciones en Esquire_Eink.H Habilita un retardo de bit-bang y establece su longitud; Encontramos los 4094 perezosos y necesitamos un largo pulso de reloj. La función InitBang () establece la dirección de los pasadores, y debe cambiarse para adaptarse a su microcontrolador. Llámalo, o establece tus pasadores IO para emitir en otro lugar:
1
Banginit (); // Establecer los pasadores Bitbang a la salida
La función SETSEG () establece los segmentos pasados oscuros (1) o transparentes (0):
1
2
setseg (front_box_guy + front_background, 1); // set (oscuro) estos segmentos
setseg (front_21st_century, 0); // claro (luz) estos segmentos
La función SETSEG () incluye un retardo de cambio de color definido por Eink_Delay en Esquire_Eink.h. Al final de la demora, devuelve los pasadores de registro de desplazamiento a tierra. Queremos evitar dañar el papel electrónico o perder las baterías, aunque realmente no sabemos si esto es necesario.
Una cosa que observamos sobre SETSEG () fue que manipular las células individuales causa células adyacentes para retroceder hacia un color medio. Desarrollamos la función SetDisplay () para combatir esto completamente refrescando la pantalla cada vez. SetDisplay () incluye una pausa para cada cambio, y luego devuelve las salidas de registro de desplazamiento a tierra. Solo pase la disposición del segmento para una pantalla completamente refrescada:
1
setdisplay (front_esquire + back_left); // xx oscuro, todo lo demás claro
Puede acceder a los registros de turnos directamente con la función Bangit (), pero considere la devolución de los resultados de los registros de turnos a ‘0’ después de que se complete el cambio de color de papel electrónico. Podría dañar el papel electrónico o causar un desagüe excesivo de corriente si lo dejas, si eso es en realidad “una cosa”.
1
2
3
Bangit (0B1110000000000000); // todos los segmentos del panel posterior en
pausa (); // Espere el cambio de color
Bangit (0x0000); // devolver todas las salidas al suelo
Para portuar la biblioteca a su MICrocontroller, simplemente revise las configuraciones PIN en Esquire_Eink.H, y la función de configuración del PIN BanginIt () en Esquire_Eink.c. Tenga en cuenta que las direcciones PIN se invierten por los transistores de la interfaz.
Poniéndolo usar, un reloj de papel electrónico.
Queríamos hacer algo beneficioso con el primer panel de papel electrónico de consumo barato. Tenía que ser algo bastante fácil para que muchas personas puedan reciclar esta pieza de tecnología fresca. No pudimos resistirnos a hacer lo que hace mucho hacer con la vieja tecnología de pantalla: hacer un reloj. Los plantillas de esquemas, firmware y arte están en el archivo del proyecto (.ZIP).
Hay tan pocos segmentos en el papel electrónico que solo podemos representar parcialmente el tiempo. Seis segmentos muestran tiempo, cada uno se desvanece para revelar el tiempo a los diez minutos más cercanos después de la hora. También flashamos los caramelos de ojos en los segmentos de la falta de tiempo del panel. Aquí está el bisel hecho a medida que creamos. Este bisel, y un tema para hacer el suyo, se incluyen en el archivo del proyecto (ZIP). Imprimimos nuestro bisel reflejado para que la tinta esté protegida de los arañazos.
Hardware
Nos inspiramos en las propiedades de baja potencia de E-Papel para usar la línea MSP430 de Texas Instruments de microcontroladores de 16 bits. Con la configuración ideal, el MSP430 dibuja tan poco poder que solo está limitado por la vida útil de una batería. Incluso podemos dar a los diseñadores originales una carrera por su dinero, y ver si podemos hacer un dispositivo de potencia más bajo.
Lo mejor de la MSP430 es que puede obtener un kit con un programador / depurador y un tablero de ruptura USB por solo 20 dólares. Viene con un compilador C de cortesía limitado a 4k, pero el F2013 solo tiene 2k de memoria. Esta es una herramienta de desarrollo completa, sin soldadura involucrada. Aprenda mucho más sobre cómo trabajar con el MSP430 en este Cómo hacerlo.
Este esquema muestra cómo conectamos nuestro MSP430 a la Junta de Motoristas de Papel E. Haga clic aquí para una versión de tamaño completo (PNG). La resistencia de 47K, MSP430 y un LED (no mostrado) se incluyen en el tablero de ruptura.
Añadimos un cristal de 32.768kHz para mantener el tiempo (Q1). Normalmente, también agregaríamos algunos condensadores para formar un oscilador, pero el MSP430 tiene capacitores ajustables incorporados en P2.6 y P2.7.
También agregamos un botón entre P1.4 y P1.2 (S1). La resistencia interna de pull-up en P1.4 sostiene el botón alto, y lo conectamos a tierra a través de P1.2. Este no es el mejor arreglo, probablemente sería aconsejable también conectarse a P1.2 a tierra.
Deslizamos el tablero de ruptura MSP430 sobre los pasadores de energía y terreno del encabezado de programación. También puede conectar los clavijas de reloj y datos al encabezado, pero tomamos una decisión de enrutarlos a todos desde la VIAS debajo. Recuerde eliminar la foto para que no interfiera con las señales del MSP430.
Partes
Número
Costo
Cubierta Esquire E-Paper
–
–
MSP430 EZ430 Kit de desarrollo
EZ430USB
$ 20
32.768kHz Crystal
815-AB26T-32.768kHz
$ 0.27
Presionar el botón
642-MJTP1250
$ 0.16
Firmware
El software del reloj se escribe con la versión de demostración de cortesía del compilador TI / IAR Kickstart C incluido con el programador EZ430.
El MSP430 es un poder muy bajo. Utiliza solo 220UA a 1MHz, pero menos de 6UA al dormir. La vida crucial para la batería larga es mantener el chip dormido tanto como sea posible. Nuestro código de reloj está escrito con esto en mente.
Utilizamos Timer_A con el cristal 32.768KHz para crear una interrupción dos veces cada segundo. La primera interrupción se desencadena el código que configura los segmentos que se mostrarán, envía estos valores al papel electrónico y luego duerme durante los siguientes 0,5 segundos. Mientras que el MSP430 duerme, todos los segmentos ‘OFF’ tienen tiempo para despejar. La siguiente interrupción voltea las líneas comunes del otro lado con un XOR básico, sale los valores y se va a dormir durante otros 0.5 segundos. La próxima vez que el ciclo comience de nuevo. No nos molestamos en reiniciar los registros de turnos a la posición ‘0’ porque el refresco está regularmente en flujo. El segmento Creep no es un problema porque refrescamos cada segmento cada ciclo.
Una prensa de botones desencadena una interrupción que avanza el tiempo a los próximos 10 minutos. Para configurar el reloj, espere hasta que el tiempo sea un aspecto de 10 minutos después de la hora y presione el botón para mostrar el Corre