Vedant Paranjape

Electronics Engineering student

About Me

Hi, I am Vedant, currently studying Electronics Engineering at VJTI, Mumbai. I have a keen interest in Embedded systems, and Robotics.

I am well versed in: C, C++, Python, Linux :)

Projects

Intuitive language for PRU which compiles down to PRU C.

The PRU is a dual core micro-controller system present on the AM335x SoC which powers the BeagleBone. It is meant to be used for high speed jitter free IO control. Being independent from the linux scheduler and having direct access to the IO pins of the BeagleBone Black, the PRU is ideal for offloading IO intensive tasks.

Programming the PRU is a uphill task for a beginner, since it involves several steps, writing the firmware for the PRU, writing a loader program. This can be a easy task for a experienced developer, but it keeps many creative developers away. This can be achieved by implementing a language on top of PRU C. It will directly compile down to PRU C. This could also be solved by implementing a bytecode engine on the PRU, but this will result in waste of already limited resources on PRU. With this approach, both PRU cores can be run independent of each other.

ESP32 WiFi logger - Log messages over WiFi, using either TCP, UDP or Websockets

ESP32 is cheap microcontroller with WiFi, It has a dual core processor clocked at 160Mhz. This is a ESP-IDF component which can logs system generated log messages and normal log messages, over WiFi, using either UDP, TCP, or Websockets. This is user-configurable using menuconfig. Follows ESP-IDF log color pattern for different log levels.

A C++ based application which plays a audio file in a synchronous manner on various connected client devices to boost the overall audio output. It Uses Boost.Asio for networking and Boost.Thread for multi threading. Files are sent over TCP, and control signals are broadcasted over UDP This is a multithreaded synchronous server, which uses Boost.Thread, and Boost.Asio to create a cross-platform app, instead of using OS specific networking API.

Instant messengers have become a daily part of our life. We cannot imagine a life without Whatsapp, Telegram, Hike, etc. I was always curious about their working, so I spent some time and learnt about their theory of implementation. Equipped with the right knowledge I have created a very basic implementation of instant messengers

Implemented a command line chat app using Windows Networking API and WinSOCK. Uses TCP Sockets to transmit data between connected clients. Server has a multithreaded architecture, thus can handle multiple clients at the same time. It uses pthread to implement a synchronous TCP server.

Implemented Amplitude Shift Keying(ASK) demodulator using rtl-sdr(software defined radio) to captures rf data samples transmitted by a 434 Mhz module. Transmitted data follows UART data packaging scheme, it is then encoded by 434 Mhz RF Transmitter module. It shows a amplitude vs time plot for recieved data, with a normalised graph.

Custom GUI app to plot and set PID values and pid constants, pid control loop running on a ESP32. Created a ESP-IDF component to push and receive pid data.

Experience

Google Summer of Code 2020 participant with BeagleBoard.org

beagleboard.org

Open Source Developer

June 2020 - Present

Selected through Google Summer of Code 2020

Built a statically typed, compiled language called simpPRU for TI’s am335x PRU(programmable real time unit). Used bison, flex to create parser and lexer, then converted code down to C, rather than ASM, because pru-gcc toolchain is quite mature.

simpPRU has a syntax similar to python, thus making it easier for a beginner to start coding for the PRU, which usually involves in depth knowledge of Linux API’s and low level register manipulation.

Extensively used Linux Kernel's Remoteproc framework Distributed it through Debian packages, and setup CI/CD using docker and github actions to automate build and release process.

Acuradyne

Intern

July 2019 - September 2019

Built TCP network stack for IoT Devices, increased efficiency by 30%

Implemented Synchronous TCP server using Boost.Asio(C++) and Boost.Thread(C++). Implemented a tool to calculate round trip time(RTT) of tcp packets

Education

VJTI, Mumbai

BTech Electronics Engineering

2018 - 2022

Established in 1887 as Victoria Jubilee Technical Institute, VJTI has pioneered India’s Engineering education, research and training ecosystem. Pre-independence, VJTI had been instrumental in driving industrial growth throughout united India. Post-independence, VJTI played a pivotal role in setting up IITs and RECs of India and strengthened technology excellence of country.

Currently I am in Third year of my college, I have been a active member of Society of Robotics and Automation (SRA), premier technical club of my college. My activities there involve, conducting workshops and seminar for Juniors, and working on amazing projects in Robotics and Embedded systems.