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.
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
|
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.
Good job
ReplyDeleteExcellent!!
ReplyDeleteHello, the value of the crystal mounted on the pic board?
ReplyDeleteCrytal value is 12Mhz,
ReplyDeletehere is the board support page.for full schematic.
http://www.circuitvalley.com/2014/01/pic32-development-breakout-usb-board.html
Hello, can you have a file with full display timing? (No images). The timings are very critical for operation??
DeleteAt this moment I don't have any Timing file with me.i can possibly draw one amd upload later some time.
DeleteTiming of few lines ( which basically control contrast on display) is very critical but others not that critical.
If you look into source code, eink driver source file has few Timing parameters mentioned.
DeleteTo Gaurav Singh:Your Email link is not working.May I know your email address
ReplyDeleteYou can send emails to
Deletegauravsingh At circuitvalley.com
Hi, what program you used to generate fonts?
ReplyDeleteIs the driver schematic available somewhere?
ReplyDeletehere is the github repo , everthing is opensource
Deletehttps://github.com/circuitvalley/E-ink_pic32_Clock
take a look at schematic in PDF format for different voltage levels.