Skip to content

Align BoardDetailsResponse#config_options order with Java IDE #2018

Closed
@dankeboy36

Description

@dankeboy36

Describe the request

I want to show the config options for a board in the same order as the Java IDE. The array of config options is out of order in the response. Thanks!

IDE:
Screen Shot 2022-12-26 at 12 51 42

Describe the current behavior

Request:

{
    "instance": {
        "id": 1
    },
    "fqbn": "esp8266:esp8266:generic"
}

Response:

{
    "fqbn": "esp8266:esp8266:generic",
    "configOptions": [
        {
            "option": "xtal",
            "optionLabel": "CPU Frequency",
            "values": [
                {
                    "value": "80",
                    "valueLabel": "80 MHz",
                    "selected": true
                },
                {
                    "value": "160",
                    "valueLabel": "160 MHz",
                    "selected": false
                }
            ]
        },
        {
            "option": "vt",
            "optionLabel": "VTables",
            "values": [
                {
                    "value": "flash",
                    "valueLabel": "Flash",
                    "selected": true
                },
                {
                    "value": "heap",
                    "valueLabel": "Heap",
                    "selected": false
                },
                {
                    "value": "iram",
                    "valueLabel": "IRAM",
                    "selected": false
                }
            ]
        },
        {
            "option": "exception",
            "optionLabel": "C++ Exceptions",
            "values": [
                {
                    "value": "disabled",
                    "valueLabel": "Disabled (new aborts on oom)",
                    "selected": true
                },
                {
                    "value": "enabled",
                    "valueLabel": "Enabled",
                    "selected": false
                }
            ]
        },
        {
            "option": "stacksmash",
            "optionLabel": "Stack Protection",
            "values": [
                {
                    "value": "disabled",
                    "valueLabel": "Disabled",
                    "selected": true
                },
                {
                    "value": "enabled",
                    "valueLabel": "Enabled",
                    "selected": false
                }
            ]
        },
        {
            "option": "ssl",
            "optionLabel": "SSL Support",
            "values": [
                {
                    "value": "all",
                    "valueLabel": "All SSL ciphers (most compatible)",
                    "selected": true
                },
                {
                    "value": "basic",
                    "valueLabel": "Basic SSL ciphers (lower ROM use)",
                    "selected": false
                }
            ]
        },
        {
            "option": "mmu",
            "optionLabel": "MMU",
            "values": [
                {
                    "value": "3232",
                    "valueLabel": "32KB cache + 32KB IRAM (balanced)",
                    "selected": true
                },
                {
                    "value": "4816",
                    "valueLabel": "16KB cache + 48KB IRAM (IRAM)",
                    "selected": false
                },
                {
                    "value": "4816H",
                    "valueLabel": "16KB cache + 48KB IRAM and 2nd Heap (shared)",
                    "selected": false
                },
                {
                    "value": "3216",
                    "valueLabel": "16KB cache + 32KB IRAM + 16KB 2nd Heap (not shared)",
                    "selected": false
                },
                {
                    "value": "ext128k",
                    "valueLabel": "128K External 23LC1024",
                    "selected": false
                },
                {
                    "value": "ext1024k",
                    "valueLabel": "1M External 64 MBit PSRAM",
                    "selected": false
                }
            ]
        },
        {
            "option": "non32xfer",
            "optionLabel": "Non-32-Bit Access",
            "values": [
                {
                    "value": "fast",
                    "valueLabel": "Use pgm_read macros for IRAM/PROGMEM",
                    "selected": true
                },
                {
                    "value": "safe",
                    "valueLabel": "Byte/Word access to IRAM/PROGMEM (very slow)",
                    "selected": false
                }
            ]
        },
        {
            "option": "ResetMethod",
            "optionLabel": "Reset Method",
            "values": [
                {
                    "value": "nodemcu",
                    "valueLabel": "dtr (aka nodemcu)",
                    "selected": true
                },
                {
                    "value": "ck",
                    "valueLabel": "no dtr (aka ck)",
                    "selected": false
                },
                {
                    "value": "nodtr_nosync",
                    "valueLabel": "no dtr, no_sync",
                    "selected": false
                }
            ]
        },
        {
            "option": "CrystalFreq",
            "optionLabel": "Crystal Frequency",
            "values": [
                {
                    "value": "26",
                    "valueLabel": "26 MHz",
                    "selected": true
                },
                {
                    "value": "40",
                    "valueLabel": "40 MHz",
                    "selected": false
                }
            ]
        },
        {
            "option": "FlashFreq",
            "optionLabel": "Flash Frequency",
            "values": [
                {
                    "value": "40",
                    "valueLabel": "40MHz",
                    "selected": true
                },
                {
                    "value": "80",
                    "valueLabel": "80MHz",
                    "selected": false
                },
                {
                    "value": "20",
                    "valueLabel": "20MHz",
                    "selected": false
                },
                {
                    "value": "26",
                    "valueLabel": "26MHz",
                    "selected": false
                }
            ]
        },
        {
            "option": "FlashMode",
            "optionLabel": "Flash Mode",
            "values": [
                {
                    "value": "dout",
                    "valueLabel": "DOUT (compatible)",
                    "selected": true
                },
                {
                    "value": "dio",
                    "valueLabel": "DIO",
                    "selected": false
                },
                {
                    "value": "qout",
                    "valueLabel": "QOUT",
                    "selected": false
                },
                {
                    "value": "qio",
                    "valueLabel": "QIO (fast)",
                    "selected": false
                }
            ]
        },
        {
            "option": "eesz",
            "optionLabel": "Flash Size",
            "values": [
                {
                    "value": "1M64",
                    "valueLabel": "1MB (FS:64KB OTA:~470KB)",
                    "selected": true
                },
                {
                    "value": "1M128",
                    "valueLabel": "1MB (FS:128KB OTA:~438KB)",
                    "selected": false
                },
                {
                    "value": "1M144",
                    "valueLabel": "1MB (FS:144KB OTA:~430KB)",
                    "selected": false
                },
                {
                    "value": "1M160",
                    "valueLabel": "1MB (FS:160KB OTA:~422KB)",
                    "selected": false
                },
                {
                    "value": "1M192",
                    "valueLabel": "1MB (FS:192KB OTA:~406KB)",
                    "selected": false
                },
                {
                    "value": "1M256",
                    "valueLabel": "1MB (FS:256KB OTA:~374KB)",
                    "selected": false
                },
                {
                    "value": "1M512",
                    "valueLabel": "1MB (FS:512KB OTA:~246KB)",
                    "selected": false
                },
                {
                    "value": "1M",
                    "valueLabel": "1MB (FS:none OTA:~502KB)",
                    "selected": false
                },
                {
                    "value": "2M64",
                    "valueLabel": "2MB (FS:64KB OTA:~992KB)",
                    "selected": false
                },
                {
                    "value": "2M128",
                    "valueLabel": "2MB (FS:128KB OTA:~960KB)",
                    "selected": false
                },
                {
                    "value": "2M256",
                    "valueLabel": "2MB (FS:256KB OTA:~896KB)",
                    "selected": false
                },
                {
                    "value": "2M512",
                    "valueLabel": "2MB (FS:512KB OTA:~768KB)",
                    "selected": false
                },
                {
                    "value": "2M1M",
                    "valueLabel": "2MB (FS:1MB OTA:~512KB)",
                    "selected": false
                },
                {
                    "value": "2M",
                    "valueLabel": "2MB (FS:none OTA:~1019KB)",
                    "selected": false
                },
                {
                    "value": "4M2M",
                    "valueLabel": "4MB (FS:2MB OTA:~1019KB)",
                    "selected": false
                },
                {
                    "value": "4M3M",
                    "valueLabel": "4MB (FS:3MB OTA:~512KB)",
                    "selected": false
                },
                {
                    "value": "4M1M",
                    "valueLabel": "4MB (FS:1MB OTA:~1019KB)",
                    "selected": false
                },
                {
                    "value": "4M",
                    "valueLabel": "4MB (FS:none OTA:~1019KB)",
                    "selected": false
                },
                {
                    "value": "8M6M",
                    "valueLabel": "8MB (FS:6MB OTA:~1019KB)",
                    "selected": false
                },
                {
                    "value": "8M7M",
                    "valueLabel": "8MB (FS:7MB OTA:~512KB)",
                    "selected": false
                },
                {
                    "value": "16M14M",
                    "valueLabel": "16MB (FS:14MB OTA:~1019KB)",
                    "selected": false
                },
                {
                    "value": "16M15M",
                    "valueLabel": "16MB (FS:15MB OTA:~512KB)",
                    "selected": false
                },
                {
                    "value": "512K32",
                    "valueLabel": "512KB (FS:32KB OTA:~230KB)",
                    "selected": false
                },
                {
                    "value": "512K64",
                    "valueLabel": "512KB (FS:64KB OTA:~214KB)",
                    "selected": false
                },
                {
                    "value": "512K128",
                    "valueLabel": "512KB (FS:128KB OTA:~182KB)",
                    "selected": false
                },
                {
                    "value": "512K",
                    "valueLabel": "512KB (FS:none OTA:~246KB)",
                    "selected": false
                }
            ]
        },
        {
            "option": "led",
            "optionLabel": "Builtin Led",
            "values": [
                {
                    "value": "2",
                    "valueLabel": "2",
                    "selected": true
                },
                {
                    "value": "0",
                    "valueLabel": "0",
                    "selected": false
                },
                {
                    "value": "1",
                    "valueLabel": "1",
                    "selected": false
                },
                {
                    "value": "3",
                    "valueLabel": "3",
                    "selected": false
                },
                {
                    "value": "4",
                    "valueLabel": "4",
                    "selected": false
                },
                {
                    "value": "5",
                    "valueLabel": "5",
                    "selected": false
                },
                {
                    "value": "6",
                    "valueLabel": "6",
                    "selected": false
                },
                {
                    "value": "7",
                    "valueLabel": "7",
                    "selected": false
                },
                {
                    "value": "8",
                    "valueLabel": "8",
                    "selected": false
                },
                {
                    "value": "9",
                    "valueLabel": "9",
                    "selected": false
                },
                {
                    "value": "10",
                    "valueLabel": "10",
                    "selected": false
                },
                {
                    "value": "11",
                    "valueLabel": "11",
                    "selected": false
                },
                {
                    "value": "12",
                    "valueLabel": "12",
                    "selected": false
                },
                {
                    "value": "13",
                    "valueLabel": "13",
                    "selected": false
                },
                {
                    "value": "14",
                    "valueLabel": "14",
                    "selected": false
                },
                {
                    "value": "15",
                    "valueLabel": "15",
                    "selected": false
                },
                {
                    "value": "16",
                    "valueLabel": "16",
                    "selected": false
                }
            ]
        },
        {
            "option": "sdk",
            "optionLabel": "Espressif FW",
            "values": [
                {
                    "value": "nonosdk_190703",
                    "valueLabel": "nonos-sdk 2.2.1+100 (190703)",
                    "selected": true
                },
                {
                    "value": "nonosdk_191122",
                    "valueLabel": "nonos-sdk 2.2.1+119 (191122)",
                    "selected": false
                },
                {
                    "value": "nonosdk_191105",
                    "valueLabel": "nonos-sdk 2.2.1+113 (191105)",
                    "selected": false
                },
                {
                    "value": "nonosdk_191024",
                    "valueLabel": "nonos-sdk 2.2.1+111 (191024)",
                    "selected": false
                },
                {
                    "value": "nonosdk221",
                    "valueLabel": "nonos-sdk 2.2.1 (legacy)",
                    "selected": false
                },
                {
                    "value": "nonosdk3v0",
                    "valueLabel": "nonos-sdk pre-3 (180626 known issues)",
                    "selected": false
                }
            ]
        },
        {
            "option": "ip",
            "optionLabel": "lwIP Variant",
            "values": [
                {
                    "value": "lm2f",
                    "valueLabel": "v2 Lower Memory",
                    "selected": true
                },
                {
                    "value": "hb2f",
                    "valueLabel": "v2 Higher Bandwidth",
                    "selected": false
                },
                {
                    "value": "lm2n",
                    "valueLabel": "v2 Lower Memory (no features)",
                    "selected": false
                },
                {
                    "value": "hb2n",
                    "valueLabel": "v2 Higher Bandwidth (no features)",
                    "selected": false
                },
                {
                    "value": "lm6f",
                    "valueLabel": "v2 IPv6 Lower Memory",
                    "selected": false
                },
                {
                    "value": "hb6f",
                    "valueLabel": "v2 IPv6 Higher Bandwidth",
                    "selected": false
                }
            ]
        },
        {
            "option": "dbg",
            "optionLabel": "Debug port",
            "values": [
                {
                    "value": "Disabled",
                    "valueLabel": "Disabled",
                    "selected": true
                },
                {
                    "value": "Serial",
                    "valueLabel": "Serial",
                    "selected": false
                },
                {
                    "value": "Serial1",
                    "valueLabel": "Serial1",
                    "selected": false
                }
            ]
        },
        {
            "option": "lvl",
            "optionLabel": "Debug Level",
            "values": [
                {
                    "value": "None____",
                    "valueLabel": "None",
                    "selected": true
                },
                {
                    "value": "SSL",
                    "valueLabel": "SSL",
                    "selected": false
                },
                {
                    "value": "TLS_MEM",
                    "valueLabel": "TLS_MEM",
                    "selected": false
                },
                {
                    "value": "HTTP_CLIENT",
                    "valueLabel": "HTTP_CLIENT",
                    "selected": false
                },
                {
                    "value": "HTTP_SERVER",
                    "valueLabel": "HTTP_SERVER",
                    "selected": false
                },
                {
                    "value": "SSLTLS_MEM",
                    "valueLabel": "SSL+TLS_MEM",
                    "selected": false
                },
                {
                    "value": "SSLHTTP_CLIENT",
                    "valueLabel": "SSL+HTTP_CLIENT",
                    "selected": false
                },
                {
                    "value": "SSLHTTP_SERVER",
                    "valueLabel": "SSL+HTTP_SERVER",
                    "selected": false
                },
                {
                    "value": "TLS_MEMHTTP_CLIENT",
                    "valueLabel": "TLS_MEM+HTTP_CLIENT",
                    "selected": false
                },
                {
                    "value": "TLS_MEMHTTP_SERVER",
                    "valueLabel": "TLS_MEM+HTTP_SERVER",
                    "selected": false
                },
                {
                    "value": "HTTP_CLIENTHTTP_SERVER",
                    "valueLabel": "HTTP_CLIENT+HTTP_SERVER",
                    "selected": false
                },
                {
                    "value": "SSLTLS_MEMHTTP_CLIENT",
                    "valueLabel": "SSL+TLS_MEM+HTTP_CLIENT",
                    "selected": false
                },
                {
                    "value": "SSLTLS_MEMHTTP_SERVER",
                    "valueLabel": "SSL+TLS_MEM+HTTP_SERVER",
                    "selected": false
                },
                {
                    "value": "SSLHTTP_CLIENTHTTP_SERVER",
                    "valueLabel": "SSL+HTTP_CLIENT+HTTP_SERVER",
                    "selected": false
                },
                {
                    "value": "TLS_MEMHTTP_CLIENTHTTP_SERVER",
                    "valueLabel": "TLS_MEM+HTTP_CLIENT+HTTP_SERVER",
                    "selected": false
                },
                {
                    "value": "SSLTLS_MEMHTTP_CLIENTHTTP_SERVER",
                    "valueLabel": "SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER",
                    "selected": false
                },
                {
                    "value": "CORE",
                    "valueLabel": "CORE",
                    "selected": false
                },
                {
                    "value": "WIFI",
                    "valueLabel": "WIFI",
                    "selected": false
                },
                {
                    "value": "HTTP_UPDATE",
                    "valueLabel": "HTTP_UPDATE",
                    "selected": false
                },
                {
                    "value": "UPDATER",
                    "valueLabel": "UPDATER",
                    "selected": false
                },
                {
                    "value": "OTA",
                    "valueLabel": "OTA",
                    "selected": false
                },
                {
                    "value": "OOM",
                    "valueLabel": "OOM",
                    "selected": false
                },
                {
                    "value": "MDNS",
                    "valueLabel": "MDNS",
                    "selected": false
                },
                {
                    "value": "HWDT",
                    "valueLabel": "HWDT",
                    "selected": false
                },
                {
                    "value": "HWDT_NOEXTRA4K",
                    "valueLabel": "HWDT_NOEXTRA4K",
                    "selected": false
                },
                {
                    "value": "COREWIFIHTTP_UPDATEUPDATEROTAOOMMDNS",
                    "valueLabel": "CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM+MDNS",
                    "selected": false
                },
                {
                    "value": "COREWIFIHTTP_UPDATEUPDATEROTAOOMMDNSHWDT",
                    "valueLabel": "CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM+MDNS+HWDT",
                    "selected": false
                },
                {
                    "value": "COREWIFIHTTP_UPDATEUPDATEROTAOOMMDNSHWDT_NOEXTRA4K",
                    "valueLabel": "CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM+MDNS+HWDT_NOEXTRA4K",
                    "selected": false
                },
                {
                    "value": "SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOMMDNS",
                    "valueLabel": "SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM+MDNS",
                    "selected": false
                },
                {
                    "value": "SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOMMDNSHWDT",
                    "valuxeLabel": "SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM+MDNS+HWDT",
                    "selected": false
                },
                {
                    "value": "SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOMMDNSHWDT_NOEXTRA4K",
                    "valueLabel": "SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM+MDNS+HWDT_NOEXTRA4K",
                    "selected": false
                },
                {
                    "value": "NoAssert-NDEBUG",
                    "valueLabel": "NoAssert-NDEBUG",
                    "selected": false
                }
            ]
        },
        {
            "option": "wipe",
            "optionLabel": "Erase Flash",
            "values": [
                {
                    "value": "none",
                    "valueLabel": "Only Sketch",
                    "selected": true
                },
                {
                    "value": "sdk",
                    "valueLabel": "Sketch + WiFi Settings",
                    "selected": false
                },
                {
                    "value": "all",
                    "valueLabel": "All Flash Contents",
                    "selected": false
                }
            ]
        },
        {
            "option": "baud",
            "optionLabel": "Upload Speed",
            "values": [
                {
                    "value": "115200",
                    "valueLabel": "115200",
                    "selected": true
                },
                {
                    "value": "57600",
                    "valueLabel": "57600",
                    "selected": false
                },
                {
                    "value": "230400",
                    "valueLabel": "230400",
                    "selected": false
                },
                {
                    "value": "460800",
                    "valueLabel": "460800",
                    "selected": false
                },
                {
                    "value": "921600",
                    "valueLabel": "921600",
                    "selected": false
                },
                {
                    "value": "3000000",
                    "valueLabel": "3000000",
                    "selected": false
                }
            ]
        }
    ]
}

I edited the JSON response and kept the config_options and fqbn to make the snippet smaller. The config options do not match the Java app.

Arduino CLI version

0.29.0 76251df

Operating system

macOS

Operating system version

11.6.5

Additional context

Also different. New IDE 2.0.3:

Screen Shot 2022-12-26 at 13 12 55

Issue checklist

  • I searched for previous requests in the issue tracker
  • I verified the feature was still missing when using the nightly build
  • My request contains all necessary details

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions