Services and solutions

Software development


Software applications

The software applications we develop for desktop platforms are often dedicated GUIs for interaction with an embedded system. These include new software or migration of old applications to modern GUI with drag&drop and multitouch interractivity.

Another category of applications are engineering support tools for desktop or for embedded systems, like custom bootloader interfaces, transpilers, diassemblers, etc.

For high level applications, lately our programming languages of choice are C# and Python, although we build applications using many other programming languages and frameworks:

Mobile Application Development

We use the following cross-platform tools to develop mobile applications of high level of nativity (that run on both Android and iOS):

Unity3D is used for graphic heavy 3D or 2D applications like games or animated presentations. Xamarin is preferred for a native look, for the power and familiarity of the C# language and libraries. Cordova is used for building hybrid applications that take advantage of web technologies.


Additional to the mobile application we offer:

Server-side development: cloud based applications or integration with corporate information systems;

 

Interfacing the mobile app with other hardware peripherals like input devices, printers, etc;

 

Native Java application development for Android OS (full applications, services or plugins);

Web applications

  • We develop our backend applications using Google Cloud Services, and the software is based on Python libraries. These services handle communication with mobile platforms, data collection from embedded devices and field sensors.
  • Website front end is built with responsive styles that adjusts to phones, tablets, and desktops and is compatible with all modern browsers.
  • User interfaces for hybrid mobile applications are built similar to the front-end, but could be enhanced as single-page applications to provide a better user experience.

Data processing & Research

We are involved in scientific research in the domains of control theory, algorithms for image processing, signal processing, electronic measurements, communication protocols and autonomous robotic systems. We apply the research results and novel algorithms to solve the particular problems of our customers.

The signal processing methods are developed using specialized high level tools centered around Python and Matlab. Sometimes the algorithms we develop are running offline on a computer, processing externally collected data, other times the algorithms are ported and optimized in C to run in real-time inside one of our embedded systems.





Embedded systems

We offer complete embedded solutions including design, hardware, firmware and high level software.



We build all types of embedded systems:

Compact, deep embedded systems

These are embedded systems that are constrained in size, memory, processing resources and usually run on a very low power budget. Examples of such systems are sensing elements of the "IoT" network that are low cost, nodes for the smart-house, efficient small sensors that collect information, smart devices that process and relay data to larger systems, autonomous drones. .

Medium and large embedded systems

These are devices that can run operating systems, where space and power consumption are not critical, but more performance and features are required. Examples of such systems include: home management systems, surveillance devices, programmable logic controllers, industrial measurements systems, specialized gateways.

Circuit design

Circuit design and schematic capture