I'm using a KMR-1.8" display which uses a ST7735 driver and it is working ok with the Adafruit_ST7735 library. The problem is the display is very dim once the library has initialized.

If I reset the board, the last display buffer is still visible and gets about 3 times brighter until the driver initializes the ST7735 again. If I hold the reset down, the last display in the buffer remains on the screen 3 times brighter for as long as I hold down the button.

The LED brightness pin is tied directly to the 3.3v output of a voltage regulator.

My conclusion is that there must be something the driver sets that effects the brightness. I don't see anything that looks like a brightness setting in the spec. sheet or in the driver source code.

Update: I've systematically disabled all of the driver settings except the bare minimum and haven't been able to get the display to brighten up. I've even added commands to adjust the Gamma curve and it had minimal affect.

I've also breadboarded the display using a test rig and the display actually worked without issue on the breadboard, maintaining it brightness. This used the exact same register settings as the PCB version which dims.

  • 1
    \$\begingroup\$ Please provide a link to the datasheet for the display. Also, can you measure the voltage at the "brightness pin" and verify that it is indeed 3.3V and doesn't change? \$\endgroup\$ Jan 21, 2019 at 14:03
  • \$\begingroup\$ I verified the LED backlight pin voltage does not change and is a constant 3.27v. Datasheet link added in question. \$\endgroup\$ Jan 21, 2019 at 15:27
  • \$\begingroup\$ No, you provided a link to the driver IC inside the display. I want to see a datasheet for the entire display. \$\endgroup\$ Jan 21, 2019 at 15:32
  • \$\begingroup\$ The driver just controls how much light each pixel will pass through. Sound like a problem with the backlight of the brightness changes with the same image. \$\endgroup\$
    – Jan Bos
    Jan 21, 2019 at 15:38
  • \$\begingroup\$ The TFT part number is unknown, it's mounted on a PCB board with the controller circuit. The part stamp is likely on the side that's facing the PCB. \$\endgroup\$ Jan 21, 2019 at 20:49

2 Answers 2


There is no setting on the ST7735 that allows you to control the brightness.

You must PWM the LED backlight on your TFT display in order to control the brightness.

See the ST7735 datasheet here: https://www.displayfuture.com/Display/datasheet/controller/ST7735.pdf

  • \$\begingroup\$ The gamma curve settings will control the brightness somewhat. Not nearly enough, however. \$\endgroup\$ Jan 23, 2019 at 20:17

None of the register settings used by the ST7735 driver have any significant effect on display brightness.

The problem turned out to be the voltage levels of the SPI BUS and control pins. Although the display card tolerated 5V signals on these pins (it's a 3.3V device) it causes the dimming issue described in the question. Adding 1.2K resistors to the SPI data and control lines dropped their voltage by about 0.5v and results in the display functioning at normal brightness.

The breadboard version of my circuit that worked without issue used a different 5V regulator which put out closer to 4.6V under load. The PCB circuit's 5V regulator is putting out 4.9V. This small voltage difference on the SPI BUS pins made a big difference in the brightness of the display.

I also tested using 5v to 3.3v level converters on all the SPI BUS and control lines which worked as well. This is the preferred way of fixing this issue. Looking at the SPI BUS signals the level converters had a much cleaner signal on my oscilloscope. I am surprised that the 1.2K resistors actually work after looking at the signals with this configuration, the scope traces using resistors instead of a level converter looked really bad. So bad in fact that I don't see how it works with only resistors.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.