Richard's Resume
TechNexion Ltd
Software Manager | June. 2018~ Nov. 2025
Software Engineer | Sep. 2009 – Apr. 2013
AXON-IMX8MP (NXP i.MX8M Plus)
- NXP Alpha Partner: Collaborated with NXP during the alpha development stage of the i.MX8M Plus.
- Hardware Design: Conducted comprehensive hardware schematic reviews.
- Kernel/DTS: Created and customized Device Trees (DTS) to enable hardware features and facilitate debugging.
- Display Integration: Successfully brought up custom LVDS panels (single/dual channel) and MIPI-DSI panels.
- Audio Porting: Ported the TLV320 audio codec.
- Software & Automation: Developed a shell script in Yocto to automate demo app launches across dual-display Wayland desktops.
- Resources: Product Info | Demo Video | GitHub
PICO-IMX8MQ/IMX8MM (NXP i.MX8M/i.MX8MM)
- NXP Alpha Partner: Collaborated with NXP during the alpha development stage.
- Hardware Design: Conducted hardware schematic reviews and debugging.
- Kernel/DTS: Introduced Device Tree Overlay support to reduce DTS divergence (U-Boot | Kernel).
- Bootloader Development: Ported U-Boot 2017.03; enabled SPL for 1G/2G/4G DDR variants and created a packaging script for U-Boot, HDMI, and ARM Trusted Firmware (ATF).
- Linux Kernel & Drivers: Ported Linux 4.9.51/4.9.88; enabled TUSB320 USB 3.1 OTG role switching and integrated 5/8/10-inch MIPI-DSI panels.
- BSP & Yocto: Developed the BSP meta-layer for Yocto 2.4 (Rocko).
- Manufacturing Tools: Developed MFG Tools with a minimized fast-boot kernel/ramdisk for eMMC flashing and USB mass storage emulation.
- Testing & Validation: Developed automated scripts for Chamber Thermal Testing and VoiceHat expansion board QC.
- Resources: Product Info | User Guide (Wiki)
Google Brillo on Pico i.MX6UL (ARM Cortex-A7)
- Collaboration: Partnered with Google and NXP for project development.
- Hardware Validation: Performed hardware validation and bring-up.
- Mainline Contribution: Ported U-Boot and Linux Kernel to the Pico i.MX6UL board.
NXP i.MX6 & i.MX7 Platform Development (SOM, SBC, HMI)
- Hardware Design & Platforms: Conducted hardware schematic reviews for custom boards based on NXP i.MX6 (Solo, DL, Dual, Quad, SoloX, Ultralite) and i.MX7 series, including EDM/PICO SOMs and HMI systems.
- Mainline U-Boot & SPL Leadership:
- Spearheaded the first SPL implementation for the Freescale i.MX6 platform, contributing the source code to the mainline U-Boot upstream.
- Ported U-Boot versions (2014.10 to 2017.03) with SPL support for i.MX6UL, i.MX7, and associated platforms.
- System Optimization: Optimized U-Boot to support multi-medium booting (SATA, eMMC, NAND), performed DDR timing tuning, and implemented custom splash screen support.
- Linux Kernel & Driver Engineering:
- Ported and maintained Linux Kernels 3.10.53 through 4.9.88 for TechNexion ARM boards.
- Display: Tuned timings for various LCD panels, including TTL and Single/Dual-channel LVDS.
- Connectivity & Multimedia: Ported BCMDHD Wi-Fi drivers (BCM4330/4339), MIPI-CSI2 camera drivers (OV5645), and I2C/SPI-based resistive/capacitive touch drivers.
- Android Development: Ported Android 4.4.2 (Wi-Fi, Bluetooth, Audio) and developed Android NDK applications for CANbus and GPIO hardware control.
- BSP & Build Systems:
- Architected and maintained the TechNexion BSP meta-layers for Yocto Project (v1.7 to v2.5) using the
repotool. - Developed Buildroot images and custom test cases for internal hardware validation and board bring-up.
- Architected and maintained the TechNexion BSP meta-layers for Yocto Project (v1.7 to v2.5) using the
Handheld Voting Machine (Battery-Powered)
(TI OMAP3 AM3703, Linux 2.6.37)
- Display Driver Development: Implemented a MIPI DBI (Intel 8080 parallel bus) display driver from scratch (no sample code for MIPI DBI display driver from TI)
- Enabled U-Boot splash screen support for MIPI DBI displays using standard BMP formats
- Power Optimization: reduced system power consumption in Suspend to RAM (STR) mode by 18% (from 225mW to 185mW)
Claridy Solutions, Inc.
Software Engineer | Sep. 2009 – Apr. 2013
- NXP i.MX53 Custom Boards (BSP Development):
- Bootloader & OS: Ported U-Boot with eMMC boot support; prepared SDK documentation and development environments.
- Driver Development and Debugging: Integrated USB host (SMSC USB3317 PHY), DM9003 Ethernet, CANbus, and a custom RS232 touch panel daemon.
- Display: Enabled LCD output; ported QT with QML and integrated Gnash Flash on QT WebKit.
- Peripheral Systems: Ported CUPS and Ghostscript to support thermal printer functionality.
- QA & Release: Developed test cases and build plans for system validation.
- UHF RFID Reader (Firmware):
- Developed firmware for MIPS PIC32 (Bare-metal/no-OS) using the Intel R1000 chip.
- Implemented core RFID reader drivers and logic.
Symlink Ltd.
Firmware Engineer | Apr. 2008 – July 2009
- ARM9 POS Terminal Development:
- Communication Stack: Implemented Modem and GPRS APIs; developed SDLC protocol for financial transactions.
- Certification: Successfully led the terminal to pass EMV Level 2 certification at the China Bank Card Test Center in Beijing.
- Documentation: Authored technical English user manuals and system documentation.