C Development for a Jib Crane

Project: January 2022 – March 2022 (3 months)

Description

Due to the worldwide shortage of microprocessors in the context of the COVID-19 pandemic and possible future discontinuations of the microprocessors in use, the customer is revising its product range. The existing control electronic for pillar- and wall-mounted slewing jibs is ported to a new microcontroller (for which second source types are also available) without reworking the application program itself. The drivers of the Hardware Abstraction Layer (HAL) are newly developed and connected to the existing application program via wrappers.

My task in the project was the development of the drivers and wrappers for ADC, I2C, UART, as well as their commissioning on the (new) target hardware.

Summary

Project C Development for a Swivel Column Crane
Duration 3 months (January 2022 – March 2022)
Customer confidential due to nondisclosure agreement
Industry Sector Industrial Applications / Heavy Duty Cranes
Role / Responsibility Implementation, Code Review, SW Commissioning, Video Calls (100% remeote)
Software / Tools / Methods Eclipse CDT (for Embedded Systems), GCC Compiler for ARM (arm-none-eabi), Microchip MPLAB X IDE and Harmony 3, JIRA (Atlassian)
Hardware Environment dsPIC30F6015, dsPIC30F3013 (Microchip), PIC32CM1216MC00048/00032 (Microchip), ARM EDBG Debugger, SEGGER J-Link, Oscilloscope, Multimeter

UDS-based Communication Stack for Encoders

Project: August 2015 – May 2016 (10 months)

Description

Development of server-side application layer services according to ISO-14229 as part of a platform software for encoders. The work packet includes the following tasks:

  • Definition of software architecture components
  • Capturing the component requirements (in Polarion)
  • Creating the component and class design (in Enterprise Architect)
  • Implementation of source code modules in C, taking into account coding rules for safety-relevant software
  • Performing static code analysis with PC-lint (MISRA-C:2012)
  • Implementation of white-box tests with GoogleTest
  • Continuous Integration (Jenkins)
  • Documentation of the software modules using Doxgen comments and UML diagrams (activity diagrams, sequence diagrams, state charts)
  • Further development of the software architecture and source code modules of the platform software (persistent data memory, firmware update, HAL for SPI, on-chip flash, CRC-32)
  • HAL: code refactoring (Non-STLibrary)

Summary

Project UDS-based Communication Stack for Encoders
Duration 10 months (August 2015 – May 2016)
Customer confidential due to nondisclosure agreement
Industry Sector Industry / Heavy Duty Encoders
Role / Responsibility Software Design, Implementation, Documentation, Code-Reviews
Software / Tools / Methods Polarion ALM (Polarion Software), Enterprise Architect (Sparx), ARM GCC, SCons, Keil uVision 5, PC-lint (MISRA-C)
Hardware Environment STM32F0 (ARM Cortex-M0)

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 2 months (June 2015 – July 2015)
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)

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 2 months (February 2009 – March 2009)
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 2 months (January 2009 – February 2009)
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)

Commissioning and Control Tool (III)

Project: June 2006 – August 2006 (3 months)

Description

Software improvement of a PC-based software for configuring drive and application parameters of a compact drive via the CAN bus interface. Revision of the GUI (Graphical User Interface) so that the commissioning tool can be integrated into the company-wide toolchain.
New functions include a context-sensitive help for device parameters (F1 jumps to the corresponding bookmark in the PDF document), and a snapshot function of the current device status for error diagnostics and service.

Summary

Project Commissioning and Control Tool
Duration 3 months (June 2006 – August 2006)
Customer Berger Lahr GmbH & Co. KG, Niederschopfheim
Industry Sector HW and SW Development Mechatronics
Role / Responsibility Technical Specifications, Software Design, Implementation, Function Tests, Documentation, Order Processing
Software / Tools / Methods Microsoft Visual C++ V6.0, IXXAT CANopen Master API, PEAK PCAN-Light DLL, Iocomp Plot Pack (ActiveX), Acrobat DDE Messages (SDK)
Hardware Environment Windows PC (2000/XP), IXXAT CAN Interface Boards, PEAK CAN Interface Boards, Compact Drive N065 und D065

Technology Transfer Compact Drive (N065)

Project: March 2006 – April 2006 (2 months)

Description

Between May 2003 and August 2004, I provided software development services for a CANopen compact drive as a freelancer for a manufacturer of electrical drives. Through this transfer of technology, new employees from engineering, support and marketing were trained on the product. The technology transfer took place in the form of larger (about 15 participants) and smaller workshops.

Summary

Project Technology Transfer Compact Drive
Duration 2 months (March 2006 – April 2006)
Customer Berger Lahr GmbH & Co. KG, Niederschopfheim
Industry Sector Motion Control Compact Drives
Role / Responsibility Training and Support, Order Processing
Software / Tools / Methods PowerPoint Presentation, ICCT Commissioning and Control Tool, Software Regression Tester (Test Suite), Various CAN/CANopen Tools
Hardware Environment Windows PC (2000/XP), IXXAT CAN Interface Boards, PEAK CAN Interface Boards, Compact Drives N065 und D065

Commissioning and Control Tool (II)

Project: January 2006 – February 2006 (2 months)

Description

Software improvement of a PC-based software for configuring drive and application parameters of a compact drive via the CAN bus interface with additional CAN interfaces. A CANopen Master DLL was implemented for the PEAK CAN-USB dongle and a DLL router was integrated into the configuration tool. The DLL router recognizes the CAN interface present in the system and dynamically loads the corresponding CANopen master DLL for the recognized CAN interface.

Summary

Project Commissioning and Control Tool
Duration 2 months (January 2006 – February 2006)
Customer Berger Lahr GmbH & Co. KG, Lahr
Industry Sector HW and SW Development Mechatronics
Role / Responsibility System Specifications, Software Design, Implementation, Function Tests, Documentation, Order Processing
Software / Tools / Methods Microsoft Visual C++ V6.0, IXXAT CANopen Master API, PEAK PCAN-Light DLL
Hardware Environment Windows PC (2000/XP), IXXAT CAN Interface Boards, PEAK CAN Interface Boards, Compact Drives N065 und D065

RS-CAN Converter with CANopen Master

Project: April 2005 – April 2005 (1 month)

Description

The RS-CAN converter is used to connect a PC or a PLC with a CAN / CANopen network via the serial interface (RS-232). With the converter, an application can easily be extended with CANopen devices. The converter provides a CAN Layer 2 access with standard identifiers (11-bit COB-IDs) to the devices in the CAN network as well as CANopen master services according to the CiA communication profile DS-301 (version 4.02).

Summary

Project RS-CAN Converter with CANopen Master
Duration 1 month (April 2005 – April 2005)
Customer M+K GmbH, Haibach
Industry Sector Industrial Communication / Field Bus
Role / Responsibility Requirements Analysis, System Specifications, Software Design, Implementation, Function Tests, Documentation
Software / Tools / Methods MC30 Compiler (Renesas), ASPopen Protocol (RS-232)
Hardware Environment Renesas M16C/62N Microcontroller, RS-232 Flash Programmer

Commissioning and Control Tool (i)

Project: January 2005 – March 2005 (3 months)

Description

Planning and creating of a PC-based software for configuring drive and application parameters of a compact drive via the CAN bus interface. The parameter values for a device are stored in a configuration file or can be entered or changed on the screen (parameterization function). Further functions of the software are the parameterization and starting of drive movements (control function), the recording and evaluation of measured values and status information of the drive (diagnostic function), as well as the recording and displaying of speed and current measurements during a drive movement (oscilloscope function).

Summary

Project Commissioning and Control Tool
Duration 3 months (January 2005 – March 2005)
Customer Berger Lahr GmbH & Co. KG, Lahr
Industry Sector HW and SW Development Mechatronics
Role / Responsibility System Specifications, Software Design, Implementation, Function Tests, Documentation, Order Processing
Software / Tools / Methods Microsoft Visual C++ V6.0, IXXAT CANopen Master API, XML Validator
Hardware Environment Windows PC (2000/XP), IXXAT CAN Interface Boards, Compact Drive N065 und D065