ESP8266 module comparison: ESP-01, ESP-05, ESP-12, ESP-201, Test Board and NodeMCU

ESP32 Development Board WiFi+Bluetooth Ultra-Low Power Consumption Dual Cores ESP-32 ESP-32S Board
Integrated antenna and RF balun, power amplifier, low-noise amplifiers, filters, and power management module. The entire solution takes up the least amount of printed circuit board area. This board is used with 2.4 GHz dual-mode Wi-Fi and Bluetooth chips by TSMC 40nm low power technology, power and RF properties best, which is safe, reliable, and scalable to a variety of applications.

In this post I will guide you through the jungle of available modules based on the ESP8266. This is not a complete list of available modules but a selection of the ones I could test and review. If you think that I have been missing out on one important module please let me know.Every module here as some advantages and disadvantages, depending on the targeted application. If you are planning to to use a module as Wifi shield for an Arduino you might pick a different type than if you´re planning a standalone node. Other aspects are breadboard compatibility, availability of pins, need for external components such as a serial-to-usb adapter as well as size and costs.

The following tables summarise this post, if you are too much in a hurry to read the whole article:

Comparison of Raw Modules

 ESP-01ESP-05ESP-12ESP-201Testboard
ESP01v0ESP-05ESP-12ESP-12testboard-layout
GPIO Pins2-111111
ADC--111
AntennaPCBPCBPCBExternal/PCBPCB
USB-To-SerialNoNoNoNoNo
Breadboard friendlyMediumGoodBadGoodBad
Form factorSmallSmallMediumBigVery Big
Price~$3~$3~$3~$3~$6.50
ApplicationSimple Standalone mode
or wifi shield for Arduino
Wifi ShieldStandaloneStandalonePrototyping
Where to buy?BanggoodBanggoodBanggoodBanggoodBanggood
Detail PostPost--PostPost

Comparison of Development Modules

 NodeMCU V0.9NodeMcu V1.0Wemos D1 MiniWemos D1 R2LoLin V3 NodeMcu Board
BrandedNodeMCUDOITWemosWemosLoLin
NodeMCU V0.9Geekcreit™ Doit NodeMcu Lua ESP8266 ESP-12E WIFI Development BoardWemosD1MiniWemos R1 D2LoLin V3 NodeMcu
GPIO Pins1111111111
ADC11111
AntennaPCBPCBPCBPCBPCB
ESP8266 ModuleESP12 (AI-Thinker)ESP12E (AI-Thinker)ESP12E (Wemos)ESP12E (Wemos)ESP12E (Ai-Thinker)
USB-To-SerialYesYesYesYesYes
Serial ChipCH340GCP2102/CH340GCH340GCH340GCH340G
Breadboard friendlyBad (covers many pins)Very GoodVery Good
(after soldering)
Bad
(Arduino Form Factor)
Bad
(Covers many pins)
Form factorBigBigMediumVery BigBig
Price~$6.40~$6~$6~$6.50~6.50
ApplicationDevelopment
Beginner
Development
Beginner
Development
Advanced
(soldering required)
Development
Form compatibility with
Arduino Shields
Development
Beginner
Where to buy?BanggoodBanggoodBanggoodBanggoodBanggood
Detail PostPost

 

ESP-01

This is probably one of the most popular modules, although it is by far not the most convenient one. With its small form factor (24.75mm x 14.5mm) it fits nicely into any enclosure. Two GPIO pins are led out and can be used to control periphery. With proper wiring and a serial-to-usb adapter you can also easily flash alternatives firmwares on it. By default it comes with one of the different versions of the AT firmware which allows you to use it in combination with an Arduino. One of the biggest problems of this module is the placement of the pin posts which makes it impossible to plug it directly into a bread board for prototyping: the two rows of posts are so close to each other that you would get a short-cirtcuit. However you can still use this module on a breadboard: either build a bread-board adapter or use female-to-male dupont wires to wire the module to your bread-board.

ESP8266 ESP-01 module

 

ESP-05

This module is very simple and has one purpose only: use it as mini wifi shield together with your Arduino or similar micro controller. There are different versions available: a four pin version that only has 3.3V, GND, RX and TX. Over the later ones you talk with your Arduino. Another version has an additional reset pin which allows you to manually or programatically reset the module.
This module nicely fits into a breadboard since the module has only one row of pin posts. But (and there is always a but) you are stuck with the delivered firmware unless you are willing to do some lead cutting and soldering of some pins. According to the forums not all boards come with the same AT firmware version.
ESP8266 ESP-05 module

ESP-12

This module allows you to access many features of the ESP8266: 11 GPIO pins, one analog-to-digital converter (ADC) with a 10 bit resolution. It also lets you easily configure deep-sleep mode which (according to this source) lets you run the module for 3 years on two AA batteries. With one drawback: it is not breadboard friendly at all. As for the modules previously described here the antenna is a track on the PCB which delivers good results for Wifi sensitivity.
But to use it for prototyping you´ll have to build something around the module. You can order these breadboard adapters or build one yourself, like my colleague Andi did:

ESP8266 ESP-12 plus self made bread board adapter
(thx to Andifor the picture)

There is also an almost-ready breadboard adapter available here.
Thanks to its good availability and the rich access to the chip pins it is also widely used for aggregated modules, such as the test board I describe later in this post or the first version of the NodeMCU module. If you are planning to use the ESP8266 as a stand alone node the chances are good you will end up with this module in one way or the other.

ESP-201

Originally named as ESP-12 this module has come to popularity as ESP-201 after the name clash had been discovered. In good old BASIC line adressing style the creators apparently wanted to make sure that no other name clash would occure and added a safety distance to the numbering scheme;-)
It is currently my preferred module for prototyping since it is breadboard friendly and offers similar access to the chip pins as the ESP-12 does. I say breadboard friendly with two remarks: the four pins at the head of the module keep you from directly plugging the module into a breadboard. But you can easily bend them to ninety digrees or unsolder them and place them on the upper side of the module. The second note is that the module itself hides many pins of the bread board for direct access and leaves only one row visible on each side of the module. If you need more you will have to extend a 5-pin row by connecting it to annother row on your breadboard. The board comes with a printed PCB antenna but also with a connector for an external one. This makes this module also a perfect candidate if you need to bridge a longer distance with your Wifi module. You can then easily replace the package wire antenna with a high-gain antenna and improve the sensitivity even farther.
ESP8266 ESP-201 with pin-out description

Test Board

There are various test boards available. Check the links and view the picture below to see what I´m describing here. This test board comes with a battery pack and various preconfigured LEDs and one light dependent resistor connected to the ADC. It integrates an ESP-12 as described earlier in this post and makes all the pins available to your convenience. It also has a jumper which you can set when flashing a new firmware. The board comes with a voltage regulator that steps down the 4.5 Volt from the battery pack to the 3.3V that the ESP8266 needs. You can easily replace the battery pack with the power lines of a USB connector, as I described here.
I see two kinds of applications for this board: run a standalone node somewhere without a wired power adapter is the first only from the attached battery pack. You can use a tiny bread board if you need to connect sensors to the test board and even glue it on the module. Just make sure to not cover the PCB antenna for better antenna reception.
The second application is to quickly test program code with the simplified periphery of the many LEDs and the light dependent sensor which is connected to the ADC. Update: I have this board running on the 3 AA batteries for more than 1000 hours (>40days) already. See the article here
ESP8266 test board with pin-out description

NodeMCU module V0.9 (Outdated)

This module is somehow quite different from the modules described earlier in this post. It comes with all you need to get started since it already has a built-in serial-to-usb adapter and comes with a micro USB plug for power supply and for programming the module.
I had high hopes on this module since in theory it should make development of applications based on the ESP8266 much easier: less wiring is required compared to any of the other modules, you  need neither an external power supply nor a serial-to-usb adapter and two switches allow for easy resetting the module and booting it into flash mode. And it nicely fits into a bread board and lets you wire periphery with the fewest amount of wires imaginable.
Reality looks currently a bit different: on my Mac I could not flash the module with the built in serial-to-usb adapter even after installing the latest driver available. I then had to fall back to an external serial-to-usb adapter. For me this was not a big issue since I don´t flash new firmwares that often and I was already in possession of an external serial converter. After I had flashed the latest version of the NodeMCU Lua firmware I could use the built-in converter just fine. The second problem is that the current form factor of the module covers all the pins on a bread board in the area of the module. To use the pins you will have to insert bridges which lead from under the module to a visible part and insert the module again. And you can only to this for a limited number of pins.
Due to the higher price of this module you will most likely use this module during development time. Once you have completed the software and all the required external components you might use one of the other modules or you will design a completely new module which integrates all the required components
At the time of this writing only the first version of the NodeMCU module is available and that is what I´m reporting here. In the next few days (or weeks) the team that created the first module will publish an improved version which will fix the mentioned problems of the first version. I´m looking forward to test the new version as soon as it becomes available. Once these issues have been resolved this module certainly has all it takes to become an interesting all-in-one alternative to an Arduino based internet-of-things node. UPDATE: don’t order this version anymore, consider the NodeMCU V1.0 instead (see below)
ESP8266 NodeMCU module (version 0.9)

NodeMCU module V1.0

A few weeks ago the NodeMCU team published their new design and I have to say that it is a huge improvement over the first issue. I tested it with both the NodeMCU LUA firmware and the Arduino IDE. It incorporates the new ESP-12E module with 4MB of flash memory and also has a few more pin-outs.
Compared to the V0.9 variant the V1.0 is more narrow and leaves one row of pins on each side on a standard breadboard which is just perfect for prototyping. Another nice feature is the fact that you don’t even have to press the reset/flash button combination in the Arduino IDE to upload a new version of your code. Somehow the board or the software handle this automagically. And with the latest published version of the Arduino/ESP8266 board configuration you can configure upload speed to 921600 baud with which the upload finishes just within a few seconds.

All in all, this is the long awaited development board that you want to have and play with. The price is slightly higher than with the other boards, starting from around $8 for a potential clone, but it is totally worth it because you are saving all the additional hardware like serial-to-usb converter.

New improved version of the NodeMCU V1.0.
Now fits very nicely on a breadboard and also the Serial-To-USB
converter works very well.
I created a Fritzing part for the NodeMCU V1.0 that you
can use to draw up your circuits. Read all about it here

 

Summary

Which module suits you best depends on your application. If the price and small form factor is important for you and you are looking for a stand alone module with just two GPIO pins, the ESP-01 is your candidate. If you just want cheap Wifi connectivity for your Arduino you might go for the ESP-05. The ESP-12 might be interesting if you have periphery based on SPI or I2C bus or if you just many GPIO pins and you are not afraid of a bit of soldering. The ESP-201 is good for solder-free prototyping on a bread board and allows you to access almost all pins of the ESP8266 chip. But you´ll still need an external serial-to-usb converter and a power supply. In case you want it even easier and the slightly higher price is not a problem I would recommend the NodeMCU V1.0 module for you. The following table summarises this post:

Raw Modules

 ESP-01ESP-05ESP-12ESP-201Testboard
ESP01v0ESP-05ESP-12ESP-12testboard-layout
GPIO Pins2-111111
ADC--111
AntennaPCBPCBPCBExternal/PCBPCB
USB-To-SerialNoNoNoNoNo
Breadboard friendlyMediumGoodBadGoodBad
Form factorSmallSmallMediumBigVery Big
Price~$3~$3~$3~$3~$6.50
ApplicationSimple Standalone mode
or wifi shield for Arduino
Wifi ShieldStandaloneStandalonePrototyping
Where to buy?BanggoodBanggoodBanggoodBanggoodBanggood
Detail PostPost--PostPost

 

Development Modules (with Serial Converter)

 NodeMCU V0.9NodeMcu V1.0Wemos D1 MiniWemos D1 R2LoLin V3 NodeMcu Board
BrandedNodeMCUDOITWemosWemosLoLin
NodeMCU V0.9Geekcreit™ Doit NodeMcu Lua ESP8266 ESP-12E WIFI Development BoardWemosD1MiniWemos R1 D2LoLin V3 NodeMcu
GPIO Pins1111111111
ADC11111
AntennaPCBPCBPCBPCBPCB
ESP8266 ModuleESP12 (AI-Thinker)ESP12E (AI-Thinker)ESP12E (Wemos)ESP12E (Wemos)ESP12E (Ai-Thinker)
USB-To-SerialYesYesYesYesYes
Serial ChipCH340GCP2102/CH340GCH340GCH340GCH340G
Breadboard friendlyBad (covers many pins)Very GoodVery Good
(after soldering)
Bad
(Arduino Form Factor)
Bad
(Covers many pins)
Form factorBigBigMediumVery BigBig
Price~$6.40~$6~$6~$6.50~6.50
ApplicationDevelopment
Beginner
Development
Beginner
Development
Advanced
(soldering required)
Development
Form compatibility with
Arduino Shields
Development
Beginner
Where to buy?BanggoodBanggoodBanggoodBanggoodBanggood
Detail PostPost

 

Applications/ Development Kits

I have to admit, this is a bit of shameless advertisement;-). But if you came here because you are interested in IoT and you are probably getting started you might profit from a ready-to-go development kit. One of my most successful projects with the ESP8266 is the WeatherStation. It displays current weather information and forecasts it downloads frequently from the web on a beautiful OLED display. And this is just the starting point. You can use the included libraries to display data from other sources (stock information, sport results, etc) available on the net. And: I sell it as a development kit in my shop for USD $19.50.-. ESP8266 WeatherStation with free shipping to about 80 countries.
The WeatherStation Kit displaying a 3-day forecast

 

The components included in a WeatherStation Kit:
NodeMCU V1 with 4MB flash, 128×64 pixels OLED display,
USB cable and jumper wires. Available now in the shop:
ESP8266 WeatherStation
Posted by squix78

51 comments

  1. Observation, you could pull the weather icons from the Weatherunderground server rather than host them yourself. I think they do-not apply any read quotas.

    Did embedding the icons in flash prove to be too great an overhead?

    1. Hi David. If I’m not mistaken these icons are from a 3rd party (which reminds me to put their credits up). So I’d have to host it somewhere anyway. I currently also only use uncompressed bmp format and I doubt that any reasonable person still has them around for normal use;-). And then: downloading has the advantage to be easier to change compared to embedding in the firmware… But it was a design decision. Comparing pros and cons…

    1. Hi Stephen. I plan to upgrade the plane spotter project to the color screen, so yes, it’s definitely possible. Just a question of time:-)

  2. Hi,

    I have a working esp8266 weather but the small LCD only.
    im trying this one as i have the exact LCD lying around. i saw the “settings.h” where values need to be changed. (i.e. wundeground API, country, city, etc).. the only one that i was not sure and I did not see any explanation was the ThingSpeak value.

    May i ask what is the purpose of the Thingspeak value? i tried to view it but I think its a private channel.

    Anyway, i uploaded it on NodeMCU and when i inspect the Serial monitor, i can get to the part where it downloads the pictures.
    Here is the last bottom lines on the Serial.
    There is a line that says “connection failed.”…. Im guessing it has something to do with the Thingspeak..or maybe something else..

    …….(lots of downloding lines here…………..)
    Downloading http://www.squix.org/blog/moonphase_L19.bmp and saving as /moon19.bmp
    Downloading http://www.squix.org/blog/moonphase_L20.bmp and saving as /moon20.bmp
    Downloading http://www.squix.org/blog/moonphase_L21.bmp and saving as /moon21.bmp
    Downloading http://www.squix.org/blog/moonphase_L22.bmp and saving as /moon22.bmp
    connection failed
    connection failed
    connection failed
    connection failed

    Loading image ‘unknown.bmp’
    File not found
    Loading image ‘/mini/unknown.bmp’
    File not found
    Loading image ‘/mini/unknown.bmp’
    File not found
    Loading image ‘/mini/unknown.bmp’
    File not found
    Loading image ‘/moon0.bmp’
    File not foundconnection failed
    connection failed
    connection failed
    connection failed

    1. Hi Glenn,
      The purpose of the Thingspeak channel is to display (say) your own local temperature and humidity. So I have an ESP8266 and BME280 sensor running that reports every 10-mins to thingspeak the current temperature and humidity in my garden. Therefore I provide the keys for my channel and it gets reported on the weather display. Ideally there would be a software (compile time) switch to remove that option.

  3. Please ignore the comment below.
    I was able to solve it. Apparently, the wifimanager didn’t connect successfully to my router, so i had to manually connect and put the static SSID and password.

    So its working now, yey! i can see the pictures and the icons properly.

    im still dumbfounded with the Thingspeak channel in the settings.h.
    May i know if that is really needed?

    1. Hi Glenn, I’m a program newbie and met same message from serial port, but I struggled for long time but cant overcome this issue, do you mind give me some suggestion?

      Thanks!

  4. Hi,
    Is there any chance regarding tutorial how to call bitmaps using WiFi connection?
    I want to prepare own set of icons but I don’t know how to use it in your script 🙁
    As well I have a question reagrding screen refreshing, as I see that is the issue when the time is updated and some pixels are not removed?
    Thanks in advance for help.
    Piotr

  5. Very impressive weather station, works great!
    If it could automatically update summer/winter-time, it would be absolutely perfect.
    Have fun with the beer 😉

  6. I was able to get this running, but wanted to mention a small issue I ran into. (Sounds like the same one Mike McRoberts references.) The bitmaps require more than 1M of SPIFFS, so if you were like me and had selected only 1M at compile time, you run out of space to download all of the bitmaps, and many of the moon-phase bitmaps will fail to download, or will be perhaps truncated or corrupted. I went back and changed to 4M (3M SPIFFS) in the IDE and was able to solve this. Still having a bit of overlay issues with the time updates, but as Daniel mentioned, the code may still need a little work.

    Thanks for all the effort on this…now to add some of my own tweaks!

  7. Hi Daniel,
    i tried to flash the script but i will receiving all the time the following error:
    *******************************
    In file included from esp8266-weather-station-color.ino:34:0:
    C:\Users\Jens\Documents\Arduino\libraries\esp8266-weather-station-color-master/WebResource.h:25:31: fatal error: ESP8266HTTPClient.h: No such file or directory
    #include
    ^
    compilation terminated.
    Fehler beim Kompilieren.
    *******************************
    I added the ESP8266HTTPClient-library to the Arduino 1.6.5 but there is still the same error.
    Do you have any idea what i can make that the script will runing?
    Jens

  8. Unfortunately Banggood.com are no longer stocking the 2.2 Inch Serial TFT SPI Display ILI9341 display! Can it be obtained from another supplier? Or can an alternative be used?

    I would like a bigger screen for my PlaneSpotter project so that I can enclose everything in a case with the lcd screen acting as a box top : )

  9. Dani, excellent! Built this over the weekend (preparing to teach another IoT class this week) and almost worked flawlessly (2.4″ TFT + Wemos D1 Mini). Couldn’t get the WifiManager to connect, tried a few different things then finally went manual mode. The 199: timeClient.updateTime(); would sometimes hang, changed the .h to use “us.pool.ntp.org” instead; didn’t do a lot of troubleshooting, was more in quick-fix mode. Maybe later this month I’ll try incorporating Neptune’s daylight savings code back into this (thanks btw for the link to that). PS will try to get some pictures with the kids doing projects over the session the next two weeks. Regards, Mike

    1. Mike, you stated that you changed the .h to use “us.pool.ntp.org”. What is the path/filename to that .h file?

  10. Dani,

    I’ve been adding some of my own enhancements to your original code for several weeks now, and thought I’d share some of my changes in case anyone was interested. I’ve posted these on GitHub if you’re interested…https://github.com/fowlerk/ESP8266-Color-Weather-Station-v8 .
    This version includes many enhancements to the displays (see the README on GitHub), along with Neptune’s enhancements for daylight savings time. The code could stand some clean-up, but otherwise seems to work well.

    Let me know what you think…I’ll post some photos of the displays when I get a chance.

    Keith Fowler

    1. Hi Keith

      You put some really nice things into the code! I knew that the WifiManager had this configuration UI feature but never got around to use it in my code. Now with your code I have a very nice example to use it;-). Thank you a lot for sharing! I just posted your fotos on Twitter and linked to your repository, I hope you don’t mind.

      I am working ATM on a 2.4″ display with touch. This would allow to switch screens or similar…

      Dani

      1. Dani…I don’t mind at all, in fact I’m honored. One thing to note, which I pointed out in the README on the repo, is that I have added a few fields over the past few months that may (or may not) have made it into the Weather Station library for the Weather Underground functions. Not sure how exactly to go about getting those into the master. (You may even be able to spot these on some of the displays.) I did not put those library changes up on the repo.

        I’d also had my eyes on those touch-screens and had similar thoughts on using them to control the screen displays. I’m anxious to see what you end up doing with it. Your projects always give me more ideas to try ;).

    2. keith, can you ples tell me what i need to download in the the IDE program to set this up there are so many files i do not know what one i need ! thansk

      1. Andrew…yes, sorry for not making this more clear in the documentation. I’ve (mostly) just used libraries that others have contributed and were already referenced in Dani’s examples, but you’re right that the list has gotten relatively long and may take some digging to find all the sources. Give me some time today and I will add the links to the documentation on my Github repository.

      2. I have updated the README on my repository with info on the contributed libraries and links to make it easier to find these. Let me know if you have any other questions.

  11. Hey Dani and Keith, I just tried this out a few days ago and love it. Just wanted to confirm that when I tried to use Keiths’ version, it failed to compile due to the changes in the Weather_Station library. I would really like to try out this version if one of you could point me at the correct library.
    This was my first project with an esp8266 and I am really surprised at how powerful and easy it is to use.

    Kevin

    1. Kevin…yes, sorry, I knew that would bite someone. I really wanted to get the changes merged into Dani’s master library rather than start off on another branch. In the interim, I have uploaded the two changed library files for the Weather Underground components to a separate folder on the repo if you want to download those to (temporarily) replace the original ones in the Weather Station library. That should allow it to compile. Let me know if that doesn’t work for you. Hopefully I’ll figure out the right (permanent) solution to address the changes soon.

      Keith

      1. Thanks for the update Keith,

        I got the new code and everything works great. Now I just have to figure out how to make it work with a bigger screen, maybe 7 inch. My eyes ain’t what they used to be. 🙂

        Kevin

        1. Glad you got it working Kevin…and I know what you mean about the old eyes! I’m right there with you. I’m torn between the compact size and being able to read all the data displayed without my glasses ;). Let me know if you find a bigger option that works well for a reasonable cost.

  12. Dani…just made a pull request on your repository to add some of the changes I had made to your Weather Underground library. Let me know if you have questions or issues.

  13. Dani, I just made another pull request for some new updates to the Weather Underground client library. These include changes to support some additional enhancements I have been working on recently that display weather alerts (as per the WU API call “/alerts”), as well as the addition of probability of precipitation (PoP). I have uploaded a new version to my repository on GitHub that shows these additional enhancements (see the README for further details), along with screenshots.

    As always, let me know if you have any questions or issues, and best wishes for the upcoming holidays!

  14. Hi Daniel. I don’t like the Ardunid IDE because of the lack of debugging with breakpoints. Therefore, I’ve just started with VisualGDB and JLink debugger and ESP8266. I have quite some difficulties.

    Do you have any experiences with VisualGDB?

    By the way: I am situated near Zurich and I like your projects! Great work!

  15. I have been having a lot of fun working through the examples with your weatherstation library. I bought your kit, which was an easy way to get started with the ESP8266.
    I am working through the WeatherStationDemoExtendedDST, for some reason updateData is not firing every 10 minutes. updateDHT is working fine, fires every minute.
    I think this is where the problem is, it isn’t setting readyForWeatherUpdate to true. However, it looks exactly the same as your other examples.
    if (readyForWeatherUpdate && ui.getUiState()->frameState == FIXED) {
    updateData(&display);
    }
    Thanks for any help.

  16. Figured it out. Apparently you can’t attach two events to a single ticker? I created two tickers, and now it works.
    tickerUpdateData.attach(UPDATE_INTERVAL_SECS, setReadyForWeatherUpdate);
    tickerUpdateSensor.attach(60, setReadyForDHTUpdate);

  17. I have problems getting it to run with Arduino 1.8.1, esp8266 2.3.0 board plugin and an SPI display. I have to slow down SPI to 250 kHz, otherwise I get all but pixel trash. But when I set OLEDDISPLAY_REDUCE_MEMORY I get a blank screen.

    Do you know of any problems with given setup? Can you recommend a good working combination of Arduino IDE, ESP plugin and SPI settings?

    1. I am a bit confused: which project are you referring to? The OLED Weather station or the color weather station which uses an TFT? Since you posted this in a Color Weather Station post I assume you are referring to the color code? But why then use the OLEDDISPLAY_REDUCE_MEMORY? Can you share a gist which shows your ino file?

      1. I’m sure, I posted that to “ESP8266: SSD1306 Oled Library Release”. 🙂

        Well, I’m just using your examples for the SSD1306 driver. Using a Wemos D1 mini R2 and “SSD1306Spi display(D0, D2, D8);”

        I had it working some weeke before. In the mean time I updated a lot of software, including IDE and board definitions.

        So, there are few choices left: the software combination I have is broken or D1 or display are broken.

        Can you or anyone else report that Wemos D1 mini R2, Arduino 1.8.1 and esp8266 2.3.0 are working with this SSD1306 library (unmodified)?

        Thank you!

        1. I’m still not sure, if my hardware or software combination is broken. But I finally got it all working. Key was reducing SPI speed. In SSD1306Spi.h we have a SPI.setClockDivider (SPI_CLOCK_DIV2), which means 8 MHz. It seems, the (just my?) display can’t handle that, I get mostly pixel garbage. If I reduce that to SPI_CLOCK_DIV64 (which means 250 kHz), it all works. I can even skip the yields() in SSD1306Spi.h’s display() routine. And I can get some speed back with replacing the SPI.transfer-loop for non-double-buffer cases with “SPI.writeBytes(buffer, sizeof(uint8_t) * DISPLAY_BUFFER_SIZE);”

  18. Thanks for making this template availble in the public domain. It has proven to be very valuable. As an improvemnet, would it be possible to have the NodeMCU pin assignment names on the PCB board, similar to the arduino one.

  19. I am having problems with the Weather Station. First screen (time) works well. Second screen says “N/A C”, Third scrren shows N/As, Fourth screen (temp, humid) works well. I have tried installing the latest github code and it doesnt solved the problem. Any tips?

  20. I have bought the Weather Station on Amazon. It came with a DHT11 in a board with a pull up resitor. I am following the pdf with instructions. When pluging this board, the figure at the pdf looks like inverted. My litthe dht board is (from left to right): data, vcc, gnd. It took me a while to figure out this. Also, by printing the read temp and humid values, I saw half of them come as nan. Any tip for improving this?

Leave a Reply