Bad package version `esp-14.2.0_20241119`

With all default settings? Screenshot of Arduino IDE → Tools menu?

Ok, I have the basic example working in Vscode:

Needed to put a space after the -D to separate it from the rest of the text in the build_flags line. I still can’t get it to work for the original project, but evidently that must be the way that the project is set up. The basic example shows it works in principle.

Can’t capture the open menu unfortunately, but yes, with all default settings except for “Use CDC on Boot” which has to be set to “Enable”. I imagine it does the same thing as the ‘-D ARDUINO_USB_CDC_ON_BOOT=1’ line in platformio.ini. The Tools diaglog closes as soon as I hit ‘Print Screen’.

What’s the full platformio.ini for the full project?

Ok, here is the full platformio.ini as requested:

; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[platformio]
src_dir = src/
default_envs = AR488-ESP32-Rev4

[avr]
platform = atmelavr
framework = arduino
build_flags = -D USE_MACROS -D HAS_HELP_COMMAND

[env:uno]
extends = avr
board = uno
build_flags =
	${avr.build_flags}
	-D AR488_UNO

[env:micro]
extends = avr
board = micro
build_flags =
	-D AR488_MEGA32U4

[env:mega2560_D]
extends = avr
board = megaatmega2560
build_flags =
	${avr.build_flags}
	-D AR488_MEGA2560 -D AR488_MEGA2560_D

[env:mega2560_E1]
extends = avr
board = megaatmega2560
build_flags =
	${avr.build_flags}
	-D AR488_MEGA2560 -D AR488_MEGA2560_E1

[env:mega2560_E2]
extends = avr
board = megaatmega2560
build_flags =
	${avr.build_flags}
	-D AR488_MEGA2560 -D AR488_MEGA2560_E2

[env:f303k8]
platform = ststm32
framework = arduino
board = nucleo_f303k8
build_flags =
	-D AR488_CUSTOM -D USE_INTERRUPTS
	-D DIO1=PB6 -D DIO2=PB7 -D DIO3=PA12 -D DIO4=PA10
	-D DIO5=PF0 -D DIO6=PF1 -D DIO7=PA8 -D DIO8=PA11
	-D IFC=PA1  -D NDAC=PA0 -D NRFD=PB3 -D DAV=PA4
	-D EOI=PB0 -D SRQ=PB4 -D REN=PB5 -D ATN=PA9

[env:f303k8-161]
platform = ststm32
framework = arduino
board = nucleo_f303k8
build_flags =
	-D AR488_CUSTOM -D USE_INTERRUPTS
	-D SN7516X -D SN7516X_TE=PA5 -D SN7516X_DC=PB3
	-D DIO1=PA9 -D DIO2=PA10 -D DIO3=PA12 -D DIO4=PB4
	-D DIO5=PB6 -D DIO6=PF0  -D DIO7=PF1  -D DIO8=PA8
	-D REN=PA11 -D IFC=PB5   -D NDAC=PB0  -D NRFD=PA4
	-D DAV=PA7  -D EOI=PA0   -D ATN=PA1   -D SRQ=PB7

[esp32]
platform = espressif32
framework = arduino
build_flags =
	-D AR488_CUSTOM
	-D USE_MACROS
    -D HAS_HELP_COMMAND

[env:ttgo-t8-161]
extends = esp32
board = esp32dev
board_build.partitions = ttgo.csv
build_flags =
	${esp32.build_flags}
	-D AR488_WIFI_ENABLE
	-D BOARD_HAS_PSRAM
	-D AR488_BT_ENABLE
	-D SN7516X -D SN7516X_TE=4 -D SN7516X_DC=21
	-D DIO1=34 -D DIO2=35 -D DIO3=32  -D DIO4=33
	-D DIO5=25 -D DIO6=26 -D DIO7=27  -D DIO8=14
	-D REN=13  -D IFC=15  -D NDAC=22  -D NRFD=19
	-D DAV=23  -D EOI=18  -D ATN=5    -D SRQ=2

[env:esp32dev]
extends = esp32
board = esp32dev
board_build.partitions = ttgo.csv
build_flags =
	${esp32.build_flags}
	-D AR488_WIFI_ENABLE
	-D BOARD_HAS_PSRAM
	-D AR488_BT_ENABLE
	-D SN7516X -D SN7516X_TE=15 -D SN7516X_DC=2
        -D SN7516X_SC=0  # for 75162
	-D DIO1=33 -D DIO2=32 -D DIO3=26  -D DIO4=25
	-D DIO5=14 -D DIO6=27 -D DIO7=13  -D DIO8=12
	-D REN=23  -D IFC=22  -D NDAC=21  -D NRFD=19
	-D DAV=18  -D EOI=17  -D ATN=4    -D SRQ=16

[env:lolin32-161]
extends = esp32
board = lolin32
build_flags =
	${esp32.build_flags}
	-D AR488_WIFI_ENABLE
	-D SN7516X -D SN7516X_TE=15 -D SN7516X_DC=2
        # -D SN7516X_SC=0
	-D DIO1=32 -D DIO2=33 -D DIO3=25  -D DIO4=26
	-D DIO5=27 -D DIO6=14 -D DIO7=12  -D DIO8=13
	-D REN=22  -D IFC=21  -D NDAC=19  -D NRFD=23
	-D DAV=18  -D EOI=17  -D ATN=16   -D SRQ=4

[esp32v2]
platform = https://github.com/platformio/platform-espressif32.git#feature/arduino-upstream
platform_packages =
	framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#2.0.14
framework = arduino
build_flags =
	-D AR488_CUSTOM
	-D USE_MACROS
	-D AR488_WIFI_ENABLE

[env:esp32s2-161]
extends = esp32v2
board = esp32-s2-saola-1
build_flags =
	${esp32v2.build_flags}
	-D BOARD_HAS_PSRAM
	-D SN7516X -D SN7516X_TE=17 -D SN7516X_DC=21
	-D DIO1=1 -D DIO2=2 -D DIO3=3  -D DIO4=4
	-D DIO5=5 -D DIO6=6 -D DIO7=7  -D DIO8=8
	-D REN=9  -D IFC=10 -D NDAC=11 -D NRFD=12
	-D DAV=13 -D EOI=14 -D ATN=15  -D SRQ=16

[env:lolin32-161-v2]
extends = esp32v2
board = lolin32
build_flags =
	${esp32v2.build_flags}
	-D SN7516X -D SN7516X_TE=15 -D SN7516X_DC=2
	-D DIO1=32 -D DIO2=33 -D DIO3=25  -D DIO4=26
	-D DIO5=27 -D DIO6=14 -D DIO7=12  -D DIO8=13
	-D REN=22  -D IFC=21  -D NDAC=19  -D NRFD=23
	-D DAV=18  -D EOI=17  -D ATN=16   -D SRQ=4

[env:AR488-ESP32-Rev4]
platform = espressif32
framework = arduino
board = esp32-s2-saola-1
upload_protocol = esptool
monitor_speed = 115200
build_flags =
	${esp32v2.build_flags}
	-D ARDUINO_USB_CDC_ON_BOOT=1
	-D AR_ESP32S2_USB_CDC=Serial
	-D AR488_CUSTOM
	-D SN7516X -D SN7516X_TE=17
	-D DIO1=8 -D DIO2=9 -D DIO3=10  -D DIO4=11
	-D DIO5=12 -D DIO6=13 -D DIO7=14  -D DIO8=15
	-D REN=26  -D IFC=38  -D NDAC=33  -D NRFD=34
	-D DAV=40  -D EOI=35  -D ATN=36   -D SRQ=37

[env:AR488-ESP32-Rev5]
platform = espressif32
framework = arduino
board = esp32-s2-saola-1
upload_protocol = esptool
build_flags =
	${esp32v2.build_flags}
	-D AR_ESP32S2_USB_CDC
	-D AR488_CUSTOM
	-D SN7516X -D SN7516X_TE=17 -D SN7516X_DC=38 -D SN7516X_PE=1
	-D DIO1=8 -D DIO2=9 -D DIO3=10  -D DIO4=11
	-D DIO5=12 -D DIO6=13 -D DIO7=14  -D DIO8=15
	-D REN=21  -D IFC=4  -D NDAC=33  -D NRFD=34
	-D DAV=5  -D EOI=35  -D ATN=36   -D SRQ=37

Thank you for having a look.

A short term quick & dirty workaround that accommodates both scenarios.

Run two versions of VS Code, they seem to happily coexist and operate concurrently on the same Win 11 Pro machine.
Run one with Platform IO, my preferred option and which covers a large proportion of my code, and run the other with the pioarduino extension.
In my case I have a standard VSC instance plus a VSC Insider version.
Cheers

That’s an interesting idea. I guess that’s one way of getting around it.