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