Skip to content

Hardware Support

Bryson Goto edited this page Aug 12, 2021 · 14 revisions

This readme lists the hardware currently supported by Loom, providing a brief description and links to relevant resources for each component

Table of Contents

Processors

Adafruit Feather M0

Resources: Adafruit M0 Documentation | ATSAMD21 Datasheet

Telecommunication Capabilities

LoRa

Resources: Adafruit Feather M0 LoRa Product Page

Dependencies: RadioHead

Features:

  • Send messages up to 2 km line-of-sight.
  • LoRa devices can be addressed with any value between 0 and 255.
  • Can send messages of length up to 251 bytes.

nRF

Resources:

Dependencies: RF24 | RF24Network

The libraries for nRF support (RF24 and RF24Network) need to be the optimized forks, not the defaults provided the Arduino library manager.

Bluetooth

Resources: Adafruit Feather M0 Bluefruit Product Page

Dependencies: Adafruit_BluefruitLE_nRF51

Internet Capabilities

WiFi

Resources: Adafruit Feather M0 WiFi Product Page

Dependencies: WiFi201

Features:

  • Works in Access Point mode as well as WPA-protected client mode

Ethernet

Resources: Adafruit Ethernet Featherwing Product Page

Dependencies: EthernetLarge

Cellular

Resources: SparkFun LTE CAT Shield - SARA-R4 Product Page

Dependencies: TinyGSM | AdruinoHttpClient

Features:

  • The antenna has a gain of 3.8dBi around 1.7GHz to 2.7GHz

Additional Notes:

  • Requires either to be plugged in with micro-USB or use a 5V power supply
  • Requires separate 3.3V connection to communicate with the circuit board
  • Uses a UART communication protocol
  • To automatically turn on within Loom, Pin 5 on the shield needs to be connected to digital write to drive high and low. Otherwise, the Power Button on the shield needs to be pressed after plugged into the power supply to turn the shield on

Data Logging

Hypnos Board

Resources: SD Card | DS3231 RTC | Hypnos GitHub

Dependencies: SD | OPEnS_RTC

Technical Details:

  • In-house OPEnS PCB specialized for data logging, time keeping, and power switching
  • SD card module for data logging
  • DS3231 RTC for time keeping
  • Power switching functionality through onboard MOSFETs

SD Card

Resources: Adafruit Featherwing Product Page | Adafruit Breakout Product Page

Dependencies: SD

Note: There is a pin conflict between the Adafruit SD modules and Adafruit Ethernet Featherwing. Using both at the same time will result in one of the two modules not working

OLED Display

Resources: Adafruit Product Page | Adafruit Breakout Product Page

Dependencies:

DS3231 RTC

Resources: Adafruit DS3231 Precision RTC FeatherWing Product Page

Dependencies: OPEnS_RTC

Adalogger + PCF8523 RTC

Resources: Adafruit Adalogger Featherwing Product Page

Dependencies: OPEnS_RTC

Note: There is a pin conflict between the Adafruit SD modules and Adafruit Ethernet Featherwing. Using both at the same time will result in one of the two modules not working

Adafruit Feather M0 Adalogger

Resources: Adafruit Feather M0 Adalogger Product Page

Dependencies: SD

Note: There is a pin conflict between the Adafruit SD modules and Adafruit Ethernet Featherwing. Using both at the same time will result in one of the two modules not working

Sensors

I2C Sensors

Note: The DS3231 and MPU6050 accelerometer have conflicting I2C addresses as they both share 0x68. The DS3231 address can not be changed, so when using both of these modules together, the DS3231 needs to be set to 0x68 and the MPU6050 should be set to 0x69.


ADS1115 16-bit ADC

Resources: Adafruit Product Page | Adafruit Datasheet

Dependencies: Adafruit ADS1X15

Technical Details

  • 16 bit resolution
  • Sample rate of 8 to 860 samples/second
  • Power supply: 2.0V to 5.5V
  • Low current consumption: 150uA
  • 4 pin selectable I2C address
  • 4 single ended inputs | 2 differential inputs

AS7262 Spectral Sensor (visible)

Resources: SparkFun Product Page | AS7262 Datasheet |GitHub

Dependencies: SparkFun AS726X

Technical Details

  • 6 visible channels: 450nm, 500nm, 550nm, 570nm, 600nm and 650nm, each with 40nm FWHM
  • Visible filter set realized by silicon interference filters
  • 16-bit ADC with digital access
  • Programmable LED drivers
  • 2.7V to 3.6V with I2C interface
  • 2x Qwiic connectors

AS7263 Spectral Sensor (near infrared)

Resources: SparkFun Product Page | AS7263 Datasheet | GitHub

Dependencies: SparkFun_AS726X

Technical Details

  • 6 near-IR channels: 610nm, 680nm, 730nm, 760nm, 810nm and 860nm, each with 20nm FWHM
  • NIR filter set realized by silicon interference filters
  • 16-bit ADC with digital access
  • Programmable LED drivers
  • 2.7V to 3.6V with I2C interface
  • 2x Qwiic connectors

AS7265X Spectral Sensor Triad (visible, near infrared, ultraviolet)

Resources: SparkFun Product Page | AS7265x Datasheet

Dependencies: SparkFun_AS7265x

Technical Details

  • Selectable interface: I2C or Serial (115200bps)
  • 18 frequencies of light sensing from 410nm to 940nm
  • 28.6 nW/cm2 per count
  • Accuracy of +/-12%
  • Integrated 405nm UV, 5700k White, and 875nm IR LEDs
  • Software control over each illumination LED as well as current control
  • Optional external bulb or illumination control
  • Programmed with latest firmware from AMS

FXAS21002 3-Axis Gyroscope

Resources: Adafruit Product Page | FXAS21002 Datasheet

Dependencies: Adafruit_FXAS21002C | Adafruit_AHRS | Adafruit_Sensor

Technical Details

  • 2-3.6V Supply
  • ±250/500/1000/2000°/s configurable range
  • Output Data Rates (ODR) from 12.5 to 800 Hz
  • 16-bit digital output resolution
  • 192 bytes FIFO buffer (32 X/Y/Z samples)
  • I2C 7-bit address 0x20, 0x21

Additional Notes

  • Contained in the same sensor with FXOS8700

FXOS8700 3-Axis Accelerometer/Magnetometer

Resources: Adafruit Product Page | FXOS8700 Datasheet

Dependencies: Adafruit_FXOS8700 | Adafruit_AHRS | Adafruit_Sensor

Technical Details

  • 2-3.6V Supply
  • ±2 g/±4 g/±8 g adjustable acceleration range
  • ±1200 µT magnetic sensor range
  • Output data rates (ODR) from 1.563 Hz to 800 Hz
  • 14-bit ADC resolution for acceleration measurements
  • 16-bit ADC resolution for magnetic measurements
  • I2C 7-bit address 0x1C, 0x1D, 0x1E, 0x1F

Additional Notes

  • Contained in the same sensor with FXAS21002

HX711 Load Cell Amplifier

Resources: SparkFun Product Page | HX711 Datasheet

Dependencies: HX711

Technical Details

  • Operation Voltage: 2.7V–5V
  • Operation Current: < 1.5mA
  • Selectable 10SPS or 80SPS output data rate
  • Simultaneous 50 and 60Hz supply rejection

LIS3DH Accelerometer

Resources: SparkFun Product Page | LIS3DH Datasheet | GitHub

Dependencies: SparkFunLIS3DH

Technical Details

  • 1.7V–3.6V
  • Three Modes:
    • Power-Down
    • Normal
    • Low-Power
  • ±2g/±4g/±8g/±16g Dynamically Selectable Fullscale
  • 10bit, 32-Level FIFO
  • 6D/4D Orientation
  • Free-fall Detection
  • Motion Detection
  • Embedded Temperature Sensor

MB1232 Sonar

Resources: MaxBoti Product Page | MB1232 Datahsheet

Dependencies: None

Technical Details

  • Operates from 3.0-5.5V
  • Range: 0-625cm
  • Resolution of 1 cm
  • Up to 40Hz reading rate
  • 42kHz Ultrasonic sensor measures distance to objects
  • I2C 7-bit address 0x70

Additional Notes

  • Same address as multiplexer (0x70)
  • Multiplexer must use another address if being used with this sensor

MMA8451 Triple-Axis Accelerometer

Resources: Adafruit MMA8451 Accelerometer Breakout Product Page | Adafruit Product Page

Dependencies: Adafruit_Sensor | Adafruit_MMA8451_Library

Technical Details

  • ±2/4/8g
  • 14 bit

MPU6050 Accelerometer / Gyroscope

Resources: Amazon Product Page | MPU6050 Datasheet

Dependencies: MPU6050

Technical Details

  • Use the chip: MPU-6050
  • Power supply :3-5v (internal low dropout regulator)
  • Communication modes: standard IIC communications protocol
  • Chip built-in 16bit AD converter, 16-bit data output
  • Gyroscope range: ± 250 500 1000 2000 ° / s

MS5803 Atmospheric Pressure / Temperature Sensor

Resources: Digi-Key Product Page | MS5803-02BA Datasheet

Dependencies: MS5803_02

Technical Details

  • High resolution module, 20cm
  • Fast conversion down to 1 ms
  • Low power, 1 μA (standby < 0.15 μA)
  • Integrated digital pressure sensor (24 bit ΔΣ ADC)
  • Supply voltage 1.8 to 3.6 V
  • Operating range: 300 to 1100 mbar, -40 to +85 °C
  • Extended Pressure Range: 10 to 2000mbar
  • I2C and SPI interface (Mode 0, 3)
  • No external components (Internal oscillator)
  • Excellent long term stability
  • Hermetically sealable for outdoor devices

Additional Notes

  • Does not come with PCB / breakout

SHT31-D Temperature / Humidity

Resources: Adafruit Product Page | SHT3x-DIS Datasheet

Dependencies: Adafruit_SHT31

Technical Details

  • 2.4-5.5V Supply
  • Temperature: -10-125 °C ±0.3°C
  • Relative Humidity:0-100% ±2%
  • I2C 7-bit address 0x44, 0x45

Additional Notes

  • Has a heater function to remove condensation

STEMMA Soil Sensor

Resources: Adafruit Product Page | Adafruit Datasheet

Dependencies: Adafruit Seesaw Library

Technical Details

  • 3V to 5V rating
  • 2 I2C addresses: 0x36 and 0x39

TMP007 Contact-less Infrared Thermopile Sensor

Resources: Adafruit Product Page

Dependencies: Adafruit_TMP007_Library

TSL2561 Luminosity Sensor

Resources: Adafruit Product Page | TSL2561 Datasheet

Dependencies: Adafruit_TSL2561_U | Adafruit_Sensor

Technical Details

  • Approximates Human eye Response
  • Precisely Measures Illuminance in Diverse Lighting Conditions
  • Temperature range: -30 to 80 *C
  • Dynamic range (Lux): 0.1 to 40,000 Lux
  • Voltage range: 2.7-3.6V
  • Interface: I2C
  • This board/chip uses I2C 7-bit addresses 0x39, 0x29, 0x49, selectable with jumpers

TSL2591 Light Sensor

Resources: Adafruit Product Page | TSL2591 Datasheet

Dependencies: Adafruit_TSL2591 | Adafruit_Sensor

Technical Details

  • Approximates Human eye Response
  • Extremely wide dynamic range 1 to 600,000,000 Counts
  • Lux Range: 188 uLux sensitivity, up to 88,000 Lux input measurements.
  • Temperature range: -30 to 80 C
  • Voltage range: 3.3-5V into onboard regulator
  • I2C 7-bit address 0x29

Additional Notes

  • Settable gain depending on light conditions
  • Settable integration time for collecting light

ZX Distance and Gesture Sensor

Resources: SparkFun Product Page | Sparkfun ZX Datasheet

Dependencies: ZX_Sensor

Technical Details

  • 2-3.6V Supply
  • I2C 7-bit address 0x10, 0x11

Additional Notes

  • Can only use either the gesture function or the read function but can't use both at the same time
  • Has UART capabilities

SPI Sensors


MAX31855 Thermocouple Amplifier

Resources: Adafruit Product Page | Adafruit Datasheet

Dependencies: Adafruit-MAX31855-library

  • Works with any K type thermocouple
  • Will not work with any other kind of thermocouple other than K type
  • -200°C to +1350°C output in 0.25 degree increments - note that K thermocouples have about ±2°C to ±6°C accuracy
  • Internal temperature reading
  • 3.3 to 5v power supply and logic level compliant!
  • SPI data output requires any 3 digital I/O pins.

MAX31856 Universal Thermocouple Amplifier

Loom currently supports operation of the Adafruit MAX31856 Universal Thermocouple Amplifier in both K-type thermocouple operation and generic voltage operation. K-type thermocouple operation allows the user to directly measure temperatures, when the amplifier is used in conjunction with a K-type thermocouple, and the generic voltage operation allows the user to measure the voltage across any thermocouple attached to the amplifier.

Resources: Adafruit Product Page | Adafruit Datasheet

Dependencies: Adafruit MAX31856

IMPORTANT NOTE: The Adafruit thermocouple library has been modified to include functionality to read the thermocouple voltage directly. The modified library can be found here.

SDI-12 Sensors


The following SDI-12 sensors are currently supported by Loom:

SDI-12 Dependencies

Supported SDI-12 Pins

The following pins are available for use with SDI-12 sensors:

  • Feather M0: 10, 11, A0, A1, A3, A4, A5

Additional pins may be operational, but they have not been verified.

Serial Sensors


K30 CO2 Sensor

Resources: CO2Meter Product Page | CO2 Datasheet

Dependencies: Wiring_Private

Technical Details

  • Can be customized in many ways to measure CO2
  • CO2 range: 0 to 100,000 ppm
  • Voltage range: 5.5-14V maximum, but 5 - 9v is preferred range
  • Serial Sensor UART 7-bit address 0xFE, 0X44, 0X00, 0X08, 0X02, 0X9F, 0X25

Additional Notes

For Hardware setup on MO board, these are the following pins to be connected:

  • Feather MO: 11 to RxD, 12 to TxD, USB to G+, and GND to G0

The sensor needs to warm up about 6 minutes to get accurate data value. Please let it warm up first.

Actuators

The following Actuators are currently supported by Project Loom:

Servos (8-Channel PWM or Servo FeatherWing)

Resources: Adafruit Product Page | PCA9685 Datasheet

Dependencies: Adafruit_PWMServorDriver

Technical Details

  • There's an I2C-controlled PWM driver with a built in clock. That means that, unlike the TLC5940 family, you do not need to continuously send it signal tying up your microcontroller, its completely free running!
  • It is 5V compliant, which means you can control it from a 3.3V Feather and still safely drive up to 6V outputs (this is good for when you want to control white or blue LEDs with 3.4+ forward voltages)
  • 6 address select pins so you can stack up to 62 of these on a single i2c bus, a total of 992 outputs - that's a lot of servos or LEDs
  • Adjustable frequency PWM up to about 1.6 KHz
  • 12-bit resolution for each output - for servos, that means about 4us resolution at 60Hz update rate
  • Configurable push-pull or open-drain output

Possible Servos

Stepper Motors (DC Motor + Stepper FeatherWing)

Resources: Adafruit Product Page | TB6612FNG Datasheet

Dependencies: Adafruit_PWMServorDriver | Adafruit MotorShield

Technical Details

  • 4 full H-Bridges: the TB6612 chipset provides 1.2A per bridge with thermal shutdown protection, internal kickback protection diodes. Can run motors on 4.5VDC to 13.5VDC.
  • Up to 4 bi-directional DC motors with individual 12-bit speed selection (so, about 0.02% resolution)
  • Up to 2 stepper motors (unipolar or bipolar) with single coil, double coil, interleaved or micro-stepping.
  • Motors automatically disabled on power-up
  • Big 3.5mm terminal block connectors to easily hook up wires (18-26AWG) and power
  • Polarity protected 2-pin terminal block and jumper to connect external power, for separate logic/motor supplies
  • Completely stackable design: 5 address-select jumper pads means up to 32 stackable wings: that's 64 steppers or 128 DC motors! What on earth could you do with that many steppers? I have no idea but if you come up with something send us a photo because that would be a pretty glorious project.
  • Download the easy-to-use Arduino software library, check out the examples and you're ready to go!

Possible Stepper Motors

Relay

Resources: Adafruit Product Page | G5LE Datasheet

Dependencies: None

Technical Details

  • Latching
  • Switch up to 10A of resistive-load current at 120VAC, 5A at 240VAC.

Neopixel

Resources: Adafruit Page

Dependencies: Adafruit Neopixel

Tri-color LEDs

Other

TCA9548A Multiplexer

Product Page: Adafruit | TCA9548A Datasheet

Dependencies: None

Technical Details

  • 1.8V - 5V Supply
  • Use up to 8 multiplexer simultaneously
  • Use up to 64 I2C sensors with the same address (8 per multiplexer)
  • I2C 7-bit address 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77

Additional Notes

  • Address can be changed by using solder bridges on the back of the board
  • Initial Multiplexer address (0x70) conflicts with MB1232
Clone this wiki locally