# Create Projects

Ionoid.io is structured as organizations where each organization includes a set of projects. Registered devices at Ionoid.io always belong to only one project and are unique across the whole organization.

To get an overview of the Ionoid.io dashboard, please visit the Dashboard Structure page.

# Create a Project

Choose Board

WARNING

You can mix different boards and architectures, but you have to make sure to not break your fleet by deploying apps built for other architectures (see Deploying Apps). Otherwise you can lock your project to the selected architecture, devices registered into the project must have same architecture, otherwise they will be blocked and will not show up in the project, unless you unlock the project architecture.

  • Finish the project creation with informations related to your project, then click on the Create button

Create Project

Now that the project has been created, you can start adding devices to this project. Each device will have a configuration data consisting of:

  • Name of the device (optional)
  • Runing OS image
  • DNS and NTP servers
  • WiFi network(s) needed for connection (optional)
  • Cellular network(s) needed for connection/communication (optional)
  • Environment variables used by apps that will be deployed on this device (optional)

This configuration can be set directly into the project, so as not to repeat the process for each device that we add to the project. Check out the next section to learn how.

# Configure the Project

A project has a configuration that will be shared across all its devices. It consists of:

# Project General Informations

You can set the project name, its segment and the organization to which it belongs.

# Default Project Board

Here you can change the default board that you set the first time you created the project. You can also reorder the supported operating systems for the selected board, the first operating system will be the default one that will be installed on devices when adding them to the project.

Reorder Supported OS

# Monitoring and Notifications

Future feature that will be used to receive notifications about events on devices directly on Slack, or via a custom webhook.

# Project Parameters

Used only to display the project ID and the API key used for devices (not editable).

# General Settings

You can change the default Google DNS and NTP servers that will be used by devices.

# Deployment Settings

Here you can enable/disable two very interesting features that concern deployment of applications:

  • The dual A/B application deployment: if enabled, this will ensure that the application can recover even if the deployment is incomplete or corrupted
  • The application delta update: if enabled, the deployment will only download the parts of code that changed in the application. Leading to a save of time and bandwidth which may be significant.

# Advanced Settings

# WiFi Configuration

You can add up to 5 WiFi networks by clicking on Add a WiFi network, for each network you can set:

  • The network ID (SSID) (required)
  • The network visibility (default to 'not hidden')
  • The network security mode (default to 'No security')
  • The network password (required unless the security mode is set to 'No security')
  • The network priority: networks with higher priority will be preferred. Default is 0. The higher number means higher priority

Add a WiFi Network

You can also add a fallback WiFi network by clicking on Add a fallback WiFi NETWORK, this network will be used in case all other networks are unavailable.

TIP

For development purpose, it is strongly recommended that you set a second WiFi network as a fallback, in case there are some errors. Maybe use your phone wireless as a second WiFi.

# Cellular Configuration

You can add up to 2 cellular networks, for each network you have to specify in order:

  • The country to which the cellular network belongs
  • The network ID (generally the provider name)
  • The APN used for this network ID

Once you choosed the APN, fields 'Plan' and 'Usage' will be filled with the corresponding data. Use this data to confirm that APN you choosed is really the one you are aiming to use.

Add a Cellular Network

WARNING

Selecting an incorrect plan may result in billing issues for your account or prevent connectivity.

# Connectivity Check

If you have cellular connectivity problems or even WiFi related ones, the Connectivity Check feature will allow you to:

  • Monitor connectivity,
  • Try to recover,
  • Or reconfigure the connectivity,
  • And if all fails, reboot the device again.

However rebooting devices should be last resort operation, usually reconfiguring connectivity will solve the problem.

The Connectiviy Check feature supports 4 parameters:

  1. The interval between two successive connectivity checks
  2. The number of failed connectivity checks that will trigger a network reconfiguration
  3. The maximum number of failed network connectivity and reconfiguration that will trigger the Failure Action
  4. The Failure Action to perform on connectivity and reconfiguration limit

Configure ConnectivityChecks

The network reconfiguration operation will:

  • Reset all Network Manager connections
  • Reset all GSM modems and Modem Manager connections

The Failure Action supports the following operations:

  • No action (by default): do not take any action, device state may stay in failure until connectiviy is back
  • Normal reboot: perform a normal reboot operation
  • Force reboot: perform a forced reboot operation by terminating all processes, should cause no dirty file systems
  • Immediate reboot: similar to a hardware reboot, which might result in data loss
  • Normal poweroff: perform a normal poweroff operation
  • Force poweroff: perform a forced poweroff operation by terminating all processes
  • Immediate poweroff: similar to a hardware poweroff operation, which might result in data loss

To be supported soon:

  • Exit: performs a systemd service manager exit call. Use this only with enabled hardware watchdog
  • Force exit: porforms a forced exit by systemd the service manager. Use this only with enabled hardware watchdog

# Boot Configuration

Here you can specify the kernel boot options.

# Project Environment Variables

Environment variables are dynamic variables that can affect how applications will run on the devices. Each project can have its own specific envrionment variables that are eployed to all devices part of that project.

Deployed applications can access these environment variables, and update their behaviour accordingly. This is very useful when it comes to update applications whithout redeploying, take an example of an endpoint url used in 10 apps deployed across 200 devices. Using environment variables, it is as simple as editing a single variable on dashboard, saving it, then redeploy the project settings including envrionment variables to the concerned devices.

Add Environment Variable

# Save Project settings

After finishing the project configuration, you have to save the settings so they are not lost.

WARNING

Please note that after editing the project settings, only newly registered devices will inherite of these settings. To make the already registered devices (see how to register a device) also inherite of these settings, you have to redeploy the project settings by clicking on the Redeploy project settings on all devices button that is present on the project details page :

Redeploy Project Settings

Anyway, a reminder will be displayed each time you save the project settings:

Redeploy Project Settings Reminder

# Add a Device to the Project

See the next section.

# Consult the Actions History

You can check the last actions that have been performed on the project by clicking on the ACTIONS HISTORY tab:

Actions History

# Redeploy Project Settings

It is possible to redeploy the project settings to devices anytime. To do so click on the Redeploy project settings button that is part of the actions in the project details page :

Redeploy Project Settings

WARNING

Please note this may overwrite the settings of already running devices.

This may overwrite your WiFi configuration if it was changed and make your device inaccessible in case of errors.

# Delete a Project

You can delete a project by opening the SETTINGS tab on the project details page , then by clicking on the Delete this project button, and confirming by typing the project name:

Delete a Project

WARNING

Please note thay by deleting a project, you understand that all devices belonging to this project, all apps deployed on these devices, as well as the project configuration will be permanently deleted from the Ionoid.io dashboard.

Have Questions?

We're always happy to help with IoT projects or other questions you might have! Check our documentation, contact our support team at support@ionoid.io, or our sales team sales@opendevices.io. You can also ask questions on our forums or open an issue on Github.