Adafruit_Wippersnapper_Offl.../wippersnapper_components.js
2025-08-28 00:19:33 +00:00

3079 lines
100 KiB
JavaScript

window.jsonComponentsObject = {
"components": {
"i2c_output": [
{
"id": "chardisplay20x4",
"displayName": "20x4 Character Display",
"name": "chardisplay20x4",
"description": "Standard 20x4 HD44780 character display with I2C backpack",
"category": "i2c_output",
"dataTypes": [],
"image": "components/i2c_output/chardisplay20x4/image.png",
"productUrl": "https://www.adafruit.com/product/198",
"documentationUrl": "https://learn.adafruit.com/i2c-spi-lcd-backpack"
},
{
"id": "fthrwingoled128x32",
"displayName": "128x32 OLED'wing (Small)",
"name": "fthrwingoled128x32",
"description": "Monochrome 128x32 OLED featherwing display with the default font size (SSD1306)",
"category": "i2c_output",
"dataTypes": [],
"image": "https://cdn-shop.adafruit.com/640x480/2900-10.jpg",
"productUrl": "https://www.adafruit.com/product/2900",
"documentationUrl": "https://learn.adafruit.com/adafruit-oled-featherwing"
},
{
"id": "oled128x64default",
"displayName": "128x64 OLED (Default)",
"name": "oled128x64default",
"description": "Monochrome 128x64 I2C OLED Display with the default font size (SSD1306)",
"category": "i2c_output",
"dataTypes": [],
"image": "components/i2c_output/oled128x64default/image.png",
"productUrl": "https://www.adafruit.com/product/938",
"documentationUrl": "https://learn.adafruit.com/monochrome-oled-breakouts"
},
{
"id": "chardisplay16x2",
"displayName": "16x2 Character Display",
"name": "chardisplay16x2",
"description": "Standard 16x2 HD44780 character display with I2C backpack",
"category": "i2c_output",
"dataTypes": [],
"image": "components/i2c_output/chardisplay16x2/image.png",
"productUrl": "https://www.adafruit.com/product/1447",
"documentationUrl": "https://learn.adafruit.com/i2c-spi-lcd-backpack"
},
{
"id": "oled128x32large",
"displayName": "128x32 OLED (Large Font)",
"name": "oled128x32large",
"description": "Monochrome 128x32 I2C OLED Display with a larger font size (SSD1306).",
"category": "i2c_output",
"dataTypes": [],
"image": "components/i2c_output/oled128x32large/image.png",
"productUrl": "https://www.adafruit.com/product/4440",
"documentationUrl": "https://learn.adafruit.com/monochrome-oled-breakouts"
},
{
"id": "7seg",
"displayName": "7-Segment LED Matrix",
"name": "7seg",
"description": "7-Segment LED Matrix with I2C Backpack",
"category": "i2c_output",
"dataTypes": [],
"image": "components/i2c_output/7seg/image.png",
"productUrl": "https://www.adafruit.com/product/878",
"documentationUrl": "https://learn.adafruit.com/adafruit-led-backpack/0-dot-56-seven-segment-backpack"
},
{
"id": "fthrwingoled128x64",
"displayName": "128x64 OLED'wing (Small)",
"name": "fthrwingoled128x64",
"description": "Monochrome 128x64 OLED featherwing display with the default font size (SH1107)",
"category": "i2c_output",
"dataTypes": [],
"image": "https://cdn-shop.adafruit.com/product-videos/640x480/4650-08.jpg",
"productUrl": "https://www.adafruit.com/product/4650",
"documentationUrl": "https://learn.adafruit.com/adafruit-128x64-oled-featherwing"
},
{
"id": "oled128x32default",
"displayName": "128x32 OLED (Default)",
"name": "oled128x32default",
"description": "Monochrome 128x32 OLED graphic display with the default font size. (SSD1306)",
"category": "i2c_output",
"dataTypes": [],
"image": "components/i2c_output/oled128x32default/image.png",
"productUrl": "https://www.adafruit.com/product/4440",
"documentationUrl": "https://learn.adafruit.com/monochrome-oled-breakouts"
},
{
"id": "oled64x32large",
"displayName": "64x32 OLED (Large Font)",
"name": "oled64x32large",
"description": "Monochrome 64x32 I2C OLED Display with a larger font size. (SSD1306)",
"category": "i2c_output",
"dataTypes": [],
"image": "components/i2c_output/oled64x32large/image.jpg",
"productUrl": "https://www.digikey.com/en/products/detail/midas-displays/MDOB064032AV-WI/18088023",
"documentationUrl": "https://mm.digikey.com/Volume0/opasdata/d220001/medias/docus/4808/MDOB064032AV-WI.pdf"
},
{
"id": "fthrwingoled128x64lg",
"displayName": "128x64 OLED'wing (Large)",
"name": "fthrwingoled128x64lg",
"description": "Monochrome 128x64 OLED featherwing display with the default font size (SH1107)",
"category": "i2c_output",
"dataTypes": [],
"image": "https://cdn-shop.adafruit.com/product-videos/640x480/4650-08.jpg",
"productUrl": "https://www.adafruit.com/product/4650",
"documentationUrl": "https://learn.adafruit.com/adafruit-128x64-oled-featherwing"
},
{
"id": "oled64x32default",
"displayName": "64x32 OLED (Small Font)",
"name": "oled64x32default",
"description": "Monochrome 64x32 I2C OLED Display with the default font size. (SSD1306)",
"category": "i2c_output",
"dataTypes": [],
"image": "components/i2c_output/oled64x32default/image.jpg",
"productUrl": "https://www.digikey.com/en/products/detail/midas-displays/MDOB064032AV-WI/18088023",
"documentationUrl": "https://mm.digikey.com/Volume0/opasdata/d220001/medias/docus/4808/MDOB064032AV-WI.pdf"
},
{
"id": "fthrwingoled128x32lg",
"displayName": "128x32 OLED'wing (Large)",
"name": "fthrwingoled128x32lg",
"description": "Monochrome 128x32 OLED featherwing display with a larger font size (SSD1306)",
"category": "i2c_output",
"dataTypes": [],
"image": "https://cdn-shop.adafruit.com/640x480/2900-10.jpg",
"productUrl": "https://www.adafruit.com/product/2900",
"documentationUrl": "https://learn.adafruit.com/adafruit-oled-featherwing"
},
{
"id": "quadalphanum",
"displayName": "Quad Alphanum. Display",
"name": "quadalphanum",
"description": "Quad Alphanumeric Display 0.54\" Digits w/ I2C Backpack - STEMMA QT / Qwiic",
"category": "i2c_output",
"dataTypes": [],
"image": "components/i2c_output/quadalphanum/image.png",
"productUrl": "https://www.adafruit.com/product/1911",
"documentationUrl": "https://learn.adafruit.com/adafruit-led-backpack/0-54-alphanumeric"
},
{
"id": "oled128x64large",
"displayName": "128x64 OLED (Large Font)",
"name": "oled128x64large",
"description": "Monochrome 128x64 I2C OLED Display with a larger font size (SSD1306)",
"category": "i2c_output",
"dataTypes": [],
"image": "components/i2c_output/oled128x64large/image.png",
"productUrl": "https://www.adafruit.com/product/938",
"documentationUrl": "https://learn.adafruit.com/monochrome-oled-breakouts"
}
],
"uart": [
{
"id": "us100",
"displayName": "US-100 Distance Sensor",
"name": "us100",
"description": "",
"category": "uart",
"dataTypes": [
"raw",
"ambient-temp"
],
"image": "components/uart/us100/image.png",
"productUrl": "https://www.adafruit.com/product/4019",
"documentationUrl": "https://learn.adafruit.com/ultrasonic-sonar-distance-sensors",
"deviceType": "generic_input",
"deviceId": "us100",
"generic_input": {
"period": 30
}
},
{
"id": "pms5003",
"displayName": "pms5003",
"name": "pms5003",
"description": "",
"category": "uart",
"dataTypes": [
"pm10-std",
"pm25-std",
"pm100-std",
"pm10-env",
"pm25-env",
"pm100-env"
],
"image": "components/uart/pms5003/image.png",
"productUrl": "https://www.adafruit.com/product/3686",
"documentationUrl": "https://learn.adafruit.com/pm25-air-quality-sensor",
"deviceType": "pm25aqi",
"deviceId": "pms5003",
"pm25aqi": {
"period": 30000
}
},
{
"id": "pm1006",
"displayName": "VINDRIKTNING (PM1006)",
"name": "pm1006",
"description": "",
"category": "uart",
"dataTypes": [
"pm25-env"
],
"image": "components/uart/pm1006/image.png",
"productUrl": "https://www.ikea.com/us/en/p/vindriktning-air-quality-sensor-60515911/",
"documentationUrl": "https://learn.adafruit.com/ikea-vindriktning-hack-with-qt-py-esp32-s3-and-adafruit-io",
"deviceType": "pm25aqi",
"deviceId": "pm1006",
"pm25aqi": {
"period": 30000,
"is_pm1006": true
}
},
{
"id": "ultimate_gps",
"displayName": "Adafruit Ultimate GPS Breakout",
"name": "ultimate_gps",
"description": "High-performance GPS module with 10Hz updates and external antenna support",
"category": "uart",
"dataTypes": [],
"image": "components/uart/ultimate_gps/image.png",
"productUrl": "https://www.adafruit.com/product/5440",
"documentationUrl": "https://learn.adafruit.com/adafruit-ultimate-gps/",
"deviceType": "gps",
"deviceId": "adaultimategps",
"gps": {
"period": 1000
}
}
],
"ds18x20": [
{
"id": "ds18b20",
"displayName": "DS18B20",
"name": "ds18b20",
"description": "",
"category": "ds18x20",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit"
],
"image": "https://cdn-shop.adafruit.com/640x480/374-01.jpg",
"productUrl": "https://www.adafruit.com/product/374",
"documentationUrl": "https://learn.adafruit.com/using-ds18b20-temperature-sensor-with-wippersnapper"
},
{
"id": "ds18b20_hi_temp_waterproof",
"displayName": "High Temp + Waterproof DS18B20",
"name": "ds18b20_hi_temp_waterproof",
"description": "",
"category": "ds18x20",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit"
],
"image": "https://cdn-shop.adafruit.com/640x480/642-00.jpg",
"productUrl": "https://www.adafruit.com/product/642",
"documentationUrl": "https://learn.adafruit.com/using-ds18b20-temperature-sensor-with-wippersnapper"
},
{
"id": "ds18b20_waterproof",
"displayName": "Waterproof DS18B20",
"name": "ds18b20_waterproof",
"description": "",
"category": "ds18x20",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit"
],
"image": "https://cdn-shop.adafruit.com/640x480/381-01.jpg",
"productUrl": "https://www.adafruit.com/product/381",
"documentationUrl": "https://learn.adafruit.com/using-ds18b20-temperature-sensor-with-wippersnapper"
}
],
"servo": [
{
"id": "servo",
"displayName": "Generic Servo",
"name": "servo",
"description": "",
"category": "servo",
"dataTypes": [],
"image": "https://cdn-shop.adafruit.com/640x480/169-06.jpg",
"productUrl": "https://www.adafruit.com/product/169",
"documentationUrl": "https://learn.adafruit.com/using-servos-with-circuitpython"
}
],
"i2c": [
{
"id": "sen50",
"displayName": "SEN50",
"name": "sen50",
"description": "",
"category": "i2c",
"dataTypes": [
"pm10-std",
"pm25-std",
"pm100-std"
],
"image": "components/i2c/sen50/image.png",
"productUrl": "https://www.digikey.com/en/products/filter/gas-sensors/530?s=N4IgjCBcoLQCxVAYygMwIYBsDOBTANCAPZQDa4ADFRQgLoC%2BjQA",
"documentationUrl": "https://sensirion.com/media/documents/6791EFA0/62A1F68F/Sensirion_Datasheet_Environmental_Node_SEN5x.pdf",
"address": "0x69",
"addresses": [
"0x69"
]
},
{
"id": "tmp117",
"displayName": "TMP117",
"name": "tmp117",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit"
],
"image": "components/i2c/tmp117/image.jpg",
"productUrl": "https://www.adafruit.com/product/4821",
"documentationUrl": "https://learn.adafruit.com/adafruit-tmp117-high-accuracy-i2c-temperature-monitor",
"address": "0x48",
"addresses": [
"0x48",
"0x49",
"0x4A",
"0x4B"
]
},
{
"id": "pct2075",
"displayName": "PCT2075",
"name": "pct2075",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit"
],
"image": "components/i2c/pct2075/image.jpg",
"productUrl": "https://www.adafruit.com/product/4369",
"documentationUrl": "https://learn.adafruit.com/adafruit-pct2075-temperature-sensor",
"address": "0x37",
"addresses": [
"0x37",
"0x36",
"0x35",
"0x2F",
"0x2E",
"0x2D",
"0x2C",
"0x2B",
"0x2A",
"0x29",
"0x28",
"0x77",
"0x76",
"0x75",
"0x74",
"0x73",
"0x72",
"0x71",
"0x70",
"0x4F",
"0x4E",
"0x4D",
"0x4C",
"0x4B",
"0x4A",
"0x49",
"0x48"
]
},
{
"id": "ltr303",
"displayName": "LTR-303",
"name": "ltr303",
"description": "",
"category": "i2c",
"dataTypes": [
{
"displayName": "Ambient Light",
"sensorType": "light"
},
{
"displayName": "Infrared",
"sensorType": "raw"
}
],
"image": "components/i2c/ltr303/image.jpg",
"productUrl": "https://www.adafruit.com/product/5610",
"documentationUrl": "https://learn.adafruit.com/adafruit-ltr-329-ltr-303",
"address": "0x29",
"addresses": [
"0x29"
]
},
{
"id": "mcp9808",
"displayName": "MCP9808",
"name": "mcp9808",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit"
],
"image": "https://cdn-shop.adafruit.com/640x480/1782-03.jpg",
"productUrl": "https://www.adafruit.com/product/1782",
"documentationUrl": "https://learn.adafruit.com/adafruit-mcp9808-precision-i2c-temperature-sensor-guide/overview",
"address": "0x18",
"addresses": [
"0x18",
"0x19",
"0x1A",
"0x1B",
"0x1C",
"0x1D",
"0x1E",
"0x1F"
]
},
{
"id": "ina219",
"displayName": "INA219",
"name": "ina219",
"description": "",
"category": "i2c",
"dataTypes": [
"voltage",
"current"
],
"image": "https://cdn-shop.adafruit.com/640x480/904-09.jpg",
"productUrl": "https://www.adafruit.com/product/904",
"documentationUrl": "https://learn.adafruit.com/adafruit-ina219-current-sensor-breakout",
"address": "0x40",
"addresses": [
"0x40",
"0x41",
"0x44",
"0x45"
]
},
{
"id": "sgp40",
"displayName": "SGP40",
"name": "sgp40",
"description": "",
"category": "i2c",
"dataTypes": [
"voc-index",
{
"displayName": "Raw (For Reference Only)",
"sensorType": "raw"
}
],
"image": "https://cdn-shop.adafruit.com/640x480/4829-06.jpg",
"productUrl": "https://www.adafruit.com/product/4829",
"documentationUrl": "https://learn.adafruit.com/adafruit-sgp40",
"address": "0x59",
"addresses": [
"0x59"
]
},
{
"id": "stemma_soil",
"displayName": "STEMMA Soil Sensor",
"name": "stemma_soil",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
{
"displayName": "Capacitive Sensor",
"sensorType": "raw"
}
],
"image": "https://cdn-shop.adafruit.com/640x480/4026-01.jpg",
"productUrl": "https://www.adafruit.com/product/4026",
"documentationUrl": "https://learn.adafruit.com/adafruit-stemma-soil-sensor-i2c-capacitive-moisture-sensor",
"address": "0x36",
"addresses": [
"0x36",
"0x37",
"0x38",
"0x39"
]
},
{
"id": "ina238",
"displayName": "INA238",
"name": "ina238",
"description": "85V, 16-bit, high-precision power monitor (up to 10A, 0.1% gain error)",
"category": "i2c",
"dataTypes": [
"voltage",
"current"
],
"image": "https://cdn-shop.adafruit.com/640x480/6349-00.jpg",
"productUrl": "https://www.adafruit.com/product/6349",
"documentationUrl": "https://learn.adafruit.com/adafruit-ina238-dc-current-voltage-power-monitor",
"address": "0x40",
"addresses": [
"0x40",
"0x41",
"0x44",
"0x45"
]
},
{
"id": "shtc3",
"displayName": "SHTC3",
"name": "shtc3",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity"
],
"image": "https://cdn-shop.adafruit.com/640x480/4636-05.jpg",
"productUrl": "https://www.adafruit.com/product/4636",
"documentationUrl": "https://learn.adafruit.com/adafruit-sensirion-shtc3-temperature-humidity-sensor",
"address": "0x70",
"addresses": [
"0x70"
]
},
{
"id": "sen54",
"displayName": "SEN54",
"name": "sen54",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity",
"pm10-std",
"pm25-std",
"pm100-std",
"voc-index"
],
"image": "components/i2c/sen54/image.png",
"productUrl": "https://www.digikey.com/en/products/filter/gas-sensors/530?s=N4IgjCBcoLQCxVAYygMwIYBsDOBTANCAPZQDa4ADFRQgLoC%2BjQA",
"documentationUrl": "https://sensirion.com/media/documents/6791EFA0/62A1F68F/Sensirion_Datasheet_Environmental_Node_SEN5x.pdf",
"address": "0x69",
"addresses": [
"0x69"
]
},
{
"id": "mcp3421",
"displayName": "MCP3421",
"name": "mcp3421",
"description": "18-bit ADC. Great for Strain Gauges, Thermocouples and Pressure sensors, between 0 and 2.048 volts",
"category": "i2c",
"dataTypes": [
{
"displayName": "ADC Reading",
"sensorType": "raw"
}
],
"image": "components/i2c/mcp3421/image.jpg",
"productUrl": "https://www.adafruit.com/product/5870",
"documentationUrl": "https://learn.adafruit.com/adafruit-mcp3421-18-bit-adc",
"address": "0x68",
"addresses": [
"0x68"
]
},
{
"id": "ens160",
"displayName": "ENS160",
"name": "ens160",
"description": "",
"category": "i2c",
"dataTypes": [
"tvoc",
"eco2",
{
"displayName": "AQI",
"sensorType": "raw"
}
],
"image": "components/i2c/ens160/image.jpg",
"productUrl": "https://www.adafruit.com/product/5606",
"documentationUrl": "https://learn.adafruit.com/adafruit-ens160-mox-gas-sensor",
"address": "0x52",
"addresses": [
"0x52",
"0x53"
]
},
{
"id": "sen55",
"displayName": "SEN55",
"name": "sen55",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity",
"pm10-std",
"pm25-std",
"pm100-std",
"voc-index",
"nox-index"
],
"image": "components/i2c/sen55/image.png",
"productUrl": "https://www.digikey.com/en/products/filter/gas-sensors/530?s=N4IgjCBcoLQCxVAYygMwIYBsDOBTANCAPZQDa4ADFRQgLoC%2BjQA",
"documentationUrl": "https://sensirion.com/media/documents/6791EFA0/62A1F68F/Sensirion_Datasheet_Environmental_Node_SEN5x.pdf",
"address": "0x69",
"addresses": [
"0x69"
]
},
{
"id": "scd30",
"displayName": "SCD30",
"name": "scd30",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity",
"co2"
],
"image": "https://cdn-shop.adafruit.com/product-videos/640x480/4867-05.jpg",
"productUrl": "https://www.adafruit.com/product/4867",
"documentationUrl": "https://learn.adafruit.com/adafruit-scd30",
"address": "0x61",
"addresses": [
"0x61"
]
},
{
"id": "vl53l1x",
"displayName": "VL53L1X",
"name": "vl53l1x",
"description": "Time of Flight (ToF) distance sensor with about ~30 to 4000mm range",
"category": "i2c",
"dataTypes": [
{
"displayName": "ToF Sensor",
"sensorType": "proximity"
}
],
"image": "components/i2c/vl53l1x/image.jpg",
"productUrl": "https://www.adafruit.com/product/3967",
"documentationUrl": "https://learn.adafruit.com/adafruit-vl53l1x",
"address": "0x29",
"addresses": [
"0x29"
]
},
{
"id": "sht40",
"displayName": "SHT40",
"name": "sht40",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity"
],
"image": "https://cdn-shop.adafruit.com/640x480/4885-05.jpg",
"productUrl": "https://www.adafruit.com/product/4885",
"documentationUrl": "https://learn.adafruit.com/adafruit-sht40-temperature-humidity-sensor",
"address": "0x44",
"addresses": [
"0x44"
]
},
{
"id": "ds2484",
"displayName": "DS2484",
"name": "ds2484",
"description": "Adafruit DS2484 I2C to 1-Wire Bus Adapter Breakout - Converts a single DS18b20 temperature sensor to I2C",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit"
],
"image": "https://cdn-shop.adafruit.com/640x480/5976-00.jpg",
"productUrl": "https://www.adafruit.com/product/5976",
"documentationUrl": "https://learn.adafruit.com/adafruit-dps310-precision-barometric-pressure-sensor",
"address": "0x18",
"addresses": [
"0x18"
]
},
{
"id": "mcp9601",
"displayName": "MCP9601",
"name": "mcp9601",
"description": "Thermocouple / ambient temperature sensor. *Note* Needs hotplugging after i2c scans + selecting component!",
"category": "i2c",
"dataTypes": [
{
"displayName": "Ambient Temperature (°C)",
"sensorType": "ambient-temp"
},
{
"displayName": "Ambient Temperature (°F)",
"sensorType": "ambient-temp-fahrenheit"
},
{
"displayName": "Type K Thermocouple (°C)",
"sensorType": "raw"
}
],
"image": "https://cdn-shop.adafruit.com/product-videos/640x480/5165-05.jpg",
"productUrl": "https://www.adafruit.com/product/5165",
"documentationUrl": "https://learn.adafruit.com/adafruit-mcp9601",
"address": "0x67",
"addresses": [
"0x67",
"0x66",
"0x65",
"0x64",
"0x63",
"0x62",
"0x61",
"0x60"
]
},
{
"id": "htu21d",
"displayName": "HTU21D",
"name": "htu21d",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity"
],
"image": "https://cdn-shop.adafruit.com/640x480/1899-04.jpg",
"productUrl": "https://www.adafruit.com/product/1899",
"documentationUrl": "https://learn.adafruit.com/adafruit-htu21d-f-temperature-humidity-sensor/overview",
"address": "0x40",
"addresses": [
"0x40"
]
},
{
"id": "ina228",
"displayName": "INA228",
"name": "ina228",
"description": "85V, 20-bit, ultra-high-precision power monitor (max 10A, 0.05% gain error)",
"category": "i2c",
"dataTypes": [
"voltage",
"current"
],
"image": "https://cdn-shop.adafruit.com/640x480/5832-00.jpg",
"productUrl": "https://www.adafruit.com/product/5832",
"documentationUrl": "https://learn.adafruit.com/adafruit-ina228-i2c-power-monitor",
"address": "0x40",
"addresses": [
"0x40",
"0x41",
"0x44",
"0x45"
]
},
{
"id": "nau7802",
"displayName": "NAU7802",
"name": "nau7802",
"description": "24-bit ADC with 128x gain, used with a load cell for weight/force sensing",
"category": "i2c",
"dataTypes": [
{
"displayName": "Weight Sensor",
"sensorType": "raw"
}
],
"image": "components/i2c/nau7802/image.jpg",
"productUrl": "https://www.adafruit.com/product/4538",
"documentationUrl": "https://learn.adafruit.com/adafruit-nau7802-24-bit-adc-stemma-qt-qwiic/overview",
"address": "0x2A",
"addresses": [
"0x2A"
]
},
{
"id": "lc709203f",
"displayName": "LC709203F",
"name": "lc709203f",
"description": "",
"category": "i2c",
"dataTypes": [
{
"displayName": "Battery Cell Voltage",
"sensorType": "voltage"
},
{
"displayName": "Battery Cell Percent",
"sensorType": "unitless-percent"
}
],
"image": "https://cdn-shop.adafruit.com/640x480/4712-07.jpg",
"productUrl": "https://www.adafruit.com/product/4712",
"documentationUrl": "https://learn.adafruit.com/adafruit-lc709203f-lipo-lipoly-battery-monitor",
"address": "0x0B",
"addresses": [
"0x0B"
]
},
{
"id": "am2301b",
"displayName": "AM2301B",
"name": "am2301b",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity"
],
"image": "https://cdn-shop.adafruit.com/640x480/5181-05.jpg",
"productUrl": "https://www.adafruit.com/product/5181",
"documentationUrl": "https://cdn-shop.adafruit.com/product-files/5181/5181_AM2301B.pdf",
"address": "0x38",
"addresses": [
"0x38"
]
},
{
"id": "lps28dfw",
"displayName": "LPS28DFW",
"name": "lps28dfw",
"description": "From 260 to 4060 hPa, this is our largest range pressure sensor (24bit).",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"pressure"
],
"image": "components/i2c/lps28dfw/image.jpg",
"productUrl": "https://www.adafruit.com/product/6067",
"documentationUrl": "https://learn.adafruit.com/adafruit-lps28-pressure-sensor",
"address": "0x5C",
"addresses": [
"0x5C",
"0x5D"
]
},
{
"id": "tsl2591",
"displayName": "TSL2591",
"name": "tsl2591",
"description": "",
"category": "i2c",
"dataTypes": [
"light"
],
"image": "https://cdn-shop.adafruit.com/640x480/1980-08.jpg",
"productUrl": "https://www.adafruit.com/product/1980",
"documentationUrl": "https://learn.adafruit.com/adafruit-tsl2591",
"address": "0x29",
"addresses": [
"0x29",
"0x39",
"0x49"
]
},
{
"id": "sht41",
"displayName": "SHT41",
"name": "sht41",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity"
],
"image": "https://cdn-shop.adafruit.com/640x480/5776-05.jpg",
"productUrl": "https://www.adafruit.com/product/5776",
"documentationUrl": "https://learn.adafruit.com/adafruit-sht40-temperature-humidity-sensor",
"address": "0x44",
"addresses": [
"0x44"
]
},
{
"id": "tc74a0",
"displayName": "TC74A0",
"name": "tc74a0",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit"
],
"image": "https://cdn-shop.adafruit.com/640x480/4375-03.jpg",
"productUrl": "https://www.adafruit.com/product/4375",
"documentationUrl": "https://learn.adafruit.com/adafruit-pct2075-temperature-sensor",
"address": "0x48",
"addresses": [
"0x48"
]
},
{
"id": "bmp280",
"displayName": "BMP280",
"name": "bmp280",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"pressure",
"altitude"
],
"image": "https://cdn-shop.adafruit.com/640x480/2651-08.jpg",
"productUrl": "https://www.adafruit.com/product/2651",
"documentationUrl": "https://learn.adafruit.com/adafruit-bmp280-barometric-pressure-plus-temperature-sensor-breakout",
"address": "0x77",
"addresses": [
"0x77",
"0x76"
]
},
{
"id": "aht21",
"displayName": "AHT21",
"name": "aht21",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity"
],
"image": "components/i2c/aht21/image.jpg",
"documentationUrl": "http://www.aosong.com/en/products-60.html",
"address": "0x38",
"addresses": [
"0x38"
]
},
{
"id": "dht20",
"displayName": "DHT20",
"name": "dht20",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity"
],
"image": "https://cdn-shop.adafruit.com/640x480/5183-04.jpg",
"productUrl": "https://www.adafruit.com/product/5183",
"documentationUrl": "https://cdn-shop.adafruit.com/product-files/5183/5193_DHT20.pdf",
"address": "0x38",
"addresses": [
"0x38"
]
},
{
"id": "vcnl4200",
"displayName": "VCNL4200",
"name": "vcnl4200",
"description": "Proximity sensor works from 0 to 1.5m (about 59 inches) & light sensor with range of 0.003 to 1570 lux",
"category": "i2c",
"dataTypes": [
"light",
"proximity"
],
"image": "https://cdn-shop.adafruit.com/640x480/6064-00.jpg",
"productUrl": "https://www.adafruit.com/product/6064",
"documentationUrl": "https://learn.adafruit.com/adafruit-vcnl4200-long-distance-ir-proximity-and-light-sensor",
"address": "0x51",
"addresses": [
"0x51"
]
},
{
"id": "vl53l4cd",
"displayName": "VL53L4CD",
"name": "vl53l4cd",
"description": "Time of Flight (ToF) distance sensor with about ~1 to 1300mm range",
"category": "i2c",
"dataTypes": [
{
"displayName": "ToF Sensor",
"sensorType": "proximity"
}
],
"image": "components/i2c/vl53l4cd/image.jpg",
"productUrl": "https://www.adafruit.com/product/5396",
"documentationUrl": "https://learn.adafruit.com/adafruit-vl53l4cd-time-of-flight-distance-sensor",
"address": "0x29",
"addresses": [
"0x29"
]
},
{
"id": "sen66",
"displayName": "SEN66",
"name": "sen66",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity",
"pm10-std",
"pm25-std",
"pm100-std",
"voc-index",
"nox-index",
"co2"
],
"image": "https://cdn-shop.adafruit.com/640x480/6331-06.jpg",
"productUrl": "https://www.adafruit.com/product/6331",
"documentationUrl": "https://sensirion.com/media/documents/FAFC548D/6731FFFA/Sensirion_Datasheet_SEN6x.pdf",
"address": "0x6B",
"addresses": [
"0x6B"
]
},
{
"id": "bh1750",
"displayName": "BH1750",
"name": "bh1750",
"description": "",
"category": "i2c",
"dataTypes": [
"light"
],
"image": "https://cdn-shop.adafruit.com/640x480/4681-06.jpg",
"productUrl": "https://www.adafruit.com/product/4681",
"documentationUrl": "https://learn.adafruit.com/adafruit-bh1750-ambient-light-sensor",
"address": "0x23",
"addresses": [
"0x23",
"0x5C"
]
},
{
"id": "si7021",
"displayName": "Si7021",
"name": "si7021",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity"
],
"image": "https://cdn-shop.adafruit.com/640x480/3251-08.jpg",
"productUrl": "https://www.adafruit.com/product/3251",
"documentationUrl": "https://learn.adafruit.com/adafruit-si7021-temperature-plus-humidity-sensor/overview",
"address": "0x40",
"addresses": [
"0x40"
]
},
{
"id": "hts221",
"displayName": "HTS221",
"name": "hts221",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity"
],
"image": "https://cdn-shop.adafruit.com/640x480/4535-04.jpg",
"productUrl": "https://www.adafruit.com/product/4535",
"documentationUrl": "https://learn.adafruit.com/adafruit-hts221-temperature-humidity-sensor/overview",
"address": "0x5F",
"addresses": [
"0x5F"
]
},
{
"id": "ltr390",
"displayName": "LTR-390",
"name": "ltr390",
"description": "",
"category": "i2c",
"dataTypes": [
{
"displayName": "Ambient Light",
"sensorType": "light"
},
{
"displayName": "UV Count",
"sensorType": "raw"
}
],
"image": "components/i2c/ltr390/image.jpg",
"productUrl": "https://www.adafruit.com/product/4831",
"documentationUrl": "https://learn.adafruit.com/adafruit-ltr390-uv-sensor",
"address": "0x53",
"addresses": [
"0x53"
]
},
{
"id": "lps35hw",
"displayName": "LPS35HW",
"name": "lps35hw",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"pressure"
],
"image": "https://cdn-shop.adafruit.com/640x480/4258-10.jpg",
"productUrl": "https://www.adafruit.com/product/4258",
"documentationUrl": "https://learn.adafruit.com/lps35hw-water-resistant-pressure-sensor",
"address": "0x5D",
"addresses": [
"0x5D",
"0x5C"
]
},
{
"id": "lps25hb",
"displayName": "LPS25HB",
"name": "lps25hb",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"pressure"
],
"image": "components/i2c/lps25hb/image.jpg",
"productUrl": "https://www.adafruit.com/product/4530",
"documentationUrl": "https://learn.adafruit.com/adafruit-lps25-pressure-sensor",
"address": "0x5D",
"addresses": [
"0x5D",
"0x5C"
]
},
{
"id": "sht30_mesh",
"displayName": "Weatherproof SHT30",
"name": "sht30_mesh",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity"
],
"image": "https://cdn-shop.adafruit.com/640x480/4099-09.jpg",
"productUrl": "https://www.adafruit.com/product/4099",
"documentationUrl": "https://learn.adafruit.com/adafruit-sht31-d-temperature-and-humidity-sensor-breakout",
"address": "0x44",
"addresses": [
"0x44"
]
},
{
"id": "ms8607",
"displayName": "MS8607",
"name": "ms8607",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity",
"pressure"
],
"image": "https://cdn-shop.adafruit.com/640x480/4716-01.jpg",
"productUrl": "https://www.adafruit.com/product/4716",
"documentationUrl": "https://learn.adafruit.com/adafruit-te-ms8607-pht-sensor",
"address": "0x40",
"addresses": [
"0x40",
"0x76"
]
},
{
"id": "veml7700",
"displayName": "VEML7700",
"name": "veml7700",
"description": "",
"category": "i2c",
"dataTypes": [
"light"
],
"image": "https://cdn-shop.adafruit.com/640x480/4162-10.jpg",
"productUrl": "https://www.adafruit.com/product/4162",
"documentationUrl": "https://learn.adafruit.com/adafruit-veml7700",
"address": "0x10",
"addresses": [
"0x10"
]
},
{
"id": "bme680",
"displayName": "BME680",
"name": "bme680",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity",
"pressure",
"altitude",
"gas-resistance"
],
"image": "https://cdn-shop.adafruit.com/640x480/3660-08.jpg",
"productUrl": "https://www.adafruit.com/product/3660",
"documentationUrl": "https://learn.adafruit.com/adafruit-bme680-humidity-temperature-barometic-pressure-voc-gas",
"address": "0x77",
"addresses": [
"0x77",
"0x76"
]
},
{
"id": "vl53l4cx",
"displayName": "VL53L4CX",
"name": "vl53l4cx",
"description": "Time of Flight (ToF) distance sensor with about ~1 to 6000mm range + 'multi object detection'",
"category": "i2c",
"dataTypes": [
{
"displayName": "ToF Sensor - Object 1",
"sensorType": "proximity"
},
{
"displayName": "ToF Sensor - Object 2",
"sensorType": "raw"
}
],
"image": "https://cdn-shop.adafruit.com/640x480/5425-02.jpg",
"productUrl": "https://www.adafruit.com/product/5425",
"documentationUrl": "https://learn.adafruit.com/adafruit-vl53l4cx-time-of-flight-distance-sensor",
"address": "0x29",
"addresses": [
"0x29"
]
},
{
"id": "vl6180x",
"displayName": "VL6180X",
"name": "vl6180x",
"description": "Time of Flight (ToF) distance sensor with about ~5 to 200mm range",
"category": "i2c",
"dataTypes": [
{
"displayName": "ToF Sensor",
"sensorType": "proximity"
},
"light"
],
"image": "components/i2c/vl6180x/image.jpg",
"productUrl": "https://www.adafruit.com/product/3316",
"documentationUrl": "https://learn.adafruit.com/adafruit-vl6180x-time-of-flight-micro-lidar-distance-sensor-breakout",
"address": "0x29",
"addresses": [
"0x29"
]
},
{
"id": "vcnl4020",
"displayName": "VCNL4020",
"name": "vcnl4020",
"description": "Proximity sensor works from 0 to 200mm (about 7.5 inches) & light sensor with range of 0.26 to 16,000 lux.",
"category": "i2c",
"dataTypes": [
"light",
"proximity"
],
"image": "components/i2c/vcnl4020/image.jpg",
"productUrl": "https://www.adafruit.com/product/5810",
"documentationUrl": "https://learn.adafruit.com/adafruit-vcnl4020-proximity-and-light-sensor",
"address": "0x13",
"addresses": [
"0x13"
]
},
{
"id": "bme688",
"displayName": "BME688",
"name": "bme688",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity",
"pressure",
"altitude",
"gas-resistance"
],
"image": "https://cdn-shop.adafruit.com/640x480/5046-05.jpg",
"productUrl": "https://www.adafruit.com/product/5046",
"documentationUrl": "https://learn.adafruit.com/adafruit-bme680-humidity-temperature-barometic-pressure-voc-gas",
"address": "0x77",
"addresses": [
"0x77",
"0x76"
]
},
{
"id": "gps_sfe_ubx",
"displayName": "MAX-M10S GPS/GNSS",
"name": "gps_sfe_ubx",
"description": "High-precision GNSS receiver with multi-constellation support and I2C interface",
"category": "i2c",
"dataTypes": [],
"image": "components/i2c/gps_sfe_ubx/image.png",
"productUrl": "https://www.sparkfun.com/sparkfun-gnss-receiver-breakout-max-m10s-qwiic.html",
"documentationUrl": "https://learn.sparkfun.com/tutorials/gnss-receiver-breakout---max-m10s-qwiic-hookup-guide",
"address": "0x42",
"addresses": [
"0x42"
],
"isGps": true,
"gps": {
"period": 1000
}
},
{
"id": "adt7410",
"displayName": "ADT7410",
"name": "adt7410",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit"
],
"image": "https://cdn-shop.adafruit.com/640x480/4089-05.jpg",
"productUrl": "https://www.adafruit.com/product/4089",
"documentationUrl": "https://learn.adafruit.com/adt7410-breakout",
"address": "0x48",
"addresses": [
"0x48",
"0x49",
"0x4A",
"0x4B"
]
},
{
"id": "sgp30",
"displayName": "SGP30",
"name": "sgp30",
"description": "",
"category": "i2c",
"dataTypes": [
"eco2",
"tvoc"
],
"image": "https://cdn-shop.adafruit.com/640x480/3709-07.jpg",
"productUrl": "https://www.adafruit.com/product/3709",
"documentationUrl": "https://learn.adafruit.com/adafruit-sgp30-gas-tvoc-eco2-mox-sensor",
"address": "0x58",
"addresses": [
"0x58"
]
},
{
"id": "vcnl4040",
"displayName": "VCNL4040",
"name": "vcnl4040",
"description": "Proximity sensor works from 0 to 200mm (about 7.5 inches) & light sensor with range of 0.0125 to 6,553.5 lux",
"category": "i2c",
"dataTypes": [
"light",
"proximity"
],
"image": "https://cdn-shop.adafruit.com/640x480/4161-06.jpg",
"productUrl": "https://www.adafruit.com/product/4161",
"documentationUrl": "https://learn.adafruit.com/adafruit-vcnl4040-proximity-sensor",
"address": "0x60",
"addresses": [
"0x60"
]
},
{
"id": "htu31d",
"displayName": "HTU31D",
"name": "htu31d",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity"
],
"image": "https://cdn-shop.adafruit.com/640x480/2857-03.jpg",
"productUrl": "https://www.adafruit.com/product/2857",
"documentationUrl": "https://www.adafruit.com/product/4832",
"address": "0x40",
"addresses": [
"0x40",
"0x41"
]
},
{
"id": "lps33hw",
"displayName": "LPS33HW",
"name": "lps33hw",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"pressure"
],
"image": "components/i2c/lps33hw/image.jpg",
"productUrl": "https://www.adafruit.com/product/4414",
"documentationUrl": "https://learn.adafruit.com/lps35hw-water-resistant-pressure-sensor",
"address": "0x5D",
"addresses": [
"0x5D",
"0x5C"
]
},
{
"id": "bmp390",
"displayName": "BMP390",
"name": "bmp390",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"pressure",
"altitude"
],
"image": "https://cdn-shop.adafruit.com/640x480/4816-05.jpg",
"productUrl": "https://www.adafruit.com/product/4816",
"documentationUrl": "https://learn.adafruit.com/adafruit-bmp388-bmp390-bmp3xx",
"address": "0x77",
"addresses": [
"0x77",
"0x76"
]
},
{
"id": "sht20",
"displayName": "SHT20",
"name": "sht20",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity"
],
"image": "components/i2c/sht20/image.jpg",
"productUrl": "https://www.digikey.com/en/products/detail/dfrobot/SEN0227/7897986",
"documentationUrl": "https://sensirion.com/media/documents/CCDE1377/635000A2/Sensirion_Datasheet_Humidity_Sensor_SHT20.pdf",
"address": "0x40",
"addresses": [
"0x40"
]
},
{
"id": "dps310",
"displayName": "DPS310",
"name": "dps310",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"pressure"
],
"image": "https://cdn-shop.adafruit.com/640x480/4494-05.jpg",
"productUrl": "https://www.adafruit.com/product/4494",
"documentationUrl": "https://learn.adafruit.com/adafruit-dps310-precision-barometric-pressure-sensor",
"address": "0x77",
"addresses": [
"0x77",
"0x76"
]
},
{
"id": "scd40",
"displayName": "SCD40/SCD41",
"name": "scd40",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity",
"co2"
],
"image": "https://cdn-shop.adafruit.com/640x480/5187-08.jpg",
"productUrl": "https://www.adafruit.com/product/5187",
"documentationUrl": "https://learn.adafruit.com/adafruit-scd-40-and-scd-41",
"address": "0x62",
"addresses": [
"0x62"
]
},
{
"id": "bmp388",
"displayName": "BMP388",
"name": "bmp388",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"pressure",
"altitude"
],
"image": "https://cdn-shop.adafruit.com/640x480/3966-10.jpg",
"productUrl": "https://www.adafruit.com/product/3966",
"documentationUrl": "https://learn.adafruit.com/adafruit-bmp388-bmp390-bmp3xx",
"address": "0x77",
"addresses": [
"0x77",
"0x76"
]
},
{
"id": "hdc302x",
"displayName": "HDC302x",
"name": "hdc302x",
"description": "Precision temperature (±0.1°C typical) and humidity sensors (±0.5% typ). HDC3020 / HDC3021 / HDC3022",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity"
],
"image": "https://cdn-shop.adafruit.com/640x480/5989-07.jpg",
"productUrl": "https://www.adafruit.com/product/5989",
"documentationUrl": "https://learn.adafruit.com/adafruit-hdc3021-precision-temperature-humidity-sensor/overview",
"address": "0x44",
"addresses": [
"0x44",
"0x45",
"0x46",
"0x47"
]
},
{
"id": "vl53l0x",
"displayName": "VL53L0X",
"name": "vl53l0x",
"description": "Time of Flight (ToF) distance sensor with about ~50 to 1200mm range",
"category": "i2c",
"dataTypes": [
{
"displayName": "ToF Sensor",
"sensorType": "proximity"
}
],
"image": "components/i2c/vl53l0x/image.jpg",
"productUrl": "https://www.adafruit.com/product/3317",
"documentationUrl": "https://learn.adafruit.com/adafruit-vl53l0x-micro-lidar-distance-sensor-breakout",
"address": "0x29",
"addresses": [
"0x29"
]
},
{
"id": "sen5x",
"displayName": "SEN5x",
"name": "sen5x",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity",
"pm10-std",
"pm25-std",
"pm100-std",
"voc-index",
"nox-index"
],
"image": "components/i2c/sen5x/image.png",
"productUrl": "https://www.digikey.com/en/products/filter/gas-sensors/530?s=N4IgjCBcoLQCxVAYygMwIYBsDOBTANCAPZQDa4ADFRQgLoC%2BjQA",
"documentationUrl": "https://sensirion.com/media/documents/6791EFA0/62A1F68F/Sensirion_Datasheet_Environmental_Node_SEN5x.pdf",
"address": "0x69",
"addresses": [
"0x69"
]
},
{
"id": "bme280",
"displayName": "BME280",
"name": "bme280",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity",
"pressure",
"altitude"
],
"image": "https://cdn-shop.adafruit.com/640x480/2652-04.jpg",
"productUrl": "https://www.adafruit.com/product/2652",
"documentationUrl": "https://learn.adafruit.com/adafruit-bme280-humidity-barometric-pressure-temperature-sensor-breakout",
"address": "0x77",
"addresses": [
"0x77",
"0x76"
]
},
{
"id": "lps22hb",
"displayName": "LPS22HB",
"name": "lps22hb",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"pressure"
],
"image": "https://cdn-shop.adafruit.com/640x480/4633-09.jpg",
"productUrl": "https://www.adafruit.com/product/4633",
"documentationUrl": "https://learn.adafruit.com/adafruit-lps25-pressure-sensor",
"address": "0x5D",
"addresses": [
"0x5D",
"0x5C"
]
},
{
"id": "max17048",
"displayName": "MAX17048/MAX17049",
"name": "max17048",
"description": "",
"category": "i2c",
"dataTypes": [
{
"displayName": "Battery Cell Voltage",
"sensorType": "voltage"
},
{
"displayName": "Battery Cell Percent",
"sensorType": "unitless-percent"
}
],
"image": "https://cdn-shop.adafruit.com/640x480/5580-06.jpg",
"productUrl": "https://www.adafruit.com/product/5580",
"documentationUrl": "https://learn.adafruit.com/adafruit-max17048-lipoly-liion-fuel-gauge-and-battery-monitor",
"address": "0x36",
"addresses": [
"0x36"
]
},
{
"id": "ina260",
"displayName": "INA260",
"name": "ina260",
"description": "",
"category": "i2c",
"dataTypes": [
"voltage",
"current"
],
"image": "https://cdn-shop.adafruit.com/640x480/4226-12.jpg",
"productUrl": "https://www.adafruit.com/product/4226",
"documentationUrl": "https://learn.adafruit.com/adafruit-ina260-current-voltage-power-sensor-breakout",
"address": "0x40",
"addresses": [
"0x40",
"0x41",
"0x44",
"0x45"
]
},
{
"id": "am2315c",
"displayName": "AM2315C",
"name": "am2315c",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity"
],
"image": "https://cdn-shop.adafruit.com/640x480/5182-05.jpg",
"productUrl": "https://www.adafruit.com/product/5182",
"documentationUrl": "https://cdn-shop.adafruit.com/product-files/5182/5182_AM2315C.pdf",
"address": "0x38",
"addresses": [
"0x38"
]
},
{
"id": "gps_pa1010d",
"displayName": "Mini GPS PA1010D",
"name": "gps_pa1010d",
"description": "",
"category": "i2c",
"dataTypes": [],
"image": "components/i2c/gps_pa1010d/image.png",
"productUrl": "https://www.adafruit.com/product/4415",
"documentationUrl": "https://learn.adafruit.com/adafruit-mini-gps-pa1010d-module",
"address": "0x10",
"addresses": [
"0x10"
],
"isGps": true,
"gps": {
"period": 30000
}
},
{
"id": "rotary_encoder",
"displayName": "STEMMA QT Rotary Encoder",
"name": "rotary_encoder",
"description": "",
"category": "i2c",
"dataTypes": [
{
"displayName": "Rotary Encoder Value",
"sensorType": "raw"
}
],
"image": "components/i2c/rotary_encoder/image.jpeg",
"productUrl": "https://www.adafruit.com/product/4991",
"documentationUrl": "https://learn.adafruit.com/adafruit-i2c-qt-rotary-encoder",
"address": "0x36",
"addresses": [
"0x36",
"0x37",
"0x38",
"0x39",
"0x3A",
"0x3B",
"0x3C",
"0x3D"
]
},
{
"id": "ltr329",
"displayName": "LTR-329",
"name": "ltr329",
"description": "",
"category": "i2c",
"dataTypes": [
{
"displayName": "Ambient Light",
"sensorType": "light"
},
{
"displayName": "Infrared",
"sensorType": "raw"
}
],
"image": "components/i2c/ltr329/image.jpg",
"productUrl": "https://www.adafruit.com/product/5591",
"documentationUrl": "https://learn.adafruit.com/adafruit-ltr-329-ltr-303",
"address": "0x29",
"addresses": [
"0x29"
]
},
{
"id": "sht45",
"displayName": "SHT45",
"name": "sht45",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity"
],
"image": "https://cdn-shop.adafruit.com/640x480/5665-00.jpg",
"productUrl": "https://www.adafruit.com/product/5665",
"documentationUrl": "https://learn.adafruit.com/adafruit-sht40-temperature-humidity-sensor",
"address": "0x44",
"addresses": [
"0x44"
]
},
{
"id": "mpl115a2",
"displayName": "MPL115A2",
"name": "mpl115a2",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"pressure"
],
"image": "https://cdn-shop.adafruit.com/640x480/992-06.jpg",
"productUrl": "https://www.adafruit.com/product/992",
"documentationUrl": "https://cdn-shop.adafruit.com/datasheets/MPL115A2.pdf",
"address": "0x60",
"addresses": [
"0x60"
]
},
{
"id": "pmsa003i",
"displayName": "PMSA003I",
"name": "pmsa003i",
"description": "",
"category": "i2c",
"dataTypes": [
"pm10-std",
"pm25-std",
"pm100-std"
],
"image": "https://cdn-shop.adafruit.com/640x480/4632-10.jpg",
"productUrl": "https://www.adafruit.com/product/4632",
"documentationUrl": "https://learn.adafruit.com/pmsa003i",
"address": "0x12",
"addresses": [
"0x12"
]
},
{
"id": "mprls",
"displayName": "MPRLS",
"name": "mprls",
"description": "",
"category": "i2c",
"dataTypes": [
"pressure"
],
"image": "https://cdn-shop.adafruit.com/640x480/3965-04.jpg",
"productUrl": "https://www.adafruit.com/product/3965",
"documentationUrl": "https://learn.adafruit.com/adafruit-mprls-ported-pressure-sensor-breakout",
"address": "0x18",
"addresses": [
"0x18"
]
},
{
"id": "sht30_shell",
"displayName": "Enclosed SHT30",
"name": "sht30_shell",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity"
],
"image": "https://cdn-shop.adafruit.com/640x480/5064-00.jpg",
"productUrl": "https://www.adafruit.com/product/5064",
"documentationUrl": "https://learn.adafruit.com/adafruit-sht31-d-temperature-and-humidity-sensor-breakout",
"address": "0x44",
"addresses": [
"0x44"
]
},
{
"id": "sht3x",
"displayName": "SHT3X",
"name": "sht3x",
"description": "",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity"
],
"image": "https://cdn-shop.adafruit.com/640x480/2857-03.jpg",
"productUrl": "https://www.adafruit.com/product/2857",
"documentationUrl": "https://learn.adafruit.com/adafruit-sht31-d-temperature-and-humidity-sensor-breakout/overview",
"address": "0x44",
"addresses": [
"0x44",
"0x45"
]
},
{
"id": "aht20",
"displayName": "AHT20",
"name": "aht20",
"description": "Inexpensive temperature and humidity sensor for I2C-capable boards.",
"category": "i2c",
"dataTypes": [
"ambient-temp",
"ambient-temp-fahrenheit",
"relative-humidity"
],
"image": "https://cdn-shop.adafruit.com/640x480/4566-04.jpg",
"productUrl": "https://www.adafruit.com/product/4566",
"documentationUrl": "https://learn.adafruit.com/adafruit-aht20",
"address": "0x38",
"addresses": [
"0x38"
]
},
{
"id": "ina237",
"displayName": "INA237",
"name": "ina237",
"description": "85V, 16-bit, good-precision power monitor (up to 10A, 0.3% gain error)",
"category": "i2c",
"dataTypes": [
"voltage",
"current"
],
"image": "https://cdn-shop.adafruit.com/640x480/6340-02.jpg",
"productUrl": "https://www.adafruit.com/product/6340",
"documentationUrl": "https://learn.adafruit.com/adafruit-ina237-dc-current-voltage-power-monitor",
"address": "0x40",
"addresses": [
"0x40",
"0x41",
"0x44",
"0x45"
]
},
{
"id": "d6t1a",
"displayName": "D6T-1A Thermal Sensor",
"name": "d6t1a",
"description": "Non-contact MEMS thermal infrared sensor for precise temperature detection (D6T-1A-01/D6T-1A-02)",
"category": "i2c",
"dataTypes": [
{
"displayName": "Ambient Temperature (°C)",
"sensorType": "ambient-temp"
},
{
"displayName": "Ambient Temperature (°F)",
"sensorType": "ambient-temp-fahrenheit"
},
{
"displayName": "Measured Object Temp (°C)",
"sensorType": "object-temp"
},
{
"displayName": "Measured Object Temp (°F)",
"sensorType": "object-temp-fahrenheit"
}
],
"image": "components/i2c/d6t1a/image.jpg",
"productUrl": "https://www.digikey.com/en/products/detail/omron-electronics-inc-emc-div/D6T-1A-02/8602566",
"documentationUrl": "https://omronfs.omron.com/en_US/ecb/products/pdf/en_D6T_users_manual.pdf",
"address": "0x0A",
"addresses": [
"0x0A"
]
}
],
"pixel": [
{
"id": "neorgb",
"displayName": "NeoRGB Stemma",
"name": "neorgb",
"description": "Speak NeoPixel to your RGB strips! Treat PWM-able common-anode LEDs as a NeoPixel [16V/3A/channel]",
"category": "pixel",
"dataTypes": [],
"image": "https://cdn-shop.adafruit.com/640x480/5888-10.jpg",
"productUrl": "https://www.adafruit.com/product/5888",
"documentationUrl": "https://learn.adafruit.com/adafruit-neorgb-stemma"
},
{
"id": "dotstar",
"displayName": "DotStar",
"name": "dotstar",
"description": "",
"category": "pixel",
"dataTypes": [],
"image": "https://cdn-shop.adafruit.com/640x480/2343-03.jpg",
"productUrl": "https://www.adafruit.com/product/2343",
"documentationUrl": "https://learn.adafruit.com/adafruit-dotstar-leds"
},
{
"id": "neopixel",
"displayName": "NeoPixel",
"name": "neopixel",
"description": "",
"category": "pixel",
"dataTypes": [],
"image": "components/pixel/neopixel/image.jpg",
"productUrl": "http://www.adafruit.com/category/168",
"documentationUrl": "https://learn.adafruit.com/adafruit-neopixel-uberguide"
}
],
"pwm": [
{
"id": "piezo_buzzer",
"displayName": "Piezo Buzzer",
"name": "piezo_buzzer",
"description": "",
"category": "pwm",
"dataTypes": [],
"image": "https://cdn-shop.adafruit.com/640x480/160-01.jpg",
"productUrl": "https://www.adafruit.com/product/160",
"documentationUrl": "https://learn.adafruit.com/using-piezo-buzzers-with-wippersnapper"
},
{
"id": "pwm_output",
"displayName": "PWM Output",
"name": "pwm_output",
"description": "A Pulse-Width-Modulated component with fixed frequency. Duty cycle can be set from 0-255",
"category": "pwm",
"dataTypes": [],
"image": "components/pwm/pwm_output/image.png",
"productUrl": "https://www.adafruit.com/product/301",
"documentationUrl": "https://learn.adafruit.com/improve-brushed-dc-motor-performance/pwm-and-brushed-dc-motors"
},
{
"id": "rgb_led",
"displayName": "RGB LED",
"name": "rgb_led",
"description": "",
"category": "pwm",
"dataTypes": [],
"image": "https://cdn-shop.adafruit.com/640x480/302-00.jpg",
"productUrl": "https://www.adafruit.com/product/302",
"documentationUrl": "https://learn.adafruit.com/adafruit-arduino-lesson-3-rgb-leds/overview"
},
{
"id": "dimmable_led",
"displayName": "Dimmable LED",
"name": "dimmable_led",
"description": "",
"category": "pwm",
"dataTypes": [],
"image": "https://cdn-shop.adafruit.com/640x480/301-00.jpg",
"productUrl": "https://www.adafruit.com/product/301",
"documentationUrl": "https://learn.adafruit.com/all-about-leds"
}
],
"pin": [
{
"id": "reed_switch",
"displayName": "Reed Switch",
"name": "reed_switch",
"description": "A Magnetic Contact Switch (Door/Window Sensor), with Normally Open (NO) or Closed (NC) contacts",
"category": "pin",
"dataTypes": [],
"image": "https://cdn-shop.adafruit.com/640x480/375-01.jpg",
"productUrl": "https://www.adafruit.com/product/375",
"documentationUrl": "https://learn.adafruit.com/no-code-iot-door-alarm-with-wippersnapper",
"componentAPI": "digitalio"
},
{
"id": "potentiometer",
"displayName": "Potentiometer",
"name": "potentiometer",
"description": "",
"category": "pin",
"dataTypes": [],
"image": "https://cdn-shop.adafruit.com/640x480/356-03.jpg",
"productUrl": "https://www.adafruit.com/product/356",
"documentationUrl": "https://learn.adafruit.com/make-it-change-potentiometers",
"componentAPI": "analogio"
},
{
"id": "beam_break_sensor",
"displayName": "Beam Sensor",
"name": "beam_break_sensor",
"description": "Break beam sensor for detecting interruption of an invisible infrared light beam between emitter and receiver",
"category": "pin",
"dataTypes": [],
"image": "https://cdn-shop.adafruit.com/640x480/2168-04.jpg",
"productUrl": "https://www.adafruit.com/product/2168",
"documentationUrl": "https://learn.adafruit.com/ir-breakbeam-sensors",
"componentAPI": "digitalio"
},
{
"id": "tctr1000",
"displayName": "TCTR1000 Stemma Breakout",
"name": "tctr1000",
"description": "Optical reflective sensor with digital output, 1-30mm range, and adjustable LED emitter brightness",
"category": "pin",
"dataTypes": [],
"image": "components/pin/tctr1000/image.jpg",
"productUrl": "https://www.adafruit.com/product/5913",
"documentationUrl": "https://learn.adafruit.com/adafruit-stemma-reflective-photo-interrupt-sensor",
"componentAPI": "digitalio"
},
{
"id": "push_button",
"displayName": "Push Button",
"name": "push_button",
"description": "",
"category": "pin",
"dataTypes": [],
"image": "https://cdn-shop.adafruit.com/640x480/367-01.jpg",
"productUrl": "https://www.adafruit.com/product/367",
"documentationUrl": "https://learn.adafruit.com/adafruit-arduino-lesson-6-digital-inputs?view=all",
"componentAPI": "digitalio"
},
{
"id": "light_sensor",
"displayName": "Light Sensor",
"name": "light_sensor",
"description": "",
"category": "pin",
"dataTypes": [],
"image": "https://cdn-shop.adafruit.com/640x480/161-00.jpg",
"productUrl": "https://www.adafruit.com/product/161",
"documentationUrl": "https://learn.adafruit.com/photocells",
"componentAPI": "analogio"
},
{
"id": "etape_liquid_level_sensor",
"displayName": "Liquid Level Sensor",
"name": "etape_liquid_level_sensor",
"description": "",
"category": "pin",
"dataTypes": [],
"image": "https://cdn-shop.adafruit.com/product-videos/640x480/2656-03.jpg",
"productUrl": "https://www.adafruit.com/product/2656",
"documentationUrl": "https://cdn-shop.adafruit.com/product-files/2656/Standard_eTape_Datasheet.pdf",
"componentAPI": "analogio"
},
{
"id": "pir_sensor",
"displayName": "PIR Sensor",
"name": "pir_sensor",
"description": "Passive Infra-Red (PIR) motion sensor for detecting presence and movement through infrared thermal changes",
"category": "pin",
"dataTypes": [],
"image": "https://cdn-shop.adafruit.com/640x480/189-00.jpg",
"productUrl": "https://www.adafruit.com/product/189",
"documentationUrl": "https://learn.adafruit.com/pir-passive-infrared-proximity-motion-sensor/overview",
"componentAPI": "digitalio"
},
{
"id": "toggle_switch",
"displayName": "Toggle Switch",
"name": "toggle_switch",
"description": "",
"category": "pin",
"dataTypes": [],
"image": "https://cdn-shop.adafruit.com/640x480/3221-01.jpg",
"productUrl": "https://www.adafruit.com/product/3221",
"documentationUrl": "https://learn.adafruit.com/make-it-switch",
"componentAPI": "digitalio"
},
{
"id": "simple_soil_sensor",
"displayName": "Simple Soil Sensor",
"name": "simple_soil_sensor",
"description": "Resistive style soil moisture sensor, measuring the conductivity between the two prongs (Analog signal)",
"category": "pin",
"dataTypes": [],
"image": "https://cdn-shop.adafruit.com/640x480/6362-00.jpg",
"productUrl": "https://www.adafruit.com/product/6362",
"componentAPI": "analogio"
},
{
"id": "hall_effect_sensor",
"displayName": "Hall Effect Sensor",
"name": "hall_effect_sensor",
"description": "",
"category": "pin",
"dataTypes": [],
"image": "https://cdn-shop.adafruit.com/640x480/158-00.jpg",
"productUrl": "https://www.adafruit.com/product/158",
"documentationUrl": "https://www.melexis.com/en/product/us5881/unipolar-hall-effect-switch-low-sensitivity",
"componentAPI": "digitalio"
},
{
"id": "flat_vibration_switch",
"displayName": "Flat Vibration Switch",
"name": "flat_vibration_switch",
"description": "",
"category": "pin",
"dataTypes": [],
"image": "https://cdn-shop.adafruit.com/640x480/4081-00.jpg",
"productUrl": "https://www.adafruit.com/product/4081",
"componentAPI": "digitalio"
},
{
"id": "water_sensor",
"displayName": "Water Sensor",
"name": "water_sensor",
"description": "",
"category": "pin",
"dataTypes": [],
"image": "https://cdn-shop.adafruit.com/product-videos/640x480/4965-03.jpg",
"productUrl": "https://www.adafruit.com/product/4965",
"documentationUrl": "https://cdn-shop.adafruit.com/product-files/4965/Datasheet.pdf",
"componentAPI": "digitalio"
},
{
"id": "analog_pin",
"displayName": "Analog Pin",
"name": "analog_pin",
"description": "",
"category": "pin",
"dataTypes": [],
"image": "components/pin/analog_pin/image.png",
"componentAPI": "analogio"
}
],
"i2c_output_metadata": {
"title": "I2C Output Component Definition",
"description": "I2C Output component for use in Adafruit IO",
"required": [
"displayName",
"vendor",
"outputType",
"i2cAddresses"
],
"properties": {
"displayName": {
"description": "The human-friendly name of this component.",
"type": "string",
"minLength": 3,
"maxLength": 24
},
"published": {
"description": "If True, this component is supported by the current firmware version and will be displayed to all users. Otherwise, it is hidden behind a developer toggle so that contributors can still work on it against the production site.",
"type": "boolean"
},
"description": {
"description": "A brief description describing this component's capabilities.",
"type": "string",
"minLength": 3,
"maxLength": 255
},
"productURL": {
"description": "Link to this component's homepage.",
"type": "string",
"format": "uri"
},
"documentationURL": {
"description": "Link to this component's documentation.",
"type": "string",
"format": "uri"
},
"vendor": {
"description": "Name of the company that makes this component.",
"type": "string",
"minLength": 3,
"maxLength": 24
},
"i2cAddresses": {
"description": "List of supported I2C addresses for this component.",
"type": "array",
"items": {
"type": "string",
"pattern": "^0x[0-9A-Fa-f]{2}$"
}
},
"outputType": {
"description": "The type of i2c output component. Corresponds to `I2cOutputAdd` in i2c.proto",
"type": "string",
"pattern": "^(CHARLCD|7SEG|ALPHANUM|OLED)$"
},
"charLcdColumns": {
"description": "The number of columns for a character LCD. Corresponds to `CharLCDConfig` in i2c.proto.",
"type": "number",
"minimum": 0,
"maximum": 128
},
"charLcdRows": {
"description": "The number of rows for a character LCD. Corresponds to `CharLCDConfig` in i2c.proto.",
"type": "number",
"minimum": 0,
"maximum": 16
},
"ledBackpackAlignment": {
"description": "The alignment for the LED backpack. Corresponds to `LedBackpackConfig` in i2c.proto. Defaults to RIGHT.",
"type": "string",
"pattern": "^(LEFT|RIGHT)$"
},
"ledBackpackBrightness": {
"description": "The brightness of a LED backpack. Corresponds to `CharLCDConfig` in i2c.proto.",
"type": "number",
"minimum": 0,
"maximum": 15
},
"oledWidth": {
"description": "The width of an OLED display, in pixels.",
"type": "number",
"minimum": 0,
"maximum": 128
},
"oledHeight": {
"description": "The height of an OLED display, in pixels.",
"type": "number",
"minimum": 0,
"maximum": 64
},
"textSize": {
"description": "The font magnification size for a OLED display. Corresponds to `SSD1306TextSize` in i2c.proto.",
"type": "string",
"pattern": "^(SZ_DEFAULT|SZ_LARGE)$"
}
}
},
"uart_metadata": {
"title": "UART Component Definition",
"description": "A UART WipperSnapper component for use in Adafruit IO",
"required": [
"displayName",
"vendor",
"deviceId",
"baudRate",
"deviceType"
],
"properties": {
"displayName": {
"description": "The human-friendly name of this component.",
"type": "string",
"minLength": 3,
"maxLength": 30
},
"published": {
"description": "If True, this component is supported by the current firmware version and will be displayed to all users. Otherwise, it is hidden behind a developer toggle so that contributors can still work on it against the production site.",
"type": "boolean"
},
"description": {
"description": "A brief description describing this component's capabilities.",
"type": "string",
"minLength": 3,
"maxLength": 255
},
"productURL": {
"description": "Link to this component's homepage.",
"type": "string",
"format": "uri"
},
"documentationURL": {
"description": "Link to this component's documentation.",
"type": "string",
"format": "uri"
},
"vendor": {
"description": "Name of the company that makes this component.",
"type": "string",
"minLength": 3,
"maxLength": 24
},
"pinTx": {
"description": "The desired UART TX pin",
"type": "string",
"minLength": 1,
"maxLength": 16
},
"pinRx": {
"description": "The desired UART RX pin",
"type": "string",
"minLength": 1,
"maxLength": 16
},
"portNumber": {
"description": "The desired UART bus port number",
"type": "number",
"minimum": 0,
"maximum": 3
},
"baudRate": {
"description": "The desired UART bus baud rate, in bps.",
"type": "number",
"minimum": 1200,
"maximum": 256000
},
"format": {
"description": "The data, parity, and stop bits configuration for the serial port. Defaults to 8N1 (8 data bits, no parity, 1 stop bit).",
"type": "string",
"enum": [
"unspecified",
"8n1",
"5n1",
"6n1",
"7n1",
"5n2",
"6n2",
"7n2",
"8n2",
"5e1",
"6e1",
"7e1",
"8e1",
"5e2",
"6e2",
"7e2",
"8e2",
"5o1",
"6o1",
"7o1",
"8o1",
"5o2",
"6o2",
"7o2",
"8o2"
],
"default": "8n1"
},
"timeout": {
"description": "Maximum milliseconds to wait for serial data. Defaults to 1000 ms.",
"type": "number",
"minimum": 0,
"maximum": 65535
},
"use_sw_serial": {
"description": "If True, uses software serial instead of hardware serial. Defaults to False.",
"type": "boolean"
},
"invert_sw_serial": {
"description": "If True, inverts the UART signal on RX and TX pins. Defaults to False.",
"type": "boolean"
},
"deviceId": {
"description": "The unique identifier string for the UART device.",
"type": "string",
"minLength": 3,
"maxLength": 30
},
"deviceType": {
"description": "The data, parity, and stop bits configuration for the serial port. Defaults to 8N1 (8 data bits, no parity, 1 stop bit).",
"type": "string",
"enum": [
"unspecified",
"generic_input",
"generic_output",
"gps",
"pm25aqi",
"tmc22xx"
],
"default": "unspecified"
},
"pm25aqi": {
"type": "object",
"description": "Configuration for PM2.5 AQI sensors",
"required": [
"period",
"sensor_types"
],
"properties": {
"is_pm1006": {
"type": "boolean",
"description": "True if the device is a PM1006 AQ sensor",
"default": false
},
"period": {
"type": "integer",
"description": "The period to poll the device, in milliseconds",
"minimum": 0,
"maximum": 65535
},
"sensor_types": {
"type": "array",
"description": "SI Types for each sensor on the I2c device",
"items": {
"$ref": "#/$defs/subcomponent"
}
}
},
"additionalProperties": false
},
"generic_input": {
"type": "object",
"description": "Configuration for generic UART input devices.",
"required": [
"period",
"sensor_types"
],
"properties": {
"line_ending": {
"description": "The line ending format for incoming data.",
"type": "string",
"enum": [
"unspecified",
"lf",
"crlf",
"timeout_100ms",
"timeout_1000ms"
],
"default": "unspecified"
},
"period": {
"type": "integer",
"description": "The period to poll the device, in milliseconds",
"minimum": 0,
"maximum": 65535
},
"sensor_types": {
"type": "array",
"description": "SI Types for each sensor on the I2c device",
"items": {
"$ref": "#/$defs/subcomponent"
}
}
},
"additionalProperties": false
},
"gps": {
"type": "object",
"description": "Configuration for GPS devices.",
"required": [
"period"
],
"properties": {
"commands_pmtks": {
"type": "array",
"description": "List of PMTK commands (MediaTek) in string format",
"items": {
"type": "string"
}
},
"commands_ubxes": {
"type": "array",
"description": "List of UBX commands (U-Blox) in bytes format",
"items": {
"type": "string",
"contentEncoding": "base64"
}
},
"period": {
"type": "integer",
"description": "Desired period to poll the GPS module, in milliseconds",
"minimum": 0,
"maximum": 65535
}
},
"additionalProperties": false
}
}
},
"ds18x20_metadata": {
"title": "DS18X20 Component Definition",
"description": "A DS18X20 WipperSnapper component for use in Adafruit IO",
"required": [
"displayName",
"vendor",
"subcomponents",
"sensorResolution"
],
"properties": {
"displayName": {
"description": "The human-friendly name of this component.",
"type": "string",
"minLength": 3,
"maxLength": 30
},
"published": {
"description": "If true, this component is supported by the current firmware version and will be displayed to all users. If false, it is hidden behind a developer toggle so that contributors can still work on it against the production site.",
"type": "boolean"
},
"description": {
"description": "A brief description describing this component's capabilities.",
"type": "string",
"minLength": 3,
"maxLength": 255
},
"productURL": {
"description": "Link to this component's homepage.",
"type": "string",
"format": "uri"
},
"documentationURL": {
"description": "Link to this component's documentation.",
"type": "string",
"format": "uri"
},
"vendor": {
"description": "Name of the company that makes this component.",
"type": "string",
"minLength": 3,
"maxLength": 24
},
"subcomponents": {
"description": "The ambient temperature sensor (and its fahrenheit counterpart) standard on DS18X20 Components",
"type": "array",
"items": {
"type": "string",
"pattern": "^ambient-temp(-fahrenheit)?$"
}
},
"sensorResolution": {
"description": "The DS18X20's desired sensor read resolution, in bits.",
"type": "number",
"minimum": 9,
"maximum": 12
}
}
},
"servo_metadata": {
"title": "Servo Component Definition",
"description": "A servo motor WipperSnapper component for use in Adafruit IO",
"required": [
"displayName",
"vendor",
"frequency",
"minPulseWidth",
"maxPulseWidth"
],
"properties": {
"displayName": {
"description": "The human-friendly name of the servo component.",
"type": "string",
"minLength": 3,
"maxLength": 24
},
"published": {
"description": "If true, this component is supported by the current firmware version and will be displayed to all users. If false, it is hidden behind a developer toggle so that contributors can still work on it against the production site.",
"type": "boolean"
},
"description": {
"description": "A brief description describing this component's capabilities.",
"type": "string",
"minLength": 3,
"maxLength": 255
},
"productURL": {
"description": "Link to this component's homepage.",
"type": "string",
"format": "uri"
},
"documentationURL": {
"description": "Link to this component's documentation.",
"type": "string",
"format": "uri"
},
"vendor": {
"description": "Name of the company that makes this component.",
"type": "string",
"minLength": 3,
"maxLength": 24
},
"frequency": {
"description": "The desired frequency of the PWM signal, in Hz.",
"type": "number",
"default": 50,
"minimum": 40,
"maximum": 200
},
"minPulseWidth": {
"description": "The minimum pulse width of the servo, in uS.",
"type": "number"
},
"maxPulseWidth": {
"description": "The maximum pulse width of the servo, in uS.",
"type": "number"
},
"visualization": {
"description": "Specifies the servo's specific visualization.",
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"const": "slider-servo"
}
}
}
}
},
"i2c_metadata": {
"title": "I2C Component Definition",
"description": "An I2C-based WipperSnapper component for use in Adafruit IO",
"required": [
"displayName",
"vendor",
"i2cAddresses"
],
"properties": {
"displayName": {
"description": "The human-friendly name of this component.",
"type": "string",
"minLength": 3,
"maxLength": 24
},
"published": {
"description": "If true, this component is supported by the current firmware version and will be displayed to all users. If false, it is hidden behind a developer toggle so that contributors can still work on it against the production site.",
"type": "boolean"
},
"description": {
"description": "A brief description describing this component's capabilities.",
"type": "string",
"minLength": 3,
"maxLength": 255
},
"productURL": {
"description": "Link to this component's homepage.",
"type": "string",
"format": "uri"
},
"documentationURL": {
"description": "Link to this component's documentation.",
"type": "string",
"format": "uri"
},
"vendor": {
"description": "Name of the company that makes this component.",
"type": "string",
"minLength": 3,
"maxLength": 24
},
"i2cAddresses": {
"description": "List of I2C addresses (as hex string, like \"0x38\") this component can appear on.",
"type": "array",
"items": {
"type": "string"
}
},
"subcomponents": {
"description": "List of sensors on this I2C component.",
"type": "array",
"items": {
"$ref": "#/$defs/subcomponent"
}
},
"isGps": {
"description": "If true, this component is a GPS module.",
"type": "boolean"
},
"gps": {
"type": "object",
"description": "Configuration for GPS devices.",
"required": [
"period"
],
"properties": {
"commands_pmtks": {
"type": "array",
"description": "List of PMTK commands (MediaTek) in string format",
"items": {
"type": "string"
}
},
"commands_ubxes": {
"type": "array",
"description": "List of UBX commands (U-Blox) in bytes format",
"items": {
"type": "string",
"contentEncoding": "base64"
}
},
"period": {
"type": "integer",
"description": "Desired period to poll the GPS module, in milliseconds",
"minimum": 0,
"maximum": 65535
}
},
"additionalProperties": false
}
}
},
"pixel_metadata": {
"title": "Pixel Component Definition",
"description": "Addressable Pixel WipperSnapper component for use in Adafruit IO",
"required": [
"displayName",
"vendor",
"pixelsType",
"defaultPixelsOrder"
],
"properties": {
"displayName": {
"description": "The human-friendly name of this component.",
"type": "string",
"minLength": 3,
"maxLength": 24
},
"published": {
"description": "If True, this component is supported by the current firmware version and will be displayed to all users. Otherwise, it is hidden behind a developer toggle so that contributors can still work on it against the production site.",
"type": "boolean"
},
"description": {
"description": "A brief description describing this component's capabilities.",
"type": "string",
"minLength": 3,
"maxLength": 255
},
"productURL": {
"description": "Link to this component's homepage.",
"type": "string",
"format": "uri"
},
"documentationURL": {
"description": "Link to this component's documentation.",
"type": "string",
"format": "uri"
},
"vendor": {
"description": "Name of the company that makes this component.",
"type": "string",
"minLength": 3,
"maxLength": 24
},
"pixelsType": {
"description": "The type of addressable pixel: NEOPIXEL or DOTSTAR. Corresponds to `PixelsType` in pixels.proto",
"type": "string",
"pattern": "^(NEOPIXEL|DOTSTAR)$"
},
"defaultPixelsOrder": {
"description": "The pixel strand's color ordering. Corresponds to `PixelsOrder` in pixels.proto.",
"type": "string",
"pattern": "^(GRB|GRBW|RGB|RGBW|BRG)$"
},
"autoSelectString": {
"description": "A hint for automatically looking up pin names that may be appropriate for this kind of component.",
"type": "string",
"minLength": 3,
"maxLength": 24
}
}
},
"pwm_metadata": {
"title": "PWM Component Definition",
"description": "A PWM WipperSnapper component for use in Adafruit IO",
"required": [
"displayName",
"vendor",
"pwmSetting"
],
"properties": {
"displayName": {
"description": "The human-friendly name of this component.",
"type": "string",
"minLength": 3,
"maxLength": 24
},
"published": {
"description": "If true, this component is supported by the current firmware version and will be displayed to all users. If false, it is hidden behind a developer toggle so that contributors can still work on it against the production site.",
"type": "boolean"
},
"description": {
"description": "A brief description describing this component's capabilities.",
"type": "string",
"minLength": 3,
"maxLength": 255
},
"productURL": {
"description": "Link to this component's homepage.",
"type": "string",
"format": "uri"
},
"documentationURL": {
"description": "Link to this component's documentation.",
"type": "string",
"format": "uri"
},
"vendor": {
"description": "Name of the company that makes this component.",
"type": "string",
"minLength": 3,
"maxLength": 24
},
"pwmSetting": {
"description": "The component's pulse-width modulation setting. Either fixed frequency (variable duty cycle) or variable frequency (fixed duty cycle)",
"type": "string",
"pattern": "^(fixed|variable)Frequency$"
},
"visualization": {
"description": "Specifies which visual component to use in the WipperSnapper interface and how to configure it",
"type": "object",
"discriminator": {
"propertyName": "type"
},
"required": [
"type"
],
"oneOf": [
{
"properties": {
"type": {
"const": "switch-pwm"
},
"offLabel": {
"type": "string"
},
"offIcon": {
"type": "string"
},
"onLabel": {
"type": "string"
},
"onIcon": {
"type": "string"
}
},
"additionalProperties": false
},
{
"properties": {
"type": {
"const": "button"
},
"pressedLabel": {
"type": "string"
},
"unpressedLabel": {
"type": "string"
}
},
"additionalProperties": false
},
{
"properties": {
"type": {
"const": "slider-pwm"
}
},
"additionalProperties": false
},
{
"properties": {
"type": {
"const": "color-picker"
}
},
"additionalProperties": false
}
]
}
}
},
"pin_metadata": {
"title": "Pin Component Definition",
"description": "A pin-based WipperSnapper component for use in Adafruit IO",
"required": [
"displayName",
"vendor",
"mode",
"direction"
],
"properties": {
"displayName": {
"description": "The human-friendly name of this component.",
"type": "string",
"minLength": 3,
"maxLength": 24
},
"published": {
"description": "If true, this component is supported by the current firmware version and will be displayed to all users. If false, it is hidden behind a developer toggle so that contributors can still work on it against the production site.",
"type": "boolean"
},
"description": {
"description": "A brief description describing this component's capabilities.",
"type": "string",
"minLength": 3,
"maxLength": 255
},
"productURL": {
"description": "Link to this component's homepage.",
"type": "string",
"format": "uri"
},
"documentationURL": {
"description": "Link to this component's documentation.",
"type": "string",
"format": "uri"
},
"vendor": {
"description": "Name of the company that makes this component.",
"type": "string",
"minLength": 3,
"maxLength": 24
},
"mode": {
"description": "This component's mode, either DIGITAL or ANALOG.",
"type": "string",
"pattern": "^(DIGITAL|ANALOG)$"
},
"direction": {
"description": "This component's direction, either INPUT or OUTPUT.",
"type": "string",
"pattern": "^(INPUT|OUTPUT)$"
},
"autoSelectString": {
"description": "A hint for automatically looking up pin names that may be appropriate for this kind of component.",
"type": "string",
"minLength": 3,
"maxLength": 24
},
"selectPullUp": {
"description": "If true, the user will be able to select pull up or down options.",
"type": "boolean"
},
"pull": {
"description": "This component's pull setting, either UP or DOWN.",
"type": "string",
"pattern": "^(UP|DOWN)$"
},
"selectReadMode": {
"description": "If true, the user will be able to select the read mode between pin and voltage options.",
"type": "boolean"
},
"analogReadMode": {
"description": "For ANALOG mode components, specifies whether to read values (PIN_VALUE) or voltages (PIN_VOLTAGE). Will be a default if `selectReadMode` option is true.",
"type": "string",
"pattern": "^(PIN_VALUE|PIN_VOLTAGE)$"
},
"defaultPeriod": {
"description": "If present, the component form will allow the user to set its period, with this value as the default (in seconds)",
"type": "number",
"minimum": 30,
"maximum": 86400
},
"forceOnPeriod": {
"description": "If true, the user must specify a period (won't be optional in the form).",
"type": "boolean"
},
"visualization": {
"description": "Specifies which visual component to use in the WipperSnapper interface and how to configure it",
"type": "object",
"discriminator": {
"propertyName": "type"
},
"required": [
"type"
],
"oneOf": [
{
"properties": {
"type": {
"const": "switch"
},
"offLabel": {
"type": "string"
},
"offIcon": {
"type": "string"
},
"onLabel": {
"type": "string"
},
"onIcon": {
"type": "string"
}
},
"additionalProperties": false
},
{
"properties": {
"type": {
"const": "button"
},
"pressedLabel": {
"type": "string"
},
"unpressedLabel": {
"type": "string"
}
},
"additionalProperties": false
},
{
"properties": {
"type": {
"const": "slider"
}
},
"additionalProperties": false
}
]
}
}
}
}
};