Developed for



Operating System
for Embedded Devices


a) Development of Custom Operating System for Embedded Devices: e.g. C extension (in C preprocessor) that simplifies usage of cooperative multithreading, objects for synchronization and communication of the threads, etc.
See examples of aplication of the system
b) problems evaluation, bug fixing, porting a library for RedPine WiFi modem to the system,
c) IP stack porting (LwIP),
d) SSL library porting (axTLS),
e) code review; bug fixing in LPCOpen library, real-time problems debugging, performance analysis and optimization


DioneOS RTOS for ARM Cortex-M3

Version of the DioneOS system for ARM Cortex-M3 processors. The system was carefully tested on STM32L162 microcontroller. Testing environment was used for automatic testing and verification. Achieved full code coverage including code in macrodefinitions. With special care protection of critical sections was verified and checked coexistence with advanced features of the interrupt system on Cortex-M3. Read more about reliability of the system for ARM Cortex-M3


Testing Environment
for automatic Firmware testing

The environment is devoted to automatic testing of microcontrollers firmware. It consists of: GDB, OpenOCD server, JTAG module, logic analyzer and supporting scripts. It works under Linux and provides automatic execution of unit tests as well as regression testing. More about this environment...


Bootloader SafeBoot

The Bootloader designed to support safe upgrade of the operating system located on HDD partition (for x86 architecture). Automatic return to last version in a case of failed upgrade. Start of a safe system version when configuration data or other critical issue is detected.
Design and development automatic testing (regression testing) of bootloader behavior on low level before operating system has been started.


Linux Tizen IVI
(In-Vehicle Infotainment)

Tuning and preparation the system for automotive computer NexCom VTC-1000. Analysis and solution a problem with touchscreen calibration NexCom VMD-1000B (PenMount PM6000 chip). Participation in the 7th GENIVI Conference, All Member Meeting, Shanghai.


OpenTag Library

Review of the architecture and source code of the library. Propostion of changes and improvements. Development of applications devoted to testing positioning (uses 433 MHz band).



Review of the Dash7 preliminary standard specification - low power wireless communication. Membership in Dash7 Technical Working Group - discussion of new solutions for header FEC coding, compatibility with previous versions of the standard. Participation in Dash7 Alliance Meeting in Helsinki.


New tasks and self-learning

Evaluation of the toolchain building tools (e.g. crosstool-ng).
Evaluation of firmware building tool (buildroot). Implemenation of improvements in the Linux patching.
Application of the Linux extensions (RTAI) for real-time systems with the real-time hard constrains.
Tuning and preparation debuging tool LTTng for the Linux kernel with RT_PREEMPT patch.


Linux with root file system protected from unexpected power off.

Design and application of changes in Linux for IEI Wafer LX800, that introduce read-only root file system. This provides protection from unclean closing of the file system during sudden power off. Other data, that is variable at the system running time are stored in RAM (tmpfs).


Router Management Software

Porting to new platform the software responsible for the wireless router (WiFi/3G) management and statistics reporting. Tuning the operating system, inluding changes in partitioning the flash memory - optimization for space occupation, selection of proper filesystem type, usage of separated partition for configuration data.



Design and development new multithreaded, preemptive, real-time operating system for microcontrollers. The system has been optimized for Texas Instruments msp430 architecture, minimizing time of switching a context of threads and inter-thread synchronization latency. More information about the system is available on its site: DioneOS


The Controller of CNC Router

The controller for CNC router on Intel Atom mainboard running under operating system has been developed. Architecture of the device was designed, next the firmware was developed together with low level hardware support parts. Software consist of the system drivers and control application, that worked as server and provides control interface over Ethernet. The software has multi-thread structure and satifies real-time requirements.


Linux - optimized efficiency

Linux for IEI Wafer LX800 embedded board. Boot time optimization, efficient graphic user interface of the system. Support for LCD Touch Panel. The system boots faster than Windows on this board.


WiMAX Base Station (Wireless access to the network) working on Linux with RT_PREEMPT

Co-operation in the design and development of the WiMAX Base Station (IEEE 802.16): design of the device architecture, development of the algorithms for bandwidth allocation for connections, optimization for short run-time and real-time characteristics, hardware control, analysis and debugging of the complex hardware issues in system using advanced testing methods. Coherent testing and debugging of software and hardware. Development of the methods and tools supporting this type of system evaluation. The base station devices were ported to multiple embedded platforms (architectures: x86, ARM, xScale, PowerPC) and were used specialized RF modems that included custom ASIC and FPGA chips. The systems worked under control of the Linux with RT_PREEMPT patch.


Remote Measurement Device

The low power measurement device for counting transmission and consumption of a fluid that remotely sends recorded data to a server via GPRS. Specification of user requirements were described, followed by object analysis and creation of UML models. In next step, created documents were a basis for design of the device architecture. In development phase we provided consulting services for programmers that implemented the code. Their work was continuously evaluated by performed source code inspections. The system used MSP430.


Scientific Research on state machines and automatic code generation

The research devoted to embedded systems: automatic code generation for state machines, formal description of the system behavior.
+ "Translator of Hierarchical State Machine from UML Statechart to the Event Processor Pattern", MIXDES, 2007, pp. 684-687, ISBN 83-922632-9-4
+ "New Pattern for Implementation of Hierarchical State Machines in the C Language, Optimized for Minimal Execution Time on Microcontrollers", MIXDES, 2008, pp. 605-609, ISBN 83-922632-7-8


Embedded Systems Laboratory

Design of the Embedded System Laboratory for the Institute of Electronics, Technical University of Lodz, Poland. The tasks were performed on self manufactured platform with Atmel Atmega128 microcontroller, equipped with keyboard, LCD display and other peripheral modules. The courses present basic problems in programming of the stand-alone embedded systems.


The Controller of CNC Milling Machine

The controller of the 3-axial CNC machine. Design of the hardware (including PCB), prototype development, design and development of the firmware responsible for stepper motor control, path interpolation and effective dynamic movement. The accompanying software runnign on PC for device control were developed. The software among other functions, is an implementation of milling projects processing and 3D visualization. It recognise various input data formats: HPGL, DXF and Gcode.


Interactive Advertisement Device

The device played audio advertisement when a person was passing by. The devices was organized in network and were controlled via TCP/IP connection established over GPRS. The audio files and schedule were remotely updated. Co-operation in: user requirement specification, code review and optimization; the development of the reliable download. Downloaded contents was taken from a server and programmed in real-time into local FLASH memory.


The Controller of the Thermal Cutter

The controller of the 3-axial thermal cutter: design and development of electronics, prototype PCB, the firmware and user software, development of algorithms for drawing processing. The real-time motion control achieved by driving 3 stepper motors, with specific demands for the dynamics. The requirements were determined by physical process of material evaporation.


ARM Development Board

ARM Development Board The design and testing the universal development board that contained ARM7 processor, Ethernet controller, memories (flash and sdram) and other peripherals. The development of a set of programs written in assembler for testing and verification of the basic items and functions of the board (inc. FLASH programming, access to SDRAM using MMU, boot-loading, etc.). The board was designed to run under Linux.


Doctoral Dissertation

The dissertation on electronics, the digital signal processing with application of wavelets (written and defended in the Institute of Electronics, Technical Univ. of Lodz, POLAND)


ECG Signal Generator

The electronics, PCB and the firmware design and development of the device connected to PC and built on i80251. microcontroller. In the real-time, the device generated two analog ECG signals, that were reconstructed from digital representation stored in signal data base on the PC. The device was intended for elctrogardiographs testing. Special measures, including theoretical analysis, were taken for minimization of distortion during signal reconstruction (DSP operations, resampling, sinc correction, analog filtration).


PID Controller, Arithmetic Library

The development of the software PID controller, applied in high power converters. The design and implementation of the fixed-point arithmetic library with error analysis. The code was written in assembler for Intel 80552 microcontroller.


Calculation, Neural Network

Participation in scientific research that tested an application of the neural networks in identification of dynamic system parameters. The calculation of the network classifier were optimized for short execution time. Critical parts were programmed in the Pentium assembler with consideration of two pipelines of the processor, resulting in dose or more increase of calculation speed.