An Aspiring Embedded Software Engineer with entry-level experience in C/C++ programming and microcontrollers. I'm passionate about creating efficient embedded solutions and enhancing hardware/software performance. I'm eager to contribute my skills to a dynamic team and tackle challenging projects.
Problem: Traditional vehicle body functions (indicators, wipers) face wiring complexity and communication issues.
Solution: Implemented CAN protocol for efficient and reliable communication with fault recovery and noise reduction.
Implementation: Used four ARM-based boards with sensors, actuators, and CAN transceivers for seamless data transfer and real-time control.
Key Technologies: ARM7 Microcontrollers, CAN protocol, Embedded C
Code Snippet (Example - CAN):
void can1_init()
{
VPBDIV = 1; // PCLK = CCLK
PINSEL1 |= (1 << 18); // P0.0 as RD1
PINSEL1 &= ~(1 << 19); // P0.1 as TD1
C1MOD = 0x01; // Enter Reset Mode
AFMR = 0x02; // Bypass Filter Mode (Accept all messages)
C1BTR = 0x001C001D; // 125 Kbps
C1MOD = 0x00; // Normal Mode
}
void can1_tx(u32 id, u32 rtr, u32 dlc, u32 byteA, u32 byteB)
{
C1TID1 = id;
C1TFI1 = (dlc << 16) | (rtr ? (1 << 30) : 0);
if (!rtr) {
C1TDA1 = byteA;
C1TDB1 = byteB;
}
C1CMR = (1 << 0) | (1 << 5); // Start Transmission
while (!(C1SR & (1 << 3))); // Wait for TX complete
}
void can1_rx(u32 *id, u32 *rtr, u32 *dlc, u32 *byteA, u32 *byteB)
{
while (!(C1SR & 0x01)); // Wait for RX data
*id = C1RID;
*rtr = (C1RFS >> 30) & 1;
*dlc = (C1RFS >> 16) & 0xF;
*byteA = C1RDA;
*byteB = C1RDB;
C1CMR = (1 << 2); // Release RX buffer
}
View Project on GitHub
Problem: Traditional coconut farming relies on manual labor for weeding and herbicide spraying, leading to physical strain and health risks.
Solution: An autonomous rover automates these tasks with precision, reducing labor and chemical exposure.
Implementation: Equipped with ultrasonic sensors, a microcontroller-based motor system, and a 16Ah battery, the rover operates autonomously.
Key Technologies: Arduino, Ultrasonic Sensors, Motor Control, Autonomous Navigation
Problem: Manual monitoring of pulp levels and water jet cutting in paperboard manufacturing causes inefficiencies.
Solution: Automated system using an Arduino Uno for real-time monitoring, precise level control, and optimized cutting.
Implementation: Ultrasonic sensors detect pulp levels, and Arduino controls the motor and water jet cutter.
Key Technologies: Arduino Uno, Ultrasonic Sensors, Motor Control, Water Jet Cutting
Gained comprehensive knowledge and hands-on experience in embedded software and hardware development.
Check out my projects and contributions on GitHub:
shyamganesh-ks darkweb-lordEmail: ksshyam03435@gmail.com
LinkedIn: linkedin.com/in/shyamganeshks
HackerRank: hackerrank.com/profile/shyamganeshks