libEinkShield_mbedcli_ARM_NUCLEO_F446RE

Fork of libEinkShield_mbedcli_ARM_NUCLEO_F446RE by kevin tseng

The actual display component with e-paper and Mbed board

/media/uploads/jauming/imag1222_1k_2.png

Key Features

  • SPI interface to EPD display
  • Gray level support(Black, White and Red)
  • Flash memory - 128MB
  • One GPIO connected to LED
  • Four push buttons for user feedback

Peripherals/IOs

/media/uploads/jauming/2a_peripherals_ios_mbed-driving-board-function-500_switches.jpg

Pinout

/media/uploads/jauming/mbed_pinout_v05.png

Typical connection

  • Compatible with Arduino Headers /media/uploads/jauming/3_simple_procedures_how_to_connect_the_component_to_the_main_board_compatible_with_arduino_headers_typical_connection.jpg

Datasheet

Program and Library

Import programEinkShield_HelloWorld_ARM_KL25Z

EInkShield_HelloWorld

Import librarylibEinkShield_mbedcli_ARM_KL25Z

libEinkShield_mbedcli_ARM_KL25Z

Import librarylibEinkShield_mbedcli_ARM_K22F

libEinkShield_mbedcli_ARM_K22F

Import librarylibEinkShield_mbedcli_ARM_NUCLEO_F446RE

libEinkShield_mbedcli_ARM_NUCLEO_F446RE

Import library

Public Member Functions

EinkShield (EPD_driver driver, PinName bsi_pin, PinName rstn_pin, PinName busyn_pin, PinName csb_pin, PinName dc_pin, PinName scl_pin, PinName sda_pin)
Constructor to set pin assignment and driver.
void EPD_Init (void)
Driver initial.
void EPD_Display_KWR (unsigned char const *img_kw, unsigned char const *img_r)
Display image with color: black, white and red.
void EPD_Display_Red (void)
Display full screen red.

Files at this revision

API Documentation at this revision

Comitter:
jauming
Date:
Mon Aug 20 05:59:01 2018 +0000
Commit message:
libEinkShield_mbedcli_ARM_NUCLEO_F446RE

Changed in this revision

EinkShield.h Show annotated file Show diff for this revision Revisions of this file
libEinkShield_mbedcli_ARM_NUCLEO_F446RE.ar Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 4cbbe20392ef EinkShield.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/EinkShield.h	Mon Aug 20 05:59:01 2018 +0000
@@ -0,0 +1,126 @@
+/*
+Copyright (c) 2017-2018, E Ink Holdings Inc., All Rights Reserved
+SPDX-License-Identifier: LicenseRef-PBL
+
+This file and the related binary are licensed under the Permissive Binary 
+License, Version 1.0 (the "License"); you may not use these files except in 
+compliance with the License.
+
+You may obtain a copy of the License here: 
+LICENSE-permissive-binary-license-1.0.txt and at
+https://www.mbed.com/licenses/PBL-1.0
+
+See the License for the specific language governing permissions and limitations 
+under the License.
+*/
+/**
+ * \mainpage EinkShield usage sample code
+ * \code
+ * #include "mbed.h"
+ * #include "EinkShield.h"
+ * #include "image3.h"
+ * int main() {        
+ *     EinkShield epd(EL029TR1,
+ *                  D7,
+ *                  D6,
+ *                  D5,
+ *                  D10,
+ *                  D2,
+ *                  D13,
+ *                  D11);        
+ *     epd.EPD_Init();   
+ *     epd.EPD_Display_Red();
+ *     wait_ms(2000); 
+ *     while(1) {  
+ *        epd.EPD_Display_KWR(sale2_KW, sale2_R);
+ *        wait_ms(2000); 
+ *    } 
+ * }
+ * \endcode
+ */
+#ifndef EINK_SHIELD_H
+#define EINK_SHIELD_H
+
+typedef enum {
+    EL029TR1,  
+} EPD_driver;
+
+
+/** @class EinkShield EinkShield.h */
+/** class EinkShield for mbed-os */
+class EinkShield {
+private:
+    DigitalOut bsi  ;//(D7);
+    DigitalOut rstn ;//(D6);
+    DigitalIn  busyn;//(D5);
+    DigitalOut csb  ;//(D10);
+    DigitalOut dc   ;//(D2);
+    DigitalOut scl  ;//(D13);
+    DigitalOut sda  ;//(D11);
+       
+    EPD_driver driver;
+ 
+public:
+   /**
+    *    Constructor to set pin assignment and driver
+    *    @param driver select different size display driver for EinkShield, for example: EL029TR1
+    *    @param bsi_pin bus selection pin
+    *    @param rstn_pin reset pin, L: driver will reset when low
+    *    @param busyn_pin busy pin, L: driver is busy
+    *    @param csb_pin chip-select pin
+    *    @param dc_pin data/command pin
+    *    @param scl_pin serial clock pin
+    *    @param sda_pin serial data pin
+    *    @return none
+    */ 
+    EinkShield(EPD_driver driver,
+          PinName bsi_pin,
+          PinName rstn_pin,
+          PinName busyn_pin,
+          PinName csb_pin,
+          PinName dc_pin,
+          PinName scl_pin,
+          PinName sda_pin);
+   /**
+    *    Driver initial
+    *    @param none
+    *    @return none
+    */          
+    void EPD_Init(void);
+   /**
+    *    Display image with color: black, white and red.
+    *    <pre>
+    *    Resolution of EL029TR1 is 128x296.
+    *    Pixel data alignment is from left to right and from top to bottom.
+    *
+    *    <STRONG>img_kw</STRONG> point to black and white raw pixel data of image, 
+    *    1 bit per pixel, 0 = black, 1 = white,  
+    *    Total size of img_kw is 128x296/8 = 4736 bytes for EL029TR1.
+    *
+    *    <STRONG>img_r</STRONG> point to red raw pixel data of image, 
+    *    1 bit per pixel, 0 = red, 1 = reserved, 
+    *    Total size of img_r is 128x296/8 = 4736 bytes for EL029TR1.
+    *    </pre>
+    *    
+    *    @param img_kw <pre>point to black and white raw pixel data of image, 
+    *    1 bit per pixel, 0 = black, 1 = white,</pre>
+    *  
+    *    @param img_r <pre>point to red raw pixel data of image, 
+    *    1 bit per pixel, 0 = red, 1 = reserved,</pre>
+    *    
+    *    
+    *    @return none
+    */   
+    void EPD_Display_KWR(unsigned char const *img_kw, unsigned char const *img_r);
+   /**
+    *    Display full screen red
+    *    
+    *    @param none
+    *    @return none
+    */   
+    void EPD_Display_Red(void);          
+};
+
+
+
+#endif
diff -r 000000000000 -r 4cbbe20392ef libEinkShield_mbedcli_ARM_NUCLEO_F446RE.ar
Binary file libEinkShield_mbedcli_ARM_NUCLEO_F446RE.ar has changed