diff --git a/README.md b/README.md
index 28c11b55ac8c2c5e4ea8e5d58051802ebae25473..ed25ba7865504ad044c5362e75827d249b92b104 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 [![Build Status](https://travis-ci.org/ThingPulse/esp8266-oled-ssd1306.svg?branch=master)](https://travis-ci.org/ThingPulse/esp8266-oled-ssd1306)
 
-# ESP8266 OLED SSD1306 
+# ESP8266 OLED SSD1306
 
 > We just released version 3.0.0. Please have a look at our [upgrade guide](UPGRADE-3.0.md)
 
@@ -26,6 +26,8 @@ Check out the examples folder for a few comprehensive demonstrations how to use
 
 The API changed a lot with the 3.0 release. If you were using this library with older versions please have a look at the [Upgrade Guide](UPGRADE-3.0.md).
 
+Going from 3.x version to 4.0 a lot of internals changed and compatibility for more displays was added. Please read the [Upgrade Guide](UPGRADE-4.0.md)
+
 ## Features
 
 * Draw pixels at given coordinates
diff --git a/UPGRADE-4.0.md b/UPGRADE-4.0.md
new file mode 100644
index 0000000000000000000000000000000000000000..1d371c54426af36f82b65e37cf0a0e24943b356b
--- /dev/null
+++ b/UPGRADE-4.0.md
@@ -0,0 +1,13 @@
+# Upgrade from 3.x to 4.0
+
+There is one change that breaks compatibility with older versions. You'll have to change data type for all your binary resources such as images and fonts from
+
+```c
+const char MySymbol[] PROGMEM = {
+```
+
+to
+
+```c
+const uint8_t MySymbol[] PROGMEM = {
+```