Inductive Coupler with CAN Interface

Project: June 2015 – July 2015 (2 months)

Description

Planning and creating of the firmware for a CAN repeater (quasi-repeater) as a plug replacement for sensor data acquisition in tunnel construction machines. CAN messages are converted to UART to transmit them via an air gap using a FSK modem. To supply the sensors in the drill head, the coupler provides 500mA of current.

Summary

Project Inductive Coupler with CAN Interface
Duration June 2015 – July 2015 (2 months)
Customer confidential due to nondisclosure agreement
Industry Sector Industrial Communication / Field Bus
Role / Responsibility Software Design, Implementation, Function Tests, Documentation, Order Processing
Software / Tools / Methods Atmel SAM4E Microcontroller, Rigol Oscilloscope, Multimeter, CAN Interface Boards (Peak, Vector, IXXAT)
Hardware Environment Atmel Studio (Version 6.2), Enterprise Architect (Sparx)

MacCAN – macOS Library for PCAN-USB Interfaces and more

Project: June 2012 – now (ongoing)

Description

The PCBUSB library realizes a ‘PCAN-USB Driver for macOS’ using Apple´s IOUSBKit. It supports up to 8 PCAN-USB and PCAN-USB FD devices from PEAK-System Technik, Darmstadt. The library offers an easy to use API to read received CAN messages from a 64K message queue and to transmit CAN messages. The PCAN-USB FD device can be operated in CAN Classic and CAN FD mode. Standard CAN frames (11-bit identifier) as well as extended CAN frames (29-bit identifier) are supported.
The library comes with an Objective-C wrapper and a demo application: MacCAN Monitor App.

Summary

Project MacCAN – macOS Library for PCAN-USB Interfaces and more
Duration June 2012 – now (ongoing)
Customer Own development (www.mac-can.com)
Industry Sector Industrial Communication / Field Bus
Role / Responsibility System Specifications, Software Architecture, Software Design, Implementation, Function Tests, Documentation
Software / Tools / Methods Enterprise Architect (Sparx), Apple LLVM (clang, x86_64), CUnit Test Framework, Doxygen, JIRA
Hardware Environment PCAN-USB Adapter (PEAK), PCAN-USB FD Adapter (PEAK)

Active Steering Wheel

Project: January 2012 – May 2015 (41 months)

Description

Active steering project for an American automobile manufacturer. Support of the project team in Berlin with the following tasks:

  • Implementation of the software design (modules)
  • Documentation of the modules and interfaces
  • Integration of software components
  • Design and execution of Unit Tests
  • Code Reviews

Summary

Project Active Steering Wheel
Duration January 2012 – May 2015 (41 months)
Customer confidential due to nondisclosure agreement
Industry Sector Automotive
Role / Responsibility Software Design, Implementation, Software Integration, Unit Tests, Code Reviews, Issue Analysis
Software / Tools / Methods Enterprise Architect (Sparx), GHS C-Compiler (Green Hills), PC-lint (MISRA-C 2004 rules), CANoe (Vector), DET (Ford), DOORS (IBM), FuSi (IEC 26262-6), Telcon / Webex / Workshop
Hardware Environment Freescale MPC5643 Dual-Core Microcontroller, Lauterbach Trace32 Debugger, CAN Interface Board (Vector)

Hardware Oriented Software Development

Project: December 2010 – December 2011 (13 months)

Description

Support of several development teams at the client’s site. My tasks included:

  • Development of hardware oriented software applications
  • Creation of hardware oriented drivers
  • Implementation of real-time operating systems on embedded platforms
  • Customization of BIOS and driver software
  • Project support from requirement engineering to validation

Work Batch 1: Analogue CAN Transmitter for Force Feedback Sidestick Control

The transmitter is used to transmit analogue and digital signals from a redundant sidestick control via the CAN bus. Through two physically connected sidesticks in the cockpit, the steering system, as well as the gas and brake systems, are controlled. From these systems, current angle data is transmitted back to the systems in the cockpit.

Task: Implementation of the transmitter software (CAN bus).

Work Batch 2: End-Of-Line Test Software for a Control Panel for Floor-borne Vehicles

The vehicles are optionally equipped with a Truck Data Unit (TDU). At the beginning of vehicle use, the driver identifies himself by means of an identification assigned to him (optionally via a keyboard with a PIN number or by means of a card reader with RFID identification) and thus indicates the use of the vehicle. When leaving the vehicle, the driver logs off.

Task: Implementation of the test software on the target for end-of-line testing of analog and digital I/O modules, memory devices (F-RAM, NAND-Flash, Data-Flash), LEDs, CAN-communication, matrix keyboard, wake-up function, card reader (RFID), Bluetooth module.

Work Batch 3: Compressed Download via CANopen

Control panel for blacktop paver with display and CAN interface. A CANopen bootloader handles software updates.

Task: Integration of the zlib inflate algorithm into existing boot loader.

Work Batch 4: SPI Bootloader for HVAC Front Panel

Front panel for climate control intended for a DIN radio slot. Control and display unit with integrated color display, illuminated buttons, and control dials. Communication with the main circuit board takes place via an SPI data bus system and controls all button and encoder inputs, as well as visualization of the display.

Tasks:
a.) Implementation of the bootloader (SPI slave).
b.) Implementation of test procedures.

Summary

Project Hardware Oriented Software Development
Duration December 2010 – December 2011 (13 months)
Customer confidential due to nondisclosure agreement
Industry Sector Automotive
Role / Responsibility System Specifications, Software Architecture, Software Design, Implementation, Function Tests, Documentation
Software / Tools / Methods Keil C166 C Compiler (uVision3), Keil ARM C Compiler (uVision4) , Microsoft Visual C++ 2008 , Enterprise Architect (Sparx) , PC-lint (MISRA-C 2004 rules) , Understand (SciTools) , CAN Analyser (IXXAT) , Doxygen, Python
Hardware Environment Infineon XC164CS Microcontroller, Infineon XC2368B Microcontroller, NXP LPC2478 (ARM7/TDMI-S core), Keil U-Link On-chip Debugger, CAN Interface Boards (IXXAT), SPI-to-USB Adapter (Elite)

Primary Flight Control System

Project: July 2009 – September 2010 (15 months)

Description

Certification of a Fly-by-Wire flight control:

  • Software development according to V-Modell and RTCA DO-178B for the Primary Flight Control System of the Superjet 100
  • Performing software tests according to RTCA DO-178B
  • Creation the required documentation according to RTCA DO-178B

Summary

Project Primary Flight Control System
Duration July 2009 – September 2010 (15 months)
Customer confidential due to nondisclosure agreement
Industry Sector Aeronautics
Role / Responsibility Design und Code Reviews, Software Improvement, Software Tests, Documentation
Software / Tools / Methods Ameos (Aonix) UML Modeling Tool, CodeWarior (Metrowerks) C Compiler for Power Architecture Processors, QA-C/MISRA (QA Systems) Static Code Analysis, PolySpace (MathWorks) MISRA-C Code Checker, CTE (DaimlerChrysler AG) Classification Tree Editor, ClearCase / ClearQuest (Rational) Unified Change Management, Reqtify (geensys) Requirements Management / Traceability Tool, SmarTeam (Dassault Systemes) Product Data Management / Product Lifecycle Management, DO-178B (RTCA) Software Considerations in Airborne System and Equipment Certification
Hardware Environment Freescale MPC5554 32-bit Microcontroller

Emergency Drive for a Blood Pump

Project: February 2009 – March 2009 (2 months)

Description

Firmware expansion for compact drives to include client-specific functions. The drive is used to complete the emergency concept in a mobile blood pump. For this purpose, the function of the digital control interface was adapted according to customer-specific specifications.

Summary

Project Emergency Drive for a Blood Pump
Duration February 2009 – March 2009 (2 months)
Customer Schneider Electric Motion Deutschland GmbH & Co. KG
Industry Sector HW and SW Development Mechatronics
Role / Responsibility Software Design, Implementation, Function Tests, Documentation, Order Processing
Software / Tools / Methods Keil C166 C Compiler (uVision3), CAN/CANopen Tools (IXXAT)
Hardware Environment Infineon XC164 Microcontroller, Keil U-Link On-chip Debugger, USB Oscilloscope, Multimeter

Pilger Rolling / Looping

Project: January 2009 – February 2009 (2 months)

Description

Firmware expansion for compact drives to include client-specific functions. Based on pre-existing driver firmware, the backlash is compensated by the software method ‘Pilger Rolling/Looping’ in order to achieve higher positioning precision. Using this method, all positions are addressed only from one direction. This means that the target positon is always addressed from one direction while, in the opposing direction, the target position will be skipped by a value larger than the backlash and then addressed afterwards.

Summary

Project Pilger Rolling/Looping
Duration January 2009 – February 2009 (2 months)
Customer Schneider Electric Motion Deutschland GmbH & Co. KG
Industry Sector HW and SW Development Mechatronics
Role / Responsibility Technical Specifications, Software Design, Implementation, Function Tests, Documentation, Order Processing
Software / Tools / Methods Keil C166 C Compiler (uVision3), CAN/CANopen Tools (IXXAT), IclA Commissioning and Control Tool
Hardware Environment Infineon XC164 Microcontroller, Keil U-Link On-chip Debugger, CAN Interface Boards (IXXAT)

Controller Board with Real Time Linux

Project: January 2007 – December 2008 (24 months)

Description

Working with the specification and development of a controller board with MPC5200B (Freescale) and real-time Linux (Kernel 2.6 RT Preemptive, PTXdist). The project provides a shared HW platform and a generic SW framework for product-specific central controller of generator systems for plasma excitation, induction heating, and CO2 laser excitation.
My main activity in the project was focused on the definition and realization of the SystemCAN for the communication of generator modules. SystemCAN is based on the CANopen protocol according to CiA DS-301 (EN 50325-4).
During the project, the customer introduced a model-based development approach according to UML 2.0 and established an agile development process according to OpenUP.

Summary

Project Controller Board with Real Time Linux
Duration January 2007 – December 2008 (24 months)
Customer confidential due to nondisclosure agreement
Industry Sector Process Energy
Role / Responsibility Requirements Analysis, System Specifications, System Architecture, Software Design, Implementation, Function Tests, Documentation
Software / Tools / Methods Rhapsody in C (UML Tool with Code Generation), Willert Bridge (for Freescale MPC5200B), Linux 2.6.x (RT Preemptive and native), CANopen Master/Slave Software (IXXAT), PEAK USB-to-CAN Dongle with SocketCAN, eXpat XML Parser (Host and Target), GCC, Eclipse (Linux and Cygwin), SVN, MANTIS, DokuWiki, etc.
Hardware Environment Freescale MPC5200B 32-bit Microcontroller, Phytec phyCORE-MPC5200B-Tiny Controllerboard, BDI 2000 (JTAG Debugger), CAN Interface Boards (PEAK, IXXAT), Windows PC with Linux (Debian) in a virtual machine (VMware)

CANopen Safety Driver

Project: September 2006 – January 2007 (5 months)

Description

Extension of a CANopen controller with device profile CiA DS-405 (Interface and Device Profile for IEC 61131-3 programmable devices) to the CANopen Safety protocol according to CiA DS-304 (Framework for safety-relevant communication). The mobile control unit is used in telescopic cranes for limiting the load torque. The customer prepared SIL II certification.

Summary

Project CANopen Safety Driver
Duration September 2006 – January 2007 (5 months)
Customer confidential due to nondisclosure agreement
Industry Sector Automotive / Mobile Control
Role / Responsibility Software Design, Implementation, Function Tests, Documentation
Software / Tools / Methods Wind River Diab Data C Compiler, RTOS-UH Real-time Operating System, Vector Informatik CANalyzer and ProCANopen, MKS Source Integrity (Version Control System), PC-lint (Source Code Checker)
Hardware Environment Freescale PowerPC MPC561, Lauterbach TRACE32 In-circuit Emulator, Vector Informatik CAN Interface Board

CANopen Master API

Project: September 2006 – September 2006 (1 months)

Description

Extension of a CANopen Master API (Application Programming Interface) as a 32-bit Dynamic Link Library for Windows. The software library now supports CAN interface boards from Vector Informatik.

Summary

Project CANopen Master API
Duration September 2006 – September 2006 (1 months)
Customer Own development (www.uv.software.com)
Industry Sector Industrial Communication / Field Bus
Role / Responsibility System Specifications, Software Design, Implementation, Function Tests, Documentation
Software / Tools / Methods Visual C/C++ V6.0 (Windows 9x/2000/XP), Vector XL Driver Library (Version 3.0)
Hardware Environment Windows PC (9x/2000/XP), Vector CAN Interface Board (CANcaseXL, USB)