Intellect is a startup hailing from Ukraine, introducing its array of consumer IoT gadgets, particularly sleek smart lamps designed with a contemporary minimalist aesthetic. The Intellect LED lamp collection stands out for its range in size, design, and lighting options, offering either a comforting warm white glow or an array of colors via RGB LEDs. This versatility ensures seamless integration into any living space.
The Intellect team excels in hardware development for devices and crafting their sleek designs. Their line of LED lamps, renowned for their superior quality and ergonomic design, holds significant potential not only in local markets but also in Europe and globally. However, the software used for their products didn’t align with their ambitious vision.
Intellect initially built their lamps using the open-source WLED platform, favored by DIY developers worldwide due to the many pre-made effects developed by the platform’s community. While these effects are a significant advantage, the platform’s native mobile app for controlling LED lamps falls short of meeting modern user expectations and isn’t suitable for a commercial project with high aspirations.
A critical issue with Intellect was that their WLED-based app operated solely locally, necessitating both the lamp and smartphone to be connected to the same Wi-Fi network. This limitation means users cannot control devices remotely from outside their home, and sometimes not even when their Wi-Fi router supports multiple networks. Moreover, the application lacks support for branding, preventing the lamp manufacturer from fully establishing their trademark and offering a branded software product of equivalent quality to their innovative devices.
Having spotted an ad for Intellect LED lights on social media, we were drawn to the product and intrigued by the project. Upon recognizing the use of WLED software in promotional photos, a familiar platform to our developers, we inferred the challenges Intellect likely faced and proposed collaboration. Through this partnership, hardware and software seamlessly integrated, resulting in a competitive and noteworthy product.
We’re empower your business with our technology expertise
The 2Smart Cloud team is highly familiar with the WLED project and its pros and cons. From the outset, when we met with the Intellect team and showcased our platform to them, we could pinpoint the shortcomings of this software, including those that might not be immediately apparent but could pose challenges as the lamp manufacturing business scales up.
Once our collaboration commenced, together with the Intellect team, we identified the shortcomings of the software solution they were using that needed to be addressed with the 2Smart Cloud platform. Apart from the mentioned requirement to be on the same local network as the lamps, the WLED mobile application is overloaded with functionality not needed by Intellect users. Additionally, this third-party application restricts the further development of Intellect’s smart device lineup since it is designed solely for controlling LED strips. Even staying within the niche of lighting devices, Intellect could encounter this limitation. Hence, it is better to proactively use a solution that allows connecting any IoT devices and flexibly configuring interfaces for controlling them.
Relying on a third-party firmware solution also constrains the Intellect team since they cannot control its development. Essentially, this means the manufacturer cannot implement the functionality they would like to see on their devices, which may not be present in the WLED project, such as over-the-air firmware updates or the ability to reset devices to factory settings.
To overcome these shortcomings, we had to address the following challenges:
To address these issues and transform Intellect lamps into fully integrated cloud devices, we collaborated with the manufacturer to develop a new LED lamp model. The Intellect team’s strategy involved incorporating additional hardware components into the architecture, such as a touch button for lamp control and a microphone for implementing ambient sound-based effects.
Intellect traditionally relies on ESP8266 microcontrollers, which are sufficiently powerful for managing their products and are cheaper than ESP32, a crucial factor for their project’s economics. Hence, they continued using these microcontrollers in the development of the new lamp model.
However, during the process, we found that the ESP-01S module, which is used in previous models of Intellect lamps, is not suitable for the new device. This module includes only 1 MB of flash memory. This is enough to install custom firmware, the development of which is described below. However, it is insufficient for implementing firmware updates over the air. The firmware update mechanism, in this case, requires two memory sections, “ota_0” and “ota_1”, where the current and previous firmware versions are always stored.
When searching for a suitable module based on the ESP8266 microcontroller, in addition to the amount of built-in memory, we also needed to consider its dimensions, as using a larger board requiring changes to the casing and production process would be impractical. As a result, we proposed using the ESP-12E module, which includes 4 MB of flash memory and meets additional size requirements.
Given the customer’s selection of ESP8266, we proceeded to develop firmware for this microcontroller. This task posed no critical challenge as the 2Smart Cloud platform is compatible with any MCU with Internet connectivity.
When crafting firmware for the LED lamps, our aim was to implement the following features:
For customers who opt for a white-label instance of the 2Smart Cloud platform, we provide a comprehensive solution tailored to their brand colors and logo. However, our services extend beyond branding; we prioritize addressing customer requests, which we accommodate during the deployment of mobile and web applications using the white-label model.
In the case of Intellect, we received the following request regarding the mobile application:
Regarding the web application for Intellect developers, it mirrors the 2Smart Cloud public platform in the customer’s branding. No significant adjustments were needed. Our primary focus was to equip the Intellect team with tools for seamlessly adding new products using a no-code mobile application interface builder and supporting all implemented devices through over-the-air firmware updates.
We’re empower your business with our technology expertise
The hardware development of the new lamp model was handled by the Intellect team. We took charge of writing the firmware implementing lamp effects, and supporting the touch button and built-in microphone. Additionally, we prepared the infrastructure for a white-label instance of the 2Smart Cloud platform, deployed the platform there, and provided the client with a branded web application for developers. Finally, we branded the 2Smart Cloud mobile application with Intellect colors and customized it according to the client’s preferences, then published the app in the Apple Store and Google Play, meeting all their requirements.
During the project implementation, despite both our team and the customer of the white-label solution 2Smart Cloud being located in Ukraine, our interactions were primarily remote. The Intellect team is based in Lviv, while 2Smart Cloud operates from Kyiv. Consequently, in the initial weeks of work, our office lacked a printed circuit board for the Intellect LED lamp, prompting us to utilize a self-assembled prototype based on a breadboard.
We based the firmware development for ESP8266 microcontrollers on our previous work for ESP32 using ESP-IDF. After adapting the firmware and successfully connecting the devices to the 2Smart Cloud MQTT broker, we proceeded to adapt the WLED lighting modes. As a result, we first implemented the following effects that are popular among users:
Users can adjust parameters such as brightness, intensity, and speed depending on the selected effect.
Upon receiving a prototype of the device’s printed circuit board from the Intellect team, we conducted performance checks on the new iteration of the lamp prototype firmware and proceeded with further development.
After implementing the preset operating modes of the lamp, we commenced developing effects based on signals from the built-in microphone. While this functionality is new for Intellect LED lamps, the concept is already implemented in the WLED project.
To convert the microphone signal into commands for the LED strip, we employed a driver written using the I²S digital audio protocol. This driver is supported by the ESP8288-RTOS-SDK framework utilized during development.
Since the customer opted for the ESP8266 microcontroller, we had to account for hardware constraints. Unlike the ESP32, this older microcontroller from Espressif Systems features only one analog-to-digital converter. Additionally, we can read values from the controller at a frequency of 100 times per second (100Hz), although sound frequencies can be much higher. Because of this, we couldn’t utilize fast Fourier transform and spectrum analysis — simply put, we can’t teach the firmware to understand which specific notes are being played. The only parameter we can rely on is the sound volume. Therefore, we tied sound-reactive effects to the amplitude of the sound wave, i.e., to the sound volume, and chose effects where this fact is not noticeable unless you know about it. The video below demonstrates how this looked during the process of working on the effects on the lamp prototype.
As a result, we introduced three additional effects, allowing the lamp to respond to ambient sounds such as music, voices, dog barks, thunder, etc.:
The sensitivity of the lamp’s built-in microphone is an additional setting available to end-users for these effects. Additionally, if multiple Intellect lamps are installed in a room, these effects, along with others, can be synchronized across all LED lights. We will discuss lamp synchronization in more detail later.
Since the design of the new lamp model includes not only a built-in microphone but also a touch button, we have written the following logic for its operation in the firmware:
Overall, the list of key features integrated into the firmware during its development looks as follows:
The mobile application tailored for managing Intellect devices is a customized iteration of the 2Smart Cloud app. It serves as the interface for interacting with all the end user’s Intellect LED lamps, including synchronization across multiple lamps.
The 2Smart Cloud white-label mobile app supports light and dark themes, localization in multiple languages, and various additional features. The final configuration is chosen by the customer, as the selected feature set can affect the cost and delivery timeline of providing them with a fully customized mobile application.
We optimized the appearance of the white-label application based on the customer’s preferences. Additionally, for the convenience of end users, we implemented device management through tabs in the application interface. Each tab corresponds to a specific functionality. In total, six tabs are utilized to control any Intellect lamp:
Synchronous operation of lamps is a mode that merits further discussion. It’s a crucial feature for users with multiple LED lamps in the same room. Enabling synchronization allows them to set all lamps to the same effect, color, and brightness simultaneously. We picked up the idea of lamp synchronization from WLED but completely reimagined its implementation.
In WLED, synchronization is achieved through MDNS technology, where devices in the same Wi-Fi network broadcast specific values to one another, enabling synchronous communication and operation. This method is the only option for implementing synchronization for local management without a cloud platform. Overall, it’s a robust mechanism, and in the case of WLED, it’s implemented nearly perfectly.
Since we utilize a cloud platform, we had the option to implement synchronization similarly to WLED or through the cloud. We presented both options to the customer, discussing their pros and cons, and they ultimately chose cloud synchronization. Here are its key benefits:
The only drawback of cloud synchronization is that lamps cannot synchronize offline. Since this scenario is not a priority for users, the customer decided to overlook this disadvantage.
Earlier, we described the logic behind LED lamp modes. Now, let’s delve into how we implemented the control of these modes in the mobile app, considering their specifics. Some parameters relevant to certain modes are irrelevant to others. For instance, modes like Fire or Rainbow don’t allow color changes since colors are preset. The Solid mode entails controlling one color, Solid 2 – controlling two colors, and Solid 3 – three colors. For some modes, intensity or speed settings are irrelevant. Another aspect is modes that operate based on the signal from the built-in microphone. Microphone sensitivity adjustment is necessary only for managing these modes and is useless in all other cases.
To avoid confusing lamp users with unnecessary widgets on the screen, we suggested to the Intellect team to utilize a standard feature of the 2Smart Cloud platform. This feature allows setting conditions for widget display. If an Intellect lamp user activates the Rainbow mode, they won’t see the color change widget since we configured this condition in the developer web application. Similarly, we set conditions for all modes to simplify the user interface, making it logical and easy to understand.
Here’s an example of how the widget display conditions for microphone sensitivity adjustment are set in the developer web application interface. The widget is displayed only if one of the three lamp effects, where it is relevant, is selected.
And here’s what this widget looks like when the “Sound reactive lighthouse” mode is activated.
And here’s an example of the app interface for controlling the Fire mode. You won’t find the “Color picker” and “Microphone sensitivity” widgets here; instead, there are widgets for controlling speed and intensity.
Regarding localization, the Intellect lamp control mobile application supports the same languages as the 2Smart Cloud mobile application: Ukrainian and English.
Intellect opted out of most additional device management methods available in the white-label mobile application from 2Smart Cloud. At their request, we only implemented device control using voice commands.
After preparing a white-label instance of the mobile application for the customer, we handled all the tasks associated with publishing the Intellect LED application to the Apple Store and Google Play. This included registering developer and test accounts, preparing all necessary text and graphic materials, and creating a video for the Apple Review. Consequently, the application was successfully published in both stores under the client’s accounts.
The Intellect developer web application is a customized version of the public 2Smart Cloud platform, offering identical functionality. Here, developers of new Intellect device models have access to tools for configuring firmware, customizing the appearance of a mobile application using a no-code builder, performing over-the-air firmware updates, and monitoring.
During the initial stage, we assumed full responsibility for creating and managing the new product in the web application for developers, eliminating the need for the Intellect team to log in and perform any actions. Per agreement with the customer, we will continue to support their product in the future. However, we provided the Intellect team with all the described tools so they can work independently if desired.
The product configuration window provides developers with the essential information required for crafting firmware for a specific device. This includes details such as the Broker URL, MQTT Login, Product ID, and Test device ID.
During the product creation process, developers select the microcontroller they intend to use, and relevant tools are provided based on this choice.
Once the firmware is installed on the test device, developers gain access to a user-friendly, no-code mobile application builder. This builder automatically detects all sensors present on the device and assigns the appropriate widget to each one.
Developers can utilize the extensive widget library offered by 2Smart and further customize the app’s interface to their specific requirements through simple drag-and-drop.
Initially, we presented the Intellect team with several options for widget sets, from which they chose the one they liked, and it was ultimately implemented in the mobile application. If necessary, the customer can install new widgets at any time or change their sequence. Users will see the changes after the first restart of the application without needing to update it in the store.
Intellect developers can deliver firmware updates to their devices via over-the-air (OTA) transmission. To do this, they upload the updated binary to the platform and initiate the update publication. LED lamps will then receive these updates based on the settings customized by each user.
Additionally, developers can update the mobile application’s interface for end users using the same no-code builder. Once the changes are published, users will encounter the updated interface the next time they restart the mobile application without needing an update from the app store.
Within the developer’s web application, you’ll find the following minimum required device usage statistics:
We’re empower your business with our technology expertise
Share with us your business idea and expectations about the software or additional services.