Lighting Equipment Embedded Software Development

Industries
Manufacturing
Expertise
Application Development, Mobile Application Development
Technologies
C, iOS, Android
Client

Our client is a leader in the production of lighting photographic equipment. The company's sales offices are located in the largest cities in Europe and Asia, such as Tokyo, London, Hamburg and Paris. The users of the devices are the world’s most famous photographers.

Challenge

Before we started working with the client, another outsourcing company was engaged in the development of embedded software. The client was dissatisfied with the work of the contractors and reached out to Software Country. Our task was to deal with the inherited code, solve the accumulated problems and help the client launch new products.

Solution

Studio light shaping differs from amateur photography by the number of flashes and continuous light sources, and, under certain conditions, an extremely high shutter speed. For example, if there are five different flashes that need to work simultaneously, and each of them has its own configuration (light temperature, synchronization delay, etc.), then controlling such an ‘orchestra’ becomes quite a difficult task.

The need to connect these devices wirelessly into a synchronized system, as well as tight time tolerance constraints, determined the quality and performance requirements of the software code controlling the device. In addition, some devices use light sources that require high voltage. This determined the requirements for reliability and fault tolerance.

On the Software Country side, 3 embedded developers and 1 tester participated. We had to get involved in the work very quickly in order to meet the tight deadlines set by the client. Besides, the company urgently needed to complete a new product, the launch of which was delayed by 1 year.

After the initial analysis, we identified the following main problems:

  • A large amount of code inherited from previous products.
  • Suboptimal architecture and redundant interdependencies between modules that were difficult to maintain and update.
  • Incorrect handling of system interrupts, incorrect use of templates and other architectural problems.

Next, we proceeded to clarify the technical requirements, working closely with the Product Owner, the microelectronics department and the marketing department on the client's side. We acted as analysts of business requirements and clarified ‘what exactly needs to be done’ for each item of technical requirements, as well as helped in prioritizing the addition of new features and planning the release of software in accordance with changes in plans.

After clarifying all the client's requirements and setting priorities, we proceeded to deep refactoring of the existing code. When developing the code, we took into account that the component base may change (since the client is affected by the lack of components around the world), and it was important for us that the code of the module, which worked on one microprocessor with one peripheral, would run on another one.

We also supported ongoing product research (R&D) by creating firmware with experimental functions. That is, the client changed various parameters in a laboratory, conducted experiments and requested changes of additional features, and we created special firmware for testing and sent it to the client.

Results & Benefits

The professional work of our team allowed to release new products at last, so the client was very satisfied with our cooperation. Besides, the team wrote documentation in order to improve the code maintainability in the future.

In addition to embedded development, our team also participated in the development of Android and iOS apps allowing to customize the room, control all devices, adjust the mode of flash operation, take a test shot from the phone, and synchronize settings via Bluetooth.

Related Cases

Read all

RTSM Solution: Data Ingestion Improvement

Removing issues in data architecture and processing in order to provide a solid foundation for future growth of the platform.

LMS Content Import and Export Feature

A solution for importing and exporting content from / to Moodle and IMSCC platforms.

Content Generation with Copilot Studio and MCP Servers

A solution to help new teachers rapidly adapt to the educational system while providing easy access to the existing content base.