The ESP8266 version of InkyCal

Toby Chui ae23fccfec fixed const typo 1 day ago
InkyDash ae23fccfec fixed const typo 1 day ago
img cd78737812 fixed missing image 3 weeks ago
lib 336b46a468 working prototype 3 weeks ago
pcb 4e8204b27c updated readme 3 weeks ago 75f0dd6529 optimized bat icon 2 weeks ago


A simple e-ink / epaper powered calendar with weather information and daily progres bar



If you are using the offical PCB, then follow the silk screen wiring instructions. Otherwise, if you are using generic ESP8266, follow the following wiring instructions to connect your e-ink display SPI control board to your development board.

Wemos D1 mini

  • BUSY -> D2

  • RST -> D4

  • DC -> D3

  • CS -> D8

  • CLK -> D5

  • DIN -> D7

  • GND -> GND

  • 3.3V -> 3.3V

Generic ESP8266

  • BUSY -> GPIO4

  • RST -> GPIO2

  • DC -> GPIO0

  • CS -> GPIO15

  • CLK -> GPIO14

  • DIN -> GPIO13

  • GND -> GND

  • 3.3V -> 3.3V


Low Power Mode

If your InkyDash is running off battery, set LOW_POWER_MODE to true and add a resistor between the D0 / GPIO16 pin to the RST pin of the ESP8266. This resistor is critical for the ESP8266 to wake up from deep sleep mode. The resistor values depends on your development board, but usually 330R to 1k Ohm is commonly used by the community.

Weather Locations

You can change your weather location by editing these few lines in the weather.ino file.

//Latitude & Longitude of your location
/* Hong Kong */
const String lat = "22.2783";
const String lon = "114.1747";

/* Timezone */
const String timezone = "Asia/Singapore";

The weather information is provided by They do not require API key for request count less than 500 per hour. You can modify where the weather API grab data if you have your own weather station at home. You just need to modify the following in weather.ino.

// In updateCurrentWeatherInfo() function

//Update the current lines to your data sources
currentTemp = doc["current"]["temperature_2m"];
currentHumd = doc["current"]["relative_humidity_2m"];
currentRain = doc["current"]["rain"];
minTemp = doc["daily"]["temperature_2m_min"][0];
maxTemp = doc["daily"]["temperature_2m_max"][0];

Firmware Downloading

Open "InkyDash" project with Arduino IDE and upload the firmware into the InkyDash control board.

Supported Eink Models

Basically you can try this with any 7.5 inch eink display with 3 colors.

  • GxGDEW075Z09 (Recommend)

  • GxGDEW075Z08 (Not Tested)

  • GxGDEW075T8 (Not Tested, Require some color code change)

  • GxGDEW075T7 (Not Tested, Require some color code change)


The interface can be changed in the draw drawHomeFrame() function.


CopyRight tobychui (C) All Right Reserved