diff --git a/pycardium/meson.build b/pycardium/meson.build
index c2421e6a081facfad1af747a0cb3257498a569dd..49d083c387b4db950df78a78d2360b26fb7f4b35 100644
--- a/pycardium/meson.build
+++ b/pycardium/meson.build
@@ -48,7 +48,7 @@ upy = static_library(
   include_directories: micropython_includes,
 )
 
-executable(
+elf = executable(
   name + '.elf',
   'main.c',
   'mphalport.c',
@@ -62,3 +62,11 @@ executable(
     '-Wl,-Map=' + meson.current_build_dir() + '/' + name + '.map',
   ],
 )
+
+custom_target(
+  name + '.bin',
+  build_by_default: true,
+  output: name + '.bin',
+  input: elf,
+  command: [build_image, '@INPUT@', '@OUTPUT0@'],
+)