Skills

Master Intermediate Novice

Programming Languages

C Python C++ Dart Rust

32-bit Microcontroller

NXP LPC4078 ESP8266/12E/32 WiFi Chip ARM Cortex M4 STM32L4 TI CC1352R1 / CC1352P2 TI TM4C123G

Microprocessor

Raspberry Pi Beaglebone Black BG96 M18Q2F

Protocols

UART SPI I2C CAN CAN DBC MQTT HTTP/HTTPS Websocket TCP/IP UDP

Technology

GPS BLE Lidar OpenThread

Software

FreeRTOS CMake Unity (Unit Test) CMock Zephyr OS TI-RTOS OpenOCD Git Fake Function Framework Flutter Android Embedded Linux

Tools

Logic Analyzer STM32CubeIde VSCode Kiel uVision IAR Embedded Workbench Eclipse PCAN BUSMASTER

Experience

TuringSense

Firmware Engineer Intern • December, 2020 — Present

TuringSense is a pioneer is wearable sports technology and is revolutionizing training with innovative multi-sensor, high-speed full-body motion analysis.

  • Part of the core wearable teaming to improve throughput and performance for the NRF52840 microcontrollers

Links

Blue River Technology

System Software Intern • May, 2020 — August, 2020

Blue River Technology is a smart agriculture based company that has developed See and Spray technology in collaboration with existing John Deere equipments

  • Worked with the development team on the See and Spray Technology to design and implement algorithms and software for a real-time robotics system using C++17 and Python.
  • Wrote and tested software on Nvidia based linux systems.
  • Assisted in developing tools to enable system introspection and data processing for CAN J1939.

Links

C++17 Python CAN J1939 Nvidia Linux

San Jose State University

Research Assistant • Oct, 2019 — May, 2020

Implemented a Real-Time Monitoring system for Firefighters in high-risk environments using various development boards

  • Integrated the STM32L4 (B-L475E-IOT01A with onboard sensors), Carbon Monoxide sensor with Cellular Modem (BG96 and AT&T Module) and Google / AWS Cloud.
  • Used the NRF Thingy 91 with Zephyr OS to recreate the above functionality.

Links

Carbon Monoxide Sensor GPS LTE MBED OS Zephyr OS

Spartan Hyperloop, San Jose State University

Control and Communications Lead • Sept, 2010 — Present

Spartan Hyperloop is a club at San Jose State University that builds pods to compete in the Hyperloop competition

  • Transferred data from the NUCLEO-F746ZG over Ethernet UDP to the host computer using the TFTP Server.
  • CAN Drivers were used to communicate within the system peripherals.
  • Worked on the state design of the Spartan Hyperloop pod.

Links

Ethernet UDP CAN MBED OS STM32 HAL

Maroon Electric

Embedded Systems Developer • April, 2018 — July, 2019

A Home Automation startup aimed at making modular and cost effective smart switches

  • Successfully achieved a multi-tiered architecture between the hardware, server and mobile application.
  • ESP12E Smart Switch functionality and integration with Raspberry Pi local database.
  • Local and cloud based Parse Server instances were successfully setup.
  • Slave devices (ESP12E) were controlled via custom made Android applications (Native and Flutter).

Links

ESP12E Bluetooth PlatformIO Flutter Android HTTP/HTTPS Websocket

Earth Energy EV

Embedded Systems Intern • Dec, 2017 — March, 2018

An Electric Bike startup aimed at making a sturdy and cost effective solution for Indian Markets

  • Implemented a real-time data logging system to get data from the BLDC Motor and Motor Controller.
  • Implemented driver based indexes to modify the system and battery consumption parameters as per customer’s driving style.
  • Worked on the auxiliary system on the Electric Bike to make it a real-time responsive system.
  • Integrated the bike with GPS, Bluetooth using Arduino and Raspberry Pi as controllers.

Links

GPS Bluetooth 2G/3G/LTE Arduino Raspberry Pi Nano Python FTP

Education

San Jose State University

Computer Engineering, MS • 2019 — 2021

Amity University

Electronics and Communication, BTECH • 2013 — 2017

Projects

Master's Project • August 2020 — Present

To create a peer to peer mesh based network using Google’s OpenThread framework to monitor large crowds, as well as to collect and forward data to healthcare personnel for further analysis and diagnosis.

  • Architectured the OpenThread CLI project for Texas Instruments CC1352R1 and CC1352P2 chips using CMake with the ARM GCC toolchain, OpenOCD debugging and unit-testing frameworks.
  • Interfaced the SGP30, SPEC CO sensors with the onboard sensors on the B-L475E-IOT01A STM32 board using the MBED OS.
  • Configured the STM32 board as an I2C Slave device for the CC1352R1 board while simultaneously sending data over TCP to a local server for data storage.

Additional Links

TI-RTOS OpenOCD SGP30 Spec CO MAX30101 (Heartrate) B-L475-IOT01A MBED OS Unit-Test and Mock

Individual Project • March, 2020 — Present

To create an enterprise-level firmware stack from scratch using the GCC ARM toolchain

  • Linker scripts were written and customized for C and C++ language support and the newlib library. Specific compiler and linker flags were used to optimize for the code size and speed.
  • ARM CMSIS and FreeRTOS software stacks were used with the project and integrated with buildsystems like CMake and Meson to compile, flash and debug the target board using ST-Link Programmer, OpenOCD and GDB.
  • Platform agnostic interfaces and hardware bring-up for the STM32L4 and LPC4078 microcontrollers.

Additional Links

STM32 GPIO UART ARM OpenOCD FreeRTOS CMake C++17

CMPE243 Team Project • Feb, 2020 — May, 2020

To develop an autonomous RC Car which can navigate from the source destination to its selected destination using Sensors, Actuators and GPS.

  • Each controller was designed as a self-contained module that handled specific tasks.
  • Message passing between each node (SJTwo Board) was done over CAN (Controller Area Network) and messages were auto-generated using the CAN DBC format.
  • Primarily worked on the Geological Controller and interfaced the GPS, Bluetooth and Compass hardware.
  • Worked on the Haversine algorithm, Waypoints algorithm and the Driver Controller logic.

Additional Links

UART I2C CAN GPS Compass Bluetooth NXP

Generate PUF using NAND Flash

CMPE240 Team Project • Sept, 2019 — Dec, 2019

Generate a Hardware based PUF/Secure Key by simulating Read and Write Disturb on a SLC NAND Flash.

  • NAND Flash K9F1G08U0E was bit banged using the B-L475E-IOT01A board.
  • Program Disturb was successfully recreated on the SLC Flash and the PUF was generated after running the Program Disturb for 10000 cycles.
  • IEEE based research paper was written and submitted for the CMPE 240 course.

Additional Links

STM32 NAND Flash PUF MBED OS

CMPE244 Team Project • Oct, 2019 — Dec, 2019

Create a MP3 Player with an LED Matrix and OLED Screen for output. A Music based game was to be created and playable on the LED Matrix.

  • OLED Drivers using the u8g2 library was written and tested on the in-house SJTwo Board (NXP 4078).
  • APDS-9960 Gesture Sensor and Accelerometer Sensor (MMA8452Q) drivers were written to create the music based game
  • Mobile application was created using Flutter and Bluetooth was used to send Accelerometer and Joystick sensor data to the SJTwo Board.

Additional Links

OLED NXP I2C Flutter Bluetooth

Individual Developer • Dec, 2018 — Jun, 2019

Build an IoT based Plant Watering system that can be controlled remotely as well as perform watering tasks automatically

  • Successfully built and integrated the frontend (Mobile App), backend (Parse Server) and Slave devices (NodeMCU – ESP12E)
  • Backend systems were configured with ACLs to handle multiple clients using the same device as well as to add multiple slave devices under the same client.
  • Client (Mobile App) and Slave device had the ability to send and receive updates in real-time using the Parse Server Websocket integration.
  • Slave devices had RTC integrated to store alarm information and water the plant at a particular time during the day.

Additional Links

ESP12E RTC Flutter ACL HTTP/HTTPS Websocket

Interests

Neural Networks

Game Programming

  • SDL (C)
  • SFML (C++)
  • Godot Game Engine