Year

Project

Developed for

Description

2017

AES-256
for xmega

ELESOFTROM,
own project

Code size optimization of AES-256 encription standard for Atmel (Microchip) xmega microcontrolers. The task was performed in order to provide universal module for encription of communication and secure firmware upgrade in small embedded devices (code must fit in bootloader section). (results: about 50% reduction of original code size taken from axTLS library)

2017

RaspberryPi3 & Bluetooth

ELESOFTROM,
own project

Serial link over Bluetooth (RFCOMM) connecting the Raspberry Pi 3 board with other devices (laptops, smartphones, etc.; OSes: Windows 7, 10, Linux, Android ). Bluetooth configuration, stack communication monitoring. This task will be applied in remote configuration and control embedded devices from mobile devices.

2017

RaspberryPi3
GPU

ELESOFTROM, own project

Architecture of GPU cores (GPU, VPU); Available software tools - assembler, C compiler;
Gathering documentation sparsed in Internet about Broadcom VideoCore IV chip; Details of early boot stages (before Linux start); testing Raspberry Pi 3 boot time; Preparation for using Raspberry Pi GPU for parallel calculations. The knowledge about VideoCore IV may be also applied in implementation of specific fast tasks after power on the board before Linux has been started.

2016

Code Review

Code Review of Smart House System. Evaluation of the system architecture. Consulting of multitasking synchronisation solutions.

2015

Drivers

Real-time system drivers for serial communication and high quality sound playing.

2015

Training on
Embedded Systems

MpicoSys

Two days training on "A Programming of The Embedded Systems": architecture, modeling and design of embedded software, miicrokernels, multitasking aspects, synchronisation and access control methods; good pactice in C language programming; development of reliable software; testing and quality assurance; optimization techniques of execution time; methods of debugging real-time embedded software

2014

Operating System
for Embedded Devices

MpicoSys

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 application 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

2013

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

2013

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...

2012

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.

2012

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.

2012

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).

2012

Dash7

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.

2012

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.

2011

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).

2012

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.

2011

DioneOS RTOS

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

2010

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.

2010

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.

2007-2010

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.

2009

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.

2006-2008

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

2006

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.

2003-2006

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.

2005

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.

2001-2004

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.

2003

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.

2000-2002

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)

1999-2000

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).

1999

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.

1999

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.