Skip to main content

What new sensors do we have 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 

PM2.5 Air Quality Sensor and Breadboard Adapter Kit

Code link:

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) 
  1. Issue: 
  2. Fix: 

 

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: TheSerial codemonitor providedshows ingarbled serial output instead of readable NMEA sentences

Becuase the linkdata 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 up to be9600 able
  • to
  • check handlefor bothincorrect hardwareor andloose 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 communication.stream. This will prove that the full data path works. 

Fix:GPS Due--> toArduino --> USB --> Computer 

I used this whenlibrary usingon thatan code,Arduino the user needs to uncomment out a few commented-out lines. These lines are the pin set upsUno 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 communicationmonitor lines.baud Useris needsset to make115200
  • sure
  • 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 commentinterpret /the uncommentNMEA asentences fewinto linesusable accordingvariables tolike whatlatitude, typelongitude, 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 seriallibrary communicationname theyand areexample using.sketch