Schlagwörter
Skills
embedded Linux: userspace, kernel drivers, kernel tuning, device trees
RTOS / bootloaders / bare metal
diverse CPUs (ARM, PowerPC, x86-64, x86, MSP430, DSPs, 8051)
consulting in hardware design, low-level debugging
interfaces/busses: PCIe, I2C, SPI, I2S, S/PDIF, CAN, USB, PCI, ISA, GPIOs etc.
extensive domain experience in development+verification of medical devices,
especially highest risk/safety category IEC62304 Class C
software development:
>10 years productive development in C, C++ (C++11, C++14, C++17), Objective-C, Ruby, Shell
>5 years in PostgreSQL, macOS, LabView, Matlab, Mathematica
>1 years in C#, Python, HTML5
copious networking protocols:
IPv6 incl. routing concepts, Audio Streaming, HTTP, REST, JSON, OSC, NTP, PTP, RTP, RTSP, SIP, TFTP, NFS, SSL, ssh, Bonjour, mDNS, DNS, macOS+GNUstep distributed Objects, DHCP, LDAP
IEEE802.15.4/ZigBee
operating systems:
Linux, macOS, Windows, RTOSs
Projekthistorie
Development on multiple components and layers of an innovative medical device to improve diagnostics of patients after percutaneous coronary intervention. Medical device development process acc. to ISO13485/IEC62304, Class C and B.
(C, C++, Android AOSP, Linux kernel drivers, devicetree, bootloader, hardware debug- ging, Java, Kotlin, dart, subversion, git)
Software and Algorithm development, Realtime Processing Optimisation
Development of advanced ultra-high-speed precision optical distance 3D measurement system (FPGA/multicore ARMv8 embedded Linux system)
Develop and optimise realtime signal processing server to run on an isolated CPU core on a multi-core embedded Linux system (ARMv8-A 64bit+SIMD instructions, vectorisa- tion, C, C++, CMake, yocto Linux, PCIe, code quality assurance, cppcheck, clang tools, valgrind, Git).
Command-line debug and analysis utilities, Linux kernel device-tree/driver tuning.
Industry sector: Professional Audio
Software architecture and software development, software team leader, embedded&distributed systems design and integration.
Entry project: remote control network gateway (embedded Linux, Linux kernel drivers)
Follow-up project:
Software architecture and software development for large and high-profile product development project, an innovative digital multichannel wireless receiver. The project completed successfully, and the product has been launched into production.
Product link:
http://de-de.sennheiser.com/drahtlose-mikrofonsysteme-audio-receiver-multichannel-em-9046
The project was nominated for the „Deutscher Zukunftspreis - Preis des Bundespräsidenten für Technologie und Innovation 2008“ („German Future Award of the Federal President for Technology and Innovation“). Link:
http://www.deutscher-zukunftspreis.de/en/content/team-3-10
The multichannel receiver is a highly complex system composed of two main processor units (system control/graphical user interface, one PowerPC each), and up to 14 additional DSPs and signal processing FPGAs. Multiple receiver units collaborate when networked, additionally PC applications for controlling and monitoring are part of the system.
The design and development challenges were most diverse, ranging from consultation in hardware design over the system, communication, and software architecture to concepts for producing and verifying the devices.
The project closed as a full success, and to broad acclaim of the market.
Keywords: embedded Linux, Linux Kernel Drivers, C, Objective-C, C++, Ruby, Make, Shell, Networks (IPv6, IPv4, Bonjour, distributed Objects, Audio Streaming, HTTP, REST, JSON, OSC, NTP, PTP, RTP, RTSP, TFTP, NFS, SSL, ssh, PKI), OpenGL-ES, Adobe Flash, Photoshop, object-oriented Analysis and Design, Interaction- and GUI-Design, Realtime-Design, Mac OS X, Ubuntu, Hardware Development Support (Schematics, Busses, Logic-Analyser, Oszilloscope, JTAG, VHDL, MatLab, LabView), Open-Office-Documentformat, XML, XPath, Configuration Management, Android Build System, Debian Packages, Subversion, Bootloader, PowerPC, DDR-RAM, SPI, I2C, USB2, MSP430, professional Audio-Interfaces and -Formats
Side projects:
- System and protocol design and evaluation for IEEE802.15.4/ZigBee control network
(Keywords: device roles (sleepy end device, router, coordinator); IPv6 addressing, address mapping, and routing; Power-over-Ethernet; device pairing; usability - Protocol design and proof-of-concept for future company-wide command/monitoring/control applications over network as well as other transports (ZigBee, Infrared, Serial, HTTP, IPv4/IPv6) (My proposal „Sennheiser Sound Control“ was chosen in company-wide evaluation)
- suggested strategic moves in product platform development (eCOS Realtime Kernel, network architectures, sourcecode management, release management)
Software and Algorithm development, System verification and documentation
Development of advanced high-speed eye tracking system (component of corneal refractive laser surgery system), FPGA/multicore DSP/multicore embedded Linux system,
medical device development process acc. to ISO13485/IEC62304)
- develop algorithm to measure eye rotation based on visual iris details (Matlab)
- implement and optimise for realtime processing on TI C6000 multi-core DSP (C)
- integrate DSP functionality into system event and data flow (PCIe)
- develop DSP boot, production, and update concepts (C, Linux kernel driver, Shell)
- develop control interface applications on embedded Linux side (C++, C)
- develop verification concepts (IEC62304 Class B+C, C++, Qt, LaTeX)
- develop and implement verification tests (FMEA, C++, Qt, LaTeX)
- develop realtime high-speed video capture and recording system (embedded Linux, C, MPEG4 file format, Intel AVX optimisation)
- develop device production test system (C++, Qt, QML, low-latency video streaming, Linux+Windows+Vmware integration, Procella Q-DAS)
- develop and implement specific device production tests (C++, Qt, image processing)
- validation of device production test system
- redo all of the above for second product variant
- evaluate and document 3rd-party software components as IEC62304 SOUP
- debug and optimise Windows SW component (C++, C, OpenCV, Cmake)
- implement verification tests for Windows SW component (C++, Qt, LaTeX)
- embedded interfaces (PCIe, I2C, SPI, GPIOs, RS232, RS422, CameraLink, Video)
- code quality assurance (static analysis, cppcheck, clang static analyser, valgrind)
- test frameworks (Google Test, Google Mock, self-grown)
- review coding guidelines
version control system: git
Design, develop, and install a central database and web-application for a Europe-wide commercial clinical multi centre study.
Special challenges: design a strategy for data protection and data privacy to comply with standards required by law for medical data, co-operate with government agencies for data privacy (“Landesbeauftragte für Datenschutz”)
(PostgreSQL, PHP, Apache, Adobe Tools, Cisco Firewalls)
Head of development of small embedded devices company
producing testing and validation equipment for GSM mobile telecommunication.
Lead of a team of 5-10 developers (employees and contractors)
Main Project:
Development of a distributed Infrastructure for validating of roaming, availability, and quality of GSM networks.
Main technological challenge: facilitate large-scale validation systems for large-scale networks by moving the SIM SmartCards used in the testing mobiles into central servers.
Development of the SmartCard Server (running embedded Linux):
- design of Compact-PCI boards to access many SmartCards
- FPGA design (VHDL, Hot-Swap PCI-Core, in-system update options)
- apdapt Linux for the target hardware (Compact-PCI module with PowerPC-CPU)
- adapt a Linux distribution
- develop Linux kernel drivers for own hardware and CPU module
(watchdog support, hot-swap)
- develop application server software (C, C++)
- conceive a clustering design for servers for extreme numbers of SmartCards
- distributed, fail-safe database design for the clusters for managing the SmartCards
(based on openLDAP)
- develop web-based cluster management application (PHP)
Development of networked test adapters for GSM testing equipment, mobile side:
- Design of a complete single-board computer based on ARM7TDMI-System-on-Chip
- including proprietary interfaces to adapt the SIM cards at the mobile side
- FPGA development (VHDL, in-system update options)
- adapt Linux to target hardware, adapt Linux distribution, Linux kernel drivers
- application software: including SmartCard simulator to minimise the network traffic to the central SmartCard server.
Development of test adapters with USB interface
- to connect large numbers of GSM mobiles at more centralised sites
- FPGA development (VHDL, in-system update option)
- programming the USB client microcontroller (8051 based)
- Linux drivers (firmware download, FPGA image download, application)
- application server software on the USB host (running Linux)
in addition to actual development work I managed tasks like:
source code management, testing concepts for soft- and hardware, production related tasks, roll-out strategies for the customer, customer development support, tasks related to product approval as required by European CE regulations, EM radiation regulations.
Part 1: develop instrumentation and structural design for a medical brain pressure measurement sensor system (Medical device developed under applicable guidelines 90/385/EWG + 93/42/EWG)
Part 2: develop embedded system for measurement and monitoring (hard+software)
Methods: Objekt-oriented analysis, DSP (Texas Instruments C50/F206),
realtime signal processing, noise reduction.
Challenge: conformance to medical safety regulations required for CE approval.
Part 3: develop PC-based monitoring software (Windows NT, MFC, Visual C++)
Part 4: re-implement the monitoring software as a Java application
Tools: Java JDK, Linux, GUI AWT 1, Database access SQL over JDBC, RealNetworks Video Streaming, Communication protocols: Realtime Transport Protocol RTP, RTSP
Part 5: extend the monitoring system by a wireless LAN link
Methods: DSP programming in assembler, implementation of a basic UDP/IP stack plus embedded realtime streaming server.