var toolbox_esp = {
  "kind": "categoryToolbox",
  "contents": [
    {
      "kind": "category",
      "name": "%{BKY_CAT_ESP}",
      "toolboxitemid": "ESP",
      "levels": "1,2,3",
      "level": "1",
      "categorystyle": "esp_category",
      "cssConfig": {
        "icon": "customIcon fas fa-play"
      },
      "contents": [
        // --- Setup Block ---
        {
          "kind": "block",
          "type": "ESP12_setup"
        },

        // --- Separator ---
        {
          "kind": "sep",
          "gap": 50
        },

        // --- Digital Write / PWM Write ---
        {
          "kind": "block",
          "blockxml": "<block type='input_digital_write_esp12'><value name='PIN'><shadow type='math_number_custom'><field name='NUM'>1</field></shadow></value></block>"
        },
        {
          "kind": "block",
          "blockxml": "<block type='set_pwm_output'><value name='PIN'><shadow type='math_number_custom'><field name='NUM'>5</field></shadow></value><value name='VALUE'><shadow type='math_number_custom'><field name='NUM'>128</field></shadow></value></block>"
        },

        // --- Digital Read / Analog Read ---
        {
          "kind": "block",
          "type": "esp12_input_digital_read"
        },
        {
          "kind": "block",
          "type": "esp12_input_analog_read"
        },

        // --- Separator ---
        {
          "kind": "sep",
          "gap": 50
        },

        // --- Serial Print / Serial Read ---
        {
          "kind": "block",
          "blockxml": "<block type='serial_print'><value name='VALUE'><shadow type='text'><field name='TEXT'>Hello</field></shadow></value></block>"
        },
        {
            "kind": "block",
            "type": "serial_read_byte"
        },
        // --- Separator ---
        {
          "kind": "sep",
          "gap": 50
        },

        // --- ESP12 Setup, Init, Read, IP ---
        // {
        //     "kind": "block",
        //     "type": "set_esp32"
        // },
        {
          "kind": "block",
          "type": "set_esp"
        },
        {
          "kind": "block",
          "type": "Init_ESP12_Port"
        },
        {
          "kind": "block",
          "type": "Read_ESP12_Data"
        },
        {
          "kind": "block",
          "type": "esp01x_ip_address"
        },

        // --- Separator ---
        {
          "kind": "sep",
          "gap": 50
        },

        // --- Servo ---
        {
          "kind": "block",
          "blockxml": "<block type='servo_control_esp12'><value name='DEGREE'><shadow type='math_number_custom'><field name='NUM'></field></shadow></value></block>"
        },

        // --- Separator ---
        {
          "kind": "sep",
          "gap": 50
        },

        // --- OLED ---
        {
          "kind": "block",
          "type": "sh1106_set_text_size"
        },
        {
          "kind": "block",
          "blockxml": "<block type='sh1106_set_cursor'><value name='X'><shadow type='math_number_custom'><field name='NUM'>0</field></shadow></value><value name='Y'><shadow type='math_number_custom'><field name='NUM'>0</field></shadow></value></block>"
        },
        {
          "kind": "block",
          "blockxml": "<block type='sh1106_write_text'><value name='TEXT'><shadow type='text'><field name='TEXT'></field></shadow></value></block>"
        },
        {
          "kind": "block",
          "type": "sh1106_clear_display"
        },
        // {
        //   "kind": "block",
        //   "type": "sh1106_invert_display"
        // },
        {
          "kind": "block",
          "type": "sh1106_set_size"
        },
        {
          "kind": "block",
          "type": "sh1106_set_text_color"
        },

        // --- Separator ---
        {
          "kind": "sep",
          "gap": 50
        },

        // --- NeoPixel ---
        {
          "kind": "block",
          "blockxml": "<block type='neopixel_set_color'><value name='COLOR'><shadow type='color_picker_rgb'><field name='COLOR'>#ff0000</field></shadow></value></block>"
        }
      ]
    }
  ]
};
