freiberufler Software Engineering Consultant auf freelance.de

Software Engineering Consultant

zuletzt online vor wenigen Stunden
  • 85‐150€/Stunde
  • 07749 Jena
  • Europa
  • de  |  en
  • 29.01.2025

Kurzvorstellung

Ingenieur und Embedded Software-Entwickler mit über 14 Jahren Erfahrung. Ich unterstütze Kunden bei Entwicklungsprojekten und helfe, ihre Produktvisionen durch maßgeschneiderte Lösungen zu realisieren.

Auszug Referenzen (8)

"Die Arbeiten wurden zu meiner vollsten Zufriedenheit durchgeführt. Vielen Dank!"
Webdesigner
Narine Peters
Tätigkeitszeitraum

7/2023 – 8/2023

Tätigkeitsbeschreibung

## Webseite erstellt für naraart-design.com

Ziel des Projekts war es, die bestehende Webpräsenz meiner Ehefrau zu überarbeiten.

Die Webpräsenz von Nanaart-Design sollte einen frischen Anstrich erhalten. Meiner Frau war es wichtig, dass die Webseite modern und individuell sein sollte. Beim Erstellen der Webseite habe ich bewusst auf die Verwendung fertiger CMS Systeme verzichtet, um dem Anspruch des individuellen Designs gerecht zu werden.
Auf diese Weise bleiben mir alle Freiheitsgrade in der Gestaltung und der Funktionalität der Webseite erhalten. Für die Umsetzung des Projektes habe ich mich auf die Verwendung der 4 Basistechnologien der Webentwicklung beschränkt.

Verwendete Basistechnologien für die Webseite:

- HTML für die Beschreibung der Inhalte
- CSS für das Styling der Webseite
- JavaScript für die Steuerung interaktiver Elemente auf der Webseite
- PHP für die dynamische Steuerung von Inhalten

Das grundlegende Design der Webseite besteht aus drei Teilen, einem Kopfbereich, einem Fußbereich und einem Hauptbereich. Der Kopf- und Fußbereich sollen auf jeder Seite gleich sein. Zur Vermeidung doppelten Codes habe ich mich dafür entschieden eine Basisseite zu erstellen, die alle drei Berreiche repräsentiert. In Abhängigkeit der Seite auf der sich der Benutzer befindet wird der Hauptberreich dynamisch nachgeladen.
Durch diese Maßnahme sind Anpassungen im Kopf- und Fußbereich der Seite immer für alle Seiten wirksam.

Das responsive Design der Webseite wurde über CSS realisiert. Ab einer bestimmten Bildschirmbreite wird die Webseite passend für Mobile Endgeräte dargestellt. Die Seitenelemente passen sich dynamisch der Fensterbreite an.

Medieninhalte, wie Grafiken, Bilder und Videos werden getrennt vom Code der Webseite vorgehalten, was hauptsächlich in der Codeverwaltung und beim Seitenupload jede Menge Platz spart. Auf die Medieninhalte wird über eine seperate URL zugegriffen, dadurch wird erreicht, dass diese Inhalte leicht ausstauschbar sind, ohne Änderungen am Quellcode der Webseite selbst vorzunehmen.

Eingesetzte Qualifikationen

CSS (Cascading Style Sheet), HTML5, JavaScript, PHP

"Hr. P. war bei uns als Firmwareentwickler, Product Owner und Teilprojektleiter beschäftigt."
Functional Safety Ingenieur (Festanstellung)
Christian Kasper
Tätigkeitszeitraum

5/2018 – 11/2018

Tätigkeitsbeschreibung

## Dokumentenvorlagen für den firmeninternen Functional Safety Entwicklungsprozess

Nachdem ich meine Zertifizierung zum "Functional Safety Certified Engineer Development" vom TüV Nord erhalten hatte, wurde ich damit beauftragt, die nötigen Vorlagen für die Dokumentation einer sicherheitsgerichteten Entwicklung anzufertigen. Ich habe in Excel eine Dokumentenübersicht erstellt und die nötigen Dokumentenvorlagen für den Entwicklungsprozess nach DIN 61508 erstellt. Dieser Dokumentensatz dient als Basis für jede FS-Entwicklung. Zur Versionierung des Dokumentensatzes im jeweiligen Entwicklungsprojekt wurde von mir Git empfohlen.

Um den Entwicklungsingenieur im Rahmen der Safety Entwicklung zu unterstützen, wurden innerhalb der Dokumente und in der Dokumentenübersicht mittels VBA diverse Unterstützungen von mir implementiert.

Eingesetzte Qualifikationen

VBA (Visual Basic for Applications), Funktionale Sicherheit, Dokumentenmanagement

"Hr. P. war bei uns als Firmwareentwickler, Product Owner und Teilprojektleiter beschäftigt."
Projektverantwortlicher Embedded Software Ingenieur (Festanstellung)
Christian Kasper
Tätigkeitszeitraum

5/2017 – 5/2018

Tätigkeitsbeschreibung

## EtherCAT to CAN Gateway - Multiaxes

In diesem Projekt ging es darum, das bestehende EtherCAT to CAN-Gateway, das bereits als Optionskarte für Kompaktantriebe verwendet wurde, für Mehrachsbetrieb zu erweitern. Mit Hilfe dieses Gateway ist es möglich, sämtliche CANOpen Geräte des Kunden an den EtherCAT Feldbus anzuschließen und diese Echtzeitfähig bis 1ms Zyklen zu betreiben.

Über das ESI-File wurde festgelegt, wie viele Geräteachsen an der CAN Schnittstelle zu finden sind. Die maximale Anzahl unterstützter CAN Knoten wurde aus Performancegründen auf vier begrenzt. Für eine Drei-Achs-Variante konnten Zykluszeiten bis 1 ms erreicht werden. Die Vier-Achs-Variante konnte Zykluszeiten bis 2 ms erreichen.

Eingesetzte Qualifikationen

C (Programmiersprache), CAN-Bus (controller area network), Canopen

"Hr. P. war bei uns als Firmwareentwickler, Product Owner und Teilprojektleiter beschäftigt."
Embedded Software Ingenieur (Festanstellung)
Christian Kasper
Tätigkeitszeitraum

7/2016 – 4/2017

Tätigkeitsbeschreibung

## Konzept und Treiber Basis für OLED Display Treiber

Für eine neue Generation von Antriebsreglern soll ein OLED Display zur Anzeige des Gerätezustandes am Servoverstärker selbst zum Einsatz kommen. Aufgabe in diesem Projekt war es, einen Prototyp des Displays in Betrieb zu nehmen und einen ersten Treiber zur Ansteuerung der Anzeige zu entwickeln.

Ich vertiefte mein Verständnis darüber, wie OLED-Displays auf hardwarenaher Ebene angesteuert werden. Hierbei spielten die Anforderungen des Display-Controllers und die Umsetzung der elektrischen Signale eine wesentliche Rolle. Darüber hinaus habe ich gelernt, wie Bit-Maps für verschiedene Schriftarten erzeugt werden können. Dieser Prozess umfasste sowohl die Auswahl geeigneter Fonts als auch die Umsetzung dieser in eine für das Display lesbare Form.

Der TI-DSP auf dem dieser Treiber lief, hat als kleinste Speichereinheit 16-Bit, um Speicher zu sparen, habe ich ein entsprechendes VB-Script geschrieben, welches das Bitmap eines Fonts passend in das 16-Bit Format presst. Ein weiterer wichtiger Aspekt des Projekts war die Beschäftigung mit der Spezifikation der Displayansteuerung über SPI. Ich erlangte tiefe Einblicke in das Zusammenspiel zwischen Timing, Datenformat und den speziellen Anforderungen der OLED-Displayansteuerung.

Eingesetzte Qualifikationen

C (Programmiersprache), Firmware, Vbscript

"Hr. P. war bei uns als Firmwareentwickler, Product Owner und Teilprojektleiter beschäftigt."
Projektverantwortung für die Software (Festanstellung)
Christian Kasper
Tätigkeitszeitraum

2/2015 – 6/2016

Tätigkeitsbeschreibung

## EtherCAT to CAN Umsetzer für ECOCOMPACT

Um einen Kompaktantrieb an den EtherCAT Feldbus anschließen zu können, wurde eine Erweiterungsplatine entwickelt, die mittels CAN-Bus an den Kompaktantrieb intern angeschlossen war.

Meine Aufgabe war es, die Firmware für diese Optionskarte zu schreiben. Der EtherCAT-ASIC war hier für mich erstmals via SPI mit dem Microcontroller verbunden. Eine Herausforderung war es, meinen EtherCAT Treiber so umzuprogrammieren, dass er die Anforderungen auch über die SPI Schnittstelle erfüllen kann. Des Weiteren musste die Firmware gewährleisten, die Prozessdaten rechtzeitig zu verteilen. Die Prozessdaten des Feldbusses mussten via CAN Telegramm an den Antrieb übermittelt werden und die Prozessdaten des Antriebs mussten rechtzeitig empfangen worden sein, um über EtherCAT verschickt werden zu können. Es konnte eine Zykluszeit von 1 ms erreicht werden.

Neue Erfahrungen konnte ich hier auf dem Gebiet der Bootware Entwicklung sammeln, denn es zählte auch zu meinen Aufgaben den Bootloader für diese Optionskarte zu entwickeln, um Software-Updates zu gewährleisten, ohne das Gesamtgerät demontieren zu müssen.

Eingesetzte Qualifikationen

CAN-Bus (controller area network), Canopen, C (Programmiersprache), Firmware

"Hr. P. war bei uns als Firmwareentwickler, Product Owner und Teilprojektleiter beschäftigt."
Projektleiter und Embedded Software Ingenieur (Festanstellung)
Christian Kasper
Tätigkeitszeitraum

9/2012 – 2/2015

Tätigkeitsbeschreibung

## Etablierung des Profinet Feldbustreibers inklusive des Antriebsprofils ProfiDrive.

Während dieser Zeit wurden die Mehrachsgeräte des Kunden um den Feldbustreiber ProfiNet erweitert. Parallel dazu wurde das Antriebsprofil ProfiDrive implementiert. Wir waren ein Team bestehend aus zwei erfahrenen Softwareentwicklern und konnten durch enge Zusammenarbeit schnell unsere Ziele erreichen. Das Projekt konnte mit erfolgreicher Zertifizierung in einem akkreditierten Testlabor in Erlangen beendet werden.

Eingesetzte Qualifikationen

C (Programmiersprache), STEP 7, Totally integrated automation portal (TIA portal)

"Hr. P. war bei uns als Firmwareentwickler, Product Owner und Teilprojektleiter beschäftigt."
Embedded Software Ingenieur (Festanstellung)
Christian Kasper
Tätigkeitszeitraum

10/2011 – 8/2012

Tätigkeitsbeschreibung

## EtherCAT Treiber für Mehrachsgeräte erweitern

Ziel dieses Projektes war es, den bestehenden EtherCAT Treiber auf die Mehrachsplattform des Kunden zu bringen. Die Herausforderung bestand dabei darin, den Treiber für mehrere Achsen auszulegen.
Dazu musste neben dem bestehende CoE Mailbox Protokoll ein herstellerspezifisches VoE Protokoll entwickelt werden. Diese Anpassung wurde von mir in der Firmware und in der Kommunikations.dll auf PC Seite umgesetzt.
Zusätzlich zu diesem Protokoll wurde ein Achsenschalter Objekt eingeführt, mit dem es möglich ist, die herstellerspezifischen Objekte der Achse in jedem EtherCAT Mastersystem zu erreichen.

Eingesetzte Qualifikationen

C++, Digitaler Signalprozessor (DSP), Embedded Software, Microsoft Visual Studio

"Hr. P. war bei uns als Firmwareentwickler, Product Owner und Teilprojektleiter beschäftigt."
Embedded Software Ingenieur (Festanstellung)
Christian Kasper
Tätigkeitszeitraum

9/2010 – 9/2011

Tätigkeitsbeschreibung

## Entwicklung eines EtherCAT Feldbustreibers für die ECOVARIO Gerätefamilie

Meine Aufgabe war es, den bestehenden Gerätetreiber in der ECOVARIO Familie so zu erweitern, dass er den EtherCAT Conformance Test besteht. Des Weiteren habe ich die Kommunikationszyklen für den synchronen Prozessdatenaustausch von 1ms auf, 250us gesenkt. Während dieser Arbeiten habe ich erste Erfahrungen mit den DSPs von Texas Instruments sammeln können.

Eingesetzte Qualifikationen

C (Programmiersprache), Digitaler Signalprozessor (DSP)

Qualifikationen

  • Bootware Entwicklung
  • Feldbusse
  • Firmware Entwicklung
  • C/C++
  • Embedded Linux1 J.
  • embedded Rust
  • Embedded Software
  • Funktionale Sicherheit2 J.
  • Linux Entwicklung
  • Scriptsprachen

Projekt‐ & Berufserfahrung

embedded Software Ingenieur
Kundenname anonymisiert, Jena
8/2023 – 12/2024 (1 Jahr, 5 Monate)
Konsumgüterindustrie
Tätigkeitszeitraum

8/2023 – 12/2024

Tätigkeitsbeschreibung

## Firmwareentwicklung für Industrie-Saugroboter NR-1500

In diesem Projekt habe ich bei der Firmwareentwicklung eines Saugroboters für industrielle Anwendungen unterstützt. Ich bin relativ spät in das Projekt gekommen, um als Troubleshooter schwere Fehler zu finden und dabei zu unterstützen, die Verfügbarkeit des Gesamtsystems zu erhöhen. Die Entwicklung des Roboters war schon sehr weit fortgeschritten, aber die Software erfüllte bisher nicht das gewünschte Geräteverhalten, das für den Produktstart wichtig war.

Das Unternehmen, für das ich arbeitete, verfolgt in der Produktentwicklung den agilen Ansatz. Themen wurden in Dailys live abgestimmt und in Plannings erfolgte die Planung des kommenden Sprints, was einer Periode von 2 Wochen entsprach. Im späteren Projektverlauf ging es darum, Fehler und unerwünschtes Verhalten, das während der Produkttests festgestellt wurde, zu beheben. In dieser Phase wurden die Plannings ausgesetzt und es wurden akute Fehler, die während der Tests auftraten, in den Dailys besprochen und deren Behebung geplant. Einmal im Quartal fand ein Stage-Planning statt bei dem ich ein besseres Gefühl für die Produktstartegie und die unternehmerischen Ziele erlangen konnte.

Ich konnte den Update-Prozess der sMCU Controller während eines Firmware-Updates stabilisieren und so robust gestalten, dass es keine Ausfälle des Gerätes durch korrupte Firmware mehr gab.
Die Verfügbarkeit des Gesamtsystems konnte ich durch eine Verbesserung im Geräteverhalten bei Erkennung einer Sturzkante erhöhen. Bisher war immer eine direkte Nutzerinteraktion notwendig, um den Reinigungsvorgang fortzusetzen. Ich habe das Geräteverhalten dahingehend verändert, dass der Roboter nach Erkennen einer Kante zunächst zeitweise misst, ob die Bedingungen für einen möglichen Sturz noch gegeben sind. Wenn das nicht mehr der Fall war, so gab es seitens der safety Steuerung im Gerät wieder eine Freigabe und die Reinigung konnte selbstständig fortgesetzt werden.

Das Arbeiten und Nachverfolgen an den konkreten Themen erfolgte über ein Ticketsystem, wodurch Aufgaben klar abgegrenzt und dokumentiert werden konnten.

Zu meinen Tätigkeiten gehörte es:

- Zugewiesene Tickets abzuarbeiten
- Beim Feststellen neuer Probleme oder Auffälligkeiten, Tickets zu generieren und zu beschreiben.
- Finale Ergebnisse aus meinen Arbeiten an geeigneter Stelle zu dokumentieren.
- Fehlverhalten in der I2C-Kommunikation zwischen Echtzeit Controller und Safety-Controller untersuchen und beheben.
- Registerauszug der Registerwerte der Safety-Controller während eines Safety Ereignisses via I2C auslesen und die Informationen im Journal des Linux-Systems im Markdown Tabellenformat bereitstellen.
- Optimieren der Startreihenfolge von Systemd Services, um einen fehlerfreien und zuverlässigen Systemstart bei unterschiedlichen Startvoraussetzungen zu erreichen.
- Anpassung diverser Service-Beschreibungsdateien.
- Erstellen von Bash Scripts, um das Geräteverhalten für diverse Labortests und Messungen zu steuern.
- Optimierung des bestehenden Skriptes, das den Firmware-Updateprozess der Safety-Controller steuert.
- Analyse großer Journal-Logs zur Identifizierung spezifischer Fehlerfälle, die seitens der QA in Tickets beschrieben und bereitgestellt wurden.
- Abstimmung mit chinesischen Fertiger zur Behebung von Problemen während des Updateprozesses neu hergestellter Geräte.
- Erstellen von Testsoftware für die Safety Controller, zur Erhöhung der Geräteverfügbarkeit.
- Besprechung und Implementierung von Verbesserungen bestehender Sicherheitsfunktionen.
- Erstellung von Unit-Tests auf Basis des Google-Test Frameworks.
- Erstellung von Gerätetests in Python und Integration der Testfälle ins Robot-Framework.
- Implementierung eines Interfaces zur Kalibrierung der Drop-Sensoren, die sich unterhalb des Roboters befinden.

Eingesetzte Qualifikationen

Bash Shell, Docker, Embedded Linux, Funktionale Sicherheit, Git, Programmierer C, C++, Python

Webdesigner
freiberufliche Grafikdesignerin N. P., Jena
7/2023 – 8/2023 (2 Monate)
Dienstleistungsbranche
Tätigkeitszeitraum

7/2023 – 8/2023

Tätigkeitsbeschreibung

## Webseite erstellt für naraart-design.com

Ziel des Projekts war es, die bestehende Webpräsenz meiner Ehefrau zu überarbeiten.

Die Webpräsenz von Nanaart-Design sollte einen frischen Anstrich erhalten. Meiner Frau war es wichtig, dass die Webseite modern und individuell sein sollte. Beim Erstellen der Webseite habe ich bewusst auf die Verwendung fertiger CMS Systeme verzichtet, um dem Anspruch des individuellen Designs gerecht zu werden.
Auf diese Weise bleiben mir alle Freiheitsgrade in der Gestaltung und der Funktionalität der Webseite erhalten. Für die Umsetzung des Projektes habe ich mich auf die Verwendung der 4 Basistechnologien der Webentwicklung beschränkt.

Verwendete Basistechnologien für die Webseite:

- HTML für die Beschreibung der Inhalte
- CSS für das Styling der Webseite
- JavaScript für die Steuerung interaktiver Elemente auf der Webseite
- PHP für die dynamische Steuerung von Inhalten

Das grundlegende Design der Webseite besteht aus drei Teilen, einem Kopfbereich, einem Fußbereich und einem Hauptbereich. Der Kopf- und Fußbereich sollen auf jeder Seite gleich sein. Zur Vermeidung doppelten Codes habe ich mich dafür entschieden eine Basisseite zu erstellen, die alle drei Berreiche repräsentiert. In Abhängigkeit der Seite auf der sich der Benutzer befindet wird der Hauptberreich dynamisch nachgeladen.
Durch diese Maßnahme sind Anpassungen im Kopf- und Fußbereich der Seite immer für alle Seiten wirksam.

Das responsive Design der Webseite wurde über CSS realisiert. Ab einer bestimmten Bildschirmbreite wird die Webseite passend für Mobile Endgeräte dargestellt. Die Seitenelemente passen sich dynamisch der Fensterbreite an.

Medieninhalte, wie Grafiken, Bilder und Videos werden getrennt vom Code der Webseite vorgehalten, was hauptsächlich in der Codeverwaltung und beim Seitenupload jede Menge Platz spart. Auf die Medieninhalte wird über eine seperate URL zugegriffen, dadurch wird erreicht, dass diese Inhalte leicht ausstauschbar sind, ohne Änderungen am Quellcode der Webseite selbst vorzunehmen.

Eingesetzte Qualifikationen

CSS (Cascading Style Sheet), HTML5, JavaScript, PHP

Product Owner, Scrum Developer (Festanstellung)
Kundenname anonymisiert, Jena
3/2021 – 6/2023 (2 Jahre, 4 Monate)
Maschinen-, Geräte- und Komponentenbau
Tätigkeitszeitraum

3/2021 – 6/2023

Tätigkeitsbeschreibung

## Firmware für neue Gerätegeneration

Ziel dieses Projektes ist es, die Firmware für eine neue Gerätegeneration mit einem Multicore Prozessor als Zentrale Einheit zu entwickeln.

Des Weiteren musste ein Konzept entwickelt werden, wie Informationen zwischen den Cores ausgetauscht werden können und welche Informationen aus Laufzeitgründen in einem Shared-RAM zwischen den beiden C28x Cores zur Verfügung gestellt werden müssen. Zu meinen Aufgaben zählte unter anderem die Betreuung des gesamten Firmware Projektes als Scrum Product Owner. In dieser Rolle habe ich das Backlog mit Aufgaben gepflegt und einzelnen Features vor priorisiert, die dann während der Sprintplanung Berücksichtigung fanden. Neben der Rolle des Product Owner hatte ich auch noch die Rolle des Developer inne und habe selbst einige Themen bearbeitet.

Unter anderem habe ich den Basis-Treiber für die Interprozessorkommunikation entwickelt. Mein Treiber hat Methoden zur Verfügung gestellt, der es den andern Entwicklern ermöglicht eigene IPC-Services (inter prozessor communication - services) zu implementieren. Mein früher entwickelter SDO-Handler kam zum Einsatz, um SDO Anfragen an die korrekte CPU weiterzuleiten. Meine Philosophie ist es, dass die Daten dort vorgehalten werden, wo sie benötigt werden. Doppelte Datenvorhaltung sollte weitestgehend vermieden werden.

In meiner Rolle als Developer habe ich noch die folgenden Implementierungen realisiert:

- Blackchannel Implementierung zur integrierten Safety Optionskarte, um einen Austausch zyklischer Safety Daten zwischen dem sicheren Feldbus und der Safety Optionskarte zu realsieren
- SPI Treiber für mehrere IO-Expander Chips.
- Ablaufregime für Lesen und Schreiben der Zustände der erweiterten IO-Expander Chips in einem zyklischen Intervall
- IPC-Services zum Laden und Speichern von remanenten Parametern in einem EEPROM, der von einer CPU verwaltet wird.
- EtherCAT Treiber inklusive Datenaustausch zyklischer Prozessdaten zwischen den einzelnen Cores und dem Feldbus
- FSoE Umsetzung in der Firmware in verständliche Parameteranfragen an die safety Optionskarte USB Treiber

Eingesetzte Qualifikationen

Digitaler Signalprozessor (DSP), Programmierer C, C++, Git

Projektverantwortlicher und Embedded Software Ingenieur (Festanstellung)
Kundenname anonymisiert, Jena
2/2020 – 3/2021 (1 Jahr, 2 Monate)
Maschinen-, Geräte- und Komponentenbau
Tätigkeitszeitraum

2/2020 – 3/2021

Tätigkeitsbeschreibung

## Bootware für neue Servoverstärker Generation mit Multicore Controller

Ziel dieses Projektes war es, eine Bootware für einen neuen Multicore Controller aus der TMS Familie von Texas Instruments zu entwickeln.

Dieser Prozessor hat 2 C28x DSP Cores und einen ARM Cortex M4 Core. Jeder Core hat einen internen Programmflash. Jeder Core Flash kann immer nur von dem Core programmiert werden, zu dem er gehört. Im Wesentlichen besteht das Bootware-Projekt also aus drei Firmware Projekten, die den Bootloader bilden.

Die Hauptfirmware läuft auf dem Master-Core (CPU1), dieser Core startet als Erstes und muss die Bootware für die anderen Cores über den internen Message-RAM verteilen und die Cores anschließend starten lassen. Weil das gesamte Bootware-Projekt zu viel Programmflash des CPU1 Cores in Anspruch genommen hätte, wurden Teile der Bootware in einem externen Daten-Flash gespeichert. Der kritische Code, der beim Start-up ausgeführt wird, belegt nur 2 Flashsektoren und lädt die fehlenden Programmteile aus dem externen Flash in den CPU RAM nach.

Anschließend wird der Start-up Code der jeweiligen Co-CPUs in die Message RAMs geladen und die Cores werden gestartet. Sobald die Cores gestartet sind, fordern diese Ihre fehlenden Programmteile mittels Interprozessorkommunikation bei CPU1 an. CPU1 lädt diese Programmteile aus dem externen Daten-Flash und stellt sie dem jeweiligen Core zur Verfügung.

Diese Abfolge des Controller-Starts verlangt ein ausgeklügeltes Mapping verschiedener Firmwareteile in den jeweiligen Linker Files, um zu verhindern, dass Programmteile ausgeführt werden, die noch nicht aus dem externen Daten-Flash in den RAM geladen wurden.

Eingesetzte Qualifikationen

Programmierer C, C++, Git

Projektverantwortlicher Software und Embedded Software Ingenieur (Festanstellung)
Kundenname anonymisiert, Jena
1/2019 – 1/2020 (1 Jahr, 1 Monat)
Maschinen-, Geräte- und Komponentenbau
Tätigkeitszeitraum

1/2019 – 1/2020

Tätigkeitsbeschreibung

## Treiber für interne Kommunikation mit einer im Produkt integrierten Safety Optionskarte

Eine neue Safety Optionskarte sollte in den Servoverstärker integriert werden. Die Kommunikationsschnittstelle zwischen der FS-Karte und der Firmware bestand aus einer UART und einer Protokollspezifikation, die zur Verfügung gestellt wurde. Meine Aufgabe war es, den Kommunikationstreiber zur FS-Karte auf Basis der Interface-Spezifikation zu implementieren.

Die Herausforderung bestand darin, Interface Objekte auf CANOpen Basis zu implementieren. Hinter diesen Objekten wurden entsprechende Callback Methoden implementiert, welche die Objekt-IDs in für die FS-Karte verständliche Parameter Anfragen umgesetzt haben.

Des Weiteren musste der bestehende SDO-Handler so erweitert werden, dass Anfragen nicht direkt ein Ergebnis liefern konnten, weil auf die Antwort der FS-Karte gewartet werden musste, um eine entsprechende SDO-Response an den Client zu senden. Hierzu musste die bestehende und bewährte Umsetzung dieses SDO-Händlers völlig neu entwickelt werden, weil eine Erweiterung in der alten Implementierung nicht möglich war.

Eingesetzte Qualifikationen

C (Programmiersprache)

Functional Safety Ingenieur (Festanstellung)
Kundenname anonymisiert, Jena
5/2018 – 11/2018 (7 Monate)
Maschinen-, Geräte- und Komponentenbau
Tätigkeitszeitraum

5/2018 – 11/2018

Tätigkeitsbeschreibung

## Dokumentenvorlagen für den firmeninternen Functional Safety Entwicklungsprozess

Nachdem ich meine Zertifizierung zum "Functional Safety Certified Engineer Development" vom TüV Nord erhalten hatte, wurde ich damit beauftragt, die nötigen Vorlagen für die Dokumentation einer sicherheitsgerichteten Entwicklung anzufertigen. Ich habe in Excel eine Dokumentenübersicht erstellt und die nötigen Dokumentenvorlagen für den Entwicklungsprozess nach DIN 61508 erstellt. Dieser Dokumentensatz dient als Basis für jede FS-Entwicklung. Zur Versionierung des Dokumentensatzes im jeweiligen Entwicklungsprojekt wurde von mir Git empfohlen.

Um den Entwicklungsingenieur im Rahmen der Safety Entwicklung zu unterstützen, wurden innerhalb der Dokumente und in der Dokumentenübersicht mittels VBA diverse Unterstützungen von mir implementiert.

Eingesetzte Qualifikationen

VBA (Visual Basic for Applications), Funktionale Sicherheit, Dokumentenmanagement

Projektverantwortlicher Embedded Software Ingenieur (Festanstellung)
Kundenname anonymisiert, Jena
5/2017 – 5/2018 (1 Jahr, 1 Monat)
Maschinen-, Geräte- und Komponentenbau
Tätigkeitszeitraum

5/2017 – 5/2018

Tätigkeitsbeschreibung

## EtherCAT to CAN Gateway - Multiaxes

In diesem Projekt ging es darum, das bestehende EtherCAT to CAN-Gateway, das bereits als Optionskarte für Kompaktantriebe verwendet wurde, für Mehrachsbetrieb zu erweitern. Mit Hilfe dieses Gateway ist es möglich, sämtliche CANOpen Geräte des Kunden an den EtherCAT Feldbus anzuschließen und diese Echtzeitfähig bis 1ms Zyklen zu betreiben.

Über das ESI-File wurde festgelegt, wie viele Geräteachsen an der CAN Schnittstelle zu finden sind. Die maximale Anzahl unterstützter CAN Knoten wurde aus Performancegründen auf vier begrenzt. Für eine Drei-Achs-Variante konnten Zykluszeiten bis 1 ms erreicht werden. Die Vier-Achs-Variante konnte Zykluszeiten bis 2 ms erreichen.

Eingesetzte Qualifikationen

C (Programmiersprache), CAN-Bus (controller area network), Canopen

Embedded Software Ingenieur (Festanstellung)
Kundenname anonymisiert, Jena
7/2016 – 4/2017 (10 Monate)
Maschinen-, Geräte- und Komponentenbau
Tätigkeitszeitraum

7/2016 – 4/2017

Tätigkeitsbeschreibung

## Konzept und Treiber Basis für OLED Display Treiber

Für eine neue Generation von Antriebsreglern soll ein OLED Display zur Anzeige des Gerätezustandes am Servoverstärker selbst zum Einsatz kommen. Aufgabe in diesem Projekt war es, einen Prototyp des Displays in Betrieb zu nehmen und einen ersten Treiber zur Ansteuerung der Anzeige zu entwickeln.

Ich vertiefte mein Verständnis darüber, wie OLED-Displays auf hardwarenaher Ebene angesteuert werden. Hierbei spielten die Anforderungen des Display-Controllers und die Umsetzung der elektrischen Signale eine wesentliche Rolle. Darüber hinaus habe ich gelernt, wie Bit-Maps für verschiedene Schriftarten erzeugt werden können. Dieser Prozess umfasste sowohl die Auswahl geeigneter Fonts als auch die Umsetzung dieser in eine für das Display lesbare Form.

Der TI-DSP auf dem dieser Treiber lief, hat als kleinste Speichereinheit 16-Bit, um Speicher zu sparen, habe ich ein entsprechendes VB-Script geschrieben, welches das Bitmap eines Fonts passend in das 16-Bit Format presst. Ein weiterer wichtiger Aspekt des Projekts war die Beschäftigung mit der Spezifikation der Displayansteuerung über SPI. Ich erlangte tiefe Einblicke in das Zusammenspiel zwischen Timing, Datenformat und den speziellen Anforderungen der OLED-Displayansteuerung.

Eingesetzte Qualifikationen

C (Programmiersprache), Firmware, Vbscript

Projektverantwortung für die Software (Festanstellung)
Kundenname anonymisiert, Jena
2/2015 – 6/2016 (1 Jahr, 5 Monate)
Maschinen-, Geräte- und Komponentenbau
Tätigkeitszeitraum

2/2015 – 6/2016

Tätigkeitsbeschreibung

## EtherCAT to CAN Umsetzer für ECOCOMPACT

Um einen Kompaktantrieb an den EtherCAT Feldbus anschließen zu können, wurde eine Erweiterungsplatine entwickelt, die mittels CAN-Bus an den Kompaktantrieb intern angeschlossen war.

Meine Aufgabe war es, die Firmware für diese Optionskarte zu schreiben. Der EtherCAT-ASIC war hier für mich erstmals via SPI mit dem Microcontroller verbunden. Eine Herausforderung war es, meinen EtherCAT Treiber so umzuprogrammieren, dass er die Anforderungen auch über die SPI Schnittstelle erfüllen kann. Des Weiteren musste die Firmware gewährleisten, die Prozessdaten rechtzeitig zu verteilen. Die Prozessdaten des Feldbusses mussten via CAN Telegramm an den Antrieb übermittelt werden und die Prozessdaten des Antriebs mussten rechtzeitig empfangen worden sein, um über EtherCAT verschickt werden zu können. Es konnte eine Zykluszeit von 1 ms erreicht werden.

Neue Erfahrungen konnte ich hier auf dem Gebiet der Bootware Entwicklung sammeln, denn es zählte auch zu meinen Aufgaben den Bootloader für diese Optionskarte zu entwickeln, um Software-Updates zu gewährleisten, ohne das Gesamtgerät demontieren zu müssen.

Eingesetzte Qualifikationen

CAN-Bus (controller area network), Canopen, C (Programmiersprache), Firmware

Projektleiter und Embedded Software Ingenieur (Festanstellung)
Kundenname anonymisiert, Jena
9/2012 – 2/2015 (2 Jahre, 6 Monate)
Maschinen-, Geräte- und Komponentenbau
Tätigkeitszeitraum

9/2012 – 2/2015

Tätigkeitsbeschreibung

## Etablierung des Profinet Feldbustreibers inklusive des Antriebsprofils ProfiDrive.

Während dieser Zeit wurden die Mehrachsgeräte des Kunden um den Feldbustreiber ProfiNet erweitert. Parallel dazu wurde das Antriebsprofil ProfiDrive implementiert. Wir waren ein Team bestehend aus zwei erfahrenen Softwareentwicklern und konnten durch enge Zusammenarbeit schnell unsere Ziele erreichen. Das Projekt konnte mit erfolgreicher Zertifizierung in einem akkreditierten Testlabor in Erlangen beendet werden.

Eingesetzte Qualifikationen

C (Programmiersprache), STEP 7, Totally integrated automation portal (TIA portal)

Embedded Software Ingenieur (Festanstellung)
Kundenname anonymisiert, Jena
10/2011 – 8/2012 (11 Monate)
Maschinen-, Geräte- und Komponentenbau
Tätigkeitszeitraum

10/2011 – 8/2012

Tätigkeitsbeschreibung

## EtherCAT Treiber für Mehrachsgeräte erweitern

Ziel dieses Projektes war es, den bestehenden EtherCAT Treiber auf die Mehrachsplattform des Kunden zu bringen. Die Herausforderung bestand dabei darin, den Treiber für mehrere Achsen auszulegen.
Dazu musste neben dem bestehende CoE Mailbox Protokoll ein herstellerspezifisches VoE Protokoll entwickelt werden. Diese Anpassung wurde von mir in der Firmware und in der Kommunikations.dll auf PC Seite umgesetzt.
Zusätzlich zu diesem Protokoll wurde ein Achsenschalter Objekt eingeführt, mit dem es möglich ist, die herstellerspezifischen Objekte der Achse in jedem EtherCAT Mastersystem zu erreichen.

Eingesetzte Qualifikationen

C++, Digitaler Signalprozessor (DSP), Embedded Software, Microsoft Visual Studio

Embedded Software Ingenieur (Festanstellung)
Kundenname anonymisiert, Jena
9/2010 – 9/2011 (1 Jahr, 1 Monat)
Maschinen-, Geräte- und Komponentenbau
Tätigkeitszeitraum

9/2010 – 9/2011

Tätigkeitsbeschreibung

## Entwicklung eines EtherCAT Feldbustreibers für die ECOVARIO Gerätefamilie

Meine Aufgabe war es, den bestehenden Gerätetreiber in der ECOVARIO Familie so zu erweitern, dass er den EtherCAT Conformance Test besteht. Des Weiteren habe ich die Kommunikationszyklen für den synchronen Prozessdatenaustausch von 1ms auf, 250us gesenkt. Während dieser Arbeiten habe ich erste Erfahrungen mit den DSPs von Texas Instruments sammeln können.

Eingesetzte Qualifikationen

C (Programmiersprache), Digitaler Signalprozessor (DSP)

Zertifikate

Certificate FSCED TüV Nord – Functional Safety Certified Engineer Development
TüV Nord
2021
„Basistraining Projektmanagement“
Haarbeck Projektmanagement
2016
Certified Profinet Engineer
Siemens AG
2012

Ausbildung

Studium der „Technische Informatik und Kommunikationstechnik“
Master of Engineering (M.Eng)
Fachhochschule Lausitz
2010
Senftenberg
Studium der „Technische Informatik und Kommunikationstechnik“
Bachelor of Engineering
Fachhochschule Lausitz
2008
Senftenberg

Über mich

Willkommen auf meinem Profil, mein Name ist C. R. P.. Ich bin Ingenieur und Embedded Software Entwickler mit mehr als 14 Jahren Berufserfahrung in diesem Feld. Ich habe Technische Informatik und Kommunikationstechnik an der Hochschule Lausitz studiert und das Studium als Master of Engineering (M. Eng.) abgeschlossen. Dieser Studiengang war zur damaligen Zeit etwas ganz Besonderes. Das Ziel der Hochschule war es, die Lücke zwischen den Disziplinen der reinen Informatik und der Elektrotechnik zu schließen. Als Ergebnis sollten die Studierenden ein tiefgreifendes Verständnis der hardwarenahen Softwareentwicklung und Elektrotechnik erlangen.

Mit umfangreicher Erfahrung im Embedded Software-Engineering sowie fundierten Kenntnissen in verschiedenen Programmiersprachen und Technologien bin ich in der Lage, maßgeschneiderte Lösungen zu entwickeln.

Mein Ziel ist es, qualitativ hochwertigen Code zu liefern. Ich stehe Ihnen gerne zur Verfügung, um weitere Details zu besprechen und Ihre Projekte zum Erfolg zu führen. Zögern Sie nicht, mich zu kontaktieren, um weitere Informationen über meine bisherigen Arbeiten und Referenzen zu erhalten. Ich freue mich darauf, mit Ihnen zusammenzuarbeiten und Ihnen bei Ihren technischen Herausforderungen zu helfen.

Weitere Kenntnisse

- Embedded Software-Engineering
Ich verfüge über umfassende Kenntnisse in der Entwicklung von Embedded-Software für verschiedene Plattformen. Ich beherrsche die Programmiersprachen C und C++ und bin in der Lage, effiziente und zuverlässige Code-Lösungen zu entwickeln.
Seit Kurzem bin ich auch praktisch in die Systemsprache Rust eingestiegen und kann Sie dabei unterstützen, sollten Sie Hilfe bei der Umsetzung von Rust auf Applikationssoftware-Ebene oder auch im hardwarenahen Softwarebereich benötigen.

- Firmware-Entwicklung:
Ich habe umfangreiche Erfahrung in der Entwicklung von Firmware für verschiedene Geräte und Plattformen. Ich kann hardwarenahe Code-Lösungen implementieren, um die optimale Leistung und Zuverlässigkeit Ihrer Systeme zu gewährleisten.

- Bootware-Entwicklung:
Ich verfüge über umfangreiche Erfahrung in der Entwicklung von Bootware für verschiedene Plattformen. Ich kann Bootloader und Startsequenzen implementieren, um eine reibungslose und sichere Inbetriebnahme Ihrer Systeme zu gewährleisten. Mit meinem Wissen über Bootloader-Funktionalitäten und -Protokolle kann ich Ihre Geräte effektiv verwalten und Software-Updates sicher und zuverlässig durchführen.

- Sicherer Code mittels Misra-C oder auch Rust:
MISRA-C bietet Richtlinien für sichere C-Entwicklung, während Rust von Natur aus Sicherheit bietet. Die Integration von Rust in C-Code kann schrittweise oder über C-Bindings erfolgen. Die Wahl hängt von Projektanforderungen ab. Sicherheit steht im Fokus beider Ansätze und ich kann Ihnen bei der Umsetzung behilflich sein.

- Funktionale Sicherheit:
Ich bin mit den Phasen des Sicherheitslebenszyklus aus der IEC 61508 bestens vertraut. In die spezifischen Sachverhalte der Einzelnormen, wie ISO 26262 (Fahrzeuge), ISO 13849 (Maschinensteuerungen) und IEC 62304 (Medizintechnik) kann ich mich schnell einarbeiten.
Von der Analyse der Sicherheitsanforderungen über die Erstellung von Sicherheitskonzepten bis hin zur Validierung unterstütze ich Ihre Projekte und trage zur Einhaltung der entsprechenden Normen bei. Mit meinem Wissen über sichere Programmierung und Teststrategien stelle ich die zuverlässige Funktion Ihres Systems sicher.

- Fehlersuche und Fehlerbehebung:
Aufgrund meiner langjährigen Erfahrung als hardwarenaher Softwareentwickler habe ich mir Fähigkeiten zur schnellen Fehleranalyse und Fehleridentifikation angeeignet. Sobald das Problem korrekt analysiert wurde, biete ich auch entsprechende Fehlerlösungen an.

- Codeverwaltung mittels Git:
Ich bin vertraut mit der Verwendung von Git als Codeverwaltungssystem.

- Feldbustechnologien:
Ich verfüge über tiefgreifende Kenntnisse der Feldbustechnologien CanOpen, EtherCAT, Profibus und Profinet. Ich kann diese Technologien nutzen, um Kommunikationsprotokolle zu implementieren und die Interaktion zwischen verschiedenen Geräten und Systemen zu ermöglichen.

- CMake:
Ich bin mit dem Build-System CMake vertraut und kann komplexe Projekte effizient verwalten und kompilieren. Dadurch kann ich sicherstellen, dass Ihr Code reibungslos funktioniert und einfach auf andere Plattformen übertragen werden kann.

- Datenverkehrsanalyse mittels Wireshark:
Durch die Analyse des Datenverkehrs mit Wireshark kann ich Netzwerkprobleme identifizieren und Fehler in der Kommunikation beheben. Dies ermöglicht eine effiziente und zuverlässige Datenübertragung in Ihren Projekten. Darüber hinaus bin ich in der Lage auf Basis der Skriptsprache lua Ihr individuelles Protokoll im Wireshark zu decodieren und die einzelnen Elemente im Wireshark anzuzeigen und auf bestimmte Bereiche in Ihrem Protokoll zu filtern.

Persönliche Daten

Sprache
  • Deutsch (Muttersprache)
  • Englisch (Fließend)
Reisebereitschaft
Europa
Arbeitserlaubnis
  • Europäische Union
  • Schweiz
Home-Office
bevorzugt
Profilaufrufe
33
Alter
42
Berufserfahrung
14 Jahre und 4 Monate (seit 09/2010)
Projektleitung
8 Jahre

Kontaktdaten

Nur registrierte PREMIUM-Mitglieder von freelance.de können Kontaktdaten einsehen.

Jetzt Mitglied werden