summaryrefslogtreecommitdiff
path: root/src/drivers/St7789.cpp
diff options
context:
space:
mode:
authorRiku Isokoski <riksu9000@gmail.com>2022-04-26 13:09:30 +0300
committerRiku Isokoski <riksu9000@gmail.com>2022-04-29 11:35:22 +0300
commit8061822f0cba9caa9d957b85a8284ab3120aaf3e (patch)
tree670b66667cd117737a7f8708d8887b64bd5759eb /src/drivers/St7789.cpp
parentb31fbb4adb0f895ff32b93fff492070e44716d54 (diff)
Fix large blacklevel step. Lower 25% of shades are now accessible.
There is a large step in brightness from level zero to level one. After experimenting with various ST7789 options, I found that decreasing VDV to 0x10 (-0.4V) fixes this issue. The gamma change reduced the average error in brightness, but with the underlying issue fixed, the gamma change has been reverted.
Diffstat (limited to 'src/drivers/St7789.cpp')
-rw-r--r--src/drivers/St7789.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/drivers/St7789.cpp b/src/drivers/St7789.cpp
index d520199e..3ed1beb4 100644
--- a/src/drivers/St7789.cpp
+++ b/src/drivers/St7789.cpp
@@ -23,7 +23,7 @@ void St7789::Init() {
RowAddressSet();
DisplayInversionOn();
NormalModeOn();
- SetGamma();
+ SetVdv();
DisplayOn();
}
@@ -115,9 +115,11 @@ void St7789::WriteToRam() {
WriteCommand(static_cast<uint8_t>(Commands::WriteToRam));
}
-void St7789::SetGamma() {
- WriteCommand(static_cast<uint8_t>(Commands::GammaSet));
- WriteData(0x04);
+void St7789::SetVdv() {
+ // By default there is a large step from pixel brightness zero to one.
+ // After experimenting with VCOMS, VRH and VDV, this was found to produce good results.
+ WriteCommand(static_cast<uint8_t>(Commands::VdvSet));
+ WriteData(0x10);
}
void St7789::DisplayOff() {