ATTiny85 I2C library - wire.h / tinyWireM.h / tinyWireS.h

Hi all, after some searching, it's time to ask for some up-to-date advice on this, to save hours of going round in circles.

IDE version 1.8.19
Linux Mint 20
Arduino UNO as ISP as shown on my site.

I am trying to set up 3x ATTiny85 IC's (slaves) to talk to one ATMEGA328P (master / controller) via I2C. Each slave shall have its own unique address (above 7).

So far I have a little test program set up to just use the ATTiny85 to read an analogue input value and send it to the master. I have not yet worked on the master, but am just trying to verify and compile the ATTiny85 code. (This is before getting to pressing upload and using the ISP).

#include <Wire.h>

int inputPin = 5;               // pin PB5 is physical pin 1
int inputValue = 0;

void setup() {
  Wire.begin(8);                // I2C address 8
  Wire.onRequest(requestEvent);
  pinMode(inputPin, INPUT);
}

void loop() {
  inputValue = readInput;
}

int readInput() {
  int inputReadVal = analogRead(inputPin);
  return inputReadVal;
}

int requestEvent() {            // When data is requestd, send the value
  Wire.write(inputValue);
}

I started off with wire.h, but this threw errors for the ATTiny85, so am looking at alternative libraries.

Arduino: 1.8.19 (Linux), Board: "ATtiny25/45/85, ATtiny85, Internal 8 MHz"











/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c: In function 'twi_init':
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:88:16: error: 'SDA' undeclared (first use in this function)
   digitalWrite(SDA, 1);
                ^~~
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:88:16: note: each undeclared identifier is reported only once for each function it appears in
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:89:16: error: 'SCL' undeclared (first use in this function); did you mean 'SPL'?
   digitalWrite(SCL, 1);
                ^~~
                SPL
In file included from /home/scott/.arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/avr/include/avr/io.h:99:0,
                 from /home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:26:
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:92:7: error: 'TWSR' undeclared (first use in this function); did you mean 'ACSR'?
   cbi(TWSR, TWPS0);
       ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:92:3: note: in expansion of macro 'cbi'
   cbi(TWSR, TWPS0);
   ^~~
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:92:13: error: 'TWPS0' undeclared (first use in this function); did you mean 'TWSR'?
   cbi(TWSR, TWPS0);
             ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:92:3: note: in expansion of macro 'cbi'
   cbi(TWSR, TWPS0);
   ^~~
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:93:13: error: 'TWPS1' undeclared (first use in this function); did you mean 'TWPS0'?
   cbi(TWSR, TWPS1);
             ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:93:3: note: in expansion of macro 'cbi'
   cbi(TWSR, TWPS1);
   ^~~
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:94:3: error: 'TWBR' undeclared (first use in this function); did you mean 'TWSR'?
   TWBR = ((F_CPU / TWI_FREQ) - 16) / 2;
   ^~~~
   TWSR
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:102:3: error: 'TWCR' undeclared (first use in this function); did you mean 'TWBR'?
   TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA);
   ^~~~
   TWBR
In file included from /home/scott/.arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/avr/include/avr/io.h:99:0,
                 from /home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:26:
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:102:14: error: 'TWEN' undeclared (first use in this function); did you mean 'TWCR'?
   TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA);
              ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:102:26: error: 'TWIE' undeclared (first use in this function); did you mean 'TWEN'?
   TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA);
                          ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:102:38: error: 'TWEA' undeclared (first use in this function); did you mean 'TWEN'?
   TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA);
                                      ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c: In function 'twi_disable':
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:114:3: error: 'TWCR' undeclared (first use in this function); did you mean 'EECR'?
   TWCR &= ~(_BV(TWEN) | _BV(TWIE) | _BV(TWEA));
   ^~~~
   EECR
In file included from /home/scott/.arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/avr/include/avr/io.h:99:0,
                 from /home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:26:
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:114:17: error: 'TWEN' undeclared (first use in this function); did you mean 'TWCR'?
   TWCR &= ~(_BV(TWEN) | _BV(TWIE) | _BV(TWEA));
                 ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:114:29: error: 'TWIE' undeclared (first use in this function); did you mean 'TWEN'?
   TWCR &= ~(_BV(TWEN) | _BV(TWIE) | _BV(TWEA));
                             ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:114:41: error: 'TWEA' undeclared (first use in this function); did you mean 'TWEN'?
   TWCR &= ~(_BV(TWEN) | _BV(TWIE) | _BV(TWEA));
                                         ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:117:16: error: 'SDA' undeclared (first use in this function)
   digitalWrite(SDA, 0);
                ^~~
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:118:16: error: 'SCL' undeclared (first use in this function); did you mean 'SPL'?
   digitalWrite(SCL, 0);
                ^~~
                SPL
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c: In function 'twi_setAddress':
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:130:3: error: 'TWAR' undeclared (first use in this function); did you mean 'TIFR'?
   TWAR = address << 1;
   ^~~~
   TIFR
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c: In function 'twi_setFrequency':
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:141:3: error: 'TWBR' undeclared (first use in this function); did you mean 'TIFR'?
   TWBR = ((F_CPU / frequency) - 16) / 2;
   ^~~~
   TIFR
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c: In function 'twi_readFrom':
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:204:7: error: 'TWDR' undeclared (first use in this function); did you mean 'DWDR'?
       TWDR = twi_slarw;
       ^~~~
       DWDR
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:209:13: error: 'TWCR' undeclared (first use in this function); did you mean 'TWDR'?
     } while(TWCR & _BV(TWWC));
             ^~~~
             TWDR
In file included from /home/scott/.arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/avr/include/avr/io.h:99:0,
                 from /home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:26:
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:209:24: error: 'TWWC' undeclared (first use in this function); did you mean 'TWCR'?
     } while(TWCR & _BV(TWWC));
                        ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:210:16: error: 'TWINT' undeclared (first use in this function)
     TWCR = _BV(TWINT) | _BV(TWEA) | _BV(TWEN) | _BV(TWIE); // enable INTs, but not START
                ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:210:29: error: 'TWEA' undeclared (first use in this function); did you mean 'TWWC'?
     TWCR = _BV(TWINT) | _BV(TWEA) | _BV(TWEN) | _BV(TWIE); // enable INTs, but not START
                             ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:210:41: error: 'TWEN' undeclared (first use in this function); did you mean 'TWEA'?
     TWCR = _BV(TWINT) | _BV(TWEA) | _BV(TWEN) | _BV(TWIE); // enable INTs, but not START
                                         ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:210:53: error: 'TWIE' undeclared (first use in this function); did you mean 'TWEN'?
     TWCR = _BV(TWINT) | _BV(TWEA) | _BV(TWEN) | _BV(TWIE); // enable INTs, but not START
                                                     ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:213:65: error: 'TWSTA' undeclared (first use in this function); did you mean 'TWEA'?
     TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT) | _BV(TWSTA);
                                                                 ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c: In function 'twi_writeTo':
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:301:7: error: 'TWDR' undeclared (first use in this function); did you mean 'DWDR'?
       TWDR = twi_slarw;
       ^~~~
       DWDR
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:306:13: error: 'TWCR' undeclared (first use in this function); did you mean 'TWDR'?
     } while(TWCR & _BV(TWWC));
             ^~~~
             TWDR
In file included from /home/scott/.arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/avr/include/avr/io.h:99:0,
                 from /home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:26:
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:306:24: error: 'TWWC' undeclared (first use in this function); did you mean 'TWCR'?
     } while(TWCR & _BV(TWWC));
                        ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:307:16: error: 'TWINT' undeclared (first use in this function)
     TWCR = _BV(TWINT) | _BV(TWEA) | _BV(TWEN) | _BV(TWIE); // enable INTs, but not START
                ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:307:29: error: 'TWEA' undeclared (first use in this function); did you mean 'TWWC'?
     TWCR = _BV(TWINT) | _BV(TWEA) | _BV(TWEN) | _BV(TWIE); // enable INTs, but not START
                             ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:307:41: error: 'TWEN' undeclared (first use in this function); did you mean 'TWEA'?
     TWCR = _BV(TWINT) | _BV(TWEA) | _BV(TWEN) | _BV(TWIE); // enable INTs, but not START
                                         ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:307:53: error: 'TWIE' undeclared (first use in this function); did you mean 'TWEN'?
     TWCR = _BV(TWINT) | _BV(TWEA) | _BV(TWEN) | _BV(TWIE); // enable INTs, but not START
                                                     ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:310:65: error: 'TWSTA' undeclared (first use in this function); did you mean 'TWEA'?
     TWCR = _BV(TWINT) | _BV(TWEA) | _BV(TWEN) | _BV(TWIE) | _BV(TWSTA); // enable INTs
                                                                 ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c: In function 'twi_reply':
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:397:5: error: 'TWCR' undeclared (first use in this function); did you mean 'EECR'?
     TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWINT) | _BV(TWEA);
     ^~~~
     EECR
In file included from /home/scott/.arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/avr/include/avr/io.h:99:0,
                 from /home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:26:
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:397:16: error: 'TWEN' undeclared (first use in this function); did you mean 'TWCR'?
     TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWINT) | _BV(TWEA);
                ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:397:28: error: 'TWIE' undeclared (first use in this function); did you mean 'TWEN'?
     TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWINT) | _BV(TWEA);
                            ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:397:40: error: 'TWINT' undeclared (first use in this function); did you mean 'TWIE'?
     TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWINT) | _BV(TWEA);
                                        ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:397:53: error: 'TWEA' undeclared (first use in this function); did you mean 'TWEN'?
     TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWINT) | _BV(TWEA);
                                                     ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c: In function 'twi_stop':
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:412:3: error: 'TWCR' undeclared (first use in this function); did you mean 'EECR'?
   TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT) | _BV(TWSTO);
   ^~~~
   EECR
In file included from /home/scott/.arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/avr/include/avr/io.h:99:0,
                 from /home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:26:
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:412:14: error: 'TWEN' undeclared (first use in this function); did you mean 'TWCR'?
   TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT) | _BV(TWSTO);
              ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:412:26: error: 'TWIE' undeclared (first use in this function); did you mean 'TWEN'?
   TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT) | _BV(TWSTO);
                          ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:412:38: error: 'TWEA' undeclared (first use in this function); did you mean 'TWEN'?
   TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT) | _BV(TWSTO);
                                      ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:412:50: error: 'TWINT' undeclared (first use in this function); did you mean 'TWIE'?
   TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT) | _BV(TWSTO);
                                                  ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:412:63: error: 'TWSTO' undeclared (first use in this function)
   TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT) | _BV(TWSTO);
                                                               ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c: In function 'twi_releaseBus':
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:444:3: error: 'TWCR' undeclared (first use in this function); did you mean 'EECR'?
   TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT);
   ^~~~
   EECR
In file included from /home/scott/.arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/avr/include/avr/io.h:99:0,
                 from /home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:26:
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:444:14: error: 'TWEN' undeclared (first use in this function); did you mean 'TWCR'?
   TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT);
              ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:444:26: error: 'TWIE' undeclared (first use in this function); did you mean 'TWEN'?
   TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT);
                          ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:444:38: error: 'TWEA' undeclared (first use in this function); did you mean 'TWEN'?
   TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT);
                                      ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:444:50: error: 'TWINT' undeclared (first use in this function); did you mean 'TWIE'?
   TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT);
                                                  ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c: In function 'twi_handleTimeout':
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:475:29: error: 'TWBR' undeclared (first use in this function); did you mean 'TIFR'?
     uint8_t previous_TWBR = TWBR;
                             ^~~~
                             TIFR
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:476:29: error: 'TWAR' undeclared (first use in this function); did you mean 'TWBR'?
     uint8_t previous_TWAR = TWAR;
                             ^~~~
                             TWBR
In file included from /home/scott/.arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/avr/include/compat/twi.h:36:0,
                 from /home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:29:
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c: In function 'TWI_vect':
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:505:10: error: 'TWSR' undeclared (first use in this function); did you mean 'ACSR'?
   switch(TW_STATUS){
          ^
In file included from /home/scott/.arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/avr/include/avr/io.h:99:0,
                 from /home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:26:
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:505:10: error: 'TWS7' undeclared (first use in this function); did you mean 'TWSR'?
   switch(TW_STATUS){
          ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:505:10: error: 'TWS6' undeclared (first use in this function); did you mean 'TWS7'?
   switch(TW_STATUS){
          ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:505:10: error: 'TWS5' undeclared (first use in this function); did you mean 'TWS6'?
   switch(TW_STATUS){
          ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:505:10: error: 'TWS4' undeclared (first use in this function); did you mean 'TWS5'?
   switch(TW_STATUS){
          ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:505:10: error: 'TWS3' undeclared (first use in this function); did you mean 'TWS4'?
   switch(TW_STATUS){
          ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:510:7: error: 'TWDR' undeclared (first use in this function); did you mean 'TWSR'?
       TWDR = twi_slarw;
       ^~~~
       TWSR
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:530:10: error: 'TWCR' undeclared (first use in this function); did you mean 'TWDR'?
          TWCR = _BV(TWINT) | _BV(TWSTA)| _BV(TWEN) ;
          ^~~~
          TWDR
In file included from /home/scott/.arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/avr/include/avr/io.h:99:0,
                 from /home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:26:
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:530:21: error: 'TWINT' undeclared (first use in this function)
          TWCR = _BV(TWINT) | _BV(TWSTA)| _BV(TWEN) ;
                     ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:530:34: error: 'TWSTA' undeclared (first use in this function); did you mean 'TWS3'?
          TWCR = _BV(TWINT) | _BV(TWSTA)| _BV(TWEN) ;
                                  ^
/home/scott/.arduino15/packages/arduino/hardware/avr/1.8.5/libraries/Wire/src/utility/twi.c:530:46: error: 'TWEN' undeclared (first use in this function); did you mean 'TWINT'?
          TWCR = _BV(TWINT) | _BV(TWSTA)| _BV(TWEN) ;
                                              ^
exit status 1
Error compiling for board ATtiny25/45/85.


This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

I can find tinyWireM.h which appears to be for the master/controller, not the slave device. I have found this installed in the IDE, and in the menu to add to a sketch. Here it is on the Adafruit Github page.

There is mention on stack exchange about there being a tinyWireS.h slave library too, but this is not included in the IDE list, nor can I find it in Adafruits github repo.

If tinyWireS.h is the solution for me, can someone say where to find the latest/stable/ideal release?
OR
Is there a better library to use for this?
OR
Is there a better method of making these boards communicate?

Many thanks, Scott.

If you use the ATTinyCore core you can use (a version of) the Wire library. You will need to use the default pins for I2C, pin 0 (physical pin 5) = SDA and pin 2 (physical pin 7) = SCL. See the I2C, SPI and Serial section.

When learning to program my tiny85 projects I tried many cores and the ATTinyCore code is simply the best. It is certainly the best documented.

Genius!!

Thanks @groundFungus !! Installing ATTinyCore on my IDE has fixed it! Now there are no verification errors.

I didn't know what a core was until today, every day's a school day!

However, This has now caused me a different headache using my UNO ISP to upload to the ATTiny85 IC, but I am in the process of building a direct USB programmer, so hopefully I should overcome that soon enough.

Cheers, Scott.