ESP01 and SSD1306 OLED from myiot

September 30, 2018 at 9:59 am (maker) (, , , )

Not sure where I found the link to these, but this is a neat little board from Ian Sexton – see  I ordered four of these and sourced all the parts from ebay.

Here are a few notes on getting them up and running.

  1. You have to be able to hand solder the two capacitors and power regulator SMT devices.  I’d not done this before, so it was a little tricky at first.  No real tips to offer I’m afraid, other than it was worth it, these are really neat boards!
  2. As Ian mentioned, be sure to find an OLED screen labelled VCC-GND-SCL-SDA.  When I was looking, pretty much all of the ones I found were GND-VCC-SCL-SDA.
  3. My displays came with headers pre-soldered, so I couldn’t follow the build order exactly.  Instead using straight 4-pin female headers rather than right angle headers, and then bending them over after solder the OLED on last.
  4. I also found that the ESP01 modules worked best with a small header spacer rather than no spacer as described in Ian’s instructions.  And I added an additional header space to the OLED headers too and used a bit of insulating tape between the OLED and ESP module.
  5. I also found that if I didn’t trim off the ESP 01 module pins, there was still enough of them sticking out that I could still plug them into the 8-pin header of my USB programmer, so actually didn’t need the 5 programming pins included on the board.

The end result for me wasn’t quite as thin as in Ian’s photos, but I is quite a nice compromise between my skills, future usability and utility of the boards.

When it comes to use, you can use the standard ESP/OLED libraries as described in this blog:

Note however, that this board is wired as follows (which is written on the PCB diagram on Ian’s blog, but it took me a while to find it!):

SCL = GPIO2 (D3 for many ESP boards)
SDA = GPIO0 (D5 for many ESP boards)

These are the opposite way around to most examples in the ssd1306 library.  Also, as I was building for a generic ESP8266, D3 and D5 were not defined anyway, so the example code in, for example, the SSD1306ClockDemo, to initialise the run on the boards was as follows:

// Include the correct display library
// For a connection via I2C using Wire include
#include   // Only needed for Arduino 1.6.5 and earlier
#include "SSD1306Wire.h" // legacy include: #include "SSD1306.h"​ #define SDA 0 // D5 = GPIO0 #define SCL 2 // D3 = GPIO2 // Initialize the OLED display using Wire library SSD1306Wire display(0x3c, SDA, SCL);

In summary, these are really great little boards and the resulting modules I think have a lot of applications.



Permalink Leave a Comment