Introduction: ESP32 With Integrated OLED (WEMOS/Lolin) - Getting Started Arduino Style

If you're like me, you jump at the chance to get your hands on the latest and greatest ESP8266/etc...and put it through its paces. The ESP32 is no different but I have found that there isn't too much out there yet with regards to documentation. The first 2 steps should pertain to most ESP32 flavors and not just the one depicted with the OLED. Hopefully these 'couple-of-steps' will get you started. Good Luck....Have Fun...Let me know if it worked for you. A few assumptions are that you know how to navigate the Arduino IDE and work with their libraries.

Step 1: What's Needed

ESP32 SOC

USB cable

Arduino IDE

Step 2: Assuming Arduino IDE Is Already Installed

By default, the ESP32 does not show yet with the standard boards manager entries pointing to http://arduino.esp8266.com/stable/package_esp8266c...

Because of this we need to manually add them for the time being.

Follow ALL steps at the following site to prepare your Arduino IDE for your new ESP32 board.

https://github.com/espressif/arduino-esp32/blob/ma...

If you do have the integrated OLED, and would like to try and get it running, proceed to the next step.

Step 3: Get the OLED Working on Arduino

Now that you've probably loaded an Arduino sketch on your ESP32, the 'pretty' pictures that were running on it when you first plugged it in are probably gone.

This particular ESP32 uses the SSD1306 libraries to communicate with the OLED display. I have had luck getting started by loading the following Arduino library and testing one of the SSD1306's included Example sketches. If the sketch fails to compile with errors, make sure you change the address it failed on to (0x3c, 5,4).

This ESP’s dedicated I2C pins are on GPIO 5 and 4 for data and clock respectively.

The attached ESP32_Wemos_I2C_Scanner sketch will confirm if your pins are addressed correctly. Load it on your ESP32 and check out serial monitor.

https://github.com/squix78/esp8266-oled-ssd1306

Step 4: Functional OLED With Arduino LDR Analog Input

I decided to just keep rolling with this and managed to get the OLED working with 'real' data and not just the examples. Analog LDR feed. I've attached the Arduino sketch to this to help. Take it for a spin and let me know how you make out! If you need a 'brush-up' on the workings of Arduino and Analog, head over to https://programmingelectronics.com/tutorial-21-ana...

I got started on my Arduino adventure with these guys...the course is definitely worthwhile.

Comments

author
FrancoC14 (author)2017-07-14

what is the value for D3 and D5?

i have this compiler error

'D3' was not declared in this scope

SSD1306 display(0x3c, D3, D5);

author
johnnyfrx (author)FrancoC142017-07-14

This ESP’s dedicated I2C pins are on GPIO 5 and 4 for data and clock respectively.

I've attached ESP32_Wemos_I2C_Scanner sketch to step 3 which should confirm if your pins are addressed correctly. Load it on your ESP32 and check out serial monitor.

author
pescelupo (author)johnnyfrx2017-07-18

scan return:

I2C device found at address 0x3C !

if i set:

SSD1306 display(0x3c, 5, 4);

is blocked on "Hard resetting....."

author
johnnyfrx (author)pescelupo2017-07-18

Also...can you run any other simple Arduino sketches on it successfully? WiFi scanner or similar...to output to the serial monitor so you know that it is processing.

author
johnnyfrx (author)pescelupo2017-07-18

When you first powered it up 'out-of-the-box' without loading anything new to it, did the screen demo run?

author
johnnyfrx (author)pescelupo2017-07-18

When you first powered it up 'out-of-the-box' without loading anything new to it, did the screen demo run?

author
FrancoC14 (author)johnnyfrx2017-07-18

yes, demo pre-loaded worked fine

author
pescelupo (author)pescelupo2017-07-18

SimpleDemo example oled screen is empty

author
johnnyfrx (author)FrancoC142017-07-14

Try changing that line in your source to:

SSD1306 display(0x3c, 5, 4);

author
MübinI (author)2017-06-28

I have this board. I compiled the program but I can not upload it to board. There are 2 buttons EN and BOOT. Should I press one of them? Which one? I tried all combination of pressing buttons but nothing helped. I always get these errors;

warning: espcomm_sync failed

error: espcomm_open failed

error: espcomm_upload_mem failed

error: espcomm_upload_mem failed.

USB-Serial is working, I mean If I connect the board to usb, it sends some information on console. I close the console and try to upload the code, I receive errors.

author
johnnyfrx (author)MübinI2017-06-28

You followed the steps to add the board to your boards manager? You shouldn't need to press any buttons when programming this ESP via USB. Are your Serial speeds matching, etc...? Have any of the other example sketches worked?

author
MübinI (author)johnnyfrx2017-07-06

Hi,

I found my fault. I was giving wrong I2C pins for display. I gave correct addresses (5, 4) and it worked. Thanks.

author
johnnyfrx (author)MübinI2017-07-06

Glad you figured that out! It is a fun little Gizmo!

author
bfpa40 (author)MübinI2017-07-05

While you have the serial monitor window open Press and hold down the EN button for 3-4 seconds then release and you will see the board respond in the windod and from that point you are ready to upload sketched to the board.

author
scoopydo (author)2017-06-19

I just got mine from Bangood. Very timely, thank you.

author
johnnyfrx (author)scoopydo2017-06-21

Let me know how you make out with it.

author
carlos66ba (author)2017-06-16

Can you provide the link to where this device can be bought? Thanks!

author
johnnyfrx (author)carlos66ba2017-06-16

Hi There,

I got mine from eBay at http://r.ebay.com/UaGwCN

Have a good weekend!

author
carlos66ba (author)johnnyfrx2017-06-16

Thank you!!

author
Swansong (author)2017-06-16

Thanks for sharing :)

author
johnnyfrx (author)Swansong2017-06-16

Thanx for looking!