Firmware design to support product changes and new development;
- Design and develop embedded firmware for Interface Systems (subsea / surface)
- Design Tests and Procedures
- Analyse design issues and identify solutions
- Independently evaluate design and execute tests to meet stated requirements
- Create Product Support Documentation
- Participates and facilitates in Design Reviews
- Creation of new Intellectual Property
- Support Technology Transfer (Documentation and Training)
- Product Support to Operations
- Product Support to Manufacturing
- Troubleshooting of operational issues
- Product Line governance and continuous improvement
- Embedded C programming on microcontrollers, and microcontrollers including coding of interfaces to external systems
- C++ programming
- Setting up and developing against different toolchain(s) including but not limited to GCC, CCS, Libero, Vivado etc.
- Experience with configuring embedded Linux operating systems and development environment, using Buildroot, Yocto or other tools.
- Bootloader configuration and debugging, JTAG, SWO.
- Communication interfaces such as SPI/I2C/SCI/CAN/UART
- Industrial communication network systems and communication protocols
- Control algorithms for power supplies and motor drivers
- Understanding of how to work around processing, memory, I/O, timing, and other limitations
- Using basic laboratory instruments efficiently for test and analysis during development (oscilloscope, function generator, logic analyser etc).
- Using common debugging tools to troubleshoot embedded code and implement corrections
- Designing tests including regression tests and unit testing
- Troubleshooting prototype and production tools at Electromechanical Systems level
- Preferable: Knowledge of ARM Cortex architectures