SOFTWARE development services
HIGH PERFORMANCE SOFTWARE
Architecture and design for performance, efficiency, multi threading, memory use and user/kernel separation. Focus on design for low latency, speed and reliability, for real time embedded systems,
- Linux: Linux User and Kernel mode - drivers (Networking, I2C, I2S), applications and daemons. UBoot, RedBoot.eCOS boot loaders, Buildroot build system. Embedded system integration. Bare metal board bring up.
- Software: C/C++ . Java, C#, Lua, Python, Objective-C, Assembly (x86, Arm, XScale, 68k), JavaScript, Dart, Flutter
- Applications: Consumer Electronics/Digital Media – Very low latency streaming (audio and video H264, H265), real time control & analysis, Automotive, IOT, RFID, Cellular, Medical.
- Networking: Low latency, low packet loss design. Ethernet, 802.11 Wi-Fi, Socket API, TCP/IP, UDP, HTTP, FTP, DHCP, DNS, UPNP, HTML
- Tools: Cross platform CMake for Linux, Windows, Android and iOS. Also make, git, gitlab, github, svn, make, visual studio, Xcode, Eclipse. VI, Terminator, Jira
- Debug: gdb, JTAG dbg, WinDbg, GPIO, syslog, GNU (gcc, gmake), Bugzilla, github
- Windows: Windows system level development, internals, GUI development, .NET, MFC, DLLs, hooks, threads, etc. NT kernel mode driver development, application/driver integration.
- Platforms: Intel x64, ARM - NXP i.MX6ULL, ATMEL AT91SAM9G25, TI MSP 430, Broadcom BCM5830X, etc.
- OS: Android/iOS Flutter, Android & IOS application development. Android NDK, iOS native C++ libraries
- Other OS RTOS ThreadX, FreeRTOS, QNX, Windows CE, Mac OS,
- Embedded: Systems design (ARM 0.5 - 1GHz) and integration. Wide range of peripherals – Audio/Video, GPS, LTE, Accelerometers, QSPI boot flash integration, I2S, I2C, UART, GPIO. Board bring-up.
- Firmware: Embedded App and OS development (> 20 years), system integration, boot loader and driver development, porting and debugging. Optimization via real-time GPIO toggles & counters).
- Databases: Sqlite, MySQL, MS SQL Server. GCP Firestore
- Testing: Software testing – automated unit testing, manufacturing test software. Hardware testing – automated RF test system design, setup and automation.
- CI/CD: Large scale continous development system .
Automotive Controller
ATMEL AT91SAM9G25 and NXP IMX6ULL based automotive device end to end development. Bare metal board bring up (UBOOT, QSPI) to Linux driver fixes for hardware devices. Includes GSM LTE, GPS UBLOX Sensors. Backend integration with AWS and backend tools.• Initial boot - QSPI Flash driver updates for UBOOT • Linux Build Root setup for bare metal Linux setup• Kernel Device modifications for QSPI, UBUS, I2C, I2S, GPIO devices. Power management optimizations.• Hardware validation• GSM LTE (UBLOX SARA410) and GPS (UBLOX NEO) integration• GPS data analysis – Lua, Python, Amazon AWS integration• Grafana and Greylog data analysis.
AUTOMOTIVE HARNESS
TI MSP430 based smart harness to control and manage automotive ignition and disabling. Had to meet strict automotive electrical system standards and operate through voltage fluctuations down to 2.5Volts.• Hardware design, schematic, PCB Layout, assembly and testing• Bare metal board bring up. Event driven Firmware development with state machine and ISR for timing and ignition control.• Security requirements required ultra-low power operation and theft protections.
Network streaming SoftwarE
Multipoint UDP based Wi-Fi protocol library & SDK to stream media to multiple devices simultaneously. Deep understanding of Linux Kernel and PC networking stack, messaging protocols and operation. C & C++.• TCP/IP, UDP, IP networking and network stack on Linux, Windows • Unicast, Broadcast, Multicast operation for local area – Wi-Fi/Ethernet and internet operation.• Packet inspection tools and performance analysis• Iperf throughput and round-trip performance analysis
LINUX Kernel Device Driver
Linux kernel device driver development and kernel modifications for real time input and output control. Needed to optimize for performance, high speed transfer of network packets and data from user space to kernel to hardware.PC, Intel IXP. Cavium, Linux kernel 2.6.x and 2.4.x.• Network driver updates and modifications• I2C, I2S driver updates and modifications• Proprietary FPGA drivers
802.11 Wi-Fi Optimization Software
Modified and optimized Wi-Fi subsystem for high performance media streaming applications. Over 8 years of hands-on detailed experience with all aspects of 802.11 b/g/a/n/ac (Wi-Fi) from RF PHY, protocol details, MAC layer operation and wireless driver operation. Worked with Qualcomm Atheros Wi-Fi as well as Broadcom and Realtek. Deep understanding of Wi-Fi system level operation and performance issues. Extensive work with Linux Wi-Fi software stack & (Madwifi) device drivers.• 802.11 protocol Ethereal/Wireshark, Air PCAP packet capture and analysis. Detailed packet inspection and 802.11 protocol bit field analysis.• W-Fi PHY RF analysis & measurement - spectrum analysis (Tektronix RS306) & real time decoding• Wi-Fi system performance analysis – with many -110db isolation RF Chambers simulating whole home. Developed automated test system including noise injection for performance testing.• Wi-Fi driver MAC layer analysis and updates/ optimizations• Linux IP driver layers / Madwifi analysis and modifications.• Wi-Fi packet injection tools.
Windows Real Time Network application
Designed a system to collect, analyze and display real time wireless data from remote cell phone sites across the US. Created Windows PC Desktop C/C++ application with Networking TCP, UDP, MATLAB real time signal processing and analysis.