Saturday, March 25, 2017

E-Ink Table Clock and indoor ,Outdoor Temperatur Monitor With PIC32MX

This is an follow up For the previous post in which i demonstrated how you can drive kindle E-ink display with a microcontroller. 

previously i was using a MSP430FR5739 , which is really low power mcu but has very little RAM and bit low speed to do anything related to graphics. E-ink has 800x600 pixel resolution so it required minimum 60Kbyte of RAM to store Frame Buffer. although you can easily getaway without frame buffer by directly doing incremental drawing on to screen but there are few issue in that because of the way E-ink display works. one more issue with there with MSP430 , it has very low program memory so we need some sort of external memory to store font data and icons. 

so i have decided to use PIC32 microcontroller , PIC32MX795F512H to be exact. which has enough of ram and flash  can go up to 80Mhz. which is more than enough for our purposes. 




























Schematic E-ink Driver 

Figuring out schematic was very easy as there are may service manual available of e-readers . one of them is Sony PRS-505 , i have ordered one old bad battery one from ebay took it apart and  good thing about this e-reader there are test points available for every single point we need. Schematic available from my github account with link
 https://github.com/circuitvalley/E-ink_ED060SC4_driver_msp430/blob/master/Reference%20Documents/PRS-505_Service_Schematic.pdf

Schematic from service manual describe ever test point , so i just soldered few wires to





My schematic has basically no change since FPGA driver board , except VCOM voltage Opamp Circuit.


Wave form Reverse Engineering 
Image give blow , show a complete screen change. it consist of 38 individual frames .
One Full Screen change
one frame (First) from 38 Frames Required for screen change
Start Of one frame
Start of One frame Zoomed
one line writeof 800 pixel 


End of Line Write
Schematic MCU Board

Processor board schematic is From my old project , download pdf from my github accout


Images. 





Outdoor Temprature Sensor , 

as you can see on screen there are two Temperatur readouts . one of them on the top comes from local Temperatur sensor another one comes from a Wireless temperature sensor. which i build in previous project. 




Time Setting

as there is no user interface , i have serial port running at baud 115200 available to configure time.
time setting application is written in C++ with qt 5 . source is available in the github repo


Firmware. 
Firmware Source available on my github account. i am using xc32 compiler free version with optimization enabled to O1 level , this is maximum allowed with Free compiler.

https://github.com/circuitvalley/E-ink_pic32_Clock

if you have any question please let me know.

7 comments:

  1. Hello, the value of the crystal mounted on the pic board?

    ReplyDelete
  2. Crytal value is 12Mhz,
    here is the board support page.for full schematic.
    http://www.circuitvalley.com/2014/01/pic32-development-breakout-usb-board.html

    ReplyDelete
    Replies
    1. Hello, can you have a file with full display timing? (No images). The timings are very critical for operation??

      Delete
    2. At this moment I don't have any Timing file with me.i can possibly draw one amd upload later some time.
      Timing of few lines ( which basically control contrast on display) is very critical but others not that critical.

      Delete
    3. If you look into source code, eink driver source file has few Timing parameters mentioned.

      Delete