
COURSEWORK
| Prajwal Dhannur | AUTHOR | ACTIVE |

20 / 3 / 2026
3D printing builds physical objects layer by layer from a digital design. I learned about STL files, slicer software, infill density, supports and PLA filament. I designed and printed a miniature model of the Minchu building at MARVEL lab using the Bambu Lab 3D printer.
Outcome: Successfully printed the model and understood the full 3D printing workflow from design to physical object.


An API allows two applications to communicate. I built a live Currency Converter using the ExchangeRate API that fetches real-time exchange rates. The app supports 11 currencies with a swap button and quick conversion chips built using HTML, CSS and JavaScript.
API: https://api.exchangerate-api.com/v4/latest/USD
Live: https://prajwaldhannur4-code.github.io/MARVEL_LEVEL0/currency_converter.html
Outcome: Learned how APIs work, how to use fetch() and parse JSON responses.

GitHub is a platform for hosting and collaborating on code. I forked the MARVEL git-task repository, found a bug in main.py where an extra +1 caused wrong output, fixed it, raised Issue #272 and opened Pull Request #273.
Outcome: Learned the complete open source workflow — fork, fix, issue and pull request.
The Linux terminal is a powerful text interface for interacting with the computer. I completed all subtasks on Ubuntu:
mkdir test && cd test
touch myfile.txt
for i in $(seq 1 100); do mkdir A$i; done # repeated for all 26 letters
ls | wc -l # Output: 2601
echo "Hello" > file1.txt && cat file1.txt file2.txt
Outcome: Learned mkdir, cd, touch, ls, cat, echo and for loops in bash.

NumPy is a Python library for working with arrays and matrices. I was given a scrambled matrix file with shape (200, 50) containing 10000 elements. Using three clues I decoded it into a hidden image:
import numpy as np
import matplotlib.pyplot as plt
data = np.load('decoded_array.npy')# Shape: (200, 50)
reshaped = data.reshape(100, 100) # Clue 1: reshape to square
transposed = reshaped.T # Clue 2: data is sideways
decoded = np.flipud(transposed) # Clue 3: end is beginning
plt.imshow(decoded, cmap='gray')
plt.show()
The decoded image revealed a robot face! Operations used: reshape, transpose, flipud.
Outcome: Learned NumPy array manipulation and how 2D arrays represent images.

I built a fully responsive personal portfolio webpage using HTML and CSS showcasing my projects (RC Plane, Maze Robot, Minchu 3D Print, Currency Converter), achievements (Mecronin 2nd place, IISc certificate) and GitHub profile.
Live: https://prajwaldhannur4-code.github.io/MARVEL_LEVEL0/
Outcome: Learned HTML, CSS, Flexbox, responsive design and GitHub Pages hosting.

Markdown is a lightweight markup language for formatting plain text using simple symbols like #, **, - and ```. I wrote a technical article on Introduction to 3D Printing covering types, slicing, settings and applications — posted on the MARVEL website.
Outcome: Learned complete Markdown syntax and wrote a structured technical article.
Tinkercad is a free browser-based circuit simulation platform by Autodesk. I built two circuits:
Circuit 1: Ultrasonic sensor measuring distance using sound waves. Formula: Distance = Duration × 0.034 / 2. Serial Monitor output: Distance: 78 cm
Circuit 2: Radar system — servo motor sweeps 0°-180° while ultrasonic sensor measures distance at each angle. Output: Angle: 45 | Distance: 38 cm
Outcome: Learned Tinkercad simulation, ultrasonic sensor working and servo motor control.


The L298N is a dual H-Bridge motor driver that lets Arduino control DC motors. PWM (Pulse Width Modulation) controls speed — higher duty cycle = faster motor. I connected L298N + BO motor + potentiometer to Arduino. Rotating the potentiometer gave full real-time speed control. Motor started spinning above 7V.
Outcome: Learned PWM, H-Bridge, L298N wiring and real-time motor speed control.
ESP32 is a powerful microcontroller with built-in WiFi — more capable than Arduino. I connected an LED to GPIO 26, uploaded web server code and ESP32 generated an IP address. Opening the IP in a browser gave ON/OFF buttons for full wireless LED control.
Outcome: Learned ESP32 web server, GPIO control and IoT fundamentals.
Soldering permanently joins electronic components using melted solder wire. I have prior experience from building a maze-solving robot where I soldered motors to wires. For this task I soldered a basic LED circuit on a perf board at MARVEL lab under coordinator supervision.
Outcome: Learned proper soldering technique, flux usage and safety procedures.

The 555 timer in astable mode generates a continuous square wave. Duty cycle is the % of time the signal stays HIGH. Using R1=4.7kΩ and R2=10kΩ:
Duty Cycle = (R1 + R2) / (R1 + 2×R2) × 100 = 59.19%
59.19% is the closest to 60% achievable with standard resistor values. Verified on the DSO oscilloscope.
Outcome: Learned 555 timer operation, duty cycle calculation and DSO usage.


A K-Map simplifies Boolean expressions visually. For a burglar alarm with Door (D) and Key (K) inputs:
| D | K | Alarm |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
K-Map result: Alarm = D · K' (Door open AND Key NOT pressed)
Built the circuit on Arduino with 2 push buttons. Alarm triggers only when door button is pressed without the key button.
Outcome: Learned K-maps, Boolean simplification and logic gate implementation.

I participated in the Do Drones Workshop at IISc Bengaluru conducted by the UAV Laboratory, Dept of Aerospace Engineering under the SwaYaan initiative by MeitY.
Duration: 09–13 December 2025 | Ref: RefSDC/2025-26/DODRONES-34
Topics: UAV introduction, aerodynamics, drone subsystems, multirotor assembly, flight simulator training and supervised flight operations.
Outcome: Hands-on drone assembly and flight training at India's premier science institute.

The L293D is a dual H-Bridge motor driver IC by Texas Instruments. Key concepts:
Outcome: Understood H-Bridge, PWM, pin configuration and protection circuits of L293D.
VR creates a fully immersive digital world — real world is replaced completely (Meta Quest, HTC Vive). AR overlays digital objects on the real world — real world still visible (Pokemon GO, Snapchat filters). MR combines both — virtual objects interact with real world (Apple Vision Pro).
Trends: Metaverse, standalone headsets, VR in healthcare and education, eye tracking, foveated rendering.
Indian Companies:
Outcome: Understood VR/AR/MR differences, tech stack and India's growing role in the space.
Sad Servers is "LeetCode for Linux" — real troubleshooting scenarios in a browser terminal. I solved the Command Line Murders mystery by reading clues from the crime scene file and using Linux commands to find the murderer.
cat crimescene # Read clues
grep "Annabel" people # Find witness
grep -rl "Annabel Sun" people # Find her ID
cat interviews/interview-[ID] # Read interview
echo [NAME] | md5sum # Verify answer
Commands used: cat, grep, grep -r, grep -l, ls, cd, echo, md5sum
Outcome: Learned how to use grep and Linux commands to search and process text files efficiently.

Express is a web framework for Node.js used to build web servers and APIs. I built a MARVEL Resource Library website where users can browse articles and books and view their account.
Features:
/api/resourcesHow to run:
npm install express
node index.js
# Opens at http://localhost:3000
Routes built:
GET / — Home pageGET /resources — All resourcesGET /resources/articles — Articles onlyGET /resources/books — Books onlyGET /account — User account pageGET /api/resources — JSON API endpointOutcome: Learned Express routing, serving HTML from Node.js and building REST APIs.

Prajwal Dhannur | D-P-001 Level 1 | UVCE MARVEL GitHub: https://github.com/prajwaldhannur4-code/MARVEL_LEVEL0