That is consistent to what I am seeing, i.e. no firmware.bin file. Here is what my .pioenvs has:

and upload.jlink has this:

I could create a firmware.bin file if I knew where the script is that results from pio run. Specifically, unless there is a better way, I could add another call to arm-none-eabi-objcopy bit to create a binary file from firmware.elf
However, if the binary file is created and then deleted, where can I stop its deletion?
I’m reading thru the custom scripts section but the answer isn’t readily obvious.
Any advice?