How to Start Developing Firmware Remotely

Develop Firmware Remotely

Modern embedded development starts with modern practices. Remote work has revolutionized the way that engineering is done, and it is now more possible than ever for traditionally on-site work to be done remotely. In this post we’ll discuss the technologies that we use to make remote embedded development possible.

Remote Development Model

In this post we will be assuming the following model of communication:

Engineer ↔ Remote Machine ↔ TailScale VPN Connection ↔ “On-Site” Machine ↔ Debug and Measurement Tools ↔ Hardware under Test

Another term for this is Hardware-in-the-Loop or HIL. This setup allows us to remotely test and control the hardware from anywhere in the world with an internet connection.

Book a Call with Dojo Five Embedded Experts

Designing Hardware With Remote Development In Mind

Your hardware setup should be designed to operate completely autonomously, without requiring any manual intervention or physical access once configured. This approach ensures that all development, testing, and debugging activities can be performed entirely through remote interfaces. This means:

  • All debugging probes should be able to remain connected, with no need to plug or unplug cables.
  • Physical button interactions should be able to be mocked with software-triggered events.
  • It must be possible to power cycle both the “on-site” machine device and hardware under test without a loss of connectivity.

Remotely Controllable Hardware Measurement Tools

These tools should adhere to the same fundamental principles with no need for physical cable management or connection changes during testing. When selecting measurement tools, having more channels and I/O options than you may think you need provides greater flexibility and future-proofing for your testing setup. The goal is to establish comprehensive test coverage by having the ability to probe and monitor every conceivable test point that could potentially be impacted by firmware modifications or updates. This approach ensures that remote debugging and testing can be conducted thoroughly without requiring physical access to the hardware.

Here are some of our tried and true favorite tools:

  • Digilent Analog Discovery Series
    • In particular we recommend the Digilent Analog Discovery 3.
  • Segger JLink
    • Segger offers J-Link Remote Server for connecting to the probe over a network connection.
  • PCBite Probes
    • These probes can easily be held in place where a standard probe would need to be hand held. They are particularly useful for probing small test point vias on PCBs.

Using TailScale For Connectivity Anywhere

TailScale provides a powerful VPN solution that enables seamless connectivity between your devices, offering both personal and organization-wide options with a generous free tier supporting up to one hundred devices. This secure networking tool creates an encrypted tunnel between your machines, making remote development feel like local work. To establish the connection between your “on-site” and remote machines, you’ll need to configure both devices within your TailScale network, which can be done through a straightforward setup process. Once configured, TailScale maintains persistent connections and automatically handles network traversal, ensuring reliable remote access regardless of your location or network environment.

You can get started with TailScale by following the official setup guide here.

Using Remote Desktop Software to Control Hardware

We favor command line tools such as SSH and SFTP over graphical tools whenever possible. SSH and SFTP work with every operating system and are the basis for many connectivity solutions. Many programs such as VSCode have built-in functionality or extensions that allow you to connect to a remote machine. That being said, inevitably there are programs that require a graphical interface in order to function properly.

In these cases we favor the following platform-specific solutions for remote access:

  • Linux
    • VLC Viewer/Server
  • Mac
    • ScreenShare
  • Windows
    • RDC/RDP

Do Embedded Firmware Right with Dojo Five on Your Team

If you ‘re looking for a knowledgeable team of engineers on to work on your next embedded project, book a call with us to get the conversation started.

Sign up to get our content updates!

Unlock the full potential of your embedded projects with our expert insights! Dive into our comprehensive resources to stay ahead in firmware development. Subscribe now to get the latest best practices and guides delivered straight to your inbox.

Sign Up for Updates

Discover why Dojo Five EmbedOps is the embedded enterprise choice for build tool and test management.

Sign up to receive a free account to the EmbedOps platform and start building with confidence..

  • Connect a repo
  • Use Dev Containers with your Continuous Integration (CI) provider
  • Analyze memory usage
  • Integrate and visualize static analysis results
  • Perform Hardware-in-the-Loop (HIL) tests
  • Install the Command Line Interface for a developer-friendly experience

Subscribe to our Monthly Newsletter

Subscribe to our monthly newsletter for development insights delivered straight to your inbox.

Interested in learning more?

Best-in-class embedded firmware content, resources and best practices

Laptop with some code on screen

I want to write my first embedded program. Where do I start?

The boom in the Internet of Things (IoT) commercial devices and hobbyist platforms like the Raspberry Pi and Arduino have created a lot of options, offering inexpensive platforms with easy to use development tools for creating embedded projects. You have a lot of options to choose from. An embedded development platform is typically a microcontroller chip mounted on a circuit board designed to show off its features. There are typically two types out there: there are inexpensive versions, sometimes called

Read More »
Medical device monitoring vitals

IEC-62304 Medical Device Software – Software Life Cycle Processes Primer – Part 1

IEC-62304 Software Lifecycle requires a lot of self-reflection to scrutinize and document your development processes. There is an endless pursuit of perfection when it comes to heavily regulated industries. How can you guarantee something will have zero defects? That’s a pretty hefty task. The regulatory approach for the medical device industry is process control. The concept essentially states that if you document how every step must be completed, and provide checks to show every step has been completed properly, you

Read More »
Operating room filled with medical devices

IEC-62304 Medical Device Software – Software Life Cycle Processes Primer – Part II

Part I provides some background to IEC-62304. Part II provides a slightly more in-depth look at some of the specifics. The IEC 62304 Medical Device Software – Software Lifecycle Processes looks into your development processes for creating and maintaining your software. The standard is available for purchase here. So what activities does the standard look at? Here are some of the major topics. For any given topic, there will be a lot more specifics. This will look at a few

Read More »