How Novoda greatly enhanced and gave Depict back control of their digital art frame IoT product
US based consumer tech business Depict had created a new IoT product – an in-home hi-res, framed digital screen that displayed a curated list of artworks. Unfortunately, due to high staff turnover of the technical developers that had worked on the Android (AOSP + Frame apps) part of the product, they were left without critical insights and knowledge - so they didn’t have a clear understanding of what the digital frame was capable of.
Concerned about the frame's hardware capabilities and their existing code base, they asked us to lead the technical strategy. We were asked to undertake a complete system audit and help them understand what updates were needed, what to prioritise for their product and how to go about making the necessary changes.
“Novoda were initially brought in to help with our Bluetooth connectivity issues and then they set their sights on creating a great development process.”
After a thorough hardware and software systems audit, we were able to resolve some of their most pressing bug fixes and quickly helped them regain control over their firmware build system (AOSP and OTA's builds).
We also found a number of technical issues:
Their source code was unworkable, so we recommended a rewrite of their application layer (digital frame apps) - to help give their customers a better user experience.
They also urgently needed to make improvements to the system’s:
OTA upgrade software component
Code stability, maintainability and testability
Our additional recommendations for the digital frame, were that it needed to:
Connect to the Internet using a companion app and register with their APIs.
Receive state changes from their API, such as display, brightness, awake/sleep state, factory reset etc.
Display artwork as a still image, or 4K video and 60fps with no dropped frames.
Handle offline scenarios such as displaying still artwork and automatically recover network connection.
There were a number of challenges we had to overcome, but there were two major obstacles:
Lack of hardware
The biggest problem to overcome was how best to resolve the technical hitches that come with working on hardware belonging to a third party. From our previous experiences of working on a number of connected hardware projects, we knew the importance of getting our hands on a device as early as possible. However, Depict’s frame was a unique and bulky piece of kit, which the client was unable to supply - so we couldn’t physically work on the frame during the initial phases of development.
This threw up a number of complications, as we carried out device specific tasks and testing. We managed to solve these issues by coming up with two workarounds. First, we set up emulators for all the distributed teams so they could start on the first few development sprints.
When we finally did receive a device in London, our next solution was to set up a live webcam stream with lighting rig, which enabled our developers in Mexico to immediately see the impact their code updates were having on the London device – which helped ensure their development work was far more accurate and efficient.
“They went out of their way to communicate potential hurdles and show deliverable results.”
Following our development work on the product, we were able to:
Empower Depict with greater knowledge about their hardware capabilities and its potential.
Completely re-implement the application layer, so for the first time, customers had the ability to display art offline as well as online.
Connect the frame to WPA2 - which enables connection to a wider variety of network configurations (Open, WEP, WPA/WPA2, Enterprise networks).
Replace their error prone OTA upgrades, with a solid OTA upgrade path.
Update their low performing video playback to 0 dropped frames at 60fps 4k video playback.
Turn a tedious device pairing process into a faster and better customer experience.
Move their sensitive security information from plain text code to a much securer encrypted format.
Give Depict, for the first time, a scalable, testable (and tested), maintainable code.
Hand them back control of their firmware build process.
Take them from having no written collateral to a fully documented CI system.
We made the IoT product more reliable by building their new application layer to the best possible development standards in testability, scalability, maintainability and SOLID principles.
Faster video player with a quicker load time of 5 seconds.
This resulted in a faster video player (down from 20 seconds) and we eliminated dropped frames for video.
During the build phase, we minimised the risk of regression by supporting any code changes with a CI system integrated with GitHub, which also helped automate the firmware build and OTA generation process.
Ultimately, we developed a greatly improved user experience, gave Depict a more complete understanding of their product, and we empowered their team by handing them back control of their entire system.
“Novoda proactively added structure and communication, which distinguished the team from our previous vendors. They went out of their way to communicate potential hurdles and show deliverable results.”