From 27e79cd0496516aa7f0a49f9da9d0f02cc1750bb Mon Sep 17 00:00:00 2001 From: Mario Pesch Date: Sun, 18 Feb 2024 10:56:32 +0100 Subject: [PATCH 1/2] add senseBox MCU-S2 add senseBox MCU-S2 with ESP32S2 --- boards.txt | 170 ++++++++++++++++++ .../bootloader-tinyuf2.bin | Bin 0 -> 22848 bytes .../partitions-4MB-tinyuf2.csv | 12 ++ variants/sensebox_mcu_esp32s2/pins_arduino.h | 135 ++++++++++++++ variants/sensebox_mcu_esp32s2/tinyuf2.bin | Bin 0 -> 154912 bytes variants/sensebox_mcu_esp32s2/variant.cpp | 55 ++++++ 6 files changed, 372 insertions(+) create mode 100644 variants/sensebox_mcu_esp32s2/bootloader-tinyuf2.bin create mode 100644 variants/sensebox_mcu_esp32s2/partitions-4MB-tinyuf2.csv create mode 100644 variants/sensebox_mcu_esp32s2/pins_arduino.h create mode 100644 variants/sensebox_mcu_esp32s2/tinyuf2.bin create mode 100644 variants/sensebox_mcu_esp32s2/variant.cpp diff --git a/boards.txt b/boards.txt index e31d1f843f1..6f378992cad 100644 --- a/boards.txt +++ b/boards.txt @@ -26459,3 +26459,173 @@ atd147_s3.menu.EraseFlash.all=Enabled atd147_s3.menu.EraseFlash.all.upload.erase_cmd=-e ############################################################## + +sensebox_mcu_esp32s2.name=senseBox MCU-S2 ESP32-S2 +sensebox_mcu_esp32s2.vid.0=0x303A +sensebox_mcu_esp32s2.pid.0=0x81B8 +sensebox_mcu_esp32s2.vid.1=0x303A +sensebox_mcu_esp32s2.pid.1=0x81B9 +sensebox_mcu_esp32s2.vid.2=0x303A +sensebox_mcu_esp32s2.pid.2=0x81BA + +sensebox_mcu_esp32s2.bootloader.tool=esptool_py +sensebox_mcu_esp32s2.bootloader.tool.default=esptool_py + +sensebox_mcu_esp32s2.upload.tool=esptool_py +sensebox_mcu_esp32s2.upload.tool.default=esptool_py +sensebox_mcu_esp32s2.upload.tool.network=esp_ota + +sensebox_mcu_esp32s2.upload.maximum_size=1310720 +sensebox_mcu_esp32s2.upload.maximum_data_size=327680 +sensebox_mcu_esp32s2.upload.flags= +sensebox_mcu_esp32s2.upload.extra_flags= +sensebox_mcu_esp32s2.upload.use_1200bps_touch=true +sensebox_mcu_esp32s2.upload.wait_for_upload_port=true + +sensebox_mcu_esp32s2.serial.disableDTR=false +sensebox_mcu_esp32s2.serial.disableRTS=false + +sensebox_mcu_esp32s2.build.tarch=xtensa +sensebox_mcu_esp32s2.build.bootloader_addr=0x1000 +sensebox_mcu_esp32s2.build.target=esp32s2 +sensebox_mcu_esp32s2.build.mcu=esp32s2 +sensebox_mcu_esp32s2.build.core=esp32 +sensebox_mcu_esp32s2.build.variant=sensebox_mcu_esp32s2 +sensebox_mcu_esp32s2.build.board=SENSEBOX_MCU_ESP32S2 + +sensebox_mcu_esp32s2.build.cdc_on_boot=1 +sensebox_mcu_esp32s2.build.msc_on_boot=1 +sensebox_mcu_esp32s2.build.dfu_on_boot=0 +sensebox_mcu_esp32s2.build.f_cpu=240000000L +sensebox_mcu_esp32s2.build.flash_size=4MB +sensebox_mcu_esp32s2.build.flash_freq=80m +sensebox_mcu_esp32s2.build.flash_mode=dio +sensebox_mcu_esp32s2.build.boot=qio +sensebox_mcu_esp32s2.build.partitions=default +sensebox_mcu_esp32s2.build.defines= + +sensebox_mcu_esp32s2.menu.CDCOnBoot.cdc=Enabled +sensebox_mcu_esp32s2.menu.CDCOnBoot.cdc.build.cdc_on_boot=1 +sensebox_mcu_esp32s2.menu.CDCOnBoot.default=Disabled +sensebox_mcu_esp32s2.menu.CDCOnBoot.default.build.cdc_on_boot=0 + +sensebox_mcu_esp32s2.menu.MSCOnBoot.msc=Enabled +sensebox_mcu_esp32s2.menu.MSCOnBoot.msc.build.msc_on_boot=1 +sensebox_mcu_esp32s2.menu.MSCOnBoot.default=Disabled +sensebox_mcu_esp32s2.menu.MSCOnBoot.default.build.msc_on_boot=0 + +sensebox_mcu_esp32s2.menu.DFUOnBoot.default=Disabled +sensebox_mcu_esp32s2.menu.DFUOnBoot.default.build.dfu_on_boot=0 +sensebox_mcu_esp32s2.menu.DFUOnBoot.dfu=Enabled +sensebox_mcu_esp32s2.menu.DFUOnBoot.dfu.build.dfu_on_boot=1 + +sensebox_mcu_esp32s2.menu.UploadMode.cdc=Internal USB +sensebox_mcu_esp32s2.menu.UploadMode.cdc.upload.use_1200bps_touch=true +sensebox_mcu_esp32s2.menu.UploadMode.cdc.upload.wait_for_upload_port=true +sensebox_mcu_esp32s2.menu.UploadMode.default=UART0 +sensebox_mcu_esp32s2.menu.UploadMode.default.upload.use_1200bps_touch=false +sensebox_mcu_esp32s2.menu.UploadMode.default.upload.wait_for_upload_port=false + +sensebox_mcu_esp32s2.menu.PSRAM.enabled=Enabled +sensebox_mcu_esp32s2.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM +sensebox_mcu_esp32s2.menu.PSRAM.disabled=Disabled +sensebox_mcu_esp32s2.menu.PSRAM.disabled.build.defines= + +sensebox_mcu_esp32s2.menu.PartitionScheme.tinyuf2=TinyUF2 4MB (1.3MB APP/960KB FATFS) +sensebox_mcu_esp32s2.menu.PartitionScheme.tinyuf2.build.custom_bootloader=bootloader-tinyuf2 +sensebox_mcu_esp32s2.menu.PartitionScheme.tinyuf2.build.custom_partitions=partitions-4MB-tinyuf2 +sensebox_mcu_esp32s2.menu.PartitionScheme.tinyuf2.upload.maximum_size=1441792 +sensebox_mcu_esp32s2.menu.PartitionScheme.tinyuf2.upload.extra_flags=0x2d0000 "{runtime.platform.path}/variants/{build.variant}/tinyuf2.bin" +sensebox_mcu_esp32s2.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS) +sensebox_mcu_esp32s2.menu.PartitionScheme.default.build.partitions=default +sensebox_mcu_esp32s2.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) +sensebox_mcu_esp32s2.menu.PartitionScheme.defaultffat.build.partitions=default_ffat +sensebox_mcu_esp32s2.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS) +sensebox_mcu_esp32s2.menu.PartitionScheme.minimal.build.partitions=minimal +sensebox_mcu_esp32s2.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS) +sensebox_mcu_esp32s2.menu.PartitionScheme.no_ota.build.partitions=no_ota +sensebox_mcu_esp32s2.menu.PartitionScheme.no_ota.upload.maximum_size=2097152 +sensebox_mcu_esp32s2.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS) +sensebox_mcu_esp32s2.menu.PartitionScheme.noota_3g.build.partitions=noota_3g +sensebox_mcu_esp32s2.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576 +sensebox_mcu_esp32s2.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS) +sensebox_mcu_esp32s2.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat +sensebox_mcu_esp32s2.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152 +sensebox_mcu_esp32s2.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS) +sensebox_mcu_esp32s2.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat +sensebox_mcu_esp32s2.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576 +sensebox_mcu_esp32s2.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS) +sensebox_mcu_esp32s2.menu.PartitionScheme.huge_app.build.partitions=huge_app +sensebox_mcu_esp32s2.menu.PartitionScheme.huge_app.upload.maximum_size=3145728 +sensebox_mcu_esp32s2.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) +sensebox_mcu_esp32s2.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs +sensebox_mcu_esp32s2.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 + +sensebox_mcu_esp32s2.menu.CPUFreq.240=240MHz (WiFi) +sensebox_mcu_esp32s2.menu.CPUFreq.240.build.f_cpu=240000000L +sensebox_mcu_esp32s2.menu.CPUFreq.160=160MHz (WiFi) +sensebox_mcu_esp32s2.menu.CPUFreq.160.build.f_cpu=160000000L +sensebox_mcu_esp32s2.menu.CPUFreq.80=80MHz (WiFi) +sensebox_mcu_esp32s2.menu.CPUFreq.80.build.f_cpu=80000000L +sensebox_mcu_esp32s2.menu.CPUFreq.40=40MHz +sensebox_mcu_esp32s2.menu.CPUFreq.40.build.f_cpu=40000000L +sensebox_mcu_esp32s2.menu.CPUFreq.20=20MHz +sensebox_mcu_esp32s2.menu.CPUFreq.20.build.f_cpu=20000000L +sensebox_mcu_esp32s2.menu.CPUFreq.10=10MHz +sensebox_mcu_esp32s2.menu.CPUFreq.10.build.f_cpu=10000000L + +sensebox_mcu_esp32s2.menu.FlashMode.qio=QIO +sensebox_mcu_esp32s2.menu.FlashMode.qio.build.flash_mode=dio +sensebox_mcu_esp32s2.menu.FlashMode.qio.build.boot=qio +sensebox_mcu_esp32s2.menu.FlashMode.dio=DIO +sensebox_mcu_esp32s2.menu.FlashMode.dio.build.flash_mode=dio +sensebox_mcu_esp32s2.menu.FlashMode.dio.build.boot=dio +sensebox_mcu_esp32s2.menu.FlashMode.qout=QOUT +sensebox_mcu_esp32s2.menu.FlashMode.qout.build.flash_mode=dout +sensebox_mcu_esp32s2.menu.FlashMode.qout.build.boot=qout +sensebox_mcu_esp32s2.menu.FlashMode.dout=DOUT +sensebox_mcu_esp32s2.menu.FlashMode.dout.build.flash_mode=dout +sensebox_mcu_esp32s2.menu.FlashMode.dout.build.boot=dout + +sensebox_mcu_esp32s2.menu.FlashFreq.80=80MHz +sensebox_mcu_esp32s2.menu.FlashFreq.80.build.flash_freq=80m +sensebox_mcu_esp32s2.menu.FlashFreq.40=40MHz +sensebox_mcu_esp32s2.menu.FlashFreq.40.build.flash_freq=40m + +sensebox_mcu_esp32s2.menu.FlashSize.4M=4MB (32Mb) +sensebox_mcu_esp32s2.menu.FlashSize.4M.build.flash_size=4MB + +sensebox_mcu_esp32s2.menu.UploadSpeed.921600=921600 +sensebox_mcu_esp32s2.menu.UploadSpeed.921600.upload.speed=921600 +sensebox_mcu_esp32s2.menu.UploadSpeed.115200=115200 +sensebox_mcu_esp32s2.menu.UploadSpeed.115200.upload.speed=115200 +sensebox_mcu_esp32s2.menu.UploadSpeed.256000.windows=256000 +sensebox_mcu_esp32s2.menu.UploadSpeed.256000.upload.speed=256000 +sensebox_mcu_esp32s2.menu.UploadSpeed.230400.windows.upload.speed=256000 +sensebox_mcu_esp32s2.menu.UploadSpeed.230400=230400 +sensebox_mcu_esp32s2.menu.UploadSpeed.230400.upload.speed=230400 +sensebox_mcu_esp32s2.menu.UploadSpeed.460800.linux=460800 +sensebox_mcu_esp32s2.menu.UploadSpeed.460800.macosx=460800 +sensebox_mcu_esp32s2.menu.UploadSpeed.460800.upload.speed=460800 +sensebox_mcu_esp32s2.menu.UploadSpeed.512000.windows=512000 +sensebox_mcu_esp32s2.menu.UploadSpeed.512000.upload.speed=512000 + +sensebox_mcu_esp32s2.menu.DebugLevel.none=None +sensebox_mcu_esp32s2.menu.DebugLevel.none.build.code_debug=0 +sensebox_mcu_esp32s2.menu.DebugLevel.error=Error +sensebox_mcu_esp32s2.menu.DebugLevel.error.build.code_debug=1 +sensebox_mcu_esp32s2.menu.DebugLevel.warn=Warn +sensebox_mcu_esp32s2.menu.DebugLevel.warn.build.code_debug=2 +sensebox_mcu_esp32s2.menu.DebugLevel.info=Info +sensebox_mcu_esp32s2.menu.DebugLevel.info.build.code_debug=3 +sensebox_mcu_esp32s2.menu.DebugLevel.debug=Debug +sensebox_mcu_esp32s2.menu.DebugLevel.debug.build.code_debug=4 +sensebox_mcu_esp32s2.menu.DebugLevel.verbose=Verbose +sensebox_mcu_esp32s2.menu.DebugLevel.verbose.build.code_debug=5 + +sensebox_mcu_esp32s2.menu.EraseFlash.none=Disabled +sensebox_mcu_esp32s2.menu.EraseFlash.none.upload.erase_cmd= +sensebox_mcu_esp32s2.menu.EraseFlash.all=Enabled +sensebox_mcu_esp32s2.menu.EraseFlash.all.upload.erase_cmd=-e + +############################################################## diff --git a/variants/sensebox_mcu_esp32s2/bootloader-tinyuf2.bin b/variants/sensebox_mcu_esp32s2/bootloader-tinyuf2.bin new file mode 100644 index 0000000000000000000000000000000000000000..3e0f1f360a3bd8c0f65b15da7f147b706d22cf9e GIT binary patch literal 22848 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 + +#define USB_VID 0x303A +#define USB_PID 0x81B8 +#define USB_MANUFACTURER "senseBox" +#define USB_PRODUCT "MCU-S2 ESP32S2" +#define USB_SERIAL "" // Empty string for MAC adddress + +// Default USB FirmwareMSC Settings +#define USB_FW_MSC_VENDOR_ID "senseBox" // max 8 chars +#define USB_FW_MSC_PRODUCT_ID "MCU-S2 ESP32S2" // max 16 chars +#define USB_FW_MSC_PRODUCT_REVISION "1.00" // max 4 chars +#define USB_FW_MSC_VOLUME_NAME "senseBox" // max 11 chars +#define USB_FW_MSC_SERIAL_NUMBER 0x00000000 + +#define PIN_NEOPIXEL 1 // NeoPixel LED +#define NEOPIXEL_PIN 1 // NeoPixel LED +#define NEOPIXEL_NUM 1 // number of neopixels + +// Default I2C QWIIC-Ports +static const uint8_t SDA = 39; +static const uint8_t SCL = 40; +#define PIN_QWIIC_SDA 39 +#define PIN_QWIIC_SCL 40 + +// Secondary I2C MPU6050 +#define WIRE1_PIN_DEFINED 1 // See Wire.cpp at bool TwoWire::initPins(int sdaPin, int sclPin) +static const uint8_t SCL1 = 42; +static const uint8_t SDA1 = 45; +#define PIN_I2C_SCL 42 +#define PIN_I2C_SDA 45 +#define PIN_I2C_INT 46 + +// SPI +static const uint8_t SS = 42; +static const uint8_t MOSI = 35; +static const uint8_t SCK = 36; +static const uint8_t MISO = 37; + +// XBEE Pins +#define PIN_XBEE_ENABLE 41 +#define PIN_XBEE_INT 33 +#define PIN_XBEE_CS 34 +#define PIN_XBEE_MOSI 35 +#define PIN_XBEE_SCLK 36 +#define PIN_XBEE_MISO 37 +#define PIN_XBEE_RESET 38 +#define PIN_XBEE_TXD 17 +#define PIN_XBEE_RXD 18 + +// Alias XB1 +#define PIN_XB1_ENABLE 41 +#define PIN_XB1_INT 33 +#define PIN_XB1_CS 34 +#define PIN_XB1_MOSI 35 +#define PIN_XB1_SCLK 36 +#define PIN_XB1_MISO 37 +#define PIN_XB1_RESET 38 +#define PIN_XB1_TXD 17 +#define PIN_XB1_RXD 18 + +// IO Pins +#define PIN_LED 1 +#define PIN_IO2 2 +#define PIN_IO3 3 +#define PIN_IO4 4 +#define PIN_IO5 5 +#define PIN_IO6 6 +#define PIN_IO7 7 +#define IO_ENABLE 8 + +static const uint8_t A2 = PIN_IO2; +static const uint8_t A3 = PIN_IO3; +static const uint8_t A4 = PIN_IO4; +static const uint8_t A5 = PIN_IO5; +static const uint8_t A6 = PIN_IO6; +static const uint8_t A7 = PIN_IO7; + +static const uint8_t D2 = PIN_IO2; +static const uint8_t D3 = PIN_IO3; +static const uint8_t D4 = PIN_IO4; +static const uint8_t D5 = PIN_IO5; +static const uint8_t D6 = PIN_IO6; +static const uint8_t D7 = PIN_IO7; + +// UART Port +static const uint8_t TX = 43; +static const uint8_t RX = 44; +#define PIN_UART_TXD 43 +#define PIN_UART_RXD 44 +#define PIN_UART_ENABLE 26 + +// UART XBee +static const uint8_t TX1 = 17; +static const uint8_t RX1 = 18; + +// PD-Sensor +#define PD_SENSE 14 +#define PD_ENABLE 21 +#define PIN_PD_ENABLE 21 + +// SD-Card +#define VSPI_MISO 13 +#define VSPI_MOSI 11 +#define VSPI_SCLK 12 +#define VSPI_SS 10 +#define SD_ENABLE 9 + +#define PIN_SD_ENABLE 9 +#define PIN_SD_CS 10 +#define PIN_SD_MOSI 11 +#define PIN_SD_SCLK 12 +#define PIN_SD_MISO 13 + +// USB +#define PIN_USB_DM 19 +#define PIN_USB_DP 20 + +// Touch Pins +static const uint8_t T2 = PIN_IO2; +static const uint8_t T3 = PIN_IO3; +static const uint8_t T4 = PIN_IO4; +static const uint8_t T5 = PIN_IO5; +static const uint8_t T6 = PIN_IO6; +static const uint8_t T7 = PIN_IO7; + + +static const uint8_t DAC1 = 17; +static const uint8_t DAC2 = 18; + + +#endif /* Pins_Arduino_h */ \ No newline at end of file diff --git a/variants/sensebox_mcu_esp32s2/tinyuf2.bin b/variants/sensebox_mcu_esp32s2/tinyuf2.bin new file mode 100644 index 0000000000000000000000000000000000000000..bdc4d839ed7eb9433d7dbc365d69009376e606f3 GIT binary patch literal 154912 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 QsQ%+>$C}lh({Bv?4=BeA2LJ#7 literal 0 HcmV?d00001 diff --git a/variants/sensebox_mcu_esp32s2/variant.cpp b/variants/sensebox_mcu_esp32s2/variant.cpp new file mode 100644 index 00000000000..1e045054ce5 --- /dev/null +++ b/variants/sensebox_mcu_esp32s2/variant.cpp @@ -0,0 +1,55 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2021 Ha Thach (tinyusb.org) for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + + +#include "esp32-hal-gpio.h" +#include "pins_arduino.h" + +extern "C" { + +// Initialize variant/board, called before setup() +void initVariant(void) +{ + //enable IO Pins by default + pinMode(IO_ENABLE, OUTPUT); + digitalWrite(IO_ENABLE,LOW); + + //reset RGB + pinMode(PIN_NEOPIXEL, OUTPUT); + digitalWrite(PIN_NEOPIXEL, LOW); + + //enable XBEE by default + pinMode(PIN_XB1_ENABLE, OUTPUT); + digitalWrite(PIN_XB1_ENABLE, LOW); + + //enable UART by default + pinMode(PIN_UART_ENABLE, OUTPUT); + digitalWrite(PIN_UART_ENABLE, LOW); + + //enable PD-Sensor by default + pinMode(PD_ENABLE, OUTPUT); + digitalWrite(PD_ENABLE, HIGH); + +} +} \ No newline at end of file From c2862efec44f4aa1c6db254285c8f70b7dc93555 Mon Sep 17 00:00:00 2001 From: Mario Pesch Date: Mon, 19 Feb 2024 13:43:14 +0100 Subject: [PATCH 2/2] add missing defines for 2.x --- variants/sensebox_mcu_esp32s2/pins_arduino.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/variants/sensebox_mcu_esp32s2/pins_arduino.h b/variants/sensebox_mcu_esp32s2/pins_arduino.h index a2d2e0d97bc..321ce0e0078 100644 --- a/variants/sensebox_mcu_esp32s2/pins_arduino.h +++ b/variants/sensebox_mcu_esp32s2/pins_arduino.h @@ -16,6 +16,14 @@ #define USB_FW_MSC_VOLUME_NAME "senseBox" // max 11 chars #define USB_FW_MSC_SERIAL_NUMBER 0x00000000 +#define EXTERNAL_NUM_INTERRUPTS 46 +#define NUM_DIGITAL_PINS 48 +#define NUM_ANALOG_INPUTS 20 + +#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) +#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinHasPWM(p) (p < 46) + #define PIN_NEOPIXEL 1 // NeoPixel LED #define NEOPIXEL_PIN 1 // NeoPixel LED #define NEOPIXEL_NUM 1 // number of neopixels