Skip to content

Commit

Permalink
@mrvdb added support for SH1106 displays!
Browse files Browse the repository at this point in the history
Add support for SH1106 controller
  • Loading branch information
geeksville committed Jun 15, 2020
2 parents 4a9248a + d65f2ed commit 075ff26
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 0 deletions.
4 changes: 4 additions & 0 deletions src/configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.

#define SSD1306_ADDRESS 0x3C

// The SH1106 controller is almost, but not quite, the same as SSD1306
// Define this if you know you have that controller or your "SSD1306" misbehaves.
//#define USE_SH1106

// Flip the screen upside down by default as it makes more sense on T-BEAM
// devices. Comment this out to not rotate screen 180 degrees.
#define FLIP_SCREEN_VERTICALLY
Expand Down
4 changes: 4 additions & 0 deletions src/screen.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.

#define FONT_HEIGHT 14 // actually 13 for "ariel 10" but want a little extra space
#define FONT_HEIGHT_16 (ArialMT_Plain_16[1] + 1)
#ifdef USE_SH1106
#define SCREEN_WIDTH 132
#else
#define SCREEN_WIDTH 128
#endif
#define SCREEN_HEIGHT 64
#define TRANSITION_FRAMERATE 30 // fps
#define IDLE_FRAMERATE 10 // in fps
Expand Down
9 changes: 9 additions & 0 deletions src/screen.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,12 @@
#include <cstring>

#include <OLEDDisplayUi.h>

#ifdef USE_SH1106
#include <SH1106Wire.h>
#else
#include <SSD1306Wire.h>
#endif

#include "PeriodicTask.h"
#include "TypedQueue.h"
Expand Down Expand Up @@ -211,7 +216,11 @@ class Screen : public PeriodicTask
/// Holds state for debug information
DebugInfo debugInfo;
/// Display device
#ifdef USE_SH1106
SH1106Wire dispdev;
#else
SSD1306Wire dispdev;
#endif
/// UI helper for rendering to frames and switching between them
OLEDDisplayUi ui;
};
Expand Down

1 comment on commit 075ff26

@geeksville
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This commit has been mentioned on Meshtastic. There might be relevant details there:

https://meshtastic.discourse.group/t/recommended-device-t-beam-has-no-screen-how-to-get-one/383/13

Please sign in to comment.