Mobile: +91-773*******
E-Mail: ********.*.******@*****.***
[pic]
Seeking assignments in Embedded Firmware/Software Development Project
Execution with an organization of repute.
Summary
A Technical Lead (Embedded System) having over 8 years and 6 months of
experience of Firmware/Software Development in Automotive, Mobile and PLC.
From Oct'05 with iGate (previous name Patni) Computers Systems Ltd. India.
From Feb'09 to Apr'10 on client site Sony India Pvt. Ltd, Bangalore.
From Jun'10 to Sep'13 on client site Rockwell Automation Pte. Ltd.
Singapore
Expertise in C, C++ programming and Linux in Embedded Firmware/Software
development utilizing extreme programming methodology.
Hands on experience of designing and developing PLC firmware.
Hands on experience of designing and developing Bootloader firmware
Hands on experience of designing and developing complex Automotive
Software/Firmware systems utilizing protocols RS232, CAN, KWP 2000, J1939,
and ISO-11783.
Hands on experience of designing and developing GPS based software systems
utilizing GSM/GPRS.
Hands on experience of designing and developing Mobile Software in Android
framework for Sony's product.
Adept in conceptualizing, analyzing software system needs, evaluating end-
user requirements, custom designing solutions & troubleshooting for complex
software systems.
An energetic, self-motivated individual/engineer/person with hands on
experience in Embedded Systems and Application Programming, requirements
gathering, application integration and customization.
SKILL SET
Languages:- C, C++, UML, Qt and OpenGL
Domains:- Automotive, Mobile and Automation(PLC )
MCUs:- ARM7/9, Coldfire, Atmel, Motorola, Hitachi,
Renesas, Intel, Siemens / Infineon, ST, TI MS430, PIC, SJA1000 (CAN
controller), iTrax03 GPS
Processor, Novatel GPS Processor
IDE/SDK:- WinCE Platform Builder, IAR, WindRiver
Embedded Workbench, Multi, Keil (C51 and C166 tool chains), Renesas HEW,
CodeWarrior, iSuite3 SDK, AVR
Studio4
Emulators:- Hitex AX51, Hitex DBox16, WindRiver ICE,
Renesas E30A, Renesas E8, Phyton PICE, Hitachi H800
Operating Systems:- Linux, ThreadX, WinCE, VxWorks, Quadros, Android
Communication I2C, SPI, UART, DeviceNet, ContollNet,
EtherNet/IP, Profibus, RS232, CAN, GMLAN, KWP 2000, J1939, ISO-11783
Protocols
Tools:- Configuration management: ClearCase,
CVS, SVN, VSS
Documentation:
Doxygen
Debugging:
JTAG, GDB, CANalyser, Wireshark,, Valgrind
Make Tool:
gmake, qmake and scons
Testing:
CPPUnit, CXXUnit, CUnit, embUnit, QtTestlib, Bullseye
Profile:
gprof, kprof
Others: Android's SDK, adb, ddms,
mksdcard, CANOe, FileZilla, SSH, Putty, cygwin, Rational Rose, Jude,
MS Visio, STI
Understand, Eclipse, Source Insight
Miscellaneous Bootloader Programming, Linux System
Programming, Shocket Programming, Shell Programming,
Device Driver Programming, ARM
Architecture, OS Internals, RTOS, Data Structure
Job Functions
Requirement Analysis, Designing, Coding, Testing, Documentation,
Configuration Management.
CAREER HIGHLIGHTS
From Oct'05 with iGate (previous name Patni) Computers Systems Ltd. India
From Feb'09 to Apr'10 on client site Sony India Pvt. Ltd. Bangalore India
From June'10 to Sept'13 on client site Rockwell Automation Pte. Ltd.
Singapore.
From Oct'13 to iGate Solution Pvt. Ltd.
1
2 Projects Handled:
3 [pic]
4 Title Distributed I/O Modules (DIO) and
PLC Firmware
Description I/O that is distributed around the application or integrated
with the controller. You can install DIO modules locally in the same
chassis as the processor. Through the use of I/O communication networks,
you can also distribute I/O in locations remote from the processor, closer
to the sensors and actuators, reducing your wiring costs. Having the
freedom to monitor and control I/O across an I/O link means you can select
I/O products from a variety of platforms that include a variety of
integrated termination solutions. DIO modules can be located on the machine
close to sensors and actuators, controlled from a safety PLC. A distributed
safety I/O module continuously monitors its internal functions to make
certain that it is functioning and available if a safety demands is placed
on the system. It also provides valuable detailed diagnostic information to
the machine operators and maintenance personnel making troubleshooting
easier and thereby improving overall machine utilization.
Responsibilities Firmware development and support
Controllers Renesas, ST, Coldfire, Atmel,
Infineon, ARM7/9, Motorola, Hitachi, Siemens, PIC
Network Protocols ControlNet, DeviceNet, ProfiBus and
Ethernet/IP
Framework/Tool used WinCE Platform Builder, IAR, MULTI, KEIL, and
CodeWarrior
Technologies C/C++
OS ThreadX, WinCE, VxWorks,
Quadros
Duration June' 10 - till now
Location Onsite-Offshore
5 Title Glucose Engine
Description The Glucose Engine (GE) is a device used to monitor the glucose
count every five minutes. This data is provided to Host Interface (iPhone).
The glucose engine system consists of three components: the Sensor, the
Transmitter, and the Glucose Engine Receiver module. The Transmitter is a
reusable device that snaps into the Sensor Pod and wirelessly sends glucose
information measured by your Sensor to the Glucose Engine Receiver This raw
data is processed by the Algorithm module to get Glucose data and then the
raw value and the engineered value are stored in on-board non-volatile
memory. GE allows a user to view glucose engine module allows a user to
view stored records, read alert conditions, provide calibration data etc.
Apart from being responsible for initialization of Glucose Engine, it also
acts as an interface to know the current state of the Glucose Engine.
Requirement of this project was to implement the communications interface
as a series of host (currently iPhone) or test commands that can be sent
to/from the host (iPhone) to the glucose engine over the glucose engine's
UART serial interface.
Responsibilities - Requirement analysis, creating design documents
- Implementation of
Identify Device Preferences and Settings (IDPS) process over UART serial
communication
between iPhone and
Glucose Engine using iAp protocol.
- Implementation of
Authentication process over SPI between GE and Authentication Co-processor
using iAp protocol
- Implementation of Test interface for communication over UART with
GE
Framework/Tool used IAR
Technologies C++
Hardware MSP430
Duration April' 10 - Jun' 10
Location Offshore
6
7 Title System Services
Description Provides following different middle-ware services:
Data Manager: Data Manager provides the service to applications
to set/get the information to/from database. This
module uses database interface for database operation.
Polling Services: Polling Service provides timer services
scheduled at user specified interval which provides polling
mechanism for registered handler. This service provides two
types of timer :
1. Repeat Timer: calls handler repeatedly after specified interval expires
till the application is active.
2. One-shot Timer : calls user handler only once after specified interval
expires.
An application will register its handler with Polling Service and request
for scheduling its handler on specified timer interval.
Service Manager: Service Manager registers and initialize all the
basic services i.e. Data Manager, Process Life Manager and all resident
services on system boot-up. It also supports run time registration and
launching of a service. It also notifies that a service has started or
stopped. This service manager uses D-bus rather than binder which is used
by Android's Service Manager (provides access to only Android Framework's
services).
Plugin Manager: Android does not has any application framework to
manage loading/unloading of the plugins. Plugin Manager load all the
plugins which are required on system start-up by default.. It also
load/unload a specified plugin or plugins from a specified directory.
Logger Service: Android does not provide persistent logs. Logger
Service maintains all the logs(Android's Main, Radio, Event, Systems and
kernel logs) at one consolidated location in a NAND. This service starts
at boot-up time. This service reads /dev/log, /proc/kmsg, and /dev/main,
/dev/event, /dev/radio devices and writes to their file on NAND. For fast
writing and NAND longetivity mmap approached is used. It also provides
interface for log retrieval. Log retrieval functionality provides a log
viewer tool to see the run time logs like Android's Logcat.
Task Manager: Task manager processes application's task
asynchronously. Task manager registers application's tasks into a queue
then processes all task s sequentially.
Libraries: Created own containers, string, database, thread, task,
stream, file, mobile's application layer.
Responsibilities - Creation of architecture documents
- Designing
- Creation of project's build structure
- Implementation
- CXX and systemTesting
Framework/Tool used Android SDK, Eclipse, CXXUnit, D-bus,
Android's emulator, adb, ddms, mksdcard
OS Ubuntu, Fedora, Moblin
Languages C, C++, Ruby, JNI
Duration Feb' 09 - April'10
Location Client site(Sony India)
8 Title CUnit Testing
Description CUnit testing of different modules.
Responsibilities Environment setup, creating test code, test data and
testing
Framework/Tool used CUnit, Bullseye(Code Coverage)
Technologies C
OS Linux
Duration Aug' 08 - Jan'09
Location Offshore
9 Title EOT GPS Tracker
Description EOT GPS Tracker periodically sends the current GPS
position of EOT (End of Train) device to the server through SMS
using GSM/GPRS. It also communicates to server through any one of the
channels HTTP, FTP, TCP and UDP for handling the commands from
server for tracing GPS data, various debug and system status data. EOT
Tracker sends SMS to server on two different frequencies in USA
and Canada.
Responsibilities - Requirement analysis, creating design documents (HLD &
LLD)
- Implementation of sleep
control algorithm and interrupt handling
- Re-implementation of UDP
channel and SMS frequency handling
- Configuration and
handling of general purpose I/O
Framework/Tool used iSuite3 SDK, EOT GPS Tracker Evaluation kit,
and GPS Workbench
Technologies C
Hardware iTrax03 GPS Receiver and Siemens
GSM modem
Duration Jan' 08 - Jun' 08
Location Offshore
10 Title B6 DOP (Dilution of Precision) Predictor
Description Provides the user with a means of checking the GPS satellite
availability and quality up to 24 hours in advance on the ISO VT screen
(user terminal).
Responsibilities - Requirement analysis, creating design documents (HLD &
LLD)
- Parsing and processing
ALMANAC data from Satellites
- Implementation of DOP
computation algorithm
- Implementation of DOP data
store management
- Drawing satellite quality
graph
Platform Linux
Technologies C++
Duration Nov' 07 - Jan' 08
Location Offshore
11 Title B6 Unit Testing
Description Unit testing of various modules of B6 system.
Responsibilities Environment setup, creating test code, test
data and testing
Platform Linux
Testing Framework QtTestlib
Duration Aug' 07 - Oct' 07
Location Offshore
Title Tractor Simulator
Description A stand-alone application, which runs on PC to simulate GPS
receiver, DMU and VIU, required by BSAC (system controller). This simulator
communicates to BSAC using serial and CAN (IXXAT or NetCAN interfaces)
protocol.
Responsibilities - Requirement analysis, creating design documents (HLD &
LLD)
- Parsing and processing
ALMANAC data from Satellites
- Implementation of GPS, DMU
and VIU emulator
- Setup UART, IXXAT and NetCAN
channel
- Implementation of message
codec (ISO11783 and J1939 message)
- Implementation of vector
calculation
- Implementation of TCP/UDP
communication with Client tools
Framework/Tool used Qt 3.3, Valgrind, gdb, CANOe and CPP Unit
Technologies C++
Platform Linux
Duration Mar' 07 - Aug' 07
Location Offshore
12 Title CAN Messages on BSAC
Description Modifying the existing handling method of outgoing messages on
B3 (system controller) so that all messages which are not broadcast
periodically must be made available on request and for non broadcast
messages, the destination address must be set to the address of the ECU who
sent the request.
Responsibilities - Requirement analysis, creating design documents (HLD &
LLD)
- Re-implementation of
incoming and outgoing message handler
- Re-implementation of message
codec
- Implementation of request
handler
Tool used CANOe
Technologies C++
Platform Linux
Duration Feb' 07 - Mar' 07
Location Offshore
2 Title Multilingual AutoGuide Service Tool
Description The objective of this project was to provide installer and
Unicode support for displaying this existing tool in various languages.
When the install shield is run for the AutoGuide Service Tool, at a point
during the install process, the operator will be prompted to select the
language they want the interface displayed in.
Responsibilities - Requirement analysis, creating design documents
(HLD & LLD)
- Creation of DLL for each
language
- Re-implementation of
functionalities to provide Unicode support
Tool used Visual Studio .NET Technologies, VC++, Windows Forms,
Serial Communication and Unicode support
Duration Nov' 06 - Jan' 07
Location Offshore
1 Title B6 AM System
Description Displays real time movements of Tractor and field view using 2-
D and 3-D graphical display in both day and night modes. This system
provides following features:
A splash screen and progress bar must be displayed while the system loads
and detects the system settings.
A transparent virtual dashboard that displays machine data like
speedometer, digital clock, percentage of field worked, and distance till
the current run is completed.
3-D Map view (Perspective, Overhead and Aerial view).
A semi transparent virtual keyboard (QWERTY, ABC, Numerical and Country
layout) allows an operator to enter text, characters and numbers into the
system.
Responsibilities - Requirement analysis
- Implementation of progress
bar
- Implementation of 2-D and 3-
D motion of Tractor for different views
- Implementation of alarm if
there is any obstacle on the way
- Implementation of offset
error alarm
Framework/Tool used Qt4.2, OpenGL, gprof and kprof
Technologies C++
Platform Linux
Duration Sep' 06 - Nov' 06
Location Offshore
2 Title VIU (Vehicle Interface Unit)
Description VIU is the interface between the
BSAC (system controller) and the vehicle's steering system. BSAC gathers
and processes GPS signals and communicates positioning information to the
components responsible for steering the vehicle. The information is
translated to the vehicle's steering system through VIU4. VIU receives all
steering related commands from BSAC and control the steering systems
accordingly.
Responsibilities: - Requirement analysis, creating design documents
(HLD & LLD)
- Implementation of system
init module
- Setup CAN channel (CAN
controller) and UART serial communication
- Set A/D converter and
implementation of sampling method
- Implementation of ISRs for
host controller (Atmega128)
Framework/Tool used AVR Studio4, ICCAVR and gdb
Technologies C
Hardware Atmega128, SJA1000 (CAN controller)
Duration Nov' 05 - Aug' 06
Location Offshore
3 Title Edit Implement and Default Field Name on ISO-VT
Description Provides following features for the ISO-VT system (user
interface):
Direct Editing of Implement Data width, offset, and link length for an
existing implement
Warning user about Overwriting of Implement Data and blank field error
generation
Default Field Name, which allows the user to save the field with Temporary
as default field name and only one copy of Temporary, is maintained in the
system
Tool used embUnit
Technologies C++
Platform Linux
Duration Oct' 05 -Nov' 05
Location Offshore
Education:[pic]
Post Graduate Diploma in Embedded Systems & VLSI Design in Aug 2005
B. Tech. (Electronics and Communication Engineering) in the year 2004
PERSONAL DETAILS
Date of Birth 02 May 1980
Address Kanchan Pushp Complex, Ghodbunder Road, Navi Mumbai
References Available on request
Visa Status