# Eclipse Che

Eclipse Che is an open-source Java based developer workspace server and cloud integrated development environment (IDE) which provides a remote development platform for multi-user purpose. The workspace server comes with a RESTful webservice and provides high flexibility. It also contains a SDK which can be used to create plug-ins for languages, frameworks or tools.

Contents

- Eclipse Che

  - Demo

  - Integration

  - Quick Start

  - Multi-Project workspace

Note

1. Please make sure to read PIO Remote guide first.

2. You need PIO Account if you don’t have it. Registration is FREE.

3. You should have a running PIO Remote Agent on a remote machine where hardware devices are connected physically or accessible for the remote operations. See PIO Remote Quick Start for details.

## Demo

## Integration

1. Sign in to Codenvy (based on Eclipse Che). A registration is FREE and gives you unlimited private projects.

2. Open Workspaces tab

3. Click on “Add Workspace”, then switch to “Runtime” tab.

   - Name set to “PlatformIO”

   - Stack search for `PLATFORMIO`

   - Click on “Create” button, then “Open”.

4. Using opened Terminal, please log in to PIO Account using platformio account login command.

## Quick Start

Let’s create our first PlatformIO-based Codenvy Project

1. Click on `Menu: Workspace > Create New Project` and select `platformio-arduino-blink` sample. Set “Name” to “Arduino Blink” and press “Create”.

2. Now you can use dropdown Commands menu and process project with “run” command

3. If you prefer to work with PlatformIO Core (CLI) CLI, then you can process project using Cloud IDE Terminal and the next commands:

   - platformio run - build project locally (using Cloud IDE’s virtual machine)

   - pio run -t clean - clean project

   - pio remote run -t upload - upload firmware (program) to a remote device

   - platformio remote device list - list available remote devices

   - platformio remote device monitor - Remote Serial Port Monitor

## Multi-Project workspace

You can have multiple PlatformIO-based Projects in the same workspace. We recommend a next folders structure:

    ├── project-A
    │   ├── lib
    │   │   └── README
    │   ├── platformio.ini
    │   └── src
    │       └── main.ino
    └── project-B
        ├── lib
        │   └── README
        ├── platformio.ini
        └── src
            ├── main.cpp
            └── main.h

In this case, you need to use `-d, --project-dir` option for platformio run or platformio remote run commands:

- `pio remote run --project-dir project-A -t upload` build Project-A

- `pio remote run --project-dir project-A -t upload` remote firmware uploading

    using Project-A

- `pio remote run -d project-B -t upload` remote firmware (program) uploading

    using Project-B

See documentation for `platformio remote run --project-dir` option.