Skip to content

Commit b5c4662

Browse files
committed
Add Qwiic OLED 1.3"
1 parent cfa0bb4 commit b5c4662

File tree

4 files changed

+104
-0
lines changed

4 files changed

+104
-0
lines changed

docs/software.md

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ The user selects from one of the following classes:
2828
| `QwiicMicroOLED` | [SparkFun Qwiic Micro OLED ]( https://www.sparkfun.com/products/14532)|
2929
| `QwiicNarrowOLED` | [SparkFun Qwiic OLED Display (128x32) ]( https://www.sparkfun.com/products/17153)|
3030
| `QwiicTransparentOLED` | [SparkFun Transparent Graphical OLED]( https://www.sparkfun.com/products/15173)|
31+
| `Qwiic1in3OLED` | [SparkFun Qwiic OLED 1.3" Display (128x32) ]( https://www.sparkfun.com/products/23453)|
3132

3233
For this example, the Qwiic Micro OLED is used.
3334
```C++

keywords.txt

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
QwiicTransparentOLED KEYWORD1
1010
QwiicNarrowOLED KEYWORD1
1111
QwiicMicroOLED KEYWORD1
12+
Qwiic1in3OLED KEYWORD1
1213
QwiicFont KEYWORD1
1314
grRasterOp_t KEYWORD1
1415

src/SparkFun_Qwiic_OLED.h

+5
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
#include "qwiic_oledmicro.h"
5353
#include "qwiic_olednarrow.h"
5454
#include "qwiic_oledtransp.h"
55+
#include "qwiic_oled_1in3.h"
5556

5657
#include <Arduino.h>
5758
#include <Wire.h>
@@ -831,3 +832,7 @@ class QwiicNarrowOLED : public QwiicOLEDBaseClass<QwOLEDNarrow> {
831832
class QwiicTransparentOLED : public QwiicOLEDBaseClass<QwOLEDTransparent> {
832833
// nothing here - see above
833834
};
835+
836+
class Qwiic1in3OLED : public QwiicOLEDBaseClass<QwOLED1in3> {
837+
// nothing here - see above
838+
};

src/qwiic_oled_1in3.h

+97
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
// qwiic_oled_1in3.h
2+
//
3+
// This is a library written for SparkFun Qwiic OLED boards that use the SSD1306.
4+
//
5+
// SparkFun sells these at its website: www.sparkfun.com
6+
//
7+
// Do you like this library? Help support SparkFun. Buy a board!
8+
//
9+
// Micro OLED https://www.sparkfun.com/products/14532
10+
// Transparent OLED https://www.sparkfun.com/products/15173
11+
// "Narrow" OLED https://www.sparkfun.com/products/17153
12+
// 1.3" OLED https://www.sparkfun.com/products/23453
13+
//
14+
//
15+
// Written by Kirk Benell @ SparkFun Electronics, March 2022
16+
//
17+
// This library configures and draws graphics to OLED boards that use the
18+
// SSD1306 display hardware. The library only supports I2C.
19+
//
20+
// Repository:
21+
// https://github.com/sparkfun/SparkFun_Qwiic_OLED_Arduino_Library
22+
//
23+
// Documentation:
24+
// https://sparkfun.github.io/SparkFun_Qwiic_OLED_Arduino_Library/
25+
//
26+
//
27+
// SparkFun code, firmware, and software is released under the MIT License(http://opensource.org/licenses/MIT).
28+
//
29+
// SPDX-License-Identifier: MIT
30+
//
31+
// The MIT License (MIT)
32+
//
33+
// Copyright (c) 2022 SparkFun Electronics
34+
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
35+
// associated documentation files (the "Software"), to deal in the Software without restriction,
36+
// including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
37+
// and/or sell copies of the Software, and to permit persons to whom the Software is furnished to
38+
// do so, subject to the following conditions:
39+
// The above copyright notice and this permission notice shall be included in all copies or substantial
40+
// portions of the Software.
41+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
42+
// NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
43+
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
44+
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
45+
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
46+
47+
// Implementation for the 1.3" OLED device
48+
49+
#pragma once
50+
51+
#include "qwiic_grssd1306.h"
52+
53+
//////////////////////////////////////////////////////////////////
54+
// Set the defaults for the SparkFun Qwiic MicroOLED
55+
56+
#define kOLED1in3Width 128
57+
#define kOLED1in3Height 64
58+
59+
#define kOLED1in3XOffset 0
60+
#define kOLED1in3YOffset 0
61+
62+
// Parameters for this device
63+
#define kOLED1in3PinConfig 0x12
64+
#define kOLED1in3PreCharge 0xF1
65+
#define kOLED1in3VCOM 0x40
66+
67+
#define kOLED1in3DefaultAddress 0x3D
68+
#define kOLED1in3AltAddress 0x3C
69+
70+
class QwOLED1in3 : public QwGrSSD1306 {
71+
72+
public:
73+
// Constructor - setup the viewport and default address for this device.
74+
QwOLED1in3()
75+
: QwGrSSD1306(kOLED1in3XOffset, kOLED1in3YOffset, kOLED1in3Width, kOLED1in3Height)
76+
{
77+
default_address = kOLED1in3DefaultAddress;
78+
};
79+
80+
// set up the specific device settings
81+
bool init(void)
82+
{
83+
84+
setBuffer(m_graphicsBuffer); // The buffer to use
85+
86+
setCommPins(kOLED1in3PinConfig);
87+
setPreCharge(kOLED1in3PreCharge);
88+
setVcomDeselect(kOLED1in3VCOM);
89+
90+
// Call the super class to do all the work
91+
return this->QwGrSSD1306::init();
92+
};
93+
94+
private:
95+
// Graphics buffer for this device.
96+
uint8_t m_graphicsBuffer[kOLED1in3Width * kOLED1in3Height / 8];
97+
};

0 commit comments

Comments
 (0)