Car Dashboard Simulation Using CAN Bus
Embedded C, PIC18F4580, CAN, UART, ADC, CLCD, Digital Keypad
Developed an automotive dashboard system using three PIC18F4580-based ECUs communicating over the CAN protocol. Implemented ADC to acquire vehicle speed and engine RPM using potentiometers, while a digital keypad was used for gear selection and turn indicator control. Designed a Master ECU to receive CAN messages from both ECUs and display real-time vehicle information on a CLCD. Used UART with Tera Term for debugging and validating CAN communication between the ECUs.
View on GitHubCar Black Box
Embedded C, PIC18F4580, I2C, UART, ADC, EEPROM, DS1307 RTC
Developed an embedded vehicle event logging system using PIC18F4580 to monitor and record vehicle information such as speed, gear, and time. Implemented event storage with timestamps in EEPROM using I2C and DS1307 RTC. Added View Log, Download Log, Clear Log, and Set Time features using a matrix keypad and CLCD. Used UART with Tera Term to download and view stored logs.
View on GitHubUSB Device Driver for Linux Kernel
C, Linux Kernel, Makefile, dmesg, printk
Developed a custom USB device driver as a Loadable Kernel Module (LKM) for Linux. Implemented USB device detection using Vendor ID and Product ID, handled probe/disconnect events, and explored character driver operations with kernel logging using printk and dmesg. Gained hands-on experience in USB device detection and Linux kernel driver development.
View on GitHubLinux Mini Shell
C, Linux System Programming, System Calls, Signals, Pipes, Process Management
Developed a Linux command-line shell in C supporting built-in and external command execution. Implemented process creation and management using fork() and waitpid(). Added signal handling, pipes, background process handling, process tracking, and command parsing. Gained hands-on experience with Linux system calls, process management, file descriptors, and IPC concepts.
View on GitHubSteganography
C, File Handling, Bit Manipulation
Implemented message encoding and decoding inside image files using bit-level manipulation and file operations. The project focused on secure data hiding, file integrity, and understanding how data can be stored in binary formats.
View on GitHubInverted Search
C, Hashing, Linked Lists, Data Structures
Created a file indexing system that stored words with their file locations using hashing and linked lists. It improved my understanding of search optimization, memory handling, and efficient data organization in C.
View on GitHubArbitrary Precision Calculator (APC)
C, Linked Lists, Dynamic Memory Allocation
Built a large-number calculator using dynamic memory and linked-list-based arithmetic operations. The project involved addition, subtraction, multiplication, and division for very large integer values, reinforcing core programming and memory-management concepts.
View on GitHub