Skip to content

Demo Day

Time: 135 min

Learning Objectives

By the end of this lab you will be able to:

  • Present technical work clearly and concisely
  • Demonstrate a working embedded system under test conditions
  • Evaluate performance against defined success criteria
  • Analyze what worked, what failed, and why
  • Learn from other implementations of the same problem

You will prepare a short demo, run under competition conditions, and present decisions and results. The focus is on reliability and communication.


Why This Lab Matters

Engineering isn't finished when a system works once. It is finished when you can demonstrate, explain, and defend it. Demo Day rewards clear technical communication, measurable performance, and reliable execution under constraints.


Pre-Lab Preparation

Prepare

  • [ ] Test your robot on practice track
  • [ ] Backup your code (USB drive or git)
  • [ ] Charge batteries / bring spares
  • [ ] Prepare 2-minute presentation

Presentation Content (2 min)

  1. Approach (30 sec): How does your robot work?
  2. Challenges (30 sec): What was hardest?
  3. Data (30 sec): What did you learn from measurements?
  4. Demo (30 sec): Quick highlight or lesson learned

Checklist

  • [ ] Robot charges and turns on
  • [ ] Code loads correctly
  • [ ] Button starts the robot
  • [ ] LEDs show state correctly

The Competition

Competition Track

See the full track specification with dimensions and construction guide. → Track Specification

┌─────────────────────────────────────────────────────────────────┐
│                                                                 │
│                    DELIVERY ROBOT CHALLENGE                     │
│                                                                 │
│   ┌─────────┐                              ┌─────────┐          │
│   │WAREHOUSE│ ════LINE════ ┐               │ ZONE A  │          │
│   │ (START) │              │               │(dropoff)│          │
│   └─────────┘              │    ┌────┐     └─────────┘          │
│        ▲                   ├────│    │                          │
│        │                   │    └────┘     ┌─────────┐          │
│        │                   │               │ ZONE B  │          │
│        └───────────────────┴════LINE═══════│(dropoff)│          │
│                                            └─────────┘          │
│                                                                 │
│   SCORING:                                                      │
│   ────────────────────────────────────────────────────          │
│   Complete delivery to any zone ............... 60 pts          │
│   Correct zone .............................. +10 pts           │
│   Return to warehouse ....................... +10 pts           │
│   Time bonus (< 30s) ........................ +10 pts           │
│   Time bonus (< 20s) ........................ +10 pts           │
│   Smoothness (no wobble) .................... +5 pts            │
│   Clear code explanation .................... +5 pts            │
│   ────────────────────────────────────────────────────          │
│   Maximum possible: 110 pts                                     │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Schedule

Time Activity
0:00 - 0:15 Setup & practice runs
0:15 - 0:30 Competition Round 1
0:30 - 0:45 Break & adjustments
0:45 - 1:00 Competition Round 2
1:00 - 1:15 Final Round (top teams)
1:15 - 1:45 Presentations
1:45 - 2:00 Awards & reflection

Competition Strategy

Pacing and Battery Management
  • Start conservative. Use a lower base speed (60-70%) for Round 1 to guarantee a completed run. Increase speed only in later rounds once you've proven reliability.
  • Charge between rounds. Plug in your battery during breaks. Even 10 minutes of charging helps. Voltage drop changes Kp effectiveness.
  • Calibrate fresh each round. Run robot.imu.calibrate() right before each attempt. Temperature changes between rounds affect gyro bias.
  • Have a fallback plan. If your fancy state machine fails, have a simpler version ready (e.g., just line follow + stop at junction). 60 points for a basic delivery beats 0 for a failed attempt.
Presentation Coaching

A clear technical demo has three parts:

  • State what will happen before you start. ("Our robot will follow the line to the first junction, turn left, and deliver to Zone A.") This shows you understand your system.
  • Narrate during the demo. ("It's detecting the junction now... turning... back on the line.") This shows you can read your robot's behavior in real time.
  • Explain one number. Show one measurement that drove a design decision ("We set Kp=32 because our data showed oscillation above 40"). This is more convincing than listing features.

Common mistakes: Reading slides word-for-word, saying "it usually works," not explaining WHY you chose an approach.

Day-of Troubleshooting
  • Robot won't start / code won't upload: Try a different USB cable. Power cycle the robot (switch off, wait 3 seconds, switch on). If mpremote connect list shows nothing, try a different USB port.
  • Robot behaves differently than yesterday: Battery voltage changed overnight. Recalibrate everything. Check if the track surface is different (gym floor vs classroom floor).
  • Line following works but turns are off: Temperature affects gyro calibration. Calibrate immediately before your run, not 10 minutes before.
  • Robot works on practice track but fails on competition track: Track geometry may differ. Check if the tape width or curve radius is different. Adjust OBSTACLE_DISTANCE or junction detection sensitivity.
  • "It worked once but now it doesn't": This is the #1 demo day complaint. It usually means a timing issue — add a time.sleep(0.5) after calibration and before starting.

Part 1: Setup & Practice (15 min)

Task 1.1: Pre-Competition Checklist

Check Status
Robot powers on
Code loads without errors
Button starts mission
LEDs indicate states
Gyro calibration works
Line following is smooth
Junction detection works
Turns are accurate

Task 1.2: Practice Run

Use the practice track to: 1. Verify line following works 2. Test junction detection 3. Check turn accuracy 4. Time a complete run

Practice times: - Run 1: _ seconds - Run 2: seconds - Run 3: __ seconds

Checkpoint — Ready to Compete

All checklist items are checked, and you've completed at least 2 successful practice runs. Your times should be consistent (within ±5 seconds). If times vary wildly, check battery charge and recalibrate.


Part 2: Competition Rounds

Round 1: Qualifying

Each team gets 2 attempts. Best score counts.

Attempt Reached Zone Correct Zone Returned Time Smooth Score
1 s
2 s

Round 2: Challenge

Same challenge, fresh start.

Attempt Reached Zone Correct Zone Returned Time Smooth Score
1 s
2 s

Final Round (if applicable)

Top teams compete for best time.

Team Time Notes
Checkpoint — Competition Complete

You should have scores recorded for all attempts. Even if your robot didn't complete the course, you've learned something — document what went wrong and why in your notes.


Part 3: Presentations (30 min)

Background: Engineering vs Hobby

The difference between a hobbyist and an engineer: "It works" vs "Here's data proving it works under specified conditions." Present ONE number that proves your approach: mean tracking error, success rate over N runs, or lap time consistency. The engineering process you followed — measure, model, design, validate — is the transferable skill, not the specific robot.

→ Deep dive: Data Analysis Overview

Your Presentation (2 min)

Structure:

┌─────────────────────────────────────────────────────────────────┐
│                                                                 │
│   MINUTE 1: Technical Approach                                  │
│   ─────────────────────────────                                 │
│   • "Our robot uses [state machine / P-control / etc.]"         │
│   • "Key parameters: Kp = ___,  Base speed = ___"               │
│   • "We detect zones by [barcode / junction count / etc.]"      │
│                                                                 │
│   MINUTE 2: Lessons Learned                                     │
│   ─────────────────────────────                                 │
│   • "Biggest challenge was ___"                                 │
│   • "Data showed us that ___"                                   │
│   • "If we did it again, we'd ___"                              │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Evaluation Criteria

Criterion Points Your Score
Clear explanation of approach /2
Technical accuracy /2
Lessons learned / reflection /2
Time management (under 2 min) /1
Total /7

Notes from Other Teams

Team Interesting Technique Question to Ask
Checkpoint — Presentation Delivered

You presented your approach in under 2 minutes and answered at least one question. You noted at least one interesting technique from another team.


Part 4: Reflection

Your Robot's Journey

┌─────────────────────────────────────────────────────────────────┐
│                                                                 │
│   Robot Unboxing                                                 │
│   └─► First blink, first beep, first movement!                  │
│                                                                 │
│   GPIO & Sensors                                                 │
│   └─► Discovery: How GPIO and optocoupler sensors work          │
│                                                                 │
│   Timing & Ultrasonic                                            │
│   └─► Discovery: Blocking code kills real-time control          │
│   └─► FIX: Non-blocking patterns, rate scheduling               │
│                                                                 │
│   Make It Move                                                   │
│   └─► Discovery: Time-based turns are unreliable                │
│                                                                 │
│   Seeing the Line                                                │
│   └─► P-control works! Discovery: What does Kp do?              │
│                                                                 │
│   Precise Turns + Data Logging                                   │
│   └─► Gyroscope + calibration + drift                           │
│   └─► Stop guessing, start measuring                            │
│                                                                 │
│   State Machines                                                 │
│   └─► Complex behavior + obstacle avoidance, clean code         │
│                                                                 │
│   Hardware Abstraction + Architecture                            │
│   └─► Peek under the hood + professional code organization      │
│                                                                 │
│   Weeks 9-11: Project Phase                                     │
│   └─► Creative project - make it yours!                         │
│                                                                 │
│   Week 12: Demo Day                                             │
│   └─► Show what you built!                                      │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Final Reflection Questions

  1. What was your proudest moment?

  1. What was the hardest bug to fix?

  1. What would you do differently?

  1. What did you learn about embedded systems?

  1. What surprised you most?


Course Summary

Skills You Developed

Skill Lab Real-World Application
Basic I/O, LEDs, PWM 01 Any microcontroller project
GPIO, sensors, optocouplers 02 Any sensor-based system
Timing, non-blocking code 03 All real-time systems
Motor control, open-loop 04 Robotics, drones
P-control, feedback loops 05 Industrial control
IMU, data-driven tuning 06 Drones, VR, phones
State machines 07 Any complex system
Abstractions + architecture 08 Professional software
System integration 09-11 Complete products

The Engineering Mindset

┌─────────────────────────────────────────────────────────────────┐
│                                                                 │
│   BEFORE THIS COURSE:            AFTER THIS COURSE:             │
│                                                                 │
│   "I'll try random things"       "I'll measure and analyze"     │
│                                                                 │
│   "It seems to work"             "Data shows it works"          │
│                                                                 │
│   "Why doesn't this work?!"      "Let me check the logs"        │
│                                                                 │
│   "Code in one big file"         "Modules with clear purpose"   │
│                                                                 │
│   "Guessing parameters"          "Systematic tuning"            │
│                                                                 │
│   YOU ARE NOW AN EMBEDDED SYSTEMS ENGINEER!                     │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Awards

Award Team Notes
🥇 Fastest Delivery
🥈 Runner Up
🥉 Third Place
🎯 Most Accurate Turns
📊 Best Data Analysis
💻 Cleanest Code
🎨 Most Creative Solution
🔧 Best Debugging Story

What's Next?

Continue Learning

Path Next Steps
More Embedded ES102 (Real-Time Systems), ES103 (Advanced Control)
Robotics ROS2, SLAM, Computer Vision
Machine Learning Sensor fusion, Kalman filters, neural networks
Hardware PCB design, custom sensors
Projects Drones, autonomous vehicles, IoT

Keep Your Robot!

Ideas for future projects: - Add camera for vision - Implement obstacle mapping - Add wireless control app - Try different challenges (maze solving, sumo) - Teach someone else!


Deliverables

Submit:

  1. Final code (zipped project folder)
  2. All modules
  3. config.py with final tuned values
  4. main.py

  5. Calibration data

  6. speed_calibration.csv
  7. kp_tuning results

  8. Documentation (1 page)

  9. State machine diagram
  10. Final parameters (Kp, speeds, etc.)
  11. Lessons learned

  12. Presentation slides (optional)


Final Logbook Entry

Date: _____

Competition Results: - Best score: _ - Best time: ___

Key Learnings: 1. ______ 2. ______ 3. _________

What I'm Most Proud Of:


Instructor Signature: ___


Recap

A working demo is proof of integration, clear explanation is part of engineering quality, and reflection turns this project into lasting skill.


Congratulations!

┌─────────────────────────────────────────────────────────────────┐
│                                                                 │
│   🎓 ES101 COMPLETE 🎓                                          │
│                                                                 │
│   You started with a box of parts.                              │
│   You end with a working robot and engineering skills.          │
│                                                                 │
│   From blinking LEDs to autonomous delivery.                    │
│   From guessing to measuring.                                   │
│   From spaghetti code to clean architecture.                    │
│                                                                 │
│   Welcome to Embedded Systems Engineering!                      │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Embedded Systems (ES101) - Óbuda University


← Your Robot | Labs Overview | Course Home