This part of the code won't compile :
LCD_SH1106_SDA -> A4 (I2C SDA)
LCD_SH1106_SCL -> A5 (I2C SCL)
It needs #define added at the begienning like this :
define LCD_SH1106_SDA -> A4 (12C SDA)
define LCD_SH1106_SDA -> A5 (12C SCL)
Only then it'l work fine. (This is labeled SH1106 but it works for SSD1306 too. It's used to define 12C pins.)
For more detail this is the error :
Arduino: 1.8.19 (Windows 10), Board: "Arduino Nano, ATmega328P (Old Bootloader)"
t-rex-duino:35:2: error: 'LCD_SH1106_SDA' does not name a type; did you mean 'LCD_SH1106'?
LCD_SH1106_SDA -> A4 (I2C SDA)
^~~~~~
LCD_SH1106
In file included from C:\Users\Corysa\AppData\Local\Temp\Rar$DIa21236.21076\t-rex-duino\t-rex-duino.ino:71:0:
C:\Users\Sebastian\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h:97:5: error: 'EERef' does not name a type; did you mean 'EERE'?
EERef operator*() { return index; }
^~~~~
EERE
C:\Users\Corysa\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h:119:5: error: 'EERef' does not name a type; did you mean 'EERE'?
C:\Users\Corysa\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h: In member function 'uint8_t EEPROMClass::read(int)':
C:\Users\Corysa\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h:120:51: error: 'EERef' was not declared in this scope
C:\Users\Corysa\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h: In member function 'void EEPROMClass::write(int, uint8_t)':
C:\Users\Corysa\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h:121:45: error: 'EERef' was not declared in this scope
void write( int idx, uint8_t val ) { (EERef( idx )) = val; }
^~~~~
void write( int idx, uint8_t val ) { (EERef( idx )) = val; }
^~~~~
EERE
C:\Users\Corysa\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h: In member function 'void EEPROMClass::update(int, uint8_t)':
C:\Users\Corysa\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h:122:44: error: 'EERef' was not declared in this scope
void update( int idx, uint8_t val ) { EERef( idx ).update( val ); }
^~~~~
void update( int idx, uint8_t val ) { EERef( idx ).update( val ); }
^~~~~
EERE
In file included from C:\Users\Corysa\AppData\Local\Temp\Rar$DIa21236.21076\t-rex-duino\t-rex-duino.ino:71:0:
C:\Users\Corysa\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h: In member function 'T& EEPROMClass::get(int, T&)':
C:\Users\Corysa\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h:133:71: error: no match for 'operator*' (operand type is 'EEPtr')
C:\Users\Corysa\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h: In member function 'const T& EEPROMClass::put(int, const T&)':
C:\Users\Corysa\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h:140:63: error: no match for 'operator*' (operand type is 'EEPtr')
Not used: C:\Users\Corysa\Documents\Arduino\libraries\ESP8266_and_ESP32_OLED_driver_for_SSD1306_displays
exit status 1
'LCD_SH1106_SDA' does not name a type; did you mean 'LCD_SH1106'?
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
This is the raw error , I only changed the name because it was my real one and i can't show it.
WARNING! By default this part comes commented so it's not an issue. Only if you want to use an SSD1306 or SH1106 it's a problem.
This part of the code won't compile : LCD_SH1106_SDA -> A4 (I2C SDA) LCD_SH1106_SCL -> A5 (I2C SCL) It needs #define added at the begienning like this :
define LCD_SH1106_SDA -> A4 (12C SDA)
define LCD_SH1106_SDA -> A5 (12C SCL)
Only then it'l work fine. (This is labeled SH1106 but it works for SSD1306 too. It's used to define 12C pins.) For more detail this is the error : Arduino: 1.8.19 (Windows 10), Board: "Arduino Nano, ATmega328P (Old Bootloader)"
t-rex-duino:35:2: error: 'LCD_SH1106_SDA' does not name a type; did you mean 'LCD_SH1106'?
LCD_SH1106_SDA -> A4 (I2C SDA)
^
~~~~~LCD_SH1106
In file included from C:\Users\Corysa\AppData\Local\Temp\Rar$DIa21236.21076\t-rex-duino\t-rex-duino.ino:71:0:
C:\Users\Sebastian\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h:97:5: error: 'EERef' does not name a type; did you mean 'EERE'?
C:\Users\Corysa\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h:119:5: error: 'EERef' does not name a type; did you mean 'EERE'?
C:\Users\Corysa\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h: In member function 'uint8_t EEPROMClass::read(int)':
C:\Users\Corysa\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h:120:51: error: 'EERef' was not declared in this scope
C:\Users\Corysa\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h:120:51: note: suggested alternative: 'EERE'
C:\Users\Corysa\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h: In member function 'void EEPROMClass::write(int, uint8_t)':
C:\Users\Corysa\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h:121:45: error: 'EERef' was not declared in this scope
C:\Users\Corysa\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h:121:45: note: suggested alternative: 'EERE'
C:\Users\Corysa\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h: In member function 'void EEPROMClass::update(int, uint8_t)':
C:\Users\Corysa\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h:122:44: error: 'EERef' was not declared in this scope
C:\Users\Corysa\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h:122:44: note: suggested alternative: 'EERE'
In file included from C:\Users\Corysa\AppData\Local\Temp\Rar$DIa21236.21076\t-rex-duino\t-rex-duino.ino:71:0:
C:\Users\Corysa\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h: In member function 'T& EEPROMClass::get(int, T&)':
C:\Users\Corysa\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h:133:71: error: no match for 'operator*' (operand type is 'EEPtr')
C:\Users\Corysa\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h: In member function 'const T& EEPROMClass::put(int, const T&)':
C:\Users\Corysa\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\libraries\EEPROM\src/EEPROM.h:140:63: error: no match for 'operator*' (operand type is 'EEPtr')
Multiple libraries were found for "SH1106.h"
Used: C:\Users\Corysa\Documents\Arduino\libraries\SH1106.h
Not used: C:\Users\Corysa\Documents\Arduino\libraries\ESP8266_and_ESP32_OLED_driver_for_SSD1306_displays
exit status 1
'LCD_SH1106_SDA' does not name a type; did you mean 'LCD_SH1106'?
This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences. This is the raw error , I only changed the name because it was my real one and i can't show it. WARNING! By default this part comes commented so it's not an issue. Only if you want to use an SSD1306 or SH1106 it's a problem.