There is a function that invert the colors of your screen, and I have tried it, I think you should try this piece of code. At the beginning of the code be sure that you declared the object using the same name. Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); To invert the display display.invertDisplay(true); To return the display again display.invertDisplay(false); As you said that you want a button to invert the display you might use this code I made if(digitalRead(BUTTON_PIN)){ display.invertDisplay(true); } else{ display.invertDisplay(false); } Or you might use **Interrupts** for better performance depending on your code. And to easy the things for you, here is all the functions for your display.... [Here !][1] I hope I've helped you out. any edits in the answer is well appreciated, as I am a student. [1]: https://adafruit.github.io/Adafruit_SSD1306/html/class_adafruit___s_s_d1306.html