I have a script to send firmware.hex
to an RPi for upload to an Arduino. This script is declared in platformio.ini as
extra_scripts =
post:sendhex.py
Unfortunately it runs before firmware.hex
is built, sending the bits from the previous build instead of the current one.
Is there a way to run a script AFTER the bits are ready?
This is correct. Per documentation a post:
script runs after the main.py
script of the development platform (example) – no firmware has been built yet, but some options are prepared that can be changed.
If you want to act on when the firmware.hex
is built, add a Post
action for that build project, as documented.
Import("env")
def after_hex_build(source, target, env):
# custom python logic here
# firmware.hex path is str(source[0])
pass
env.AddPostAction("$BUILD_DIR/${PROGNAME}.hex", after_hex_build)
If the action is simply another shell command, e.g. scp
-ing the file, adapt the Custom HEX from ELF
example found in the code linked above.