IoT-software, web service and mobile application for a medical tech startup

  • Development costs: $ 50’000 — 80’000
  • Project length — 7 months
  • Project team — 14 specialists: Project manager, control system automation expert, analyst, architect, six developers and four designers.

The Client

American Startup suppling US medical institutions and biotechnical laboratories with scientific equipment and software. The core concept of the startup is the idea of “Smart Laboratory” — unified IT solution for laboratory equipment that can be controlled remotely. The product would allow researchers to conduct experiments and exchange results and use machine learning to analyze the results.

The problem and tasks

The client had blueprints for the future incubator. It meant to be a microbiological chamber with built-in temperature regulation module and plug-in modules for inner atmosphere control.

 The company needed investment and presales to produce the product. The first goal was to present the new product to demonstrate its technological advantages to the buyers.

 The Startup asked Atwinta to bring this system to life with the help of IIoT technology and make it more convenient for users than existing analogues.

We had the following tasks:

  1. Design a firmware for modules and an utility to coordinate their work
  2. Create an interface for industrial equipment to track the flow of experiment, current and.
  3. Develop a web service and mobile application for remote control of the research process.
  4. Develop software to gather and store research results for further analysis inlsuding use of machine learning tecnologies.

*IIoT is for Industrial Internet of Things This technology has a lot in common with massconsumer IoT. The main differences are the requirements for security, access rights for users and protection from unauthorized access.


IoT software architecture is more complicated as we need to design hardware interactions as well as ordinary user interface So first we had to find out how the software works first and only after that we could start writing code and design interfaces.

How the thing works

  1. The metallic chamber has a module that controls temperature inside.
  2. There are also plug-in modules to control inner atmosphere gases, levels of oxygen, nitrogen ,and carbon dioxide.
  3. The researcher sets parameters for each module and tracks how the environment affect the specimens inside the chamber.
  4. Users can control the devicce on site or remotely. On site researcher can use built in touch screen on device hull, or use a mobile app or web service for remote control.

IoT-софт, веб-портал и мобильное приложение для медтех-стартапа

During the presale negotiations, we discussed that the client consults us on hardware questions and we build a prototype device here in Russia. After we signed the contract we found out the client has nothing but blueprints and general idea So we had to design electronic circuits ourselves.

Ilya Gorbarov

Director of «Atwinta» digital agency, Project manager

We added hardware specialist to the project. He instructed the client on how to assemble a prototype of the product while we assembled emulator with Raspberry Pi, touch screen and a microcontroller, imitating work of a real equipment.

IoT-софт, веб-портал и мобильное приложение для медтех-стартапа

Transporting all the necessary equipment to Russia was not real. For example, the Customs did not allow us to import a $400 Peltier element. Demanding documents that we could not get so quickly. We could not afford waiting for several weeks for each part the project could just fail. Therefore, we decided to concentrate on programming and technical consultations and leave the hardware manipulation to the customer.

Ilya Gorbarov

Director of «Atwinta» digital agency, Project manager

Interface logic: how to control the equipment

As soon as we dealt with hardware issues, we started building user interface prototype.

We wrote user stories for this project. The device uses gas and temperature modules to change the environment inside the chamber and gives the researcher data on current state of cultures inside.

Experiment begins with creation of session — a set of parameters for modules.

For example, the session is set to raise temperature to X after 3 hours. The module will automatically raise the temperature in 3 hours and the researcher can see what has changed inside the chamber after it.

We had to understand how users would interact with the device, which actions should they make, and what actions should not be made in order to run experiments successfully.

Laboratory staff required the following features:

Create sessions

Set the environment in the chamber and duration of the experiment.

Monitor the experiment

See the current state and predict parameters changes.

Receive reports

have access to all data from each experiment


Create different user accounts with different access rights.

At first, the interface had only four screens: authorization, session creation, monitoring screen, detailed report screen. After we asked researchers what information and when the software should show, the navigation became much more complex.

 We wrote use cases — sequences of actions that lead users to each feature and screen of software and gathered them in single storyboard.

IoT-софт, веб-портал и мобильное приложение для медтех-стартапа

User requirements

The founder of the startup is a professional medic. He knows exactly what researchers need from the equipment, and all the problems modern laboratory equipment interfaces have. He stated that interfaces usually hinders the experiment then helps to conduct experiments successfully.

Ilya Gorbarov

Director of «Atwinta» digital agency, Project manager

Startup founder asked medics and researchers from all over the globe of what is important to them to make their work more efficient, and what modern laboratory equipment lacks. We used this information while designing the interface.

 For example, a researcher should have access to the current state of the experiment, including its duration, start and remaining time on any screen of any device.

Therefore, we placed a visual progress bar in the bottom of every screen.

Interface design

Researchers control electronic modules and receive information from sensors through a computer screen built into the incubator hull. Or remotely - via the <t0 /> desktop <t1 /> web service or mobile application.

 First, we designed an interface for laboratory equipment, and then adapted it to the desktop and mobile. We could not do it otherwise: IoT device interface should correspond with hardware of the device, while web and mobile interfaces are more flexible.

We had to solve two puzzles of interface design

How to simplify the launch of a research session if each of the five modules should be configured separately?

How to fit all the information about the experiment on a small screen?

Independent sessions constructor

A session is the time interval between the beginning and the end of an experiment. The session is set by the parameters of temperature, humidity and gas composition inside the equipment at different periods of the experiment. The modules control the state inside the camera, based on the readings of the sensors, according to these parameters.

For example, a research requires maintaining a constant temperature of 30 ° C for an hour. During the first half hour of the experiment, the concentration of CO2 will increase to a predetermined level, and in the second half hour, it will decrease.

 At the start of the session, the target temperature is transferred to the temperature module, which it will maintain throughout the experiment, and the target carbon dioxide content is transmitted simultaneously to the CO2 module. After half an hour, a different concentration value will be transmitted to the CO2 module. It will start the chamber ventilation and reduce the gas concentration.

This defines what should be on the session screen:

  • The parameters should be configured separately for each module;
  • For some modules, the session parameter may not be set at all, but only be monitored;
  • Session duration and target values for each parameter should be easily readable independently of the rest.
  • We configure the session through the touch screen, which means the buttons should be convenient to press without aiming.

We depicted sessions as brick-like buttons.

 The button length shows the duration of target value for humidity temperature and gas concentration. The bricks can be easily hit with a finger. When you tap on the brick button, the settings window opens.

 The result was an experiment designer, where the session parameters are added to a diagram for convenient perception of the structure and sequence of experience.

Maximum data on a small screen

Microbiological incubator screen size is only 7 inches, or 17.8 cm. IPhone Xs Plus has 6.5-inch screen for comparison.

 This display has to show all the data for each module, how indicators of temperature, nitrogen, oxygen, carbon dioxide contented change during the experiment. But the experiment can last for weeks! The screen should show the report for the whole duration of the experiment.

 Additional complexity: each indicator has its own units: temperature - in degrees Celsius or Fahrenheit, gas content - in percent. Therefore, we needed to figure out how to display all the parameters on the same chart, despite the fact that they have different scales of values.

 We reduced the graphs for each parameter into one coordinate system on the monitoring screen. The horizontal axis shows the duration of the experiment, and the vertical axis shows the parameter value. the vertical axis for each parameter has its own scale.

IoT-софт, веб-портал и мобильное приложение для медтех-стартапа

We made the graphs even more convenient: each module was given its own color of the graph and labeling. The flag of the corresponding color marks the current value of the parameter on the scale.

IoT-софт, веб-портал и мобильное приложение для медтех-стартапа

Another screen where you need to compose data is the session history. We made the charts for each parameter in this screen even simpler. For each parameter, the user sees the general trend in the form of a graph and the boundary of the change of indicators during each session. A detailed report opens when you tap on a session tab.

 Check out the simplified graphs these are not just simplified icons - but miniatures of a big chart from previous screen.


The main principle of the interface is to make it do all the things it should conveniently for users. This rule is true for both mass user and industrial development. With one difference: the cost of user error.

 Unwanted interaction or incorrect interpretation of information on the display can ruin the experiment. We have predicted all the actions that can lead to errors and find a solution how to avoid them in our design.

Color scheme: data readability

The interface has a dark theme with contrasting colors of the graphs. It is convenient to read data from the screen and at the same time the colors of the interface do not argue with the color scheme of the device itself.

The main colors of actions and statuses were chosen so that they clearly differed from the colors of the designation of the modules. Green is for Start button, red is to stop the session, purple is for other buttons. These colors were chosen because people tend to associate red, green and purple with positive, negative and neutral actions respectively.

IoT-софт, веб-портал и мобильное приложение для медтех-стартапа

The device shows experiment reports in charts White background makes tables more readable. Thus, reports screen has light theme.

IoT-софт, веб-портал и мобильное приложение для медтех-стартапа

User experience

We started by developing the interface of the microbiological incubator, and then adapted it for the web portal and mobile application. The main difference between these versions is in the way the user enters information: in the desktop interface, the user uses the cursor and on the device’s screen and in the application — finger.

 How to design interactions for the browser and mobile, it was clear: for the web, iOS and Android there are standard solutions. For the device touch screen, we had to design inputs from scratch.

 To begin with, we studied all the usual solutions that exist on the market: how touch keyboards are arranged, date selection, and changing numerical parameters in existing interfaces. Studied what these interfaces have in common and how do they differ from each other and asked users of what would be more convenient to them. This helped us to design inputs.

Sensor keyboard

At first, we wanted to use standard solution for the keyboard. We regrouped the symbols because scientists use some buttons much more often than common users.
Therefore, we made it convenient for them.

IoT-софт, веб-портал и мобильное приложение для медтех-стартапа

Physical parameters buttons

In some cases, users need to increase or decrease the value of the parameter in the current session. You can change the temperature or concentration of gases in the chamber from the monitoring screen using the “+” and “-” buttons, respectively.

IoT-софт, веб-портал и мобильное приложение для медтех-стартапа
IoT-софт, веб-портал и мобильное приложение для медтех-стартапа

When developing these buttons, it was necessary to reflect the specifics of changing physical parameters. The parameters do not change instantly: to increase the temperature it takes time to heat up, to change the concentration of gases it will take time to saturate the atmosphere inside the chamber.

 It was necessary to demonstrate the process of the module clearly and not to confuse the user with unnecessary information on the screen.

 The response time of the module is implemented as a progress bar around the button for increasing / decreasing the parameter. There is a target value for the parameter near the button, and the chart shows current and future changes of indicators.

IoT-софт, веб-портал и мобильное приложение для медтех-стартапа

Protection from accidental actions

User can accidentally tap the wrong button on a touch display and ruin the experiment.
We have considered this risk and made the buttons for stopping the session and opening the chamber responsive only to a long tap. The mobile app also has this feature in order to avoid unwanted accidental actions.

IoT-софт, веб-портал и мобильное приложение для медтех-стартапа

Mobile and desktop adaptation

The interface face of desktop version corresponds completely with interface of the device itself. The only difference is keyboard and mouse input. We have simplified some elements in the mobile interface to make them readable on a vertical screen.

 For example, we have removed indicator scales from graphs on a vertical version. Thus, the scales are displayed like on any other device if switched to a horizontal version. The top corner has a hint icon telling the user to flip the screen.

Интерфейс мобильного приложения для медицинской лаборатории

The designer of Atwinta have developed a UI-kit for each format, containing all the buttons, icons and even schematic states of graphs for session history screen.

UI-кит мобильного приложения

Development and technologies

We had to ensoul this construction of metallic chamber, touchscreen interface and electronic modules with sensors and microcontrollers.

We have made:

  • Incubator control system for Rapsberry Pi, industrial equipment interface, system for gathering and local storage of research data;
  • Incubators' Rasberry Pi "brain" and plug-in modules microprocessors understand each other;
  • Cloud data storage and remote control via web service and mobile application;
  • The system troubleproof and easy in maintenance.
  • Perform integration tests.

Make it work

The device has a built-in Raspberry Pi computer with a touch screen. User manipulates the device with this screen. The computer gathers stores and sends experiment data to the server when connected to the Internet.

 We have developed software for Raspberry Pi from the scratch and designed user interface for it. Then we connected the incubators "Brain" with electronic modules: wrote a program that transmits the commands from the user to electronic modules, gathers data from sensors and stores in the hard drive onboard the device.

 The main problem in this task was that microbiological chamber and electronic modules have different processors. The incubator has Raspberry Pi. In addition, built-in temperature and plug-in gas (CO2, N2, O2) modules have Arduino microcontrollers. We had to write independent firmware that reads sensors and executes commands for starting and stopping the module.

IoT-лаборатория, веб-портал и мобильное приложение для медтех-стартапа

In IoT project writing the good code is not enough. You always have to test it with hardware it is designed for.

 We could not test the Arduino firmware in our office, as the customs did not allow bringing some necessary parts to Russia so the attempt to build the test module here failed.

 However, the client built the prototype for testing. We instructed the client how to embed the code to the microcontroller. Our electronics specialist was helping the client as they were building the system with all the modules.

 When we finished the software that connects modules to the interface of the device. The program translates user commands to a specific format and sends them to the module microcontroller. Microcontroller then instructs the electronic circuits to warm or cool the chamber, change the atmosphere structure. The module sensors in turn send gathered data back to the interface so the user could see the numbers on the display.

Device synchronization with web.

The main customer value of the product is possibility of remote experiment observation and control as well as access to all the research results with web interface. This requires real time synchronization with a web server.

IoT-лаборатория, веб-портал и мобильное приложение для медтех-стартапа

Usually IoT solutions use MQTT data transfer protocol. Unfortunately, this protocol could not solve our task. Therefore, we created our own protocol according to the needs of the project.

MQTT is pub/sub. This protocol would do fine if our task is "to subscribe and track the numbers", for example if we want to display status of sensors in mobile app or web page. However, it does not support legacy data storage and user access rights management required on this project. Therefore, we created a request-response API on top of that protocol.

In MQTT we need to subscribe to the changes in readings. If there are no subscribers, the data won't be sent to anyone and would be lost. Because MQTT brokers don't have their own storage besides a small buffer. It is important to us to store the data locally and synchronize it with cloud storage whenever possible. In addition, MQTT lacks suitable Go libraries. Dealing with pub/sub drawbacks, building our own libraries and an additional protocol atop of it, was not worth the effort. We took request-response gRPC protocol and built an API for it.

It also made the synchronization much more stable. The data could not be lost as if we used a MQTT broker, because there is an at-least-once delivery guarantee and update idempotency.

Yuri Kabanov

Developer at «Atwinta» digital agency

The device connects to the Internet with cable, Wi-Fi or 3G. We have built a nice interface for connection settings Even if the device becomes disconnected, it will store data locally and synchronize all the data automatically when the connection is restored.

Make it secure and trouble proof

IIoT has very strict security requirements. If ordinary household equipment fails it usually doesn’t do much harm, put failures of industrial equipment always leads to financial losses and sometimes danger to peoples health.

 For example this device not only synchronizes with current users account but also reports on runtime status to the authorized support service. The system automatically informs tech support if the failure occurs and the specialists will contact the users and repair the device.

 The incubator is protected from outside access by automatic screen blocking. User can access or change data only by entering a PIN code. Password and different access rights protect data on the server. This makes unauthorized access to research impossible.

IoT-лаборатория, веб-портал и мобильное приложение для медтех-стартапа

The product

Our client has made contracts with several research institutions in the USA while the product was still in development. After the release, the product was presented to the investors and drawn 15 million USD of investments for production and further development of the product.

 The cell-culture incubator is released on the market, is supplied to medical, and research institutions. The company is going to develop a full cycle of laboratory equipment basing on the software we made. The laboratory will include various devices and scientific equipment all connected to each other. This will allow conducting complex experiments from any point of the globe, and analyzing the data with machine learning.

This project was awarded silver at Tagline Awards in «Mobile, AR, VR, IoT» nomination in 2018. In February 2019, the project granted us the 2nd place at "Golden Application" national competition.

IoT-лаборатория, веб-портал и мобильное приложение для медтех-стартапа