Skills
Ich entwickle individuelle, hardwarenahe Software und Softwarekomponenten, vorrangig in den Bereichen:
Embedded Software / IoT
Bildverarbeitung / Bildanalyse
Messtechnik / Automation
Prüfsoftware / spezielle Software für technische Systeme
Profil: Norbert Leitl
Jahrgang: 1972
Ausbildung: Dipl.-Ing.(FH)
Fremdsprachen: Englisch (verhandlungssicher)
Berufserfahrung: seit 2002
IT-Kenntnisse
Tätigkeitsschwerpunkte:
- Softwareentwicklung
- Softwaredesign
- Dokumentation
- Messdatenerfassung
- IOT
- Embedded Softwareentwicklung
- Debugging
- Elektrotechnik
- Medizintechnik
- Businesslogik
- Datenvisualisierung
- Softwareentwicklung für Prüfstände
- Bilderfassung
- Bildanalyse
- Linux
- MacOs
- Windows
- C, C ++ 11 / C ++ 14 / C ++ 17
- C# .NET
- Python
- Assembler
- Rust
- Microcontroller(ARM Cortex M3, AVR Familie, TI, ESP32)
- x86, AMD64
- CCD Kameras
- Schrittmotorcontroller
- LAN / USB
- Oszilloskop
- MEMS Sensoren
- RS232
- Ethernet / LXI
- CAN - CANopen
- CAN - J1939 Protokoll
- SPI Bus
- I2C Bus
Datenbanken:
- SQL Server 2008 R2
- MySQL
Produkte, Standards:
- Microsoft Visual Studio
- Eclipse
- IAR Embedded Workbench IDE
- Design Patterns
- Qt / QML / JSON
- COM
- Win32 API
- STL, ATL, WTL
- gcc / gdb / clang
- MISRA
Branchen:
- Industrie
- Medizintechnik
- Forschung, Entwicklung
- Prüftechnik
- Regelungstechnik
Ausbildung
Zeitraum: September 1998 - Februar 2003
Studium an der FH München
Fachrichtung:Physikalische Technik.
Schwerpunkt: Mikrosystemtechnik
Diplomarbeit: Untersuchungen des Driftverhaltens von mikromechanischen
kapazitiven Beschleunigungssensoren.
Projekthistorie
Projekt: FRANKE Kaffee Automaten
Software: C++, gcc Compiler, cmake, Qt, QML, Git.
Entwicklung einer Software zur Steuerung von FRANKE Kaffeeautomaten auf einer embedded Linux Plattform.
- Softwaredesign, Softwarearchitektur.
- IoT Anbindung, Flottenverwaltung per Cloud.
- Parametrierung per REST Interface.
- Implementierung einer Paketverwaltung.
- Programmierung nach Designpatterns (z.B.: Factory, Strategy ... ).
- Design: Vererbungshierarchien, Polymorphismus, Interfaces mit puren virtuellen Methoden, Templates.
- Implementierung von Buisiness logic .
- User Interface mit QML erstellen.
- Build Jobs in Jenkins integrieren.
- Bugfixing, Debugging mit gdb.
- Codeverwaltung mit Git.
- Buildsystem Organisation mit cmake.
- Unittesting mit Qt Test
Schwerpunkte: Softwaredesign, Softwareentwicklung, Multithreading, Programmierung
Buisinesslogik, Feature Implementierung. IoT. REST. Schreiben von Unittests.
Projekt: LumiSuite, LumiTop
Software: C++, gcc, clang Compiler, cmake, Qt, Git, Windows, Mac Os.
- Softwaredesign, Softwarearchitektur.
- Programmierung nach Designpatterns (z.B.: Factory, Strategy ... ).
- Design: Vererbungshierarchien, Polymorphismus, Interfaces mit puren virtuellen Methoden, Templates.
- Implementierung von Algorithmen zur Messdatenerfassung und Bildauswertung in Qt und OpenCV.
- Entwicklung eines SDK‘s fuer Endkunden in C++ und C#.
- Build Jobs in Jenkins / Teamcity integrieren.
- Erstellung von Dll’s und statischen Bibliotheken.
- Spezifikation und Dokumentation.
- Bugfixing, Debugging mit gdb.
- Codeverwaltung mit Git.
- Buildsystem Organisation mit cmake. Unittesting mit Google Test
Schwerpunkte: Softwaredesign, Softwareentwicklung, Multithreading, Ethernet Kommunikation mit GigE Kameras, Bildverarbeitung, Datenvisualisierung, GUI Programmierung, Feature Implementierung. Schreiben von Unittests.
Projekt: 7er BMW Display Key
Software: C, C++, ARM gcc Compiler, Bake, Eclipse, Git, embedded Linux Ubuntu Linux.
Entwicklung der Firmware des Powermanagements für den 7er BMW Schlüssel (Display Key) auf einem NXP ARM Cortex M0+ Controller.- Auslesen von Sensordaten (fuel gauge bq27520-G4) wie beispielsweise Ladezustand oder Temperatur des Display Key Akkus.
- Kommunikation mit dem Maincontroller des Schlüssels (NXP i.MX 6 - ARM Cortex A9) per I2C.
- Entwicklung eines Bootloader Updaters
- Eventbasierte Programmierung mit Dispatcher und State Machine.
- Schreiben von Unittests mit Google Test.
Projekt: BMW Carsharing DriveNo. Software: C, C++, TI Compiler, Bake, Eclipse, Git, Ubuntu Linux, embedded Linux ,KEIL RTX RTOS.
Entwicklung einer Firmware um die Bluetooth Low Energy (BLE) Kommunikation des Carsharing Moduls auf einem TI CC2640 Controller zu realisieren.- Kommunikation mit dem Maincontroller per SPI um BLE Datenübertragung sicherzustellen.
- Bidirektionale Datenübertragung Android App ↔ BLE (CC2640) ↔ SPI (Calypso) .
- Eventbasierte Programmierung mit TI RTOS.
- Programmierung eines ARM Cortex M4 (NXP S32K144). Kommunikation mit einem NFC Chip per SPI (Außeneinheit des Carsharing Systems).
Schwerpunkte: Softwaredesign, Softwareentwicklung, Firmware Entwicklung für Embedded System mit der Anforderung besonders kompakten und schnellen Code zu generieren. Verifizierung und Test der Sensorik, Implementierung der Buskommunikation per SPI und I2C. Analyse und Test der Bussysteme mit Oszilloskop. Schreiben von Unittests.
Projekt: Neigungssensor
Software: C, C++, ARM IAR Compiler, IAR Embedded Workbench IDE, Microsoft Visual Studio.
- Spezifizierung und Verifizierung der benötigten Sensorik (MEMS).
- Verarbeitung digitaler Sensordaten per SPI / I2C Bus. Implementierung von FIR Filtern. Digitale Signalverarbeitung.
- Test und Fehlersuche an Bussystemen (SPI / I2C / CAN – CANopen – J1939) mit Oszilloskop.
- Entwicklung des Sensorinterfaces mit CAN - CANopen und J1939.
- Eventbasierte Programmierung mit Dispatcher und State Machine.
- Hardware: ARM Cortex M3 Prozessor (STM32).
- Fehlersuche mit C – SPY Debugger.
- Codeverwaltung mit Subversion.
- Umsetzung einer Temperaturregelung mit PID Regler.
- Implementierung der Datenspeicherung im FLASH / EEPROM.
- Entwicklung von Produktionstools (Visual Studio 2010 C++ / Qt) z.B.: Update der Neigungssensor Firmware per CAN Bus.
- Entwicklung von Dll’s (Visual Studio 2010 C++) um eine Schnittstelle zwischen Sensor und PC zu ermöglichen (CAN - CANopen und J1939).
(STM32 Microcontroller (ARM Cortex M3), IAR Embedded Workbench, IAR Compiler, C – SPY Debugger, C, C++, Qt, Microsoft Visual Studio 2010, Microsoft Visual Studio Debugger, Subversion Versionsverwaltung, FreeRTOS)
Schwerpunkte: Softwaredesign, Softwareentwicklung, Firmware Entwicklung für Embedded System mit der Anforderung besonders kompakten und schnellen Code zu generieren. Verifizierung und Test der Sensorik, Implementierung der Buskommunikation per SPI, I2C und CAN / CANopen / J1939. Analyse und Test der Bussysteme mit Oszilloskop. Regelungstechnik, Simulation des PID Reglers mit Simulink.
Entwicklung einer Embedded Firmware für ein komplexes elektrotechnisches Messgerät in einem Team von ca. 20 Entwicklern.
- Softwaredesign, Softwarearchitektur.
- Programmierung nach Designpatterns (z.B.: Factory, Strategy ... ).
- Design: Vererbungshierarchien, Polymorphismus, Interfaces mit puren virtuellen Methoden, Templates.
- Jede Codeänderung oder Implementierung wurde generell nur nach Code Reviews mit Kollegen freigegeben.
- Implementierung spezifischer Messmethoden.
- Multithreading Architektur (Messdaten – Thread, Datenbank – Thread ...).
- Mikrokontroller Programmierung in externem Kalibriermodul.
- Implementierung von Algorithmen zur Messdatenerfassung und Speicherung der Messgeräteeinstellungen per Serialisierung.
- Erstellung von Dll’s und statischen Bibliotheken.
- Visualisierung der Messdaten. Programmierung von User Interfaces mit MFC und Qt.
- Implementierung und Modifizierung von COM Schnittstellen.
- Spezifikation und Dokumentation.
- Bugfixing, Debugging per Remote - Debugging auf dem Messgerät mit Visual Studio Debugger.
- Codeverwaltung mit Rational ClearCase.
- Ansteuerung externer Geräte, LAN, USB.
(Windows CE, Visual Studio .NET 2008, C, C++, MFC, Qt, COM, STL, ATL,
IDL, Rational ClearCase Versionsverwaltung)
Schwerpunkte: Softwaredesign, Softwareentwicklung, Multithreading, Firmware Entwicklung für Embedded System mit der Anforderung besonders kompakten und schnellen Code zu generieren. Analyse und Test von Messdaten mit Oszilloskop, Gerätekommunikation per Ethernet und USB. Bugfixing und Debugging. Implementierung von Messmethoden.
Entwicklung von spezieller Prüfsoftware für verschiedene Prüfgeräte zur Baugruppenprüfung, Wareneingangskontrolle. Geprüft wurden vorrangig optische Systeme.
- Spezifizierung der Softwaresysteme.
- Spezifizierung der Hardwarekomponenten.
- Spezifizierung und Verifizierung der benötigten Sensorik.
- Erstellung von Prüfverfahren für optische Systeme.
- Entwicklung von bedienerfreundlichen Benutzeroberflächen.
- Entwicklung von besonders robuster Prüfsoftware für die Produktion.
- Entwicklung von speziellen Objekten zur Bildanalyse.
- Multithreading Architektur (Messdaten – Thread, Main – Thread (GUI) ...).
- Programmierung nach Designpatterns (z.B.: Factory, Strategy ...).
- Design: Vererbungshierarchien, Polymorphismus.
- Spezifikation und Dokumentation.
- Erstellung von Dll’s und statischen Bibliotheken.
- Erstellung von Tools zur Sensorsteuerung in Linux mit gcc, Debugging der Tools mit gdb. Treiberentwicklung unter Linux.
(Windows 2000, XP, embedded Linux, gcc, gdb, Visual Studio .NET 2003, 2005, C#, C, C++, Qt, LabView, MFC, STL, ATL, WTL, LabVIEW, DIADEM, RSI IDL,)
Schwerpunkte: Softwaredesign, Softwareentwicklung, Multithreading, Spezifikation der benötigten Hardware, Verifizierung und Test der Sensorik, Dokumentation, Entwicklung von besonders anwenderfreundlicher, robuster Software für die Produktion. Debugging.
Prüfvorrichtung zur automatisierten Positionierung eines LCD. LCD wurde mittels 9 CCD Kameras und 6 schrittmotorgesteuerten Achsen zu einem Objektiv justiert und mit diesem anschließend verklebt. Die erforderliche Justagebewegung wurde durch Bildanalyse von 9 Kamerabildern ermittelt.
- Spezifizierung des Softwaresystems.
- Spezifizierung der Hardwarekomponenten.
- Spezifizierung und Test der benötigten Sensorik.
- Spezifizierung und Test der Motorsteuerung.
- Aufbau und Verdrahtung der elektronischen Komponenten.
- Entwicklung der kompletten Software in C / C#.
- Ansteuerung des Framegrabbers und der CCD Kameras.
- Entwicklung von speziellen Algorithmen zur Bildanalyse.
- Entwicklung von Testprozeduren und Testtools.
(Windows 2000, Visual Studio 6.0 und 2003, C , spätere Portierung auf .NET C# )
Schwerpunkte: Softwaredesign, Softwareentwicklung, Spezifikation der benötigten Hardware, Verifizierung und Test der Sensorik, Dokumentation, Entwicklung von besonders anwenderfreundlicher, robuster Software für die Produktion. Entwicklung von Testprozeduren und Tools zum Test der Sensorkomponenten.
Reisebereitschaft
Reisebereitschaft : ja