diff --git a/OLEDDisplay.cpp b/OLEDDisplay.cpp
index 71c4189f9e498e6eb9cf0e9d5c831abbc460c572..2c0c72a97ff9c67ba524f7ab2c5668ac9d11f749 100644
--- a/OLEDDisplay.cpp
+++ b/OLEDDisplay.cpp
@@ -578,6 +578,24 @@ void OLEDDisplay::setContrast(uint8_t contrast, uint8_t precharge, uint8_t comde
   sendCommand(DISPLAYON);
 }
 
+void OLEDDisplay::setBrightness(uint8_t brightness) {
+  uint8_t contrast = brightness;
+  if (brightness < 128) {
+    // Magic values to get a smooth/ step-free transition
+    contrast = brightness * 1.171;
+  } else {
+    contrast = brightness * 1.171 - 43;
+  }
+
+  uint8_t precharge = 241;
+  if (brightness == 0) {
+    precharge = 0;
+  }
+  uint8_t comdetect = brightness / 8;
+
+  setContrast(contrast, precharge, comdetect);
+}
+
 void OLEDDisplay::resetOrientation() {
   sendCommand(SEGREMAP);
   sendCommand(COMSCANINC);           //Reset screen rotation or mirroring
diff --git a/OLEDDisplay.h b/OLEDDisplay.h
index 75f0ee116ffce1c26c3452e904cc844ec8fe4ded..ddf80bd472df8b5ba7b0585b4fecb3aacfb8c0c2 100644
--- a/OLEDDisplay.h
+++ b/OLEDDisplay.h
@@ -222,6 +222,9 @@ class OLEDDisplay : public Print {
     // normal brightness & contrast:  contrast = 100
     void setContrast(uint8_t contrast, uint8_t precharge = 241, uint8_t comdetect = 64);
 
+    // Convenience method to access 
+    void setBrightness(uint8_t);
+
     // Reset display rotation or mirroring
     void resetOrientation();
 
diff --git a/README.md b/README.md
index 3809ddc03e7afc6fc08fb16c87ea0b107ccb3706..d7db5ef98f8d54049ab03be90d88a7cca96f8800 100644
--- a/README.md
+++ b/README.md
@@ -141,7 +141,12 @@ void invertDisplay(void);
 void normalDisplay(void);
 
 // Set display contrast
-void setContrast(uint8_t contrast);
+// really low brightness & contrast: contrast = 10, precharge = 5, comdetect = 0
+// normal brightness & contrast:  contrast = 100
+void setContrast(uint8_t contrast, uint8_t precharge = 241, uint8_t comdetect = 64);
+
+// Convenience method to access
+void setBrightness(uint8_t);
 
 // Turn the display upside down
 void flipScreenVertically();