Library for Waveshare 2.7" tri-colour e-Paper display.
epd2in7b.h
- Committer:
- mdroberts1243
- Date:
- 2019-12-06
- Revision:
- 0:9e6a8e3cd8de
File content as of revision 0:9e6a8e3cd8de:
/** * @filename : epd2in7b.h * @brief : Header file for Dual-color e-paper library epd2in7b.cpp * @author : Yehui from Waveshare (modified by Mark Roberts / mdroberts1243) * * Copyright (C) Waveshare July 31 2017 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documnetation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ /* * Modified by Kenji Arai / JH1PJL * * http://www.page.sannet.ne.jp/kenjia/index.html * http://mbed.org/users/kenjiArai/ * Created: April 27th, 2019 * Revised: April 30th, 2019 * * Refrence software * https://github.com/waveshare/e-Paper * https://os.mbed.com/users/imachooon/code/epd1in54/ * * Technical documents * https://www.waveshare.com/wiki/2.13inch_e-Paper_HAT_(B) * * Product * http://akizukidenshi.com/catalog/g/gP-13757/ * https://www.waveshare.com/2.13inch-e-paper-hat-b.htm * */ #ifndef EPD2IN7B_H #define EPD2IN7B_H #include "epdif.h" #define LOW 0 #define HIGH 1 // Display resolution // 2.7 Inch version #define EPD_VERT 264 #define EPD_HORIZ 176 // EPD2IN13B commands #define PANEL_SETTING 0x00 #define POWER_SETTING 0x01 #define POWER_OFF 0x02 #define POWER_OFF_SEQUENCE_SETTING 0x03 #define POWER_ON 0x04 #define POWER_ON_MEASURE 0x05 #define BOOSTER_SOFT_START 0x06 #define DEEP_SLEEP 0x07 #define DATA_START_TRANSMISSION_1 0x10 #define DATA_STOP 0x11 #define DISPLAY_REFRESH 0x12 #define DATA_START_TRANSMISSION_2 0x13 // Partial Data Start Transmission 1 (0x14), 2 (0x15), Partial Display Refresh (0x16) // Added for 2.7 inch version #define PARTIAL_DATA_START_TRANSMISSION_1 0x14 #define PARTIAL_DATA_START_TRANSMISSION_2 0x15 #define PARTIAL_DISPLAY_REFRESH 0x16 // end new stuff for 2.7 #define VCOM_LUT 0x20 #define W2W_LUT 0x21 #define B2W_LUT 0x22 #define W2B_LUT 0x23 #define B2B_LUT 0x24 #define PLL_CONTROL 0x30 #define TEMPERATURE_SENSOR_COMMAND 0x40 // changed in 2.7 #define TEMPERATURE_SENSOR_CALIBRATION 0x41 // changed in 2.7 #define TEMPERATURE_SENSOR_WRITE 0x42 #define TEMPERATURE_SENSOR_READ 0x43 #define VCOM_AND_DATA_INTERVAL_SETTING 0x50 #define LOW_POWER_DETECTION 0x51 #define TCON_SETTING 0x60 #define RESOLUTION_SETTING 0x61 // Source & gate start setting (0x62) #define GET_STATUS 0x71 #define AUTO_MEASURE_VCOM 0x80 #define READ_VCOM_VALUE 0x81 #define VCM_DC_SETTING 0x82 //#define PARTIAL_WINDOW 0x90 // Partial not defined in 2.7 //#define PARTIAL_IN 0x91 //#define PARTIAL_OUT 0x92 #define PROGRAM_MODE 0xA0 #define ACTIVE_PROGRAM 0xA1 #define READ_OTP_DATA 0xA2 //#define POWER_SAVING 0xE3 // Not in 2.7? extern const unsigned char lut_vcom_dc[]; extern const unsigned char lut_ww[]; extern const unsigned char lut_bw[]; extern const unsigned char lut_bb[]; extern const unsigned char lut_wb[]; class Epd : EpdIf { public: int horiz; int vert; Epd(PinName mosi, PinName miso, PinName sclk, PinName cs, PinName dc, PinName rst, PinName busy, PinName pwr ); ~Epd() { ; } int Init(void); void SendCommand(unsigned char command); void SendData(unsigned char data); void WaitUntilIdle(void); void Reset(void); void SetLut(void); void SetPartialWindow(const unsigned char* buffer_black, const unsigned char* buffer_red, int x, int y, int w, int l); void SetPartialWindowBlack(const unsigned char* buffer_black, int x, int y, int w, int l); void SetPartialWindowRed(const unsigned char* buffer_red, int x, int y, int w, int l); void DisplayFrame(const unsigned char* frame_buffer_black, const unsigned char* frame_buffer_red); void DisplayFrame(void); void ClearFrame(void); void Sleep(void); void PwrOn(void); void PwrOff(void); private: }; #endif /* EPD2IN7B_H */ /* END OF FILE */