# Introduction to OTAdrive
OTAdrive is designed to upgrade, configure, and protect IoT devices. It provide several services:
- Define multiple products and grouping devices
- Firmware Upgrade (OTA update)
- Device Configuration
- Device Resource File Manager
- Anti-Clone Mechanism
# Products Organization
OTAdrive uses the following organization to manage your products and devices.
Each OTAdrive user can define multiple products. Each product should have at least one 'device group' (Default Group) and each group contains an unlimited count of devices with the same firmware and configuration.
You should define your product before doing anything. Each product contains several attributes (like Model, Description, Picture, etc.).
# API Key
The most important note about a product is the unique APIkey. APIkey has been generated by OTAdrive automatically and you can't change it. You should get your APIkey before start to develop OTA update functionality on your device. The APIkey is accessible from the product overview section. By click on the copy button, the APIkey will be copied to the clipboard.
# Device Group
Each Product contains at least on DeviceGroup. DeviceGroup is a set of devices with same configuration and firmware version. All devices should belong to a DeviceGroup.
Device is last node of the Product tree. Device adds to [Default Group] automatically by first API call from the device. A device can contains several attributes such as battery level, signal strngh, etc. Once the device added to your product, It can't access anything until you verify it. You can verify your devuce by change its state to [verified].
A device can be in one of the following states:
- New: Device added to list automatically but not yet verified
- Verified: Device can work with no problem
- Blocked: You can set a device to Block state if it isn't produced by you.
- Disabled: You can set a device to Disabled state if you want to block it temporary.
- Banned: The system sets your device to Banned state if your devices reach the limitation of your account.
You can change device state by following the video steps:
You can move your devices to another group by following the video steps:
# Firmware Upgrade Service
Firmware upgrade service (known as OTA update mostly) is a service let you upgrade your IoT device's firmware without any cable or special tool (like programmer etc.). OTAdrive provides an API (URL) to your IoT devices and lets you show different firmware files to specific devices. With this feature, you can change and rollback a group of your devices. It lets you upgrade devices with fewer bug risk.
# Device Configuration Service
You can't find any IoT device which doesn't need to configure for operations. There are many cases you should configure your device to work. The simplest example is WiFi credentials or IP configuration of the network, sometimes you need to set up IoT server address, etc. OTAdrive configuration service provides a simple json object as configuration. You don't have to recompile and update your firmware to just change a parameter for your customer. For example in our LED blinker project, we shouldn't recompile our firmware just to change the blinking speed. Blinking speed could be a configurable parameter and we can just fetch new parameters from OTAdrive.
# Device Resource File Manager
In the IoT world, all devices such as ESP8266, ESP32, RaspberryPi, etc. have local file storage to store some files like images, voices, Html, CSS. Mostly these files are useful in the user interface. If you want to change these files you have to change them manually or you have to recompile your firmware and it won't be easy at all. OTAdrive resource manager service is here. It lets you make changes in your IoT device's local files easily. Create a resource pack of files and folders in the OTAdrive panel and choose it for a specific group of devices.
# Anti-Clone Mechanism
When you are using ESP8266, ESP32, RaspberryPi, or any other IoT devices with an external flash chip, You will face clone risk on your product. You spend a lot of time and money to produce your product and someone could clone it without any pain. Specially cloning of ESP8266 and ESP32 is easier than others. You can find many ways on google. To avoid your product clone we provide a solution that makes it very hard to clone. You can choose your very own security stamp on the OTAdrive panel and your devices won't start to operate until this security stamp matches their MAC and serial number.