IDE independent workflow using gulp / arduino-cli

I use various IDE in my day job as a software dev and I was looking for a way to incorporate Arduino into my usual workflow. For me: because I can use git and intelliJ / CLion but it would apply to anyone wanting a way to program using their existing IDE/workflow.

I’ve got something that works really well for me and it wouldn’t be much more work to make it universal, but before I do does anyone know of anything out there already so I’m not reinventing the wheel?

I’ve got a single gulp file that utilises the arduino-cli to configure the attached board and library dependencies automatically based on a project config, then runs a persistent serial monitor with a single keypress to compile, flash, then return to the serial monitor.

So the workflow looks like this…

Prerequisites: arduino-cli, npm/node, gulp-cli

  • git clone - get the project inc Arduino config/libs file
  • npm install - setup gulp etc
  • gulp init - download any Arduino libs needed for this project
  • gulp attach - find any connected Arduinos and store the serial port/board/etc
  • gulp monitor - persistent interactive serial monitor
  • Ctrl-F when you want to flash updated code

What’s “gulp”? I’ve never heard of it! Gulp is a way to automate tasks using Node.js. It's very common in web-dev and other environments. Usually for automating build tasks like compiling JS and Sass etc.