HOW-TO: MAKE AN E-PAPER CLOCK FROM ESQUIRE magazine
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.
Sfondo
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.
Test delle prestazioni
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 orologio e impulsi stroboscopici. Ciò potrebbe essere dovuto a circuiti azionari pigri tra la foto e il 4094, o solo la natura della serie 4000.
Mappa di uscita del segmento 4094
CIRCUITO INTEGRATO
Produzione
Indirizzo
Connessione
1.
Q1.
0x01.
Front_box_symbol_dna.
1.
Q2.
0x02.
Front_box_guy.
1.
Q3.
0x04.
Front_box_firworks.
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.
Back_right.
12F629.
Clicca qui per un disegno schematico a grandezza naturale (PNG). Un otto PIN PIC12F629 guida i registri del turno 4094 che controllano ogni segmento di carta elettronica. Due perni non sono utilizzati (GP4, GP5).
La funzione MCLR è abilitata con resistore R8. Il design non include un diodo per garantire la foto dalla corrente di programmazione 13volt. Microchip lo consiglia, ma non ci sono altri accervi sensibili che condividono il circuito, quindi forse il designer ha sentito un resistore era una protezione sufficiente.
Tre Pins guidano i dati, l’orologio e le linee stroboscopiche del 4094 (GP0, GP1, GP2). Il 4094 deve essere interfacciato alla stessa tensione interruttori IT, 16 Volt, quindi la foto cambia i perni di interfaccia attraverso transistor. Per quanto possiamo dire, le linee di controllo 4094 vengono tirate in alto con un resistore. La foto attiva un transistor, e tira la linea su terra. L’interfaccia al 4094 è all’indietro. Un pin fotografico è visto come basso nel registro del cambio e basso è visto come alto. L’interfaccia non funzionerà a meno che non abbia invertito.
I pin di programmazione sono portati a un’intestazione nella parte superiore del PCB. Abbiamo saldato standard .1 “Pin header nei fori forniti (mouser # 571-41033290). I due pin di programmazione, PGD e PGC, sono condivisi con il circuito che guida i registri del cambio. Siamo stati in grado di leggere il dispositivo con un debugger ICD2. Non siamo riusciti a riprogrammarlo però, probabilmente a causa del driver del registro del cambio. Qualsiasi individuo ha avuto successo? Indipendentemente dal fatto che, la disposizione del PIN condivisa rende impossibile eseguire il debug in-circuit su questo dispositivo.
PIC PIN Connections.
Spillo
Nome
Connessione
1.
VDD.
+ 3.3Volts.
2.
GP5.
–
3.
GP4.
–
4.
GP3.
MCLR (programma VPP)
5.
GP2.
4094 stroboscopio
6.
GP1.
4094 orologio (orologio programma)
7.
GP0.
4094 Dati (dati del programma)
8.
Vss.
Terra
Tocca la scheda
È facile toccare la scheda e usarlo con il tuo microcontrollore preferito. Tutto tranne uno dei segnali di interfaccia richiesta sono già portati a un’intestazione. La linea Strobe può essere sfruttata attraverso il mezzo di indicato dalla freccia. Non vuoi che la foto interferisca con il tuo nuovo controller, quindi rimuoverlo o disattivarlo recindendo il pin di potenza.
Biblioteca di interfaccia
Il nostro primo sforzo per guidare il Consiglio ha coinvolto il nostro server web piccolo basato su PIC24F. Era utile, e il PIC24F è facile da lavorare. Abbiamo perfezionato la nostra libreria di interfaccia su un MSP430 a bassa potenza. Entrambe le versioni sono nell’archivio del progetto (ZIP), ma la versione MSP430 della libreria è molto più matura.
La Biblioteca include una routine di bit-bang software, funzioni per l’interfacciamento della scheda e le definizioni degli indirizzi per il segmento e le linee comuni. Opzioni in esquire_eink.h Abilitare un ritardo di bit-bang e impostare la sua lunghezza; Abbiamo trovato il 4094 pigro e bisognoso di un lungo impulso dell’orologio. La funzione InitBang () imposta la direzione dei pin e deve essere modificata in base al tuo microcontrollore. Chiamalo o imposta i tuoi Pin IO per emettere altrove:
1.
BANGINIT (); // imposta i perni di Bitbang in uscita
La funzione SetSEG () imposta i segmenti passati scuri (1) o chiari (0):
1.
2.
setseg (front_box_guy + front_background, 1); // set (scuro) questi segmenti
setseg (front_21st_century, 0); // clear (light) questi segmenti
La funzione SetSEG () include un ritardo di cambio colore definito da EINK_DELAY in Esquire_Eink.h. Alla fine del ritardo restituisce i perni del registro del turno a terra. Vogliamo evitare di danneggiare la carta elettronica o sprecare le batterie, anche se non sappiamo davvero se è necessario.
Una cosa che abbiamo osservato su Setseg () è stata che la manipolazione delle cellule singole provoca regredire le cellule adiacenti verso un colore a metà. Abbiamo sviluppato la funzione SetDisplay () per combatterlo completamente rinfrescando il display ogni volta. SetDisplay () include una pausa per ogni modifica, quindi restituisce le uscite del registro di spostamento su terra. Basta passare la disposizione del segmento per un display completamente aggiornato:
1.
setdisplay (front_esquire + back_left); // xx buio, tutto il resto chiaro
È possibile accedere ai registri di spostamento direttamente con la funzione BANBIT (), ma considerare di restituire le uscite dei registri Shift su ‘0’ dopo il completamento del cambio di colore E-Paper. Potresti danneggiare la carta elettronica o causare uno scarico eccessivo di corrente se lo lasci, se è in realtà ‘una cosa’.
1.
2.
3.
BANCIT (0b1110000000000000); // tutti i segmenti del pannello posteriore su
Pausa (); // Aspetta il cambiamento del colore
BANGIT (0x0000); // restituisce tutte le uscite a terra
Portare la biblioteca al tuo MICrocontroller, basta controllare le configurazioni PIN in Esquire_eink.h e la funzione di configurazione PIN BANGINIT () in Esquire_Eink.c. Tieni presente che le direzioni PIN sono invertite dai transistor dell’interfaccia.
Mettendolo all’uso, un orologio e-paper
Volevamo fare qualcosa di vantaggioso con il primo pannello economico e-carta da consumatore. Doveva essere qualcosa di abbastanza facile in modo che molte persone possano riciclare questo fresco pezzo di tecnologia. Non siamo riusciti a resistere a fare ciò che è così grande con la vecchia tecnologia del display: crea un orologio. Schemi, firmware e modelli d’arte sono nell’archivio del progetto (.zip).
Ci sono così pochi segmenti sulla carta elettronica che possiamo solo rappresentare parzialmente il tempo. Six Segments mostrano tempo, ognuno svanisce per rivelare il tempo ai dieci minuti più vicini oltre l’ora. Facciamo anche lampeggiare la caramella oculare sui segmenti non tempi del pannello. Ecco la lunetta su misura che abbiamo creato. Questa ghiera e un tema da realizzare, sono inclusi nell’archivio del progetto (zip). Abbiamo stampato la nostra cornice specchiata in modo che l’inchiostro sia protetto da graffi.
Hardware
Siamo stati ispirati alle proprietà a bassa potenza della carta elettronica per utilizzare la linea MSP430 di Texas Instruments ‘di microcontrollers a 16 bit. Con la configurazione ideale, l’MSP430 disegna così poco potenza che è limitata solo dalla durata di una batteria. Possiamo persino dare ai progettisti originali a una corsa per i loro soldi e vedere se possiamo creare un dispositivo di alimentazione inferiore.
La cosa migliore del MSP430 è che puoi ottenere un kit con un programmatore USB / debugger e board Breakout per soli 20 dollari. Viene fornito con un compilatore C gratuito limitato a 4K, ma il F2013 ha solo 2K di memoria. Questo è uno strumento di sviluppo completo, nessuna saldatura coinvolta. Impara molto di più sul lavoro con MSP430 in questo how-to.
Questo schema mostra come abbiamo collegato il nostro MSP430 al consiglio di amministrazione dell’Automobilista. Clicca qui per una versione a grandezza naturale (PNG). Il resistore 47K, MSP430 e un LED (non mostrato) sono incluse nella scheda Breakout.
Abbiamo aggiunto un cristallo 32.768khz per tenere il tempo (Q1). Normalmente, avremmo anche aggiunto alcuni condensatori per formare un oscillatore, ma l’MSP430 ha condensatori regolabili incorporati su P2.6 e P2.7.
Abbiamo anche aggiunto un pulsante tra P1.4 e P1.2 (S1). Il resistore interno del pull-up su P1.4 contiene il pulsante in alto, e ne abbiamo collegato a p1.2. Questo non è il miglior accordo, probabilmente sarebbe saggio anche collegare P1.2 a terra.
Abbiamo fatto scivolare la scheda Breakout MSP430 sopra il potenza e i perni di terra dell’intestazione di programmazione. È possibile collegare anche gli orologi e i perni di dati all’intestazione, ma abbiamo preso una decisione di instradare tutti dalle Via sottostanti. Ricordarsi di rimuovere la foto in modo che non interferisca con i segnali dall’SSP430.
Parti
Numero
Costo
Cover ESQUIRE E-Paper
–
–
MSP430 Kit di sviluppo EZ430
EZ430USB.
$ 20.
32.768khz crystal.
815-AB26T-32.768KHz
$ 0.27.
Premi il bottone
642-MJTP1250.
$ 0.16.
Firmware
Il software dell’orologio è scritto con la versione demo gratuita del compilatore C Kickstart C TI / IAR incluso con il programmatore EZ430.
L’MSP430 è molto basso. Usa solo 220UA a 1 MHz, ma meno di 6ua quando dormi. La durata della batteria cruciale per mantenere il chip addormentato il più possibile. Il nostro codice clock è scritto con questo in mente.
Usiamo Timer_A con il cristallo 32.768khz per creare un interrupt due volte ogni secondo. La prima interrupt attiva il codice che configura i segmenti da visualizzare, invia questi valori alla carta elettronica, quindi dorme per i prossimi 0,5 secondi. Mentre il MSP430 può dormire, tutti i segmenti “off” hanno il tempo di cancellare. Il prossimo interrupt capovolge le linee comuni, l’altro modo con un XOR di base, emette i valori e va a dormire per altri 0,5 secondi. La prossima volta il ciclo ricomincerà. Non ci preoccupiamo di resettare i registri del turno alla posizione ‘0’ perché la rinfrescatura è regolarmente in flusso. Segment Creep non è un problema perché rinfreriamo ogni segmento ogni ciclo.
Un pulsante Premere Trigger un interrupt che avanza il tempo nei prossimi 10 minuti. Per impostare l’orologio, attendere che il tempo sia un aspetto di 10 minuti oltre l’ora e premi il pulsante per mostrare il corro