ESP8266 WeatherStation Update: Using touch interface

I started working on the ESP8266 WiFi Color Kit‘s touch interface for the WeatherStation Color. I added a few more screens and a touch screen calibration during start up.

Here is a video of the upgrades.

Please note: don’t forget to also upgrade the MiniGrafx library, since I added a new method drawStringMaxWidth(..).

blank blank blank

Where to buy?

If you like this project and you haven’t already bought one you can order the necessary hardware from my shop. I ship worldwide and you have several options for shipping.

Order Now!


Posted by Daniel Eichhorn

Daniel Eichhorn is a software engineer and an enthusiastic maker. He loves working on projects related to the Internet of Things, electronics, and embedded software. He owns two 3D printers: a Creality Ender 3 V2 and an Elegoo Mars 3. In 2018, he co-founded ThingPulse along with Marcel Stör. Together, they develop IoT hardware and distribute it to various locations around the world.


  1. Daniel I have one of your Color Weather Kits with the pcb board and am trying to compile and load the latest
    Weather Station Color Touch IDE. I have the following libraries loaded:

    Mini Grafx by Daniel Eichhorn version 0.10
    ESP8266 WeatherStation by Daniel Eichhorn version 1.31
    Json Streaming Parser by Daniel Eichhorn version 1.04
    simpleDSTadjust by neptune2 version 1.20.
    I get the following message when I compile:
    C:\Users\Danny\Documents\Weather Station Color Touch\Project\esp8266-weather-station-color\esp8266-weather-station-color.ino: In function ‘void drawCurrentWeatherDetail()’:

    esp8266-weather-station-color:437: error: ‘class MiniGrafx’ has no member named ‘drawStringMaxWidth’

    gfx.drawStringMaxWidth(15, 200, 240 – 2 * 15, forecasts[0].forecastText);


    C:\Users\Danny\Documents\Weather Station Color Touch\Project\esp8266-weather-station-color\esp8266-weather-station-color.ino: In function ‘void drawAbout()’:

    esp8266-weather-station-color:524: error: ‘class MiniGrafx’ has no member named ‘drawStringMaxWidth’

    gfx.drawStringMaxWidth(15, 265, 240 – 2 * 15, ESP.getResetInfo());


    exit status 1
    ‘class MiniGrafx’ has no member named ‘drawStringMaxWidth’

    Any suggestions?

      • I did a new download from you GitHub site and the new MiniGrafx is there, got it running now. I did have some trouble with connecting to the internet had to go in and set up manually. Thanks Daniel another great project.

  2. I have the newest version of this app running and I really like the new displays. Is the screen intentionally NOT supposed to every shut down? Mine is constantly updating and WeatherUnderground has already notified me that I’ve exceeded my limit for number of data requests for the day in just a couple of hours.

  3. A bit of bad news with the app now. I’m getting an error (see below)

    Exception (3):
    epc1=0x40100576 epc2=0x00000000 epc3=0x00000000 excvaddr=0x40000009 depc=0x00000000

    ctx: cont
    sp: 3fff08e0 end: 3fff0f40 offset: 01a0

    I have the full stack dump too if needed. I have a feeling it has something to do with processing alerts. I have an alert that is quite long.

    start document
    Alert type processed, value: FLO
    Alert description processed, value: Flood Warning, Areal Flood Warning
    Alert start processed, value: 1:02 PM EDT on July 11, 2017
    Alert expiration processed, value: 5:45 PM EDT on July 11, 2017
    Alert msg length: 511
    Alert message processed, value: The Flood Warning continues for The Wildcat creek near Lafayette. * From Wednesday evening to late Wednesday night. * At 12:45 PM Tuesday the stage was 6.7 feet. * Flood stage is 10.0 feet. * Forecast…the river is expected to rise to near flood stage tomorrow evening. * At 10.0 feet…flooding of lowland areas in progress in portions of Tippecanoe County. Lat…Lon 4047 8645 4042 8681 4046 8689 4048 8687 4045 8682 4050 8645 102 PM EDT Tue Jul 11 2017 The Flood Warning continues for the Wa
    Alert phenomena processed, value: FA
    Alert significance processed, value: W
    Alert type processed, value: WAT

    I’m guessing your app can’t handle a 511 byte alert message! Is that possible?

    • Try to disable the lines which update the alerts. I couldn’t find any alerts when testing…

  4. Hi There
    I have used your previous code for the weather station and its absolutely great and this one is even better. After some mimor dst readjustments for Australia its all working great. However i have stumbled across a problem. My display continually changes through the screens quite fast and wouldn’t stop.. seems like the touch isn’t reacting… i have checked the wiring a few times and seems to be all good. At the moment to fix this I am using the code with number of displays as 1 that way I can see the time screen but not the other screens..Please help..

    • Hi Soubir. Which display type are you using? I just got confirmation that some modules don’t have the XPT2046 touch screen chip and the the isTouched method always returns true. In that case you’d have to find the proper driver and adjust the code or get the same hardware as I use (e.g. The starter kit from my shop !hint! !hint!;-))

  5. Hi Daniel,

    I am using previous code and want to use latest one but I have a problem with Turkish characters. I cannot see some Turkish chars like “ı-İ-ş-Ş-ğ-Ğ-ü-Ü-ö-Ö” neither previous code nor latest code. How can I print these Turkish chars to display?

  6. Hi Daniel, is there any way to display data horizontally? I would to place the display in a free power outlet…

  7. I the past 4 years, the ESP8266 is the most popular Wifi solution for Makers, the good spec and cheap price make the competitors, such as RTL8710, hard to grow up.
    But sometimes plan B is indeed needed. Recently the W600 Arm SoC Wifi solution, released by Winner Micro, I think would be an evenly matched competitor for ESP8266.

  8. Where can I get the code that runs off of Wunderground, I have an API key, like what is pictured above? I like this version better, because it’s a single day view and doesn’t scroll..


Leave a Reply