diff --git a/boards/mcp2221/definition.json b/boards/mcp2221/definition.json new file mode 100644 index 0000000..71e3061 --- /dev/null +++ b/boards/mcp2221/definition.json @@ -0,0 +1,62 @@ +{ + "boardName": "mcp2221", + "mcuName": "mcp2221", + "mcuRefVoltage": 3.3, + "displayName": "Adafruit MCP2221A Breakout", + "vendor": "Adafruit", + "productURL": "https://www.adafruit.com/product/4471", + "documentationURL": "https://learn.adafruit.com/", + "installMethod": "python", + "components": { + "digitalPins": [ + { + "name": "G0", + "displayName": "G0", + "dataType": "bool" + }, + { + "name": "G1", + "displayName": "G1", + "dataType": "bool" + }, + { + "name": "G2", + "displayName": "G2", + "dataType": "bool" + }, + { + "name": "G3", + "displayName": "G3", + "dataType": "bool" + }, + { + "name": "RX", + "displayName": "RX (UART)", + "dataType": "bool" + }, + { + "name": "TX", + "displayName": "TX (UART)", + "dataType": "bool" + } + ], + "analogPins": [ + { + "name": "G1", + "displayName": "G1 (ADC 1)", + "dataType": "int16" + }, + { + "name": "G2", + "displayName": "G2 (ADC 2)", + "dataType": "int16" + }, + { + "name": "G3", + "displayName": "G3 (ADC 3)", + "dataType": "int16" + } + ], + "i2cPorts": [] + } +} diff --git a/boards/mcp2221/image.png b/boards/mcp2221/image.png new file mode 100644 index 0000000..01fed1d Binary files /dev/null and b/boards/mcp2221/image.png differ diff --git a/boards/raspberry-pi-4/definition.json b/boards/raspberry-pi-4/definition.json new file mode 100644 index 0000000..3cc176b --- /dev/null +++ b/boards/raspberry-pi-4/definition.json @@ -0,0 +1,152 @@ +{ + "boardName": "raspberry-pi-4", + "mcuName": "bcm2711", + "mcuRefVoltage": 3.3, + "displayName": "Raspberry Pi 4 Model B", + "vendor": "Raspberry Pi", + "productURL": "https://www.adafruit.com/product/4296", + "documentationURL": "https://learn.adafruit.com/", + "installMethod": "python", + "components": { + "digitalPins": [ + { + "name": "D0", + "displayName": "D0", + "dataType": "bool" + }, + { + "name": "D1", + "displayName": "D1", + "dataType": "bool" + }, + { + "name": "D4", + "displayName": "D4", + "dataType": "bool" + }, + { + "name": "D5", + "displayName": "D5", + "dataType": "bool" + }, + { + "name": "D6", + "displayName": "D6", + "dataType": "bool" + }, + { + "name": "D7", + "displayName": "D7", + "dataType": "bool" + }, + { + "name": "D8", + "displayName": "D8", + "dataType": "bool" + }, + { + "name": "D9", + "displayName": "D9", + "dataType": "bool" + }, + { + "name": "D10", + "displayName": "D10", + "dataType": "bool" + }, + { + "name": "D11", + "displayName": "D11", + "dataType": "bool" + }, + { + "name": "D12", + "displayName": "D12 (PWM Output 0)", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "D13", + "displayName": "D13 (PWM Output 1)", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "D14", + "displayName": "D14 (UART TX)", + "dataType": "bool", + "uartTx": true + }, + { + "name": "D15", + "displayName": "D15 (UART RX)", + "dataType": "bool", + "uartRx": true + }, + { + "name": "D16", + "displayName": "D16", + "dataType": "bool" + }, + { + "name": "D17", + "displayName": "D17", + "dataType": "bool" + }, + { + "name": "D18", + "displayName": "D18 (NEOPIXEL)", + "dataType": "bool" + }, + { + "name": "D19", + "displayName": "D19", + "dataType": "bool" + }, + { + "name": "D20", + "displayName": "D20", + "dataType": "bool" + }, + { + "name": "D21", + "displayName": "D21", + "dataType": "bool" + }, + { + "name": "D22", + "displayName": "D22", + "dataType": "bool" + }, + { + "name": "D23", + "displayName": "D23", + "dataType": "bool" + }, + { + "name": "D24", + "displayName": "D24", + "dataType": "bool" + }, + { + "name": "D25", + "displayName": "D25", + "dataType": "bool" + }, + { + "name": "D26", + "displayName": "D26", + "dataType": "bool" + }, + { + "name": "D27", + "displayName": "D27", + "dataType": "bool" + } + ], + "analogPins": [], + "i2cPorts": [] + } +} diff --git a/boards/raspberry-pi-4/image.png b/boards/raspberry-pi-4/image.png new file mode 100644 index 0000000..ec495c0 Binary files /dev/null and b/boards/raspberry-pi-4/image.png differ diff --git a/boards/raspberry-pi-5/definition.json b/boards/raspberry-pi-5/definition.json new file mode 100644 index 0000000..ef79da0 --- /dev/null +++ b/boards/raspberry-pi-5/definition.json @@ -0,0 +1,152 @@ +{ + "boardName": "raspberry-pi-5", + "mcuName": "bcm2712", + "mcuRefVoltage": 3.3, + "displayName": "Raspberry Pi 5", + "vendor": "Raspberry Pi", + "productURL": "https://www.adafruit.com/product/5813", + "documentationURL": "https://learn.adafruit.com/", + "installMethod": "python", + "components": { + "digitalPins": [ + { + "name": "D0", + "displayName": "D0", + "dataType": "bool" + }, + { + "name": "D1", + "displayName": "D1", + "dataType": "bool" + }, + { + "name": "D4", + "displayName": "D4", + "dataType": "bool" + }, + { + "name": "D5", + "displayName": "D5", + "dataType": "bool" + }, + { + "name": "D6", + "displayName": "D6", + "dataType": "bool" + }, + { + "name": "D7", + "displayName": "D7", + "dataType": "bool" + }, + { + "name": "D8", + "displayName": "D8", + "dataType": "bool" + }, + { + "name": "D9", + "displayName": "D9", + "dataType": "bool" + }, + { + "name": "D10", + "displayName": "D10", + "dataType": "bool" + }, + { + "name": "D11", + "displayName": "D11", + "dataType": "bool" + }, + { + "name": "D12", + "displayName": "D12 (PWM Output 0)", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "D13", + "displayName": "D13 (PWM Output 1)", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "D14", + "displayName": "D14 (UART TX)", + "dataType": "bool", + "uartTx": true + }, + { + "name": "D15", + "displayName": "D15 (UART RX)", + "dataType": "bool", + "uartRx": true + }, + { + "name": "D16", + "displayName": "D16", + "dataType": "bool" + }, + { + "name": "D17", + "displayName": "D17", + "dataType": "bool" + }, + { + "name": "D18", + "displayName": "D18", + "dataType": "bool" + }, + { + "name": "D19", + "displayName": "D19", + "dataType": "bool" + }, + { + "name": "D20", + "displayName": "D20", + "dataType": "bool" + }, + { + "name": "D21", + "displayName": "D21", + "dataType": "bool" + }, + { + "name": "D22", + "displayName": "D22", + "dataType": "bool" + }, + { + "name": "D23", + "displayName": "D23", + "dataType": "bool" + }, + { + "name": "D24", + "displayName": "D24", + "dataType": "bool" + }, + { + "name": "D25", + "displayName": "D25", + "dataType": "bool" + }, + { + "name": "D26", + "displayName": "D26", + "dataType": "bool" + }, + { + "name": "D27", + "displayName": "D27", + "dataType": "bool" + } + ], + "analogPins": [], + "i2cPorts": [] + } +} diff --git a/boards/raspberry-pi-5/image.png b/boards/raspberry-pi-5/image.png new file mode 100644 index 0000000..16fd63a Binary files /dev/null and b/boards/raspberry-pi-5/image.png differ diff --git a/boards/rpi-pico-w-u2if/definition.json b/boards/rpi-pico-w-u2if/definition.json new file mode 100644 index 0000000..a7912ab --- /dev/null +++ b/boards/rpi-pico-w-u2if/definition.json @@ -0,0 +1,229 @@ +{ + "boardName": "rpi-pico-w-u2if", + "mcuName": "rp2040", + "mcuRefVoltage": 3.3, + "displayName": "Raspberry Pi Pico W (U2IF Blinka)", + "vendor": "Raspberry Pi", + "productURL": "https://www.raspberrypi.com/products/raspberry-pi-pico/", + "documentationURL": "https://learn.adafruit.com/", + "installMethod": "python", + "components": { + "digitalPins": [ + { + "name": "GP0", + "displayName": "GP0", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP1", + "displayName": "GP1", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP2", + "displayName": "GP2", + "dataType": "bool", + "hasPWM": true + }, + { + "name": "GP3", + "displayName": "GP3", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP4", + "displayName": "GP4 (SDA0)", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP5", + "displayName": "GP5 (SCL0)", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP6", + "displayName": "GP6", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP7", + "displayName": "GP7", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP8", + "displayName": "GP8", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP9", + "displayName": "GP9", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP10", + "displayName": "GP10 (SCLK1", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP11", + "displayName": "GP11 (MOSI1)", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP12", + "displayName": "GP12 (MISO1)", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP13", + "displayName": "GP13", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP14", + "displayName": "GP14 (SDA1)", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP15", + "displayName": "GP15 (SCL1)", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP16", + "displayName": "GP16 (MISO0)", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP17", + "displayName": "GP17", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP18", + "displayName": "GP18 (SCLK0)", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP19", + "displayName": "GP19 (MOSI0)", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP20", + "displayName": "GP20", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP21", + "displayName": "GP21", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP22", + "displayName": "GP22", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP23", + "displayName": "GP23", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP24", + "displayName": "GP24", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "D25", + "displayName": "GP25", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP26", + "displayName": "GP26", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP27", + "displayName": "GP27 (ADC1)", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + }, + { + "name": "GP28", + "displayName": "GP28 (ADC0)", + "dataType": "bool", + "hasPWM": true, + "hasServo": true + } + ], + "analogPins": [ + { + "name": "ADC0", + "displayName": "ADC 0", + "dataType": "int16" + }, + { + "name": "ADC1", + "displayName": "ADC 1", + "dataType": "int16" + } + ], + "i2cPorts": [] + } +} diff --git a/boards/rpi-pico-w-u2if/image.png b/boards/rpi-pico-w-u2if/image.png new file mode 100644 index 0000000..1b51cd4 Binary files /dev/null and b/boards/rpi-pico-w-u2if/image.png differ diff --git a/boards/schema.json b/boards/schema.json index 44dc500..eddea97 100644 --- a/boards/schema.json +++ b/boards/schema.json @@ -2,7 +2,16 @@ "title": "Board Definition", "description": "A WipperSnapper-compatible Board for use in Adafruit IO", "type": "object", - "required": [ "boardName", "mcuName", "mcuRefVoltage", "installMethod", "displayName", "productURL", "documentationURL", "components" ], + "required": [ + "boardName", + "mcuName", + "mcuRefVoltage", + "installMethod", + "displayName", + "productURL", + "documentationURL", + "components" + ], "additionalProperties": false, "properties": { "boardName": { @@ -68,7 +77,7 @@ "components": { "description": "List of available pins and I2C ports for this board.", "type": "object", - "required": [ "digitalPins", "analogPins", "i2cPorts" ], + "required": ["digitalPins", "analogPins", "i2cPorts"], "additionalProperties": false, "properties": { "digitalPins": { @@ -76,7 +85,7 @@ "type": "array", "items": { "type": "object", - "required": [ "name", "displayName", "dataType" ], + "required": ["name", "displayName", "dataType"], "additionalProperties": false, "properties": { "name": { "type": "string" }, @@ -104,9 +113,9 @@ "type": "boolean" } }, - "if": { "required": [ "uartRx" ] }, + "if": { "required": ["uartRx"] }, "then": { - "not": { "required": [ "uartTx" ] }, + "not": { "required": ["uartTx"] }, "errorMessage": "Cannot specify uartTx and uartRx on same pin!" } } @@ -116,7 +125,7 @@ "type": "array", "items": { "type": "object", - "required": [ "name", "displayName", "dataType" ], + "required": ["name", "displayName", "dataType"], "additionalProperties": false, "properties": { "name": { "type": "string" }, @@ -144,7 +153,7 @@ "type": "array", "items": { "type": "object", - "required": [ "i2cPortId", "SDA", "SCL" ], + "required": ["i2cPortId", "SDA", "SCL"], "additionalProperties": false, "properties": { "i2cPortId": { "type": "number" }, @@ -158,7 +167,13 @@ "esptool": { "description": "Installation metadata for boards that use the web-based WipperSnapper firmware installer", "type": "object", - "required": [ "offset", "chip", "fileSystemSize", "blockSize", "structure" ], + "required": [ + "offset", + "chip", + "fileSystemSize", + "blockSize", + "structure" + ], "additionalProperties": false, "properties": { "offset": {