import { pinIoCategory } from '../blocks/categories/pinIo.js';
import { pwmCategory } from '../blocks/categories/pwm.js';
import { adcCategory } from '../blocks/categories/adc.js';
import { sensorsCategory } from '../blocks/categories/sensors.js';
import { timeCategory } from '../blocks/categories/time.js';
import { wifiCategory } from '../blocks/categories/wifi.js';
import { neopixelCategory } from '../blocks/categories/neopixel.js';
import { i2cCategory } from '../blocks/categories/i2c.js';
import { serialPrintCategory } from '../blocks/categories/serialPrint.js';
import { soundCategory } from '../blocks/categories/sound.js';
import { randomCategory } from '../blocks/categories/random.js';
import { hidCategory } from '../blocks/categories/hid.js';
import { hbridgeMotorCategory } from '../blocks/categories/hbridgeMotor.js';

export const esp32s3 = {
  id: 'esp32s3',
  label: 'ESP32',
  firmware: {
    label: 'MicroPython (ESP32)',
    url: import.meta.env.BASE_URL + 'firmware/ESP32_GENERIC-20260406-v1.28.0.bin',
    canFlashInBrowser: true,
    instructions: null,
  },
  categories: [
    pinIoCategory,
    pwmCategory,
    adcCategory,
    sensorsCategory,
    timeCategory,
    wifiCategory,
    neopixelCategory,
    i2cCategory,
    hidCategory,
    soundCategory(),
    hbridgeMotorCategory,
    serialPrintCategory,
    randomCategory,
  ],
};
