Reprogramming DSTIKE with display SH1106

I have an application that would be wonderful if I could reprogram an inexpensive DSTIKE Deauther watch and utilize Arduino create. The project is a wrist watch that receives beam breaks and times a personal race.. I have the beam break software and the wiFi working well, but I can't seem to program the display of the unit. I'm told the display is an SH1106. Arduino Create doesn't support that driver (or I can't seem to make it work. Any hints or example code to support an ESP8266 processor and a SH1106 display would really help me out

Have you checked out the links below?

OLED SSD1306 - SH1106 - Arduino Reference
A fast SH1106 library (128x64 OLED) - Using Arduino / Displays - Arduino Forum

I'm able to make the SH1106 and "D1 Mini" work.

I got a Makerfocus watch - the documentation says it uses the same components and the functionality works except for the display. Here's a picture of that

So next I tried a DStiKE Deauthor development board (shown below) I couldn't figure out which hardware to use for the Arduino

So, I tried the Lilygo watch and had the same issue as the DStike Deauthor

I include the code I write to the display that works only on the first watch. It should blink an H in the middle of the screen

/*

*/
#include <Wire.h> // Enable this line if using Arduino Uno, Mega, etc.#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SH110X.h>

#define i2c_Address 0x3c //initialize with the I2C addr 0x3C Typically eBay OLED's

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET -1 // QT-PY / XIAO
Adafruit_SH1106G display = Adafruit_SH1106G(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

void setup() {
Serial.begin(9600);

display.begin(i2c_Address, true); // Address 0x3C default

display.clearDisplay();
display.display();

display.setCursor(48, 32);
display.setTextSize(6);
display.setTextColor(SH110X_WHITE);
display.print("H");
display.display();

pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
}

void loop() {
digitalWrite(LED_BUILTIN, HIGH);
display.setTextColor(SH110X_BLACK);
display.setCursor(48, 32);
display.setTextSize(6);
display.print("H");
display.display();
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
display.setTextColor(SH110X_WHITE);
display.setCursor(48, 32);
display.setTextSize(6);
display.print("H");
display.display();
delay(1000);
}

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.