Skip to main content

New sensors for Fall 2026

Thanks to the Engineering Excellence Fund, we acquired over 50 new sensors the summer of 2026 that are inventoried, tested, and ready for student checkout Fall 2026.

Here's what's new for Fall 2026!

Everything below is available for checkout from the ITLL Electronics Center (ECCE 167)!

Incremental Rotary Encoders (QTY 2)

Autonics_E40S_Series1.jpg

encoder_gif.gif{40A3F865-DCED-49D8-9D0F-FC458B6602CB}.png

Description above from: https://www.pjrc.com/teensy/td_libs_Encoder.html?#

GIF made by yours truly (Claire Porter). I'm turning the encoder shaft CW, then CCW, and you can see the output increment, then decrease.

CODE (Arduino)

I used this library on an Arduino Uno: 

{5E827665-82F5-4414-8DFF-F59361C5BC0E}.png

I gave the encoder 5V via brown (5V) and blue (GND) wires, and plugged black (OUT A) and white (OUT B) into digital pins 5 and 6. I also tested other pins (2 and 3). I plugged the orange wire (OUT Z) into a random digital pin (8), but did not call it in my code.

TROUBLESHOOTING

1. Initially I couldn't get Basic.ino to run. I got the following errors:

direct_pin_read.h:8:56: note: in definition of macro 'DIRECT_PIN_READ'
 #define DIRECT_PIN_READ(base, mask)     (((*(base)) & (mask)) ? 1 : 0)

FIX: I uninstalled and installed the library. 

2. I thought 2000 pulses = 1 revolution, but I'm finding that 1 revolution ~ 8000 pulses. I'm using pins 2 and 3 for black and white wires. Even weirder - when I switch to different pins, I find that 1 revolution ~ 70 pulses. I thought that the resolution of this encoder was 2000 pulses per revolution. HALP!

FIX: It turns out that on an Arduino Uno, pins 2 and 3 are dedicated interrupt pins, which is a good thing for counting pulses as quickly as possible. You want to use these pins (and if you aren't using an Arduino Uno, check and see which are the hardware interrupt pins for your board). The code is just incrementing when the signals read on either pin 2 or 3 change, and since A and B (output from this quadrature encoder) change 4 times per change in position (the laser shines through a new window on the internal wheel). This is because the waveform generated by A is 90 degrees offset from B, or equivocally, the the phase offset of B relative to A is 1/4 the period of A. Talk to Claire or Nora if you are confused and would like a whiteboard demonstration of how a quadrature encoder works.

When I tested other pins:, such as 5 and 6, and 11 and 10, I found ~70 PPR. Note that if you switch the white and black wire, this just switches whether CW or CCW rotation corresponds to the encoder count increasing. Don't use pin 13 (built in LED); the counter misses pulses likely due to hardware conflicts.

Linear Actuators (QTY 4)

332c1edd-2f77-4b04-af92-56cd22efc3d3.jpg

These little 50mm linear actuators are from DF Robot will be a great asset to a project requiring controlled linear movement. Although they nominally take 6V, I was able to run them using 5V on an Arduino Uno. I interfaced with a Sparkfun DC Motor driver, and was impressed at the force they delivered. Even when pushing fairly hard with my finger, the actuator was able to extend fully. These are awesome. Note that you will need to use a driver, or else construct your own H-bridge circuit to retract them after they've extended.

SENSOR 

(ADD PHOTO)

PM2.5 Air Quality Sensor and Breadboard Adapter Kit

PM2.5 Air Quality Sensor and Breadboard Adapter Kit [PMS5003] : Adafruit Industries, Unique & fun DIY electronics and kits

Arduino Code | PM2.5 Air Quality Sensor | Adafruit Learning System

Use case, any helpful tips?

The PM2.5 Air Quality Sensor provides real-time, reliable measurement of PM2.5 dust concentrations! (PM2.5 refers to particles that are 2.5 microns or smaller in diameter.) This sensor uses laser scattering to radiate suspending particles in the air, then collects scattering light to obtain the curve of scattering light change with time. The microprocessor calculates equivalent particle diameter and the number of particles with different diameter per unit volume.

Troubleshooting (document any issues you ran into and their resolution):

Issue: The code provided in the link is set up to be able to handle both hardware and software serial communication.

Fix: Due to this when using that code, the user needs to uncomment out a few commented-out lines. These lines are the pin set ups and the serial communication lines. User needs to make sure to comment / uncomment a few lines according to what type of serial communication they are using. 

SENSOR 

(ADD PHOTO)

Adafruit 9-DOF Orientation IMU Fusion Breakout - BNO085

Adafruit 9-DOF Orientation IMU Fusion Breakout - BNO085 (BNO080) [STEMMA QT / Qwiic] : Adafruit Industries, Unique & fun DIY electronics and kits

Code link:

Overview | Adafruit 9-DOF Orientation IMU Fusion Breakout - BNO085 | Adafruit Learning System

Use case, any helpful tips?

  • Acceleration Vector / Accelerometer
    Three axes of acceleration (gravity + linear motion) in m/s^2
  • Angular Velocity Vector / Gyro
    Three axes of 'rotation speed' in rad/s
  • Magnetic Field Strength Vector / Magnetometer
    Three axes of magnetic field sensing in micro Tesla (uT)
  • Linear Acceleration Vector
    Three axes of linear acceleration data (acceleration minus gravity) in m/s^2
  • Gravity Vector
    Three axes of gravitational acceleration (minus any movement) in m/s^2
  • Absolute Orientation/ Rotation Vector
    Four-point quaternion output for accurate data manipulation
  • Application Optimized Rotation Vectors
    For AR/VR, low latency, and low power consumption
  • Additional Base Sensor Reports
    Separate and simultaneous outputs of Calibrated, Uncalibrated + Correction, and Raw ADC outputs for the Accelerometer, Gyro, and Magnetometer
  • Detection and Classification reports:
    • Stability Detection and Classification
    • Significant Motion Detector
    • Tap, Step, and Shake Detectors
    • Activity Classification
I2C Wiring:
  • Connect board VIN (red wire) to Board 3V 
  • Connect board GND (black wire) to Board GND
  • Connect board SCL (yellow wire) to Board SCL
  • Connect board SDA (blue wire) to Board SDA

Troubleshooting (document any issues you ran into and their resolution):

Issue: When using I2C communication, the library needed to use the IMU is too large and complex to fit onto the Arduino Uno. 

Fix: To use this sensor with an Arduino Uno you are to use UART communication. This means you cannot use the nice I2C chord provided with the sensor. Instead, you have to plug the header pins into a breadboard and manually set up each pin. 

PINOUTS FOR UART

VIN ---> 5V

GND ---> GND

SDA ---> Digital Pin 2

P0 ---> 5V

No other pins need to be connected

CODE FOR UART

#include <SoftwareSerial.h>
#include <Adafruit_BNO08x_RVC.h>

// Connect Arduino Pin 2 to BNO085 SDA (TX Out)
SoftwareSerial softwareSerial(2, 3);

Adafruit_BNO08x_RVC rvc;

void setup() {
  Serial.begin(115200);
  while (!Serial) delay(10);

  Serial.println("Adafruit BNO08x RVC Test!");
  softwareSerial.begin(115200);

  // Pass our software serial port to the RVC library
  if (!rvc.begin(&softwareSerial)) {
    Serial.println("Could not find sensor. Check wiring and P0 pin!");
    while (1) delay(10);
  }
  
  Serial.println("Sensor Found! Starting stream...");
}

void loop() {
  BNO08x_RVC_Data heading;
  
  // Read the incoming continuous data stream
  if (rvc.read(&heading)) {
    Serial.print("Yaw: ");
    Serial.print(heading.yaw);
    Serial.print(" Pitch: ");
    Serial.print(heading.pitch);
    Serial.print(" Roll: ");
    Serial.println(heading.roll);
  }
}

Note: When using UART with an Arduino Uno you can only utilize the gyroscopic features of the unit, you cannot access any of those advanced features (like step counting, shake detection, activity tracking, or alternative heading vectors) as long as you are using the UART-RVC with an Arduino Uno. 

Adafruit Ultimate GPS PA1616S

*add photo 

Use case, any helpful tips?: 

The Adafruit Ultimate GPS module gives any microcontroller project access to location, time, date, speed and heading data---pulled directly from GPS satellites.

Common Uses:

  • asset/vehicle trackers
  • data loggers with timestamps
  • geotag sensor readings
  • drones/robotics needing position feedback
Very Helpful Documentation I referenced

I particularly found the direct computer wiring, computer Arduino wiring and, computer Arduino parsing helpful. Each section tests three stages of working with the GPS module and each have a distinct purpose: 

Direct Computer Wiring 

This bypasses the Arduino's microcontroller entirely and routes the GPS straight to the USB-to-serial chip (using a blank sketch) --> RAW VERIFICATION 

* add wiring photo 

* add blank sketch 

Troubleshooting 

  1. Issue: Serial monitor shows garbled serial output instead of readable NMEA sentences

Becuase the data looks crazy here but nothing is actually introduced to the wiring we know the problem is the GPS hardwire or our wiring and NOT the code. 

ex) :

AI5 ⸮235953.800,V,,,,,0.00,0.00,050180,,,N*42
⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮$GPGGA,000518.800,,,,,0,0,,,M,,M,,*4C

instead of 

$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000518.800,V,,,,,0.00,0.00,050180,,,N*45
$GPGGA,000519.800,,,,,0,0,,,M,,M,,*4D
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000519.800,V,,,,,0.00,0.00,050180,,,N*44

  1. Fix: 
  • confirm correct sketch is uploaded (empty sketch, push arrow on arduino uno sketch page to upload)
  • confirm serial monitor baud is set to 9600 
  • check for incorrect or loose wiring of TX/RX on the microcontroller as well as the sensor 

Breakout Arduino Wiring

Now that we have completed a sanity check that the sensor works as expected without other software variables, breakout Arduino wiring will test the Arduino's own microcontroller reads the incoming serial stream. This will prove that the full data path works. 

GPS --> Arduino --> USB --> Computer 

I used this library on an Arduino Uno and the example sketch GPS_SoftwareSerial_ECHO:

* add photo of library name and example sketch 

* add photo of wiring 

Troubleshooting 

  1. Issue: Serial monitor doesn't output readable NMEA sentences

ex) : ?????????????????????????????????

instead of 

Software3*30
$PMTK705,AXN_2.51_3339_17112000,0004,1616S,1.0*56
⸮Software Serial GPS Test Echo Test
Get version!
$GPGGA,000016.799,,,,,0,0,,,M,,M,,*48
$GPGLL,,,,,000016.799,V,$PMTK705,AXN_2.51_3339_17112000,0004,1616S,1.0*56
$GPGGA,000018.799,,,,,0,0,,,M,,M,,*46
$GPGLL,,,,,000018.799,V,N*74
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPRMC,000018.799,V,,,,,0.00,0.00,050180,,,N*4F

1. Fix: 

  • There is a rate mismatch between SoftwareSerial and teh GPS module 
  • confirm serial monitor baud is set to 115200
  • confirm RX and TX are not switched and your code initializations match your physical wiring 

Breakout Arduino Parsing 

Up until now, we have just been displaying raw text. This is where we will use a library to interpret the NMEA sentences into usable variables like latitude, longitude, speed, time, fix status etc. 

I used the same library and wiring as the previous wiring section on an Arduino Uno but now we will use the example sketch GPS_SoftwareSerial_Parsing:

* add photo of library name and example sketch 

Thermocouple amplifier (MAX31856)

image.png

Code:

Use the Adafruit Max31856 library for Arduino. 

{36E956B3-3DFB-42BA-A77F-30E707C36CFB}.png

Make sure you either use the hardware SPI pins for your microcontroller, or use software SPI and then you can use whatever pins you want but you must specify which pins you are using in the line: Adafruit_MAX31856 maxthermo = Adafruit_MAX31856(9, 10, 11, 12);. Also make sure to wire the positive thermocouple lead to the + terminal, which for a type K thermocouple is yellow (negative is red). For a Type T thermocouple, blue is + and red is negative. Red is always negative for these two, and you can remember that because red is an angry, negative emotion. Forget your intuition about red being positive from DC circuits. Type T and K thermocouples comprise 99% of the thermocouples available for checkout from the ITLL.

You should see this output (data are in Celsius):

{78C3B39A-6966-4403-BE8E-ECCE4EEF824A}.png

You can also open Serial Plotter (ARD IDE 2.x: upper right corner, plot icon, ARD IDE 1.x: Tools-->Serial Plotter), which is nice (If you don't see data, comment out the "Serial.print(".") function so that you are only printing out numbers):

{BDC32E1B-D640-44A6-AB72-E94BDB4A2682}.png

Troubleshooting

Problem 1: The output looked like this:

{BB3B857E-B5BD-460C-B24D-AC9A9928683C}.png

Solution 1: Change from hardware SPI to software SPI and specify the correct pins for CS, DI, DO, and CLK. And DRDY ("data ready" - this is the pin that is pulled low when the amplifier completes its operation and the chip is ready with temperature data for you).

Comment out line 11 and comment in line 9 (remember ctrl + ? is the hot key for commenting in/out one or multiple lines of code):

{3C7D4362-AA4B-46B8-A3FE-EF8379138F1D}.png

Change to:

{A2B6FE7B-037C-4CE6-8D5A-5718C15C27AC}.png


Problem 2: When trying to upload edits, I got this annoying error (at least with an Arduino Nano)

{3C02DD5C-73B8-40AA-B890-CC8D93DE16EE}.png

Solution 2: Close Serial Monitor and try again. If that doesn't fix the problem, close and restart Arduino IDE. 

Problem 3: Everything worked one day, then the next day, on the same computer, etc - the code wouldn't upload and I got this nasty long error message (open dropdown):

yikes

C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o (symbol from plugin): In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o (symbol from plugin): In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o (symbol from plugin): In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_SPIDevice*, unsigned int, _Adafruit_BusIO_SPIRegType, unsigned char, unsigned char, unsigned char)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o (symbol from plugin): In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_SPIDevice*, unsigned int, _Adafruit_BusIO_SPIRegType, unsigned char, unsigned char, unsigned char)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o (symbol from plugin): In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, Adafruit_SPIDevice*, _Adafruit_BusIO_SPIRegType, unsigned int, unsigned char, unsigned char, unsigned char)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o (symbol from plugin): In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, Adafruit_SPIDevice*, _Adafruit_BusIO_SPIRegType, unsigned int, unsigned char, unsigned char, unsigned char)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o (symbol from plugin): In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_GenericDevice*, unsigned int, unsigned char, unsigned char, unsigned char)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o (symbol from plugin): In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_GenericDevice*, unsigned int, unsigned char, unsigned char, unsigned char)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o (symbol from plugin): In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_Register::write(unsigned char*, unsigned char)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o (symbol from plugin): In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_Register::write(unsigned long, unsigned char)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o (symbol from plugin): In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_Register::readCached()'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o (symbol from plugin): In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_Register::read(unsigned char*, unsigned char)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o (symbol from plugin): In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_Register::read()'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o (symbol from plugin): In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_Register::read(unsigned int*)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o (symbol from plugin): In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_Register::read(unsigned char*)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o (symbol from plugin): In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_Register::print(Stream*)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o (symbol from plugin): In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_Register::println(Stream*)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o (symbol from plugin): In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_RegisterBits::Adafruit_BusIO_RegisterBits(Adafruit_BusIO_Register*, unsigned char, unsigned char)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o (symbol from plugin): In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_RegisterBits::Adafruit_BusIO_RegisterBits(Adafruit_BusIO_Register*, unsigned char, unsigned char)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o (symbol from plugin): In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_RegisterBits::read()'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o (symbol from plugin): In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_RegisterBits::write(unsigned long)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o (symbol from plugin): In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_Register::width()'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o (symbol from plugin): In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_Register::setWidth(unsigned char)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o (symbol from plugin): In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_Register::setAddress(unsigned int)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o (symbol from plugin): In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_Register::setAddressWidth(unsigned int)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_BusIO_Register - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_GenericDevice.cpp.o (symbol from plugin): In function `Adafruit_GenericDevice::Adafruit_GenericDevice(void*, bool (*)(void*, unsigned char*, unsigned int), bool (*)(void*, unsigned char const*, unsigned int), bool (*)(void*, unsigned char*, unsigned char, unsigned char*, unsigned int), bool (*)(void*, unsigned char*, unsigned char, unsigned char const*, unsigned int))':
(.text+0x0): multiple definition of `Adafruit_GenericDevice::Adafruit_GenericDevice(void*, bool (*)(void*, unsigned char*, unsigned int), bool (*)(void*, unsigned char const*, unsigned int), bool (*)(void*, unsigned char*, unsigned char, unsigned char*, unsigned int), bool (*)(void*, unsigned char*, unsigned char, unsigned char const*, unsigned int))'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_GenericDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_GenericDevice.cpp.o (symbol from plugin): In function `Adafruit_GenericDevice::Adafruit_GenericDevice(void*, bool (*)(void*, unsigned char*, unsigned int), bool (*)(void*, unsigned char const*, unsigned int), bool (*)(void*, unsigned char*, unsigned char, unsigned char*, unsigned int), bool (*)(void*, unsigned char*, unsigned char, unsigned char const*, unsigned int))':
(.text+0x0): multiple definition of `Adafruit_GenericDevice::Adafruit_GenericDevice(void*, bool (*)(void*, unsigned char*, unsigned int), bool (*)(void*, unsigned char const*, unsigned int), bool (*)(void*, unsigned char*, unsigned char, unsigned char*, unsigned int), bool (*)(void*, unsigned char*, unsigned char, unsigned char const*, unsigned int))'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_GenericDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_GenericDevice.cpp.o (symbol from plugin): In function `Adafruit_GenericDevice::Adafruit_GenericDevice(void*, bool (*)(void*, unsigned char*, unsigned int), bool (*)(void*, unsigned char const*, unsigned int), bool (*)(void*, unsigned char*, unsigned char, unsigned char*, unsigned int), bool (*)(void*, unsigned char*, unsigned char, unsigned char const*, unsigned int))':
(.text+0x0): multiple definition of `Adafruit_GenericDevice::begin()'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_GenericDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_GenericDevice.cpp.o (symbol from plugin): In function `Adafruit_GenericDevice::Adafruit_GenericDevice(void*, bool (*)(void*, unsigned char*, unsigned int), bool (*)(void*, unsigned char const*, unsigned int), bool (*)(void*, unsigned char*, unsigned char, unsigned char*, unsigned int), bool (*)(void*, unsigned char*, unsigned char, unsigned char const*, unsigned int))':
(.text+0x0): multiple definition of `Adafruit_GenericDevice::end()'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_GenericDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_GenericDevice.cpp.o (symbol from plugin): In function `Adafruit_GenericDevice::Adafruit_GenericDevice(void*, bool (*)(void*, unsigned char*, unsigned int), bool (*)(void*, unsigned char const*, unsigned int), bool (*)(void*, unsigned char*, unsigned char, unsigned char*, unsigned int), bool (*)(void*, unsigned char*, unsigned char, unsigned char const*, unsigned int))':
(.text+0x0): multiple definition of `Adafruit_GenericDevice::write(unsigned char const*, unsigned int)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_GenericDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_GenericDevice.cpp.o (symbol from plugin): In function `Adafruit_GenericDevice::Adafruit_GenericDevice(void*, bool (*)(void*, unsigned char*, unsigned int), bool (*)(void*, unsigned char const*, unsigned int), bool (*)(void*, unsigned char*, unsigned char, unsigned char*, unsigned int), bool (*)(void*, unsigned char*, unsigned char, unsigned char const*, unsigned int))':
(.text+0x0): multiple definition of `Adafruit_GenericDevice::read(unsigned char*, unsigned int)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_GenericDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_GenericDevice.cpp.o (symbol from plugin): In function `Adafruit_GenericDevice::Adafruit_GenericDevice(void*, bool (*)(void*, unsigned char*, unsigned int), bool (*)(void*, unsigned char const*, unsigned int), bool (*)(void*, unsigned char*, unsigned char, unsigned char*, unsigned int), bool (*)(void*, unsigned char*, unsigned char, unsigned char const*, unsigned int))':
(.text+0x0): multiple definition of `Adafruit_GenericDevice::readRegister(unsigned char*, unsigned char, unsigned char*, unsigned int)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_GenericDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_GenericDevice.cpp.o (symbol from plugin): In function `Adafruit_GenericDevice::Adafruit_GenericDevice(void*, bool (*)(void*, unsigned char*, unsigned int), bool (*)(void*, unsigned char const*, unsigned int), bool (*)(void*, unsigned char*, unsigned char, unsigned char*, unsigned int), bool (*)(void*, unsigned char*, unsigned char, unsigned char const*, unsigned int))':
(.text+0x0): multiple definition of `Adafruit_GenericDevice::writeRegister(unsigned char*, unsigned char, unsigned char const*, unsigned int)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_GenericDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_I2CDevice.cpp.o (symbol from plugin): In function `Adafruit_I2CDevice::Adafruit_I2CDevice(unsigned char, TwoWire*)':
(.text+0x0): multiple definition of `Adafruit_I2CDevice::Adafruit_I2CDevice(unsigned char, TwoWire*)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_I2CDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_I2CDevice.cpp.o (symbol from plugin): In function `Adafruit_I2CDevice::Adafruit_I2CDevice(unsigned char, TwoWire*)':
(.text+0x0): multiple definition of `Adafruit_I2CDevice::Adafruit_I2CDevice(unsigned char, TwoWire*)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_I2CDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_I2CDevice.cpp.o (symbol from plugin): In function `Adafruit_I2CDevice::Adafruit_I2CDevice(unsigned char, TwoWire*)':
(.text+0x0): multiple definition of `Adafruit_I2CDevice::end()'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_I2CDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_I2CDevice.cpp.o (symbol from plugin): In function `Adafruit_I2CDevice::Adafruit_I2CDevice(unsigned char, TwoWire*)':
(.text+0x0): multiple definition of `Adafruit_I2CDevice::detected()'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_I2CDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_I2CDevice.cpp.o (symbol from plugin): In function `Adafruit_I2CDevice::Adafruit_I2CDevice(unsigned char, TwoWire*)':
(.text+0x0): multiple definition of `Adafruit_I2CDevice::begin(bool)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_I2CDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_I2CDevice.cpp.o (symbol from plugin): In function `Adafruit_I2CDevice::Adafruit_I2CDevice(unsigned char, TwoWire*)':
(.text+0x0): multiple definition of `Adafruit_I2CDevice::write(unsigned char const*, unsigned int, bool, unsigned char const*, unsigned int)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_I2CDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_I2CDevice.cpp.o (symbol from plugin): In function `Adafruit_I2CDevice::Adafruit_I2CDevice(unsigned char, TwoWire*)':
(.text+0x0): multiple definition of `Adafruit_I2CDevice::_read(unsigned char*, unsigned int, bool)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_I2CDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_I2CDevice.cpp.o (symbol from plugin): In function `Adafruit_I2CDevice::Adafruit_I2CDevice(unsigned char, TwoWire*)':
(.text+0x0): multiple definition of `Adafruit_I2CDevice::read(unsigned char*, unsigned int, bool)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_I2CDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_I2CDevice.cpp.o (symbol from plugin): In function `Adafruit_I2CDevice::Adafruit_I2CDevice(unsigned char, TwoWire*)':
(.text+0x0): multiple definition of `Adafruit_I2CDevice::write_then_read(unsigned char const*, unsigned int, unsigned char*, unsigned int, bool)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_I2CDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_I2CDevice.cpp.o (symbol from plugin): In function `Adafruit_I2CDevice::Adafruit_I2CDevice(unsigned char, TwoWire*)':
(.text+0x0): multiple definition of `Adafruit_I2CDevice::address()'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_I2CDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_I2CDevice.cpp.o (symbol from plugin): In function `Adafruit_I2CDevice::Adafruit_I2CDevice(unsigned char, TwoWire*)':
(.text+0x0): multiple definition of `Adafruit_I2CDevice::setSpeed(unsigned long)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_I2CDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp.o (symbol from plugin): In function `Adafruit_SPIDevice::Adafruit_SPIDevice(signed char, unsigned long, _BitOrder, unsigned char, SPIClass*)':
(.text+0x0): multiple definition of `Adafruit_SPIDevice::Adafruit_SPIDevice(signed char, unsigned long, _BitOrder, unsigned char, SPIClass*)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp.o (symbol from plugin): In function `Adafruit_SPIDevice::Adafruit_SPIDevice(signed char, unsigned long, _BitOrder, unsigned char, SPIClass*)':
(.text+0x0): multiple definition of `Adafruit_SPIDevice::Adafruit_SPIDevice(signed char, unsigned long, _BitOrder, unsigned char, SPIClass*)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp.o (symbol from plugin): In function `Adafruit_SPIDevice::Adafruit_SPIDevice(signed char, unsigned long, _BitOrder, unsigned char, SPIClass*)':
(.text+0x0): multiple definition of `Adafruit_SPIDevice::Adafruit_SPIDevice(signed char, signed char, signed char, signed char, unsigned long, _BitOrder, unsigned char)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp.o (symbol from plugin): In function `Adafruit_SPIDevice::Adafruit_SPIDevice(signed char, unsigned long, _BitOrder, unsigned char, SPIClass*)':
(.text+0x0): multiple definition of `Adafruit_SPIDevice::Adafruit_SPIDevice(signed char, signed char, signed char, signed char, unsigned long, _BitOrder, unsigned char)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp.o (symbol from plugin): In function `Adafruit_SPIDevice::Adafruit_SPIDevice(signed char, unsigned long, _BitOrder, unsigned char, SPIClass*)':
(.text+0x0): multiple definition of `Adafruit_SPIDevice::~Adafruit_SPIDevice()'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp.o (symbol from plugin): In function `Adafruit_SPIDevice::Adafruit_SPIDevice(signed char, unsigned long, _BitOrder, unsigned char, SPIClass*)':
(.text+0x0): multiple definition of `Adafruit_SPIDevice::~Adafruit_SPIDevice()'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp.o (symbol from plugin): In function `Adafruit_SPIDevice::Adafruit_SPIDevice(signed char, unsigned long, _BitOrder, unsigned char, SPIClass*)':
(.text+0x0): multiple definition of `Adafruit_SPIDevice::begin()'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp.o (symbol from plugin): In function `Adafruit_SPIDevice::Adafruit_SPIDevice(signed char, unsigned long, _BitOrder, unsigned char, SPIClass*)':
(.text+0x0): multiple definition of `Adafruit_SPIDevice::transfer(unsigned char*, unsigned int)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp.o (symbol from plugin): In function `Adafruit_SPIDevice::Adafruit_SPIDevice(signed char, unsigned long, _BitOrder, unsigned char, SPIClass*)':
(.text+0x0): multiple definition of `Adafruit_SPIDevice::transfer(unsigned char)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp.o (symbol from plugin): In function `Adafruit_SPIDevice::Adafruit_SPIDevice(signed char, unsigned long, _BitOrder, unsigned char, SPIClass*)':
(.text+0x0): multiple definition of `Adafruit_SPIDevice::beginTransaction()'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp.o (symbol from plugin): In function `Adafruit_SPIDevice::Adafruit_SPIDevice(signed char, unsigned long, _BitOrder, unsigned char, SPIClass*)':
(.text+0x0): multiple definition of `Adafruit_SPIDevice::endTransaction()'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp.o (symbol from plugin): In function `Adafruit_SPIDevice::Adafruit_SPIDevice(signed char, unsigned long, _BitOrder, unsigned char, SPIClass*)':
(.text+0x0): multiple definition of `Adafruit_SPIDevice::setChipSelect(int)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp.o (symbol from plugin): In function `Adafruit_SPIDevice::Adafruit_SPIDevice(signed char, unsigned long, _BitOrder, unsigned char, SPIClass*)':
(.text+0x0): multiple definition of `Adafruit_SPIDevice::beginTransactionWithAssertingCS()'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp.o (symbol from plugin): In function `Adafruit_SPIDevice::Adafruit_SPIDevice(signed char, unsigned long, _BitOrder, unsigned char, SPIClass*)':
(.text+0x0): multiple definition of `Adafruit_SPIDevice::endTransactionWithDeassertingCS()'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp.o (symbol from plugin): In function `Adafruit_SPIDevice::Adafruit_SPIDevice(signed char, unsigned long, _BitOrder, unsigned char, SPIClass*)':
(.text+0x0): multiple definition of `Adafruit_SPIDevice::write(unsigned char const*, unsigned int, unsigned char const*, unsigned int)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp.o (symbol from plugin): In function `Adafruit_SPIDevice::Adafruit_SPIDevice(signed char, unsigned long, _BitOrder, unsigned char, SPIClass*)':
(.text+0x0): multiple definition of `Adafruit_SPIDevice::read(unsigned char*, unsigned int, unsigned char)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp.o (symbol from plugin): In function `Adafruit_SPIDevice::Adafruit_SPIDevice(signed char, unsigned long, _BitOrder, unsigned char, SPIClass*)':
(.text+0x0): multiple definition of `Adafruit_SPIDevice::write_then_read(unsigned char const*, unsigned int, unsigned char*, unsigned int, unsigned char)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp.o (symbol from plugin): In function `Adafruit_SPIDevice::Adafruit_SPIDevice(signed char, unsigned long, _BitOrder, unsigned char, SPIClass*)':
(.text+0x0): multiple definition of `Adafruit_SPIDevice::write_and_read(unsigned char*, unsigned int)'
C:\Users\clpo1571\AppData\Local\arduino\sketches\20A885DA607E1CD1BE80325411DFD77C\libraries\Adafruit_BusIO\Adafruit_SPIDevice - Copy.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
exit status 1

Compilation error: exit status 1

Often with long error messages like this, I look at what the very first or last error was. In this case, the first error was: " In function `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)':
(.text+0x0): multiple definition of `Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice*, unsigned int, unsigned char, unsigned char, unsigned char)'"

I decided to run an example SPI code from the Adafruit_BusIO library and lo and behold it looks like the confusion was with multiple BUSIO libraries. 

{7762E4CD-6BE2-488D-B439-D4152D05DEC2}.png

Solution 3: Simply uninstalling and reinstalling the Adafruit Bus IO library fixed the issue completely.

{758D150F-49A8-46E6-92D9-BDB707F59B26}.png