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 :)
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 Loggerhttps://github.com/VedantParanjape/esp-wifi-logger
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.
Synchronous Music Playerhttps://github.com/VedantParanjape/audio-streamer
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.
Console Chat apphttps://github.com/VedantParanjape/Chat-Server-and-Client
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.
ASK Demodulator using SDRhttps://github.com/VedantParanjape/sdr-demodulator
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.
PID Plotter for ESP32https://github.com/VedantParanjape/pid-tuning-gui
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.
Google Summer of Code 2020 participant with BeagleBoard.orgbeagleboard.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.
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
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.