Whether it’s an IoT enthusiast or a major device manufacturer, 2Smart provides all its customers with the necessary software solutions so that devices with compatible firmware can connect to the system and end users enjoy managing and monitoring them. To bring their smart product to life, the developer must write the firmware and install it on the devices, and here we have two options. First, the manufacturer installs the firmware on its own. The second is that this happens in production, where a batch of identical devices is ordered. For vendors who, for various reasons, have chosen the first path, 2Smart provides tools that make it easier to install firmware on an ESP32-based device on their own.
How to install firmware on an IoT device (independently or at the factory where it is manufactured) depends, among other things, on the context: who needs to flash their devices, at what stage of their creation this happens, and the number of devices. Here are the main scenarios when a developer flashes their devices:
Let’s dive deeper into each of these cases and see what methods of installing firmware on smart products are appropriate to use in each of them.
Obviously, in this case, the only option is for the developer to install the firmware on the device on their own. A prototype usually exists in a single copy or as a batch of several pieces. Development and testing is an ongoing process, where installing the firmware on the device’s microcontroller is one of the constantly recurring activities. For this, the developer uses special tools on their computer or the opportunities provided by the IoT platform.
The enthusiast who has built one unique device for themself and perhaps plans to build half a dozen more for their friends also has no alternatives. They install the firmware on the device’s microcontroller independently, and it does not take much time and effort.
As a rule, the same applies to startups that bring a new product to market, existing as a small batch of 20-30 devices. Flashing the devices themselves is easier and cheaper, even if a third-party company is involved in the assembly.
Even if a third-party manufacturer offers a service for installing the firmware on devices, it is usually paid. In addition, commercial manufacturers are forced to take measures against possible industrial espionage. If a smart product is genuinely innovative and has the potential to become a massive success, it makes sense to keep the firmware code as a trade secret.
When it comes to hundreds or thousands of identical devices, the primary option is installing the firmware at the factory. If the batch customer has protected themself from the danger of industrial espionage, this is the easiest and fastest option. The production of devices, their flashing, and packaging occur in the same place, from where these devices are distributed worldwide to their points of sale.
But even this case is not linear. Sometimes a customer of a large batch of devices prefers to install the firmware independently. There are at least two reasons for this: the fear of industrial espionage and the need to install unique firmware for each device.
If everything is evident with the first reason, the second requires an explanation. And here, we can cite as an example one of 2Smart’s partners – MyBox company, which produces charging stations for electric vehicles.
MyBox offers its customers a range of charging stations depending on their needs. But in fact, the chargers are modular devices when the hardware is configured for the customer from standard blocks. One of these modules includes the “brains” of the charging station, that is, the ESP32-based controller.
Obviously, the firmware for different models of charging stations or their settings is different. But since MyBox uses universal controllers, installing firmware in the factory is not the best option. In addition, each MyBox device has its unique ID, which is used to connect to the business platform where the customer company can control and monitor their devices. The identifier must be specified in the controller’s firmware code, and this is an additional nuance that makes each instance’s firmware unique.
The 2Smart IoT platform includes two web applications: the 2Smart Cloud B2C developer platform and the B2B platform for advanced device control and monitoring. Each of these apps provides tools that make it easier to install firmware on devices.
Disclaimer: 2Smart supports connecting devices based on any microcontroller that has internet access. However, we recommend using the ESP32 when creating devices as the optimal solution in terms of its performance and cost. Therefore, in the development of the platform, we give priority to the implementation of tools for ESP32. The 2Smart features described below are relevant only to this MCU.
Device developers can use the ESPHome syntax when working with 2Smart Cloud, i.e., configure the firmware without using programming. This is convenient for enthusiasts who do not know how to write code. But it’s also helpful for experienced developers in the early prototyping stages, where ESPHome allows them to save effort in proof of concept.
If a developer uses ESPHome, they just need to paste the YAML configuration into the web application’s visual editor and send it to the platform server. The platform builds firmware ready for installation on the device. And then, developer can download an archive with ready-made firmware and install it on their device or use such a 2Smart Cloud feature as installing the firmware via a browser.
This feature is implemented using the ESP Web Tools library. All a developer needs to do is connect the ESP32 to their computer using a USB cable and click the “Install” button in the 2Smart Cloud device configuration panel.
Thus, if you use ESPHome when creating a device in 2Smart Cloud, you do not need to use the builder on your computer nor install the firmware on the ESP32 via the command line. The microcontroller flashing is included in device development and testing flow using the platform tools.
An additional tool that ESP Web Tools also provides is a microcontroller log viewer. It allows you to download logs for viewing from any ESP32 microcontroller, whether the developer uses ESPHome or writes firmware based on the 2Smart SDK.
If device developers in 2Smart Cloud can install firmware via a browser only when using ESPHome, then in a business platform, a similar tool supports professionally written firmware based on the 2Smart SDK for ESP32.
The business platform tool lets you install firmware with unique parameters on each device instance. For example, the firmware may contain a different set of binaries when each must be set to a specific offset. The platform user uploads these binaries to the server, specifies each file’s memory address (offsets), and starts the firmware installation process. Thus, a company that uses the 2Smart business platform can organize its own line of device flashing. A unique firmware can be installed on each instance of the device, including one containing its identifier.
As with the browser-based firmware installation feature in the B2C platform, business platform users can view the microcontroller logs of a device connected to a computer using a USB cable.
If you would like to know more details on how to work with the firmware in 2Smart B2C and B2B platforms or would like to book a full demo of the IoT platform functionality, you can contact us at firstname.lastname@example.org