San Francisco Bay Area
I am a real-time embedded senior firmware/software engineer. I have 20+ years of experience using C/C++ and Assembly for embedded systems. These real-time systems range from telecommunication, data communication, robotics control, sensor fusion, sensor data acquisition, and analog/digital signal processing. My many years of experience designing low level device drivers and BSPs with embedded RTOS have exposed me to many hardware and firmware debugging tools, such as oscilloscope, logic analyzer and emulation probes. BSP development for RISC/CISC architecture processors (e.g., PowerPC family and Intel SoC) has targeted many common peripheral devices, such as SDRAM, NAND Flash, FPGA, PCI, ADC/DAC, WLAN/LAN, PHY, I2C/SPI, DMA, interrupt controller, WiFi & BLE & Zigbee protocol communications for sensors, robotics perception and drone motion capture. During 5 years of PhD studies, I researched an ultrasonic sensor array perception for the mobile robotics control. It makes use of artificial intelligence, machine learning and neural networks technologies to implement the ultrasound sensors signal processing (i.e., sensor fusion) algorithms. Most recently, I am working on IoT related projects which make use of the wireless sensor (based IEEE 802.15.4 specification), sensor hub to implement the motion capture of the aircraft and robotics control. With TI BLE MCU (ARM Cortex-M3) and Nordic wireless MCU (nRF51822), I developed the firmware (state machine) to handle the BLE communications, ADC sampling and calibration, sensor data acquisitions from the different analog signals, rogue object detection algorithm, and relay auto tuning logics to control the wireless charge station. Using the Cypress PSoC/PRoC BLE devices (ARM M0 based), develop wireless BLE-UART drivers. With using XBee’s Zigbee devices, developed the serial port driver for the drone motion capture from ground station.
Perception computing for auto-pilot drone control as a design, development, and support job roles.
With Atmel ARM Cortex-M7 core based MCU platform and µCOS/NuttX RTOS, design the USART driver, MavLink protocol middleware for drone control and motion capture (wireless loop feedback via Zigbee devices). Developed the firmware modules to implement the drone autopilot control including IMU & barometric sensors sampling, PWM control for stepper, PID feedback control, GPS guidance, and EKF with Matlab Simulink. Developed the firmware for the drone’s battery communication, Developed the drivers for Sonar sensors, optical flow, and TK1 perception module.
For IR-learning used with BLE remote controller, developed interrupt callback and embedded firmware to implement the IR-learning function. For IoT development work using Samsung ARTIK 10 platform with Linux kernel, developed the WiFi & BLE sensors software to stream the sensor data into the IoT cloud, which is used to trigger the embedded servo system via WiFi event.
Lead several software development projects ranging throughout the design and implementation phases within embedded environments. - Wireless charging and battery charging control - Integrated sensor hub solution based on 32-bit IA SoC (minute IA core) & small footprint RTOS - Discrete sensor hub solution running on Intel BYT HW platform and Android KitKat SW platform - IoT sensor based on BLE MCU
Provided the design, development, and debugging VxWorks RTOS for the different SoC and MCU architecture platforms. - VxWorks BSPs and boot loaders for 32-bit IA architecture platforms and 32-bit PowerPC platforms - Device drivers, M6845 VGA driver, Intel PCI Fei/Gei LAN drivers, PHY drivers. IDE/ATA driver, SATA driver, and DMA drivers. - Developed PowerPC architecture kernel cache modules and OS kernel semaphore modules. - Developed and debugged bootrom/kernel/drivers for SMP and UP using WR ICE2 & Workbench OCD.