This document describes the various types of devices (a.k.a., "things") supported by nRF Cloud.
nRF Cloud supports most Bluetooth LE devices. Connecting a Bluetooth LE device to nRF Cloud requires a gateway (see below).
Beacons are only partially supported: you may add them to your account via a gateway, and interact with them via the nRF Cloud Web UI, but they are not stored in our cloud databases, nor will they appear in JSON responses when calling nRF Cloud REST API endpoints.
"IP devices" are any device that is provisioned on nRF Cloud. If they are provisioned, they have an IP address. Bluetooth Low Energy devices or beacons, however, are not cloud-provisioned, and thus do not have an IP address.
The two main types of IP-based devices are gateways and generic (non-gateway).
You can add an IP-based device to your account using the nRFCloud.com Web interface, the REST API, or by logging into one of the phone gateways (below). When adding via nRFCloud.com, the option is called LTE Device.
Gateways are IP devices that support connections to Bluetooth Low Energy peripherals.
The nRF Cloud team provides an open-source nRF Cloud Gateway application (available for Android and iPhone). Using this app you can create a gateway on your nRF Cloud account and connect Bluetooth Low Energy peripherals.
The phone gateways are different than the LTE gateways in the following main ways:
- They are not intended for use in production IoT solutions, but only for R&D, tinkering, etc.
- They use AWS Cognito for authentication, not X.509 certificates
- As such, MQTT permissions are managed via a Cognito-based IoT policy, not a Thing Group policy. See Device Security.
Note that the gateway must be operating in the foreground and the phone awake for it to work properly. It is useful in the app's Account view to enable Stay awake (iPhone) or Background mode (Android). If the gateway indicates on nRFCloud.com that it is not connected, try closing the app and restarting it. The Account view is also where you can see the gateway's id, which helps you identify it on nRFCloud.com or in REST API responses.
Nordic Semiconductor does not currently make available LTE gateway hardware. Engineers are currently working on firmware that will enable you to build your own LTE gateway. This firmware will be made publicly available sometime in Q4 2021.
A better name for this type is probably
Non-Gateway instead of
Generic, something we may change in the future.
nRF Cloud offers a special type of device that we call an "account device". By this we mean a device that has MQTT permissions to monitor the message traffic of all devices that are in your account. You can use the certificate for this device to connect to the nRF Cloud MQTT broker and monitor device traffic for debugging purposes, or for setting up your own MQTT message bridge.
You can create an account device using the CreateAccountDeviceAndCertificate endpoint.
A "software device" is simply a software application that runs an MQTT client. A good example of this is the nRF Device Simulator. In this case, the laptop is only loosely a "device" because it's identity is not known to the IoT broker, but only the "device" id of the simulated device. The device simulator simulates a Generic device by default and you will see
"type": "Generic" in the JSON responses. However the simulator can be modified to simulate any of the other supported device types.
You can run IoT devices on any type of hardware that supports an MQTT client, such as a Raspberry Pi. This is an example. The type will depend on your implementation for the device type.
nRF Cloud supports custom devices, i.e., IoT devices customers build themselves using Nordic chips. In other words, nRF Cloud is not just for Nordic's own device products such as the nRF9160 DK or the Thingy:91.
In addition to the three types of devices that you will see in JSON responses when using our REST API—
BLEDevice—you will also see a
subType property (also known as
thingType). You can read more about the use of this property in the documentation for the ProvisionDevices endpoint.