OLED_SSD1306_Chart-1.3.0 vs Attiny

Trying to compile a sketch for an Attiny85 to draw a graph on an oled.
I get this error,

Arduino: 1.8.19 (Windows Store 1.8.57.0) (Windows 10), Board: "Digispark (Default - 16.5mhz)"
In file included from C:\Users\gecko\Documents\Arduino\libraries\Adafruit_SSD1306/Adafruit_SSD1306.h:42:0,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\src/OLED_SSD1306_Chart.h:1,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:9:

C:\Users\gecko\Documents\Arduino\libraries\Adafruit_GFX_Library/Adafruit_GFX.h:113:28: error: '__FlashStringHelper' does not name a type

   void getTextBounds(const __FlashStringHelper *s, int16_t x, int16_t y,

                            ^

C:\Users\gecko\Documents\Arduino\libraries\Adafruit_GFX_Library/Adafruit_GFX.h:113:49: error: ISO C++ forbids declaration of 's' with no type [-fpermissive]

   void getTextBounds(const __FlashStringHelper *s, int16_t x, int16_t y,

                                                 ^

In file included from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\io.h:99:0,

                 from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\interrupt.h:38,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/WProgram.h:8,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/Arduino.h:4,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:8:

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h: In member function 'void SPISettings::init_AlwaysInline(uint32_t, uint8_t, uint8_t)':

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:146:16: error: 'SPE' was not declared in this scope

     spcr = _BV(SPE) | _BV(MSTR) | ((bitOrder == LSBFIRST) ? _BV(DORD) : 0) |

                ^

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:146:27: error: 'MSTR' was not declared in this scope

     spcr = _BV(SPE) | _BV(MSTR) | ((bitOrder == LSBFIRST) ? _BV(DORD) : 0) |

                           ^

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:146:65: error: 'DORD' was not declared in this scope

     spcr = _BV(SPE) | _BV(MSTR) | ((bitOrder == LSBFIRST) ? _BV(DORD) : 0) |

                                                                 ^

In file included from C:\Users\gecko\Documents\Arduino\libraries\Adafruit_SSD1306/Adafruit_SSD1306.h:43:0,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\src/OLED_SSD1306_Chart.h:1,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:9:

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h: In static member function 'static void SPIClass::beginTransaction(SPISettings)':

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:203:5: error: 'SPCR' was not declared in this scope

     SPCR = settings.spcr;

     ^

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:204:5: error: 'SPSR' was not declared in this scope

     SPSR = settings.spsr;

     ^

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h: In static member function 'static uint8_t SPIClass::transfer(uint8_t)':

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:209:5: error: 'SPDR' was not declared in this scope

     SPDR = data;

     ^

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:217:14: error: 'SPSR' was not declared in this scope

     while (!(SPSR & _BV(SPIF))) ; // wait

              ^

In file included from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\io.h:99:0,

                 from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\interrupt.h:38,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/WProgram.h:8,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/Arduino.h:4,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:8:

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:217:25: error: 'SPIF' was not declared in this scope

     while (!(SPSR & _BV(SPIF))) ; // wait

                         ^

In file included from C:\Users\gecko\Documents\Arduino\libraries\Adafruit_SSD1306/Adafruit_SSD1306.h:43:0,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\src/OLED_SSD1306_Chart.h:1,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:9:

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h: In static member function 'static uint16_t SPIClass::transfer16(uint16_t)':

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:223:11: error: 'SPCR' was not declared in this scope

     if (!(SPCR & _BV(DORD))) {

           ^

In file included from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\io.h:99:0,

                 from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\interrupt.h:38,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/WProgram.h:8,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/Arduino.h:4,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:8:

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:223:22: error: 'DORD' was not declared in this scope

     if (!(SPCR & _BV(DORD))) {

                      ^

In file included from C:\Users\gecko\Documents\Arduino\libraries\Adafruit_SSD1306/Adafruit_SSD1306.h:43:0,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\src/OLED_SSD1306_Chart.h:1,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:9:

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:224:7: error: 'SPDR' was not declared in this scope

       SPDR = in.msb;

       ^

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:226:16: error: 'SPSR' was not declared in this scope

       while (!(SPSR & _BV(SPIF))) ;

                ^

In file included from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\io.h:99:0,

                 from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\interrupt.h:38,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/WProgram.h:8,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/Arduino.h:4,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:8:

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:226:27: error: 'SPIF' was not declared in this scope

       while (!(SPSR & _BV(SPIF))) ;

                           ^

In file included from C:\Users\gecko\Documents\Arduino\libraries\Adafruit_SSD1306/Adafruit_SSD1306.h:43:0,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\src/OLED_SSD1306_Chart.h:1,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:9:

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:230:16: error: 'SPSR' was not declared in this scope

       while (!(SPSR & _BV(SPIF))) ;

                ^

In file included from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\io.h:99:0,

                 from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\interrupt.h:38,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/WProgram.h:8,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/Arduino.h:4,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:8:

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:230:27: error: 'SPIF' was not declared in this scope

       while (!(SPSR & _BV(SPIF))) ;

                           ^

In file included from C:\Users\gecko\Documents\Arduino\libraries\Adafruit_SSD1306/Adafruit_SSD1306.h:43:0,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\src/OLED_SSD1306_Chart.h:1,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:9:

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:233:7: error: 'SPDR' was not declared in this scope

       SPDR = in.lsb;

       ^

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:235:16: error: 'SPSR' was not declared in this scope

       while (!(SPSR & _BV(SPIF))) ;

                ^

In file included from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\io.h:99:0,

                 from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\interrupt.h:38,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/WProgram.h:8,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/Arduino.h:4,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:8:

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:235:27: error: 'SPIF' was not declared in this scope

       while (!(SPSR & _BV(SPIF))) ;

                           ^

In file included from C:\Users\gecko\Documents\Arduino\libraries\Adafruit_SSD1306/Adafruit_SSD1306.h:43:0,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\src/OLED_SSD1306_Chart.h:1,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:9:

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:239:16: error: 'SPSR' was not declared in this scope

       while (!(SPSR & _BV(SPIF))) ;

                ^

In file included from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\io.h:99:0,

                 from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\interrupt.h:38,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/WProgram.h:8,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/Arduino.h:4,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:8:

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:239:27: error: 'SPIF' was not declared in this scope

       while (!(SPSR & _BV(SPIF))) ;

                           ^

In file included from C:\Users\gecko\Documents\Arduino\libraries\Adafruit_SSD1306/Adafruit_SSD1306.h:43:0,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\src/OLED_SSD1306_Chart.h:1,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:9:

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h: In static member function 'static void SPIClass::transfer(void*, size_t)':

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:247:5: error: 'SPDR' was not declared in this scope

     SPDR = *p;

     ^

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:250:16: error: 'SPSR' was not declared in this scope

       while (!(SPSR & _BV(SPIF))) ;

                ^

In file included from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\io.h:99:0,

                 from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\interrupt.h:38,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/WProgram.h:8,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/Arduino.h:4,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:8:

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:250:27: error: 'SPIF' was not declared in this scope

       while (!(SPSR & _BV(SPIF))) ;

                           ^

In file included from C:\Users\gecko\Documents\Arduino\libraries\Adafruit_SSD1306/Adafruit_SSD1306.h:43:0,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\src/OLED_SSD1306_Chart.h:1,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:9:

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:255:14: error: 'SPSR' was not declared in this scope

     while (!(SPSR & _BV(SPIF))) ;

              ^

In file included from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\io.h:99:0,

                 from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\interrupt.h:38,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/WProgram.h:8,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/Arduino.h:4,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:8:

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:255:25: error: 'SPIF' was not declared in this scope

     while (!(SPSR & _BV(SPIF))) ;

                         ^

In file included from C:\Users\gecko\Documents\Arduino\libraries\Adafruit_SSD1306/Adafruit_SSD1306.h:43:0,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\src/OLED_SSD1306_Chart.h:1,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:9:

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h: In static member function 'static void SPIClass::setBitOrder(uint8_t)':

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:292:31: error: 'SPCR' was not declared in this scope

     if (bitOrder == LSBFIRST) SPCR |= _BV(DORD);

                               ^

In file included from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\io.h:99:0,

                 from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\interrupt.h:38,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/WProgram.h:8,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/Arduino.h:4,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:8:

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:292:43: error: 'DORD' was not declared in this scope

     if (bitOrder == LSBFIRST) SPCR |= _BV(DORD);

                                           ^

In file included from C:\Users\gecko\Documents\Arduino\libraries\Adafruit_SSD1306/Adafruit_SSD1306.h:43:0,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\src/OLED_SSD1306_Chart.h:1,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:9:

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:293:10: error: 'SPCR' was not declared in this scope

     else SPCR &= ~(_BV(DORD));

          ^

In file included from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\io.h:99:0,

                 from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\interrupt.h:38,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/WProgram.h:8,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/Arduino.h:4,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:8:

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:293:24: error: 'DORD' was not declared in this scope

     else SPCR &= ~(_BV(DORD));

                        ^

In file included from C:\Users\gecko\Documents\Arduino\libraries\Adafruit_SSD1306/Adafruit_SSD1306.h:43:0,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\src/OLED_SSD1306_Chart.h:1,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:9:

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h: In static member function 'static void SPIClass::setDataMode(uint8_t)':

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:298:5: error: 'SPCR' was not declared in this scope

     SPCR = (SPCR & ~SPI_MODE_MASK) | dataMode;

     ^

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h: In static member function 'static void SPIClass::setClockDivider(uint8_t)':

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:303:5: error: 'SPCR' was not declared in this scope

     SPCR = (SPCR & ~SPI_CLOCK_MASK) | (clockDiv & SPI_CLOCK_MASK);

     ^

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:304:5: error: 'SPSR' was not declared in this scope

     SPSR = (SPSR & ~SPI_2XCLOCK_MASK) | ((clockDiv >> 2) & SPI_2XCLOCK_MASK);

     ^

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h: In static member function 'static void SPIClass::attachInterrupt()':

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:309:42: error: 'SPCR' was not declared in this scope

   inline static void attachInterrupt() { SPCR |= _BV(SPIE); }

                                          ^

In file included from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\io.h:99:0,

                 from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\interrupt.h:38,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/WProgram.h:8,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/Arduino.h:4,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:8:

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:309:54: error: 'SPIE' was not declared in this scope

   inline static void attachInterrupt() { SPCR |= _BV(SPIE); }

                                                      ^

In file included from C:\Users\gecko\Documents\Arduino\libraries\Adafruit_SSD1306/Adafruit_SSD1306.h:43:0,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\src/OLED_SSD1306_Chart.h:1,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:9:

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h: In static member function 'static void SPIClass::detachInterrupt()':

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:310:42: error: 'SPCR' was not declared in this scope

   inline static void detachInterrupt() { SPCR &= ~_BV(SPIE); }

                                          ^

In file included from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\io.h:99:0,

                 from c:\users\gecko\documents\arduinodata\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\interrupt.h:38,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/WProgram.h:8,

                 from C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\cores\tiny/Arduino.h:4,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:8:

C:\Users\gecko\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\SPI/SPI.h:310:55: error: 'SPIE' was not declared in this scope

   inline static void detachInterrupt() { SPCR &= ~_BV(SPIE); }

                                                       ^

In file included from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\src/OLED_SSD1306_Chart.h:1:0,

                 from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:9:

C:\Users\gecko\Documents\Arduino\libraries\Adafruit_SSD1306/Adafruit_SSD1306.h: At global scope:

C:\Users\gecko\Documents\Arduino\libraries\Adafruit_SSD1306/Adafruit_SSD1306.h:132:42: error: 'TwoWire' has not been declared

   Adafruit_SSD1306(uint8_t w, uint8_t h, TwoWire *twi = &Wire,

                                          ^

C:\Users\gecko\Documents\Arduino\libraries\Adafruit_SSD1306/Adafruit_SSD1306.h:175:3: error: 'TwoWire' does not name a type

   TwoWire *wire;   ///< Initialized during construction when using I2C. See

   ^

C:\Users\gecko\Documents\Arduino\libraries\Adafruit_SSD1306/Adafruit_SSD1306.h:132:58: error: could not convert '& Wire' from 'USI_TWI*' to 'int*'

   Adafruit_SSD1306(uint8_t w, uint8_t h, TwoWire *twi = &Wire,

                                                          ^

In file included from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:9:0:

C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\src/OLED_SSD1306_Chart.h:51:46: error: 'TwoWire' has not been declared

     OLED_SSD1306_Chart(uint8_t w, uint8_t h, TwoWire *twi, int8_t rst_pin = -1,

                                              ^

In file included from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:10:0:

C:\Users\gecko\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_I2CDevice.h:10:36: error: 'TwoWire' has not been declared

   Adafruit_I2CDevice(uint8_t addr, TwoWire *theWire = &Wire);

                                    ^

C:\Users\gecko\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_I2CDevice.h:30:3: error: 'TwoWire' does not name a type

   TwoWire *_wire;

   ^

C:\Users\gecko\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_I2CDevice.h:10:56: error: could not convert '& Wire' from 'USI_TWI*' to 'int*'

   Adafruit_I2CDevice(uint8_t addr, TwoWire *theWire = &Wire);

                                                        ^

SinglePlotMode:23:74: error: no matching function for call to 'OLED_SSD1306_Chart::OLED_SSD1306_Chart(int, int, USI_TWI*, int)'

 OLED_SSD1306_Chart display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

                                                                          ^

C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:23:74: note: candidates are:

In file included from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:9:0:

C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\src/OLED_SSD1306_Chart.h:83:5: note: OLED_SSD1306_Chart::OLED_SSD1306_Chart(uint8_t, uint8_t, SPIClass*, int8_t, int8_t, int8_t, uint32_t)

     OLED_SSD1306_Chart(uint8_t w, uint8_t h, SPIClass *spi,

     ^

C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\src/OLED_SSD1306_Chart.h:83:5: note:   candidate expects 7 arguments, 4 provided

C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\src/OLED_SSD1306_Chart.h:67:5: note: OLED_SSD1306_Chart::OLED_SSD1306_Chart(uint8_t, uint8_t, int8_t, int8_t, int8_t, int8_t, int8_t)

     OLED_SSD1306_Chart(uint8_t w, uint8_t h, int8_t mosi_pin, int8_t sclk_pin,

     ^

C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\src/OLED_SSD1306_Chart.h:67:5: note:   candidate expects 7 arguments, 4 provided

In file included from C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino:9:0:

C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\src/OLED_SSD1306_Chart.h:51:5: note: OLED_SSD1306_Chart::OLED_SSD1306_Chart(uint8_t, uint8_t, int*, int8_t, uint32_t, uint32_t)

     OLED_SSD1306_Chart(uint8_t w, uint8_t h, TwoWire *twi, int8_t rst_pin = -1,

     ^

C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\src/OLED_SSD1306_Chart.h:51:5: note:   no known conversion for argument 3 from 'USI_TWI*' to 'int*'

C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\src/OLED_SSD1306_Chart.h:36:5: note: OLED_SSD1306_Chart::OLED_SSD1306_Chart()

     OLED_SSD1306_Chart() : Adafruit_SSD1306()

     ^

C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\src/OLED_SSD1306_Chart.h:36:5: note:   candidate expects 0 arguments, 4 provided

C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\src/OLED_SSD1306_Chart.h:13:7: note: OLED_SSD1306_Chart::OLED_SSD1306_Chart(const OLED_SSD1306_Chart&)

 class OLED_SSD1306_Chart : public Adafruit_SSD1306

       ^

C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\src/OLED_SSD1306_Chart.h:13:7: note:   candidate expects 1 argument, 4 provided

C:\Users\gecko\Documents\Arduino\libraries\OLED_SSD1306_Chart-1.3.0\examples\SinglePlotMode\SinglePlotMode.ino: In function 'void loop()':

SinglePlotMode:56:8: error: 'value' does not name a type

   auto value = random(50) + 50;

        ^

SinglePlotMode:57:28: error: 'value' was not declared in this scope

   if (!display.updateChart(value)) //Value between Ymin and Ymax will be added to chart

                            ^

exit status 1

no matching function for call to 'OLED_SSD1306_Chart::OLED_SSD1306_Chart(int, int, USI_TWI*, int)'
/*
  Name:    SinglePlotMode.ino
  Created:  04/01/2020 11:59:52 AM
  Author: José Gabriel Companioni Benítez (https://github.com/elC0mpa)
  Description: Example to demonstrate how to draw cartesian charts in Adafruit SSD1306 oleds in single plot mode 
*/

#include <Arduino.h>
#include <OLED_SSD1306_Chart.h>
#include <Adafruit_I2CDevice.h> //Include this to avoid compile errors in Platformio

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels

// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)

#define BAUDRATE 9600

#define SDA_PIN D1
#define SCL_PIN D2

OLED_SSD1306_Chart display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

char actualThickness;

void setup()
{
// put your setup code here, to run once:
#if defined ESP8266
  Wire.begin(SDA_PIN, SCL_PIN);
#else
  Wire.begin();
#endif

  display.begin(SSD1306_SWITCHCAPVCC, 0x3c);
  display.clearDisplay();
  display.setChartCoordinates(0, 60);      //Chart lower left coordinates (X, Y)
  display.setChartWidthAndHeight(123, 55); //Chart width = 123 and height = 60
  display.setXIncrement(5);                //Distance between Y points will be 5px
  display.setYLimits(50, 100);             //Ymin = 0 and Ymax = 100
  display.setYLimitLabels("50", "100");    //Setting Y axis labels
  display.setYLabelsVisible(true);
  display.setAxisDivisionsInc(12, 6);    //Each 12 px a division will be painted in X axis and each 6px in Y axis
  display.setPlotMode(SINGLE_PLOT_MODE); //Set single plot mode
  // display.setPointGeometry(POINT_GEOMETRY_CIRCLE);
  actualThickness = NORMAL_LINE;
  display.setLineThickness(actualThickness);
  display.drawChart(); //Update the buffer to draw the cartesian chart
  display.display();
}

void loop()
{
  // put your main code here, to run repeatedly:
  auto value = random(50) + 50;
  if (!display.updateChart(value)) //Value between Ymin and Ymax will be added to chart
  {
    display.clearDisplay(); //If chart is full, it is drawn again
    if (actualThickness == NORMAL_LINE)
    {
      actualThickness = LIGHT_LINE;
    }
    else if (actualThickness == LIGHT_LINE)
    {
      actualThickness = NORMAL_LINE;
    }
    display.setLineThickness(actualThickness);
    display.drawChart();
  }
  delay(100);
}
``

Anyone have any ideas?

You are pushing your luck with anything that inherits from Adafruit_SSD1306 on a Tiny85.

I suggest that you run your sketch on a Uno, Nano, Leo, Zero, Due, ...

You can write text easily without a buffer.
But plotting points or drawing random lines on a SSD1306 requires some form of buffer.

Adafruit_SSD1306 uses 1024 bytes SRAM for 128x64 screen.
U8g2lib can use as small as 256 bytes for a buffer but the "page drawing" loop is a bit fiddly.

David.

My hope is to draw a cartesian graph on an oled, just the graph.
using a dc voltage input (0-5v)
can you suggest another method? using the same hardware.
if not then i'll get a nano, but i was hoping on using present on hand hardware.
Mike

It is no problem with drawing a graph from left to right.

There should be libraries that will do this without a buffer.

Problems only arise when you want to plot a new pixel without disturbing previously plotted graphics.
Text is easy because you are happy to rub out the previous letter when you replace with a new letter.

David.

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