Our company provides a wide range of services within the area of embedded systems. We offer the design and implementation of both stand-alone, dedicated solutions as well as modules to be integrated into existing systems. Although our primary interest is software, with the help of our affiliate we can easily provide complete hardware+software solutions.
Below is a list of the most important services we provide:
Industrial process monitoring
A good view of the regulated variables is critical to the functioning of virtually all industrial systems. We create advanced data acquisition and presentation mechanisms, allowing the observation of the system state on both specialised embedded devices and normal PCs.
Real-time operating systems and control algorithms
Many processes require an immediate reaction to a state change, and only a well-devised control algorithm on a real-time operating system can fulfill that requirement. We are experts in a variety of RTOS's: Linux RTAI, eCos, ChibiOS, etc. We have written libraries extending the possibilities of various OS's, e.g. facilitating algorithm debugging or simplifying communication between separate threads. This way we are able to quickly construct even complicated control systems which still satisfy the real-time condition.
OS driver and kernel development
The hard reality of embedded computing is that often it is impossible to find good, thoroughly tested drivers, especially for less popular devices and non-standard interfaces. While many software developers would be reluctant to use equipment for which they do not already have code, we are not afraid to do that, even if it means beginning from scratch. We have written drivers for SD cards, LCDs, various sensors, communication modules and many other devices, often also doing the necessary OS kernel modifications to accomodate them.
Wireless communication is an important issue in many applications of embedded systems. We have experience with various wireless modules utilising standards like ZigBee, WiFi, GSM or Bluetooth. This also means that we know the technicalities of wireless transfer: we have performed range and signal strength tests of various antennas to go with the modules we use, depending on the size/cost limits and requirements of the project.
Industrial communication protocols
We advocate the use of various well-established industrial communication protocols, like ModBus, industrial TCP & Ethernet, OPC-XML. Adopting these standards allows us to focus on different aspects of the system without the need to compare and conform to varying specifications. Our solutions can thus communicate with a wide range of devices on the market out of the box.
We have hands-on experience with a multitude of hardware solutions; we try to acquire any new and interesting development board or module as soon as it hits the market. Processor-wise, we have written code for the Cortex line (Cortex-A9, Cortex-A8, Cortex-M3, the low-power Cortex-M0) as well as ARM7-TDMI, ARM9, ARM11, MIPS (Atheros AR71XX). We have used and developed drivers for various environmental sensors (temperature, pressure, humidity, etc.) and other peripheria using many commonly used interfaces - I2C, SPI, UART, CAN and others.
Embedded systems integration
The worth of an embedded system lies beyond the quality of its components in isolation; successful integration is often the most difficult part of a project. Since we work at different levels of the ladder, from drivers, kernels and control algorithms up to high-level PC application code, we know how to make things work together. We can not only integrate our own modules with larger entities, but provide middle-(hard and soft)ware to combine third-party solutions our client is interested in using.
Linux applications for embedded devices
Many of the recent high-performance embedded processors are able to sustain various variants of Linux, from Android to Ångström. Thus, applications which were previously unthought of can emerge, applications which bring the world of embedded computing closer to the rich and stimulating experience of the modern PC user, with web 2.0, graphics acceleration or high quality video playback. We are keen Linux users and have been writing various applications, both commercially and for the open-source community, for years, exploring the new possibilities offered by this constantly evolving family of operating systems. With the unprecedented interoperability provided by the fact that Linux-based systems can be run on PCs, laptops, netbooks, embedded controllers or mobile phones this knowledge has proved highly valuable.
Energy efficient devices
Energy efficiency is just as much a function of the hardware used as it is of the software that runs on it. In fact, many 'low-power' components do not consume significantly less energy while in operation but rather implement a range of modes which allow them to wake up for short periods, returning to a nearly powered-down state at other times. Thus, the greatest savings can be made by making use of those mechanisms, often disregarded by software developers. We, however, know that a module is really 'low-power' only when it is appropriately handled. We have successfully implemented systems using low-power processor, radio and measurement modules keeping this thought in mind.
Touch displays and GUIs
An embedded system must be user-friendly and intuitive to minimize the amount of effort required to operate it and eliminate the risk of human error. From simple alphanumerical displays of a single data source to advanced data acquisition and visualization systems with dynamically updated graphs, diagrams and detailed graphical representations of the object being monitored, we try to show it neatly and without unnecessary clutter. We make our user interfaces pleasing to the eye and straightforward, utilizing legible fonts, vector graphics, and touchscreen displays.