back
Want to program STM32 Black Pill
as a USB MIDI device.
Cannot launch Arduino 2 without unnatural acts
bogus incompatibility with ImDisk...
VSCode
rant
Visual Studio Code describes itself as a "standalone source code editor",
NOT an IDE, which it is indeed NOT, since more mashup than integrated.
Task-oriented vs event-driven
Users presumably employ VSCode to accomplish tasks.
Event-driven user interfaces can make that nearly impossible.
- some VSCode menus are empty until some other menu items are completed...
Configuring VSCode should be a rare event...
- Given that rarity, configuration should be easily accomplished and well explained.
- At least for VSCode-Arduino, configuration is hardly explained
and unclear whether actually accomplished.
This is my first Visual Studio Code experience.
I downloaded and installed it,
then immediately added Arduino Community Edition and Vim extensions
- clicking on those extensions shows a page about installing, already done.. wtf???
After initial installation, Arduino Community Edition reported itself not activated...??
(... which is never explained ...)
Arduino Community Edition store page is at best misleading.
No Arduino CLI was bundled with it; it silently used that already installed by Arduino 2.
When setting BlackPill F411CE Board, OUTPUT logged ESP32 installation...??!!
Admittedly, the store page did mention using F1 , which I missed/forgot,
but F1 is absolutely essential to running Arduino in VSCode;
- nearly everything task-oriented requires first pressing F1 .
Adding insult to injury
VSCode editor response to keystrokes is unusably slow.
- Community maintained version of Visual Studio Code extension for Arduino
- - corresponding Arduino Tools extension for VS Code
So far
- Installed VSCode (about 434MB in
F:\VSCode + 309MB in ~\.vscode );
added extensions
- Arduino Community Edition
- Vim emulation
- selected BlackPill F411CE
- F1, Arduino: Verify SerialUSB.ino
This builds (F1 , then scroll to and select Arduino: Verify )
first OUTPUTs:
[Warning] Output path is not specified.
Unable to reuse previously compiled files. Build will be slower. See README.
- what
Output path ?
- where to specify?
- what
README ?
- FWIW, found builds in
F:\Temp\arduino
- found configuration crap in
/c/Users/bleke/AppData/Roaming/Code .
- vscode-arduino stuff is in
~/.vscode/extensions/vscode-arduino.vscode-arduino-community-0.7.2-win32-x64
- That
[Warning] may be from arduino-cli
find . -name 'arduino-cli*' -print
~/.arduinoIDE/arduino-cli.yaml
~/.vscode/extensions/vscode-arduino.vscode-arduino-community-0.7.2-win32-x64/assets/platform/win32-x64/arduino-cli
~/.vscode/extensions/vscode-arduino.vscode-arduino-community-0.7.2-win32-x64/assets/platform/win32-x64/arduino-cli/arduino-cli.exe
~/AppData/Local/Arduino15/packages/STMicroelectronics/hardware/stm32/2.11.0/CI/build/arduino-cli.py
- I find no Python installed...
arduino-cli.exe Version: 0.31.0 is installed; 1.3.0 is available,
but does not by default find ~/.arduinoIDE/arduino-cli.yaml ;
- bundled
arduino-cli does not support:build_cache:
path: f:/Temp/arduino
- My default shell is
msys64 bash ; added to .bash_profile :
# 19 Aug 2025 arduino-cli
if [ -r "${USERPROFILE}/.arduinoIDE/arduino-cli.yaml" ]; then
export ARDUINO_CONFIG_FILE="${USERPROFILE}/.arduinoIDE/arduino-cli.yaml"
fi
if [ -d "/d/my/arduino-cli_1.3" ]; then
PATH="${PATH}:/d/my/arduino-cli_1.3"
alias arduino-cli="/d/my/arduino-cli_1.3/arduino-cli.exe"
fi ...yielding:bleke@Antec UCRT64 ~
$ arduino-cli version
arduino-cli Version: 1.3.0 Commit: 3eecf201 Date: 2025-08-11T08:40:48Z
bleke@Antec UCRT64 ~
$ arduino-cli config dump
board_manager:
additional_urls:
- https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
build_cache:
path: f:/Temp/arduino
directories:
builtin:
libraries: C:\Users\bleke\AppData\Local\Arduino15\libraries
data: c:\Users\bleke\AppData\Local\Arduino15
user: c:\Users\bleke\Documents\Arduino
locale: en
Consequently, must set arduino.json "output" uniquely for each sketch
e.g.: $ cat .vscode/arduino.json
{
"configuration": "pnum=BLACKPILL_F411CE,upload_method=swdMethod,xserial=generic,usb=none,xusb=FS,opt=osstd,dbg=none,rtlib=nano",
"board": "STMicroelectronics:stm32:GenF4",
"sketch": "SerialUSB.ino",
"output": "f:/Temp/arduino/sketches/SerialUSB"
}
STM32 Upload method is set in Arduino Board Configuration ;
- NOT
Arduino: Select Programmer
... but Upload is broken
Documentation
- VS Marketplace
<- this wants careful reading (and rereading)
arduino-cli GitHub
DeepWiki;
DEV
CIRCUITSTATE
ST has a non-Arduino VSCode plugin
|