Embedded engineer
- Verfügbarkeit einsehen
- 0 Referenzen
- auf Anfrage
- 94315 Straubing
- Weltweit
- en | es
- 15.09.2023
Kurzvorstellung
Qualifikationen
Projekt‐ & Berufserfahrung
3/2021 – 1/2022
Tätigkeitsbeschreibung
• Working on BD’s next generation of flow cytometers.
• Developed bare-metal firmware in C and assembly language to boot up and control a board with an STM32F334 SoC and Peltier thermoelectric cooling modules. Also developed the slave side I2C state machine and protocol to control and monitor the board. Wrote Python and BASH scripts to massage ELF files and to talk to the board.
• Developing C++ Linux user space i2c-dev drivers running on a Xilinx Zynq Ultrascale+ to control the aforementioned board, various temperature sensor devices and Texas Instrument UCD90120A power supply sequencer and monitor chips. Also developed drivers and implemented the Standard Commands for Programmable Instruments (SCPI) protocol to talk to various lasers from Coherent, Inc. on the RS232 and RS485 buses.
• Using PetaLinux, Yocto, Eclipse/STM32CubeIDE, Segger J-Link JTAG debuggers, TI Fusion Digital Power Designer, makefiles, linker command files, the ADC, DAC, DMA, Flash, CRC, I2C, Bootloader and GPIO modules on the SoC, PMBus, ST Micro's HAL library, oscilloscopes, schematics, datasheets, Git, agile.
C++, Embedded Linux, STM32
10/2020 – 2/2021
Tätigkeitsbeschreibung
• Worked on the BSP of a battery powered medical device based on the NXP i.MX6 SoC with an ARM v7 core. Developed Linux device driver code in C. Modified existing GPIO and USB PHY layer device drivers, created drivers for the LTC4155 battery charger chip and the LTC2942 fuel gauge device. Initial work done using an NXP i.MX6ULL EVK board before porting to a custom device.
• Created Yocto recipes and layers for Linux builds. Created Python and Bash scripts to ease work flow. Added files to device tree hierarchy to configure/describe GPIOs, pinmux configurations, WIFI/Bluetooth on SDIO/UART buses, power supplies, and other modules on custom board.
• Used Wifi, Bluetooth, schematics, oscilloscopes, Github, Gentoo Linux for build system, Eclipse, Yocto cross development toolchain, Visual Studio Code, GPIO, I2C, SPI.
Embedded Entwicklung / hardwarenahe Entwicklung, Embedded Linux, Linux (Kernel), Python
8/2020 – 10/2020
Tätigkeitsbeschreibung
• Creating a device for detecting failures in a radar altimeter based on a Raspberry Pi 4 with a Broadcom BCM2711 SoC. Using Gentoo Crossdev to create the embedded Linux root file system build, sysroot, etc.
• Developing the main multithreaded application with touchscreen interface using C++ and Qt on top of linuxfb. Using schematics, CSS, TOML, oscilloscopes, A/D converters, pressure sensors, SPI and GPIO.
C++, Embedded Linux, Qt (Software)
1/2020 – 6/2020
Tätigkeitsbeschreibung
• Worked on Teledyne’s “GroundLink Evolution” aircraft to ground data link. Developing Linux user-space C++ code running on an NXP LS1046A SoC (quad ARM Cortex-A72).
• Used Yocto, embedded Linux, gcc, Eclipse, VirtualBox, Kafka, ZeroMQ, REST API, GPIO, I2C, PMBus, JSON, XML, Python, udev, multiprocessing, multithreading, Git, schematics.
Embedded Entwicklung / hardwarenahe Entwicklung, Embedded Linux, C++
2/2019 – 12/2019
Tätigkeitsbeschreibung
• Developed bare-metal embedded C and assembly language for a prototype drone geo-fencing/caging system based on the NXP MPC5604E SoC. Converted the prototype into a DO-178B DAL-B product based on the NXP MPC5674F SoC.
• Wrote board bring up code and drivers for UART, SPI, SoC flash, Cypress FL-L NOR flash, CRC engine, DMA, MMU, interrupt controller, GPIO, Holt HI-3593 ARINC 429 interface, Broadcom HCMS-2903 dot matrix LED display, and TI TLV2553 ADC, GPS receivers. Also developed code for an NMEA-183 message parser, various state machines, scheduler, serial communications protocol, memory scrub, memory test, BIT, and a basic flash translation layer.
• Created the navigation algorithms, wrote Python code to simulate them and then implemented them on target using fixed point arithmetic. Also wrote Python code to parse Openair formatted data files to create binary blobs that could be loaded onto the target, as well for post processing of ELF files to add meta-data such as a CRC.
• Worked on a DDR2 memory controller configuration for an NXP MPC8569E SoC.
• Used NXP Design Studio (Eclipse), P&E Micro and Lauterbach JTAG debuggers, TRACE32, AIM USB-to-ARINC429 modules, gcc extended-asm, Wind River Diab compiler, PyCharm, Qt, ctypes, JSON, makefiles, bash, linker command files, Subversion, WGS84, schematics, oscilloscopes.
Embedded Software
4/2018 – 10/2018
Tätigkeitsbeschreibung
• Developing C for an IoT device based on an NXP i.MX6ULL SoC with ARM Cortex-A7 core. Software is used to control electroluminescent wire lighting and strings of LEDs controlled by the WS2801 SPI LED controller. Lights are attached to dancer uniforms and controlled via WIFI.
• Ported pre-existing bare-metal C and assembly code from an 8-bit architecture to a ARM based platform.
• Using Gentoo crossdev and Portage to create embedded Linux root file system. Initial development done on Beaglebone Black Wireless boards and later on the Toradex Colibri Evalboard with i.MX6ULL compute module before porting to custom board.
• Using Github, Eclipse, U-Boot, GPIO, I2C, SPI, PWM, gcc, makefiles, Python, libev for event handling, multi-processing and multi-threading, sockets, Linux device trees, Gentoo Linux, runit init system, oscilloscopes, schematics.
Embedded Entwicklung / hardwarenahe Entwicklung
2/2017 – 4/2018
Tätigkeitsbeschreibung
• Developed software for the Airbus A330-700L Beluga XL main deck cargo loading system. Wrote low level device driver and control C code. Code runs on an NXP MPC5606B automotive SoC (e200z0h core).
• Wrote device driver code to control HI-3585 ARINC 429 serial devices via the SPI. Implemented the ARINC 429 serial bit oriented (Williamsburg) layer-2 protocol version 1 used to transmit BITE data via an Air Traffic Services Unit (ATSU) to the Aircraft Maintenance Analysis (AIRMAN) ground based server. Wrote LabVIEW “code” to exercise the ARINC 429 drivers and state machines. Developed device driver code to create and parse CAN bus messages. Invented an algorithm to sequence cargo motors. Provided requirements feedback to systems engineers while developing code.
• Worked with the hardware engineers to help bring up and debug new PCB’s.
• Created a Windows 10 based application using Python, PyQt5, ctypes, and pyinstaller to simulate the aircraft side of the ARINC 429 serial communications via AIM ASC429 USB-to-ARINC429 devices.
• Developed driver code to communicate with a vacuum flourescent display via a UART, LED controllers and temperature sensors via I2C connections, FRAM NVM via an SPI connection.
• Used CAN Bus, I2C, SPI, UART, PWM motor control, NXP CodeWarrior (Eclipse), MS Visual Studio, LabVIEW, CVS, PEmicro JTAG debuggers, oscilloscopes, schematics, lab environment, DOORS, DO-178C.
Embedded Entwicklung / hardwarenahe Entwicklung
2/2015 – 10/2016
Tätigkeitsbeschreibung
Worked on the flight deck display system of the Boeing 737MAX airplane. Wrote C and assembly for the VxWorks 653 board support package running on a quad core (e500mc) Freescale P3041 PowerPC.
Implemented the driver code for the I/O-MMU (the PAMU) to control access to system memory via the PCIe, DMA, and network interfaces.
Wrote low level code for the MPIC interrupt controller, the DMA device driver and various other IOCTL's. Wrote interrupt service routines. Wrote hardware health monitoring code for the startup and continuous BITE. Wrote code to configure core MMU TLB's, the DDR memory controller and perform memory scrub. Cleaned up low level network driver code. Cleaned up flash file system code (YAFFS).
Performed code and requirements reviews. Assisted V&V team.
Ported Verocel ARINC-653 certification package to target.
Performed timing analysis of VxWorks kernel scheduler.
Used DOORS, Wind River Workbench/Eclipse, JTAG debuggers, WireShark, Polyspace, PREP, Subversion, lab environment, JIRA, Agile/scrum.
Vxworks, Scrum, Software engineering / -technik, Subversion, Assemblersprache, C, Eclipse, Telekommunikation / Netzwerke (allg.)
7/2014 – 10/2014
TätigkeitsbeschreibungWrote C code to DO-178B level-B for a Kinetis K10 microcontroller with an ARM7 core that is part of the refueling control system on the Boeing KC-46 air tanker. Implemented the BITE code. In particular worked on the interactive and background BITE state machines, wrote functions to collect voltage and current samples from various on-chip and external A/D converters via DMA and I2C, range check the values and send result messages via the CAN bus. Used Freescale CodeWarrior/Eclipse, ARINC 825 (CAN bus with extended addressing), JTAG debuggers, I2C bus, Rational Rhapsody, lab environment. Performed code reviews.
Eingesetzte QualifikationenSoftware engineering / -technik, C, Eclipse, Picmicro, ARINC 825, CAN-Bus (controller area network), Embedded Software
9/2012 – 4/2014
Tätigkeitsbeschreibung
Wrote DAL-A C code running on a PowerPC (MPC8349) for the Remote Data Concentrator project for the Airbus A350XWB. In particular, worked on the built in testing and fault handling code (BITE), storage of fault data in non volatile memory and transmission of data on the AFDX/ARINC-664 network. Bare metal scheduler. Used DOORS, ClearCase, ClearQuest, Rational Rhapsody, Wind River Workbench, Lauterbach JTAG debuggers, Wireshark, DO-178B.
Worked on the Slat and Flap Control Computer (SFCC) for the Airbus A350XWB project. Performed validation and verification of requirements. Wrote C and Python code. Used DOORS, ClearCase, Eclipse, Green Hills Multi, DO-178B, C and Python.
C, Eclipse, Embedded Software, Python, Software engineering / -technik, Technisches Testing, Testen
2/2012 – 9/2012
TätigkeitsbeschreibungWorked on GE's Incremental Train Control System (ITCS). Wrote safety critical embedded C running on Motorola ColdFire MCF5235 processors. Created change requests, implemented them and participated in code reviews. Used Green Hills Multi Integrated Development Environment, PC-Lint and Understand For C source code analyzers, MISRA C/C++ coding standards, and StarTeam version control/change tracking tool.
Eingesetzte QualifikationenSoftware engineering / -technik, C, Schulung / Training (IT), Embedded Software
5/2011 – 1/2012
TätigkeitsbeschreibungWrote object oriented Python code and some Cython and C to implement MS Windows based applications. Used unittest, virtualenv, nose, simplejson, Django and ctypes extensions. Development work done on Ubuntu Linux machines. Used Mercurial, PyCharm, Subversion, Hudson/Jenkins, Agile/Scrum.
Eingesetzte QualifikationenUbuntu, Microsoft Windows (allg.), Scrum, Agile Methodologie, Python, Software engineering / -technik, C, Subversion, Django
4/2010 – 4/2011
Tätigkeitsbeschreibung
Wrote embedded C code for the Rockwell Engine Instrumentation and Crew Alert System (EICAS) for the Gulfstream G250 and Bombardier aircraft. Wrote Python test scripts and implemented top level test environment. Performed C and Python code reviews using Rockwell's peer review Eclipse plugin. Wrote and reviewed requirement documents and determined if C/Python code met requirements. Worked on DO-178B level A and B software.
Used gdb, Visual Studio, DOORS, UltraEdit, Clearcase, Subversion, DO-178B, ARINC 429.
Python, Microsoft Visual Studio, Software engineering / -technik, C, Subversion, Eclipse, Embedded Software
10/2000 – 2/2002
Tätigkeitsbeschreibung
Responsible for developing C-code for a high speed CDMA modem based on the C5410 and C5416 DSP's.
Worked on implementing in the C language the searcher, rake finger assignment, pilot tracking loop and antenna steering routines as well as general code clean up.
Also responsible for implementing the antenna diversity feature on the base station.
Used Texas Instruments Code Composer, ClearCase and LabVIEW.
Worked in a lab environment, using logic analyzers and scopes for debugging.
Wrote test code to help the hardware engineers debug their VHDL software.
Software engineering / -technik, C, Labview, Embedded Software
10/1990 – 11/1992
Tätigkeitsbeschreibung
Simulated in C and then developed, in assembly language, code to implement a 16 KBPS LD-CELP (G.728) real time speech compression algorithm using a TMS320C30 signal processor. Also implemented in assembly language a wide-band ADPCM speech coder based on the G.722 algorithm.
Involved in the development of a multi-media document information system using Sun-SPARC stations as platforms. Developed codes for various GUI's for the package and gained experience in programming with X-windows.
Embedded Entwicklung / hardwarenahe Entwicklung
Zertifikate
Ausbildung
England
Über mich
Weitere Kenntnisse
Persönliche Daten
- Englisch (Muttersprache)
- Spanisch (Gut)
- Vereinigte Staaten von Amerika
Kontaktdaten
Nur registrierte PREMIUM-Mitglieder von freelance.de können Kontaktdaten einsehen.
Jetzt Mitglied werden