freiberufler Embedded Software Engineer | C/C++ | ARM-Cortex | STM32 | FreeRTOS | Linux auf freelance.de

Embedded Software Engineer | C/C++ | ARM-Cortex | STM32 | FreeRTOS | Linux

zuletzt online vor wenigen Tagen
  • auf Anfrage
  • Nordrhein-Westfalen
  • National
  • de  |  en  |  pl
  • 01.11.2023

Kurzvorstellung

STM32, ARM, ESP32, Atmel-AVR, x86
Firmware, hardwarenahe Software, Treiber
Schaltplan und Layoutentwicklung (Eagle, KiCAD)
FreeRTOS, Embedded Linux, Ubuntu Linux, Debian
C, C++(11/14/17), Python, Bash,
Docker, CI/CD ,Jenkins, GitLab, Unit-Tests

Qualifikationen

  • Altium Designer
  • ARM-Architektur
  • C++
  • CAN-Bus (controller area network)
  • CANopen
  • Continuous Delivery (CDE)
  • Echtzeitbetriebssystem (RTOS)
  • Embedded Entwicklung / hardwarenahe Entwicklung
  • Embedded Linux
  • Embedded Software Engineering
  • Embedded Systems
  • Ethernet
  • Firmware
  • Hardware Entwicklung
  • Ingenieurwissenschaft
  • Jenkins
  • KiCAD
  • Kontinuierliche Integration (CI)
  • Python
  • Software Architektur / Modellierung
  • Speicherprogrammierbare Steuerung (SPS)
  • STM32
  • Testautomatisierung
  • UML

Projekt‐ & Berufserfahrung

Entwicklung eines embedded Systems zur Prozesssteuerung von Wechselrichtern und Batteriespeichern
Volterion GmbH & Co. KG, Dortmund
8/2021 – 4/2022 (9 Monate)
High-Tech- und Elektroindustrie
Tätigkeitszeitraum

8/2021 – 4/2022

Tätigkeitsbeschreibung

Das Projekt umfasste die Entwicklung einer Prozesssteuerung auf einem eingebetteten System zur Integration von Victron Cerbo GX Wechselrichtern und Volterion powerRFB Redux-Flow Batteriespeichern. Aufgabe war es ein Battery-Management-System (BMS) zu entwickeln, welches mittels Algorithmus die Lade- und Endladephasen der Battiespeicherer steuert und die Versorgungsquelle für den Energiebedarf dynamisch zwischen Batteriespeicher und Netzversorgung umschaltet. Der Energiefluss konnte so in Abhängigkeit von Strombedarf und -produktion beeinflusst werden. Die Software überwacht zudem den Ladezustand des Batteriespeichers, setze die Kommunikation aller Modbus Teilnehmer um und erfasst alle relevanten Messdaten. Die Messdaten wurden zur Analyse und für das Tracing der Batteriespeicher verwendet, sowie der elektrischen Leistungen, an verschiedenen Knotenpunkten. Diese Messdaten dienten als Grundlage für eine prozessabhängige Konfiguration des Wechselrichters. Die Implementierung der Software wurde mittels C++17 auf einem embedded Linux System realisiert. Die Kommunikation zwischen dem Managementsystem, den Batteriespeichern und dem Wechselrichter wurde per Ethernet (Modbus/TCP) umgesetzt. Für alle Kommunikationspartner des Systems wurden Schnittstellen designend und die Kommunikation soweit gekapselt, dass diese für das Managementsystem transparent und austauschbar sind.

- Embedded C / Embedded C++
- Python / Node-RED
- Linux ARM / x86 / Raspberry Pi
- CMake / Make
- Ethernet / Modbus TCP
- Multithreading
- Konzeption und Entwicklung einer Parametrierung für die Batteriesteuerung
- Konzeption und Entwicklung eines Loggingsystems
- Konzeption und Entwicklung von Zustandsautomaten
- Dokumentation per Doxygen

Eingesetzte Qualifikationen

C++, Continuous Delivery (CDE), Elektronik, Elektrotechnik, Embedded Linux, Embedded Systems, Ethernet, Git, Linux Entwicklung, make (Software), TCP/IP

Entwicklung einer Laserschweißanlage von elektrochemischen Zellen für Redox-Flow-Batterien
Volterion GmbH & Co. KG, Dortmund
1/2021 – 6/2021 (6 Monate)
High-Tech- und Elektroindustrie
Tätigkeitszeitraum

1/2021 – 6/2021

Tätigkeitsbeschreibung

Für den Fertigungsprozess von Redox-Flow-Batterien wurde eine Prozesssteuerung einer Laserschweißanlage, zum Verschweißen elektrochemischer Zellen entwickelt. Von der Konzeption bis zur fertigen Anlage und Inbetriebnahme wurde die Entwicklung begleitet. Durch die Ansteuerung von Wegeventilen können pneumatischen Aktoren die Einzelkomponenten der Zellen auf einem CNC-Tisch fixieren und in Position bringen. Anschließend werden die Zellen durch einen Diodenlaser auf dem CNC-Tisch verschweißt. Für den CNC-Tisch wurde eine Hardwareschnittstelle für eine externe CNC-Software entwickelt. So wurde eine 0-10V Spindeldrehzahlsteuerung integriert, die den Tisch in X und Y Richtung einer Ebene bewegt. Die Anlage wurde zudem aktiv belüftet und mit einem Kamerainterface ausgestattet, welcher den Schweißvorgang visualisiert. Die Software wurde auf einer speicherprogrammierbaren Steuerung mit Embedded C++ implementiert. Die Tests wurden On-Target, sowie Off-Target realisiert. Dafür wurde der C++ Code plattformunabhängig programmiert und die Schnittstellen gemockt, sodass der Prozess auf einem x86-System ebenfalls in Betrieb genommen und der Ablauf getestet werden konnte.

- Konzeption, Implementierung und Inbetriebnahme der Prozessteuerung
- Entwicklung eines Stromlaufplans und der Teileliste
- Entwicklung einer Hardwareschnittstelle zu einer externen CNC Steuerung
- Ansteuerung von Pneumatikaktoren zur Fixierung der Teile und des Diodenlasers
- Umsetzung der Benutzerinteraktion (Eingaben / Ausgaben / Visualisierung)
- Implementierung eines Algorithmus für den Schweißvorgang von elektrochemischen Zellen
- Linux ARM / x86
- CMake / Make
- git
- Testen mit Unittests (googletest)
- Simulation von Schnittstellen (Mocken) (googlemock)
- Ethernet Kommunikation (MQTT)
- C++ (17)
- Entwicklung eines Prozesslogging mittels spdlog
- Dokumentation mit UML und Doxygen

Eingesetzte Qualifikationen

ARM-Architektur, C++, Embedded Entwicklung / hardwarenahe Entwicklung, Embedded Linux, Embedded Systems, Inbetriebnahme (allg.), Schaltungstechnik, Schnittstellenentwicklung, Speicherprogrammierbare Steuerung (SPS), Testautomatisierung, UML

Senior Embedded Software Engineer (Festanstellung)
GEA Group, Bönen
7/2018 – offen (6 Jahre)
Maschinen-, Geräte- und Komponentenbau
Tätigkeitszeitraum

7/2018 – offen

Tätigkeitsbeschreibung

Entwicklung hardwarenaher Software (Firmware) und Treiber mit embedded C und embedded C++. Die Entwicklung umfasst verschiedene eingebettete Systeme (individuelle Hardware) für die Steuerung von Industrieprozessen, Benutzereingaben, Displayintegrationen, Visualisierungen, Netzwerkkommunikation (CAN/Ethernet) von der Konzeption bis zur Markteinführung.

- C++ 11/14/17
- ARM-Cortex-M / STM32 / WAGO PLC
- CMSIS / TouchGFX
- Echtzeitsysteme / FreeRTOS / Embedded Linux / Ubuntu Linux
- Schaltpläne und Layouts (Altium Designer / KiCAD)
- i2c / SPI / QSPI / UART / ADC / DAC / Timer / PWM / 8080 / Firmwareupdate
- ILI9341 LCD Displays
- Flash / EEPROM / RTC
- Gigabit-Ethernet 1000BASE-T PHY (MII) Schnittstellen Entwicklung
- Netzwerkkommunikation : Gigabit-Ethernet, MQTT, CANOpen, REST, JSON
- Testautomatisierung: Jenkins / Unittests / Googletest / Google Mock / Docker / Python / Bash
- Softwarequalität: clang-tidy, clang-format
- SCM: SVN / Git / GitLab
- compiler: gnu-arm-none-eabi, gcc, keil
- Buildsysteme: CMake / Make
- IDE: VSCode / Eclipse / vi / STMCubeIDE / STMCubeMX / Segger OZone / Segger SystemView

Eingesetzte Qualifikationen

Altium Designer, ARM-Architektur, C++, CAN-Bus (controller area network), CANopen, Continuous Delivery (CDE), Echtzeitbetriebssystem (RTOS), Embedded Entwicklung / hardwarenahe Entwicklung, Embedded Linux, Embedded Software Engineering, Embedded Systems, Ethernet, Firmware, Hardware Entwicklung, Ingenieurwissenschaft, Jenkins, Kontinuierliche Integration (CI), Python, Software Architektur / Modellierung, Speicherprogrammierbare Steuerung (SPS), STM32, Testautomatisierung, UML

Senior Embedded Developer (Festanstellung)
Lemonbeat GmbH, Dortmund
5/2016 – 6/2018 (2 Jahre, 2 Monate)
High-Tech- und Elektroindustrie
Tätigkeitszeitraum

5/2016 – 6/2018

Tätigkeitsbeschreibung

- Weiterentwicklung eines IoT-Kommunikationsstacks für die 886 MHz Funkkommunikation
- Implementierung von Anwendungen für die Messwertübertragung auf Basis des unternehmenseigenen Kommunikationprotokolls (LsDL)
- Treiberentwicklung für einen Scilabs Arm-Cortex-M3 SoC Chips
- Entwicklung von funk-basierten Messgeräten für Verbrauchszähler (Strom / Wasser / Gas)
- Entwicklung einer Funkkommunikation (886 MHz) von intelligenten Heizungssteuerungen
- Entwicklung einer Funkkommunikation (886 MHz) für intelligente Leuchten mit DALI Schnittstelle
- Embedded C / C++ / Bash / Python / XML / EXI
- Cadsoft Eagle / Altium Designer Viewer
- Googletest Unittest
- Code reviews (GitLab)
- Modbus-RTU / M-Bus
- Git / Confluence / Jira / Doxygen / Eclipse

Eingesetzte Qualifikationen

Altium Designer, C++, Embedded Entwicklung / hardwarenahe Entwicklung, Funktechnik, Gerätetreiber, Internet of Things (IoT), Mikrocontroller, Mikroelektronik, Testautomatisierung, XML

Embedded Developer
Kundenname anonymisiert, Dortmund
7/2013 – 12/2013 (6 Monate)
Automobilindustrie
Tätigkeitszeitraum

7/2013 – 12/2013

Tätigkeitsbeschreibung

Im Zuge des [...] Forschungsprojektes (-Hyperlink entfernt-) wurde eine HVAC Lüftungssteuerung auf einem Freescale MPC5668G dual-core Prozessor modellbasiert entwickelt. Die Steuerung der Lüfterklappen und des Luftstroms wurde in verschiedene Tasks aufgeteilt und auf verschiedene Prozessorkernen der MCU aufgeteilt (partitioniert).
Die Implementierung eines Treibers für die Verwendung eines gemeinsamen RAM-Speichers wurde für den Datenaustausch zwischen den Prozessorkernen umgesetzt.

Verwendete Werkzeuge:
- CodeWarrior for MCUs (Eclipse IDE)
- SVN
- Embedded C / Embedded C++ (GNU compiler)
- Ubuntu Linux
- Doxygen
- Yakindu Statechart Tools
- UART (RS-232)
- SPI, I2C, JTAG
- PWM Motorsteuerung per Timer

Target Platform:
- Freescale MPC5668G (-Hyperlink entfernt-)

Eingesetzte Qualifikationen

C++, Elektronik, Elektrotechnik, Embedded Systems, Linux Entwicklung, Mikrocontroller, Modellgetriebene Softwareentwicklung (MDSD), RS-232

Embedded Developer (Festanstellung)
itemis AG, Lünen
4/2013 – 5/2016 (3 Jahre, 2 Monate)
IT & Entwicklung
Tätigkeitszeitraum

4/2013 – 5/2016

Tätigkeitsbeschreibung

- Entwicklung von Prototypen (Hard- und Firmware)
- Hardwarenahe Entwicklung und Treiberentwicklung für STM32F4 Prozessoren (I2C / SPI / UART / Timer / Interrupts)
- Hardwarenahe Entwicklung und Treiberentwicklung für Freescale MPC5668G Prozessoren
- Hardwarenahe Entwicklung und Treiberentwicklung für Atmel AVR ATMega32 und ATMega8 Prozessoren
- Implementierung einer Treiberschicht für die Anbindung von generiertem Quellcode zur Portierung auf die Hardwareplattformen
- Modellbasierte Entwicklung von eingebetteten Systemen auf Basis von Yakindu Statechart Tools
- Entwicklung von Zustandsautomaten (statemachines) mit Yakindu Statechart Tools
- Buildumgebung für die Compiler erstellt (Make, Gnu ARM GCC, Embedded C / C++)
- Dokumentation mit Doxygen
- Atlassian Jira / Confluence
- Ubuntu Linux
- Entwicklung und Inbetriebnahme und Test individueller Hardware (Wifi / Bluetooth / UART / SPI / i2c / DC Motoren)
- Schaltplan und Layoutentwicklung (Cadsoft EAGLE)
- Löten und Messtechnik

- Target Platform:
- Individuelle Hardware auf Basis von Arm-Cortex-M STM32F407 (-Hyperlink entfernt-)
- RN-41 Class 1 Bluetooth Modul (-Hyperlink entfernt-)
- 802.11 b/g WLAN Modul (RN-XV-DS) (-Hyperlink entfernt-)
- UART (RS-232), I2C, SPI, JTAG
- L3GD20 Gyroskop (-Hyperlink entfernt-) SPI
- LIS3DSH MEMS Sensor
- ERIKA Enterprise RTOS (-Hyperlink entfernt-)
- FatFS FAT Dateisystem (-Hyperlink entfernt-)
- Sharp GP2Y0D815Z0F Infrarot Distanz Sensoren (time-of-flight Messung)
- TSL2561 16-bit Lichtsensor (i2c)
- ACS712 Strommesssensor
- SRF04 Ultraschallsensoren

Eingesetzte Qualifikationen

ARM-Architektur, C++, Confluence (Atlassian), Eclipse, Embedded Entwicklung / hardwarenahe Entwicklung, Hardware Entwicklung, Jira, Linux Entwicklung, Mikroelektronik, Modellgetriebene Softwareentwicklung (MDSD), Netzwerktechnik, Technische Dokumentation, WLAN (Wireless Local Area Network)

Software Developer (Festanstellung)
w3logistics AG, Dortmund
2/2007 – 3/2013 (6 Jahre, 2 Monate)
IT & Entwicklung
Tätigkeitszeitraum

2/2007 – 3/2013

Tätigkeitsbeschreibung

- Entwicklung und Optimierung von Software für die Lagerlogistik und Materialflusssysteme
- Erweiterung der Bestandssoftware für Kundenanlagen
- Linux Betriebssystem Programmierung
- Programmiersprachen: C, Bash und Java
- Datenbankentwicklung MySQL / Oracle
- Debian / Red Hat Enterprise LInux
- Clustering (Hochverfügbarkeit der Logisiksoftware)

Eingesetzte Qualifikationen

Bash (Shell), Debian, Eclipse, Java (allg.), mySQL, Oracle Database

Zertifikate

Architektur Hands-on Training, Prof. Dr. Jens Liebehenschel und Colin Appel, Frankfurt Univ. of Appl. Sciences
2020
Best Practices für modernes C++, Rainer Grimm, Modernes C++
2020
Unit-Tests in der Praxis, Pawel Wisniewski, embeff
2020
Doulos: Developing with Arm Cortex-M
2019
VDI: Qualifizierung zum Wertanalytiker
2018
Eurocircuits / Volpe: EAGLE Workflow vom Schaltplan zur fertig bestückten Leiterplatte
2018

Ausbildung

Technische Informatik
Master of Science
2018
Dortmund
Technische Informatik
Bachelor of Science
2014
Dortmund
Informatikkaufmann (IHK)
Ausbildung
2007
Hemer

Über mich

Ich bin Ingenieur aus Leidenschaft und unterstütze bei der Entwicklung von hardwarenahen Projekten. Dabei helfe ich bei der Neu- und Weiterentwicklung, sowie bei Code-Reviews und Code-Qualitätsthemen, Schaltplänen und Platinenlayouts. Vom Prototypen bis zur Serienreife. 

Weitere Kenntnisse

Programmiersprachen:
- Embedded C/C++ (11, 14, 17) 
- C/C++ (11, 14, 17) für x86 Systeme
- Linux Betriebssystem Programmierung
- Python
- Bash

Firmwareentwicklung:
- Bootloader
- Anbindung externer Peripherie an Prozessoren
- Treiber
- Bare-Metal oder mit RTOS Programmierung

Schaltplan- und Platinendesing:
- EAGLE
- KiCAD

Plattformen:
- ARM-Cortex-M
- x86
- ATMEL-AVR
- WAGO PFC200

Hersteller:
- ST Microelectronics (STM32)
- TI
- Microchip
- Scilabs
- ESP32
- Freescale (NXP)

Schnittstellen: 
- SPI, QSPI, I2C, UART, RS-485
- DMA, 8080 Paralellel, ADC, DAC, Timer, JTAG
- MII (Ethernet 100BASE-TX, 1000BASE-TX), CAN
- 802.11 b/g WLAN, Bluetooth, 886MHz, 433MHz

Betriebssysteme:
- Linux (Debian/Ubuntu)
- Embedded-Linux (pengtronix)
- FreeRTOS
- ERIKA OS

Bauteile: 
- Flash (W25Q64JVZPI)
- EEPROM (M24C64)
- LCD Displays (ILITEK9341V)
- Ethernet MAC / PHY (Microchip KSZ9896C)
- NXP PCA9955B (LED Treiber)
- RN-41 Class 1 Bluetooth Module (-Hyperlink entfernt-)
- TSL2561 (Lichtsensoren)
- L3GD20 (Drei Achsen Gyroskop)
- LIS3DSH (MEMS Sensor)
- Sharp GP2Y0D815Z0F (Infrarot Sensoren)

Entwicklungsumgebungen
- VSCode
- SEGGER Ozone
- SEGGER SystemView
- STM32CubeIDE / STM32CubeMX / STM32CubeProgrammer
- Eclipse
- Atmel Studio
- sublime
- vi
- KiCAD
- Altium Designer Viewer

Buildsysteme / Codeanalyse / Dokumentation:
- CMake / Make
- Docker
- Git / Gitlab / SVN / Mecurial
- valgrind
- clang tools (clang-format, clang-tidy)
- Jenkins
- Doxygen, Sphinx
- JIRA / Confluence

Compiler:
- GNU (gcc / gnu-arm-none-eabi-gcc)
- clang

Testing:
- googletest / googlemock
- cUnit
- cppUnit

Werkzeuge:
- SEGGER J-Link
- SEGGER J-Trace Pro
- Saleae Logic Pro
- Rigol Oszilioskope
- sysWorkXX USB CAN Module1
- HackRF SDR

Protokolle:
- MQTT
- REST 
- JSON
- Modbus/TCP, Modbus/RTU
- M-Bus
- DALI
- CANOpen
- RSTP (Rapid Spanning Tree Protocol)
- HDLC

C/C++ Bibliotheken:
- FatFS
- STL / Templates / Lambdas
- CMSIS
- STM32-HAL
- Qt
- spdlog
- libmodbus
- libbluetooth
- libssh
- nlohman (JSON)
- paho (MQTT)
- fmt

Branchen / Einsatzgebiete:
- Robotik (Lokalisierung mobiler Roboter mittels LIDAR und Odometrie)
- Logistik
- Netzwerktechnik
- Funksysteme
- Energiesektor (Stromzähler, Gas-, Wasser-, Wärmemengenzähler)
- Batteriehersteller
- Beleuchtungsindustrie
- Automotive
- Produzierende Unternehmen (Landwirtschaft)
- Automatisierung
- Modellbasierte Softwareentwicklung

Persönliche Daten

Sprache
  • Deutsch (Muttersprache)
  • Englisch (Fließend)
  • Polnisch (Fließend)
Reisebereitschaft
National
Home-Office
bevorzugt
Profilaufrufe
1332
Alter
37
Berufserfahrung
16 Jahre und 10 Monate (seit 08/2007)

Kontaktdaten

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

Jetzt Mitglied werden