Eager to embark on a new journey as an Embedded Software Engineer, with hands-on experience in embedded systems development. Proficient in C, familiar with RTOS, EMBEDDED LINUX and ARM Cortex microcontrollers. Eager to apply skills in delivering high-quality embedded software solutions.
Training Projects
Set up host-to-device and device-to-host communication.
An interrupt-driven state machine is implemented to obtain the
make and break codes for each key press and release.
Created a look-up table for decoding make codes and break codes.
Learned and implemented interrupt-based software queues for UART transmission and reception.
Created separate queues for transfer from the software buffer to UART Tx FIFI and UART Rx FIFO to the software buffer.
Developed a driver code and interfaced AT24C256 with ARM Cortex M3 micro controller.
Implemented a state machine for I2C.
Developed driver codes for EEPROM operations.
Developed low-level driver for SPI
Ported an available STM 32 based driver code for SSD1306 OLED into another platform.
Ported an available DHT11 driver code for STM32 platform to LPC1768 platform.
Used Logic analyzer and verified the timing diagram and frame format of DHT11.
Ported an available BMP280 driver code for STM32 platform to LPC1768 platform.
Designed and implemented a Command Line Interface (CLI) application to provide interaction with a specific functionality .
Implemented DMA transfers on the LPC1768 microcontroller to optimize data handling between peripherals and memory, significantly reducing CPU overhead.
Configured DMA channels for ADC data acquisition, enabling continuous data sampling without interrupting the main program flow.
Demonstrated Interrupt and Task synchronization using binary
semaphores.
Implemented mutual exclusion between two or more tasks accessing common resources and demonstrated using UART transmit buffer.
Linux System Programming using File system, Directories, Process, Signals, Memory management, Thread, Fork, IPC - Pipes, Named pipes -FIFO, Shared Memory, Message queue,Socket Programming.
Utilized GNU toolchain to cross-compile C code for an ARM
Cortex-M microcontroller.
Created a binary file using a custom makefile, bypassing the use of
an IDE (LPCXpresso)
Cross-compilation and installation of a custom Linux kernel and OS on the Beagle Bone Black.
Implemented boot loader and root file system setup.
Provided guidance and mentorship, fostering research, problem-solving,
and teamwork skills in students' projects and acted as a faculty Advisor to
several batches.
Led hands-on lab sessions with oscilloscopes and multimeters for
waveform analysis and circuit measurements.
Organized technical seminars and projects, promoting knowledge sharing
and innovative thinking.
Programming Language: C
Embedded C Bare metal programming
Protocols: I2C, SPI, UART
Low-level driver development
Linux System Programming
BOARDS: LPC1768, BeagleBone Black
Embedded Tools: LPCXpresso IDE, Eclipse