rok

nazwa

wykonane dla

opis

2018

Osobisty sensor Bluetooth LE

Osobisty sensor do zdalnego nadzorowania parametrów medycznych człowieka. Odczytywanie danych przez komunikację po Bluetooth Low Energy. Możliwość zdalnej aktualizacji oprogramowania sensora. Urządzenie wykonane z uwzględnieniem wymogów energooszczędności.
Wykonany został projekt elektryczny urządzenia oraz jego oprogramowanie; do realizacji wykorzystano układy ST Microelectronics - BlueNRG-2.
W trakcie opracowania urządzenia przeprowadzono szczegółowe badanie i analize problemu z wybudzaniem układu BlueNRG-2.

2017

GPUGP na Broadcom VideoCoreIV 3D

ELESOFTROM,
proj. własny

Wykorzystanie do obliczeń procesora graficznego VideoCoreIV 3D (z Raspberry Pi 3). Przegląd metod debugowania programów na rdzeniach QPU. Przykładowy projekt obliczeń Dyskretnej Transformaty Falkowej. Opis środowiska i architektury

2017

AES-256
dla xmega

ELESOFTROM,
proj. własny

Optymalizacja wielkosci kodu AES-256 dla procesorow Atmel (Microchip) xmega, na potrzeby bezpiecznej komunikacji oraz aktualizacji oprogramowania tak aby kod zmiescil sie w sekcji bootloadera. (Osiagniety rozmiar: okolo 50% poczatkowego kodu z biblioteki axTLS)

2017

RaspberryPi3 & Bluetooth

ELESOFTROM,
proj. własny

Łączenie płytki przez port szeregowy po Bluetooth (RFCOMM) z innymi urządzeniami (laptopy, smartfony; OS: Windows7, 10, Linux, Android). Konfiguracja Bluetooth, monitorowanie komunikacji stosu. Projekt na potrzeby konfiguracji i zarzadzania urzadzeniem embedded za pomoca telefonu.

2017

RaspberryPi3
GPU

ELESOFTROM,
proj. wlasny

architektura rdzeni procesora graficznego (GPU, VPU); dostępne narzędzia - assembler, kompilator C;
zebranie dokumentacji rozproszonej w Internecie n.t. procesorow Broadcom VideoCore IV; szczegóły wczesnego procesu bootowania (przed Linuxem); badanie szybkości bootowania płytki; Przygotowanie do wykorzystania GPU do obliczen rownoleglych. Wiedza o ukladzie VideoCore moze byc tez wykorzystana do implementacji specyficznych szybkich reakcji po wlaczeniu plytki - zanim uruchomi sie Linux.

2016

Recenzja oprogramowania

Recenzja oprogramowania systemu inteligentnego domu; Ocena architektury systemu; konsultacja rozwiazan synchronizacji wielowatkowej

2015

Drivery

Real-time'owe sterowniki systemowe przeznaczone do komunikacji szeregowej oraz generowania dzwieku wysokiej jakosci.

2015

Szkolenie n.t.
Embedded Systems

MpicoSys

Dwudniowe szkolenie "Programowanie systemów embedded": architektura, modelowanie i projektowanie oprogramowania embedded, mikrokernele, wielowatkowosc, mechanizmy synchronizacji i kontroli dostepu; dobre praktyki w programowaniu w jez. C; tworzenie niezawodnego oprogramowania, testowanie i zapewnienie jakosci; techniki optymalizacji szybkosci dzialania; metody debugowania oprogramowania real-time

2014

System Operacyjny
dla Urządzeń Embedded

MpicoSys

a) rozwijanie specyficznego systemu operacyjnego dla Urządzeń Embedded: m.in. rozszerzenie C (w preprocesorze C) upraszcające użycie współbieżności kooperatywnej, mechanizmy do synchronizacji i komunikacji wątków, itp.
Zobacz przykłady wykorzystania systemu
b) ocena problemów, poprawki, portowanie biblioteki do modemu WiFi RedPine,
c) portowanie stosu IP (LwIP),
d) portowanie biblioteki SSL (axTLS),
e) review kodu; poprawki biblioteki LPCOpen, debugowanie problemów real-time, analiza i optymalizacja wydajności

2013

DioneOS RTOS dla ARM Cortex-M3

Wersja systemu DioneOS dla procesorów ARM Cortex-M3. System został przetestowany na mikrokontrolerze STM32L162. Do automatycznego testowania wykorzystano własne środowisko testowe. Przeprowadzone testy pokrywają cały kod źródłowy, w tym makrodefinicje. Ze szczególną starannością przetestowano zabezpieczenie sekcji krytycznych oraz odporność na zjawisko hazardu. Więcej na temat niezawodności i testowania ...

2013

Środowisko do automatycznego
testowania firmware'u

Środowisko jest przeznaczone do automatycznego testowania oprorgamowania dla mikrokontrolerów. Składa się z: GDB, serwera OpenOCD, modułu JTAG, analizatora logicznego oraz zestawu skryptów. Pracuje pod systemem Linux i umożliwia automatyczne wykonywanie testów jednostkowych oraz regresyjnych. Więcej informacji na ten temat...

2012

Bootloader SafeBoot

Bootloader przeznaczony do bezpiecznego upgrade'u systemu operacyjnego na partycji twardego dysku dla architektury x86. Automatyczne wycofanie w przypadku nieudanego uruchomienia nowego systemu. Dodatkowa funkcja startowania systemu awaryjnego w przypadku wykrycia problemów z danymi konfiguracyjnymi.
Opracowanie metody i wykonanie automatycznego testowania (testy regresyjne) zachowania bootloadera na niskim poziomie przed uruchomieniem systemu operacyjnego.

2012

Linux Tizen IVI
(In-Vehicle Infotainment)

Dopasowanie i przygotowanie systemu dla komputera samochodowego NexCom VTC-1000. Badanie i rozwiązanie problemu z kalibracją wyświetlacza dotykowego NexCom VMD-1000B (z układem PenMount PM6000). Udział w konferencji 7th GENIVI All Member Meeting, Shanghai.

2012

Biblioteka OpenTag

Recenzowanie architektury i kodu źródłowego. Propozycje zmian i ulepszeń. Przygotowanie aplikacji do badania lokalizacji na pasmo 433 MHz.

2012

Dash7

Recenzowanie wstępnej specyfikacji standardu Dash7 - energooszczędnej komunikacji bezprzewodowej. Udział w Dash7 Technical Working Group - dyskusja nowych rozwiązań ochrony nagłówka przez kodowanie FEC, kompatybilności z dotychczasowym wersja standardu. Udział w konferencji Dash7 Alliance Meeting w Helsinkach.

2012

Rozpoznawanie narzędzi
i nowych zagadnień

Rozpoznanie narzędzi do budowania toolchainów (crosstool-ng).
Rozpoznanie narzędzi do budowania firmware'u (buildroot). Modyfikacje usprawniające.
Wykorzystanie rozszeżeń Linuxa (RTAI) do systemów real-time o krytycznych wymaganiach czasowych.
Dopasowanie i przygotowanie narzędzia do debugowania LTTng dla kernela Linuxa z nakładką RT_PREEMPT.

2011

Linux z systemem plików odpornym na wyłączanie zasilania

Przygotowanie zmian w Linuxie na płytkę IEI Wafer LX800 wprowadzających główny system plików jako tylko do odczytu (Read-Only), dzięki czemu nie ulegał on 'uszkodzeniu' przy nieoczekiwanym wyłączeniu zasilania urządzenia. Pozostałe dane o zmiennym charakterze podczas działania systemu były przechowywane w pamięci RAM (tmpfs).

2011

Oprogramowanie zarządzające routerem

Przeniesienie oprogramowania zarządzającego routerem bezprzewodowym WiFi/3G na nową platformę. Dopasowanie systemu operacyjnego, poprawki sposobu partycjonowania pamięci Flash - optymalizacja wykorzystania, zmiana typu systemu plików, wydzielenie danych konfiguracyjnych.

2011

DioneOS RTOS

Opracowanie własnego wielowątkowego systemu operacyjnego czasu rzeczywistego z wywłaszczaniem dla mikrokontrolerów. System został zoptymalizowany dla procesora Texas Instruments msp430 pod kątem uzyskania krótkiego czasu przełączania kontekstu wątków a także skrócenia czasu sygnalizacji między wątkami. Więcej informacji można znaleźć na stronach poświęconych systemowi operacyjnemu: DioneOS

2010

sterownik frezarki numerycznej (CNC)

Sterownik frezarki numerycznej (CNC) działający na płycie Intel Atom pod kontrolą systemu operacyjnego. Zaprojektowano architekturę urządzenia, wykonano oprogramowanie i elementy zapewniające współprace z hardwarem. Opracowane zostały sterowniki systemowe oraz aplikacja kontrolująca działanie maszyny wspólpracująca z komputerem zewnętrznym przez Ethernet. Oprogramowanie opiera się na wielowątkowej strukturze i spełnia założone wymagania czasu rzeczywistego.

2010

Linux - optymalizacja wydajności

Linux dla płytki IEI Wafer LX800. Optymalizacja czasu bootowania systemu, wydajności środowiska graficznego interfejsu użytkownika, współpraca z ekranem dotykowym LCD. Uzyskano czas startowania systemu znacznie krótszy niż dla systemu Windows.

2007-2010

Stacja bazowa WiMAX (bezprzewodowy dostęp do sieci) działająca na Linuxie z RT-PREEMPT

Współpraca przy projektowaniu i konstrukcji stacji bazowej WiMAX (IEEE 802.16): projekt architektury urządzenia, algorytmy przydziału pasma dla poszczególnych połączeń, optymalizacja czasu wykonania, programowanie wielowątkowe, współpraca z hardwarem, analiza i debugowanie złożonych problemów sprzętowych w systemie przy użyciu zaawansowanych metod obserwacji działania. Koherentne testowanie i debugowanie software'u i hardware'u. Rozwijanie metod i narzędzi wspomagających tego typu weryfikację poprawności działania. Urządzenia stacji bazowych były realizowane na różnych platformach embedded (architektury: x86, ARM, xScale, PowerPC) i współpracowały ze specjalizowanymi modemami RF zawierającymi układy ASIC oraz FPGA. Systemy wykorzystywały Linux z RT_PREEMPT.

2009

Telemetryczny miernik przesyłowy

Telemetryczny miernik przesyłowy o niskim poborze mocy przesyłajacy dane do serwera przez GPRS. Opracowano specyfikację wymagań użytkownika, analize obiektową, wypracowano modele UML, zaprojektowano architekturę urządzenia. W fazie realizacji zapewnione zostało wsparcie poprzez konsultacje proponowanych rozwiązań i recenzowanie wykonywanego kodu przez developerów. Projekt realizowany był na procesorze MSP430.

2006-2008

Badania naukowe dotyczące maszyn stanowych i automatycznej generacji kodu

automatyczne generowanie kodu maszyn stanowych. Formalne metody opisu zachowania systemów embedded:
+ "Translator of Hierarchical State Machine from UML Statechart to the Event Processor Pattern", MIXDES, 2007, str. 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, str. 605-609, ISBN 83-922632-7-8

2006

Laboratorium
systemów embedded

Opracowanie laboratorium systemów zintegrowanych (embedded systems) dla Instytutu Elektroniki Politechniki Łódzkiej. Ćwiczenia opierają się na własnej platformie sprzętowej wykorzytującej procesor Atmel atmega128, wyposażonej w klawiaturę i wyświetlacz LCD. Zestaw zadań zapoznaje studentów w podstawowymi zagadnieniami programowania autonomicznych systemów mikroprocesorowych.

2003-2006

Sterownik frezarki numerycznej

Sterownik 3-osiowej frezarki sterowanej numerycznie (CNC). Opracowanie elektroniki (w tym płytki drukowanej), wykonanie prototypu, zaprojekowanie i wykonanie oprogramowania urządzenia (sterowanie silnikami krokowymi, interpolacja, uzyskanie dużej dynamiki ruchu). Wykonano również program sterujący na PC z dodatkowymi funkcjami do przetwarzania projektów frezowania i wizualizacją 3D. Program został wyposażony w parsery formatów HPGL, DXF, Gcode.

2005

Urządzenie reklamy interaktywnej

Wykonanie specyfikacji wymagań, analiza poprawności i elementów ryzykownych. Analiza i recenzowanie kodu urządzenia, współpraca i realizacja zdalnego ładowania plików audio poprzez modem GPRS. Pliki były ładowane przez TCP/IP z serwera. Dodatkową funkcją było programowanie plików do pamięci FLASH w czasie ściągania (wymogi czasu rzeczywistego).

2001-2004

Sterownik plotera termicznego

Zaprojektowanie i wykonanie elektroniki, firmware'u, software'u użytkownika, opracowanie algorytmów przetwarzania rysunków. 3-osiowe sterowanie silników krokowych. Spełnienie szczególnych wymagań dotyczących dynamiki ruchu narzuconych przez specyfikę zastosowania - wypalanie w materiałach obrabianych maszyną.

2003

Płytka z procesorem ARM

ARM Development Board Zaprojektowanie i uruchomienie uniwersalnej płytki z procesorem ARM7 wyposażonej w pamięć FLASH, SDRAM, Ethernet oraz układy peryferyjne. Samodzielnie opracowane programów w assemblerze przeznaczonych do testowania poprawność działania płytki: programowanie FLASH, dostęp do pamięci SDRAM z wykorzystaniem MMU - inicjalizacja tablic translacji, port szeregowy. Płytka była przeznaczona do uruchomienia na niej Linuxa.

2000-2002

Doktorat

Rozprawa doktorska z dziedziny elektroniki, cyfrowego przetwarzanie sygnałów (DSP) z wykorzystaniem przekształcenia falkowego (obroniona w Instytucie Elektroniki Politechniki Łódzkiej).

1999-2000

Generator
sygnału EKG

Opracowanie elektroniki i firmware'u generatora (system wyposażony w procesor i80251) podłączonego do komputera PC. Urządzenie odtwarzało w czasie rzeczywistym wzorcowe sygnały EKG zapisane na komputerze PC w bazach sygnałów i przeznaczone było do testowania elektrokardiografów. Szczególną wagę przyłożono do niezniekształconej rekonstrukcji sygnału analogowego (DSP, korekcja sinc, filtracja analogowa).

1999

Regulator PID,
biblioteka arytmetyczna

Opracowanie software'owego regulatora PID, przeznaczonego do regulacji przetwornicy trakcyjnej. Wykonanie w asemblerze stałoprzecinkowej biblioteki arytmetycznej dla procesora i80552. Przeprowadzono analizę błędów obliczeń wynikających ze skończonej reprezentacji liczb.

1999

Obliczenia, sieć neuronowa

Współudział w badaniach naukowych dotyczących wykorzystania sieci neuronowej do identyfikacji parametrów dynamicznych układów. Przeprowadzono optymalizację obliczeń sieci Kohonena, z uwzględnieniem potoków w procesorze Pentium (implementacja w assemblerze), uzyskano kilkunastokrotne przyśpieszenie obliczeń.