Sometime I write Arduino code on a slow Windows laptop that I use for controlling hardware projects and 3D printing.

My main Windows computer and also my Linux home server are located somewhere else but are much faster and I would like to use those for compilation.

Remote Desktop or equivalent are not practical due to different screen resolutions. Also, my main Windows machine is not always on, only the server is, but it has no GUI installed.

The sources are already located on a shared network folder and I use an external editor for the code. Arduino IDE just does compilation and sometimes upload (which often I could do via OTA).

How to delegate compilation of Arduino projects to a remote machine?

  • 2
    How about using Arduino-CLI at the server and invoking it via ssh?
    – chrisl
    Commented Aug 18, 2019 at 16:07
  • And using vi as your "IDE" ;)
    – Majenko
    Commented Aug 18, 2019 at 16:21
  • @chrisl I wasn't aware of Arduino-CLI. You could expand and write an answer
    – FarO
    Commented Aug 18, 2019 at 18:58
  • Sound a bit like "continuous integration". Maybe look at Jenkins to run Arduino CLI when it detects changes in the samba share. Note that you also need some way to provide feedback, in case the compilation failed.
    – Gerben
    Commented Aug 19, 2019 at 8:56

1 Answer 1


If you don't have a GUI, you can still compile and upload sketches by using the Arduino CLI. With it you can do most things, that you can do with the Arduino IDE. I'm using this myself to upload new code to a Nano, that is connected to a Raspberry Pi in a project in use.

You can connect via ssh to the remote server and let it compile/upload the sketch. I wrote a simple bash script to first copy the source to the server (since you are using a network share, this is not necessary for you) and invoke the compilation and upload.

Note: Before you can actually compile with the Arduino CLI, you have to download the correct core for your chip. This is described in the README of the linked github project.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.