Month 2 Box - Hardware 101 w/Soldering, PCB Design & more

Lesson 9 – Building the DIY UNO (Part 3): Testing & Programming Your Custom Board

Lesson 9 – Building the DIY UNO (Part 3): Testing & Programming Your Custom Board


Welcome to the final step of your DIY Arduino-compatible UNO board project! In this lesson, we’ll walk through the multimeter verification, programming setup, and your first successful code upload to the ATmega328P microcontroller on your hand-built board. This is where your circuit becomes a functioning device—blinking LEDs and all.

🧠 What You’ll Learn

How to test and verify all critical power and signal paths with a multimeter

You’ll use DC voltage mode and continuity mode to check power delivery to the microcontroller, verify ground connections, and confirm that your crystal oscillator and reset button are functioning as expected.

How to use your HERO or Arduino UNO as an ICSP programmer

You’ll learn how to wire the HERO/UNO to the ATmega328P using ICSP (In-Circuit Serial Programming) and configure the Arduino IDE to burn the bootloader and upload sketches.

How to upload and modify your first program on the DIY UNO

We’ll upload the classic "Blink" sketch and verify that the onboard LED toggles as expected. Then, you’ll tweak the delay times as an exercise in modifying code.


🔧 Hands-On Practice

Here’s what you’ll do during this lesson:


✅ Multimeter Testing

  • Measure 5V at the ATmega328P VCC pin
  • Verify continuity across GND pins
  • Check oscillator and reset pin behavior


🔌 Wiring HERO/UNO as an ISP Programmer

  • D10 → Reset
  • D11 → MOSI
  • D12 → MISO
  • D13 → SCK
  • 5V and GND connections


🖥️ Burning the Bootloader in Arduino IDE

  • Tools > Board: Arduino UNO
  • Tools > Programmer: Arduino as ISP
  • Tools > Burn Bootloader

💡 Uploading Blink Sketch

  • Open Blink (File > Examples > 01.Basics > Blink)
  • Upload to the DIY UNO (Sketch > Upload Using Programmer)
  • Watch your LED flash—proof your board is alive!



💡 Troubleshooting Tips

If your LED doesn’t blink:

  • Recheck your ICSP wiring (MOSI, MISO, SCK)
  • Confirm that the reset pin is properly pulled low when uploading
  • Ensure the ATmega328P is seated snugly in the socket

If "Burn Bootloader" fails:

  • Double-check the Programmer setting in the IDE
  • Inspect Reset → D10 jumper wire for firm connection



🔄 Reflect and Review


  • Did your multimeter confirm proper voltage and continuity?
  • Were you able to upload code and see your board respond?
  • How did it feel to bring your DIY circuit to life?



📚 Homework Assignment


  • Modify the Blink sketch to change the delay values and experiment
  • Research what a bootloader does and why it’s necessary for microcontroller programming