PIO Remote™

Your devices are always with you!

New in version 3.2: (PlatformIO Plus)

PIO Remote™ allows you to work remotely with devices from Anywhere In The World. No matter where are you now! Run a small and cross-platform PIO Remote™ Agent on a remote machine and you are able to list active devices (wireless + wired), to upload firmware (program), to process remote unit tests, or to start remote debugging session via Remote Serial Port Monitor.

Using PIO Remote™ you can share your devices with colleagues across your organization or friends. In combination with Cloud IDE, you can create awesome things at any time when inspiration comes to you.

You should have PIO Account to work with PIO Remote™. A registration is FREE.

Tip

QUESTIONS? Chat with us! (chat button is located in the bottom right corner)

Features

Technology

../../_images/pio-remote-architecture.png

PIO Remote™ is an own PlatformIO Plus technology for remote solutions without external dependencies to operation system or its software based on client-server architecture. The Server component (PlatformIO Cloud) plays a role of coupling link between PIO Remote™ Agent and Client (PIO Remote™ CLI, Cloud IDE, Continuous Integration, SDKs, etc.). When you start PIO Remote™ Agent, it connects over the Internet with PlatformIO Cloud and listen for the actions/commands which you can send in Client role from anywhere in the world.

PIO Remote™ is multi-agents and multi-clients system. A single agent can be shared with multiple clients, where different clients can use the same agent. This approach allows to work with distributed hardware located in the different places, networks, etc.

This technology allows to work with remote devices in generic form as you do that with local devices using PlatformIO ecosystem. The only one difference is a prefix “remote” before each generic PlatformIO command. For example, listing of local and remote devices will look like platformio device list and platformio remote device list.

Installation

PIO Remote™ is built into PlatformIO IDE for Atom. Please open PlatformIO IDE Terminal and run pio remote --help command for usage (see PIO Remote™ CLI).

If you do not have PlatformIO IDE for Atom, or use Cloud IDE or a card-sized PC (Raspberry Pi, BeagleBoard, etc.), please install PlatformIO Core.

Quick Start

  1. Start PIO Remote™ Agent using platformio remote agent start command on a remote machine where devices are connected physically or are accessible via network. PIO Remote™ Agent works on Windows, macOS, Linux and Linux ARMv6+. It means that you can use desktop machine, laptop or credit card sized PC (Raspberry Pi, BeagleBoard, etc).

    You can share own devices/hardware with friends, team or other developers using platformio remote agent start --share option.

  2. Using host machine (PIO Remote™ CLI, Cloud IDE Terminal in a browser, SDKs, etc.), please authorize via platformio account login command with the same credentials that you used on the previous step. Now, you can use PIO Remote™ CLI commands to work with remote machine and its devices.

    You don’t need to have networking or other access to remote machine where PIO Remote™ Agent is started.

    If you use PIO Remote™ in pair with Continuous Integration or want automatically authorize, please set PLATFORMIO_AUTH_TOKEN system environment variable instead of using platformio account login command.

Note

In case with Cloud IDE, your browser with Cloud IDE’s VM is a “host machine”. The machine where devices are connected physically (your real PC) is called “remote machine” in this case. You should run PIO Remote™ Agent here (not in Cloud IDE’s Terminal).

Note

Please use local IP as “upload port” when device is not connected directly to a remote machine where PIO Remote™ Agent is started but supports natively Over-the-Air (OTA) updates. For example, Platform espressif8266 and Over-the-Air (OTA) update. In this case, the final command for remote OTA update will look as platformio remote run -t upload --upload-port 192.168.0.255 or platformio remote run -t upload --upload-port myesp8266.local.

User Guide (CLI)