Overview

This documentation provides a simplified guide to building an AVR programmer with an ATtiny44A microcontroller. Follow the steps carefully and refer to the provided references for additional information and guidance.

Components and Tools

Design Steps

Step 1: PCB Design

I used KiCad to design my PCB with a trace width of 0.6 and a clearance of 0.4.

Step 2: PCB Fabrication

I used FlatCAM and an SRM20 machine to fabricate my PCB.

Firmware Compilation (Linux)

  1. Install the necessary tools by running the following command in the terminal:
    sudo apt-get install gcc-avr avr-libc avrdude flex byacc bison gcc libusb-dev
  2. Download the firmware and unzip it using these commands:
    wget http://academy.cba.mit.edu/classes/embedded_programming/firmware.zip && unzip firmware.zip
  3. Open the Makefile and edit the following parameters:
    • DEVICE (microcontroller)
    • AVRDUDE (programmer)
    • F_CPU (crystal speed)
  4. Compile the firmware.

Trial and Errors

  1. I designed a PCB with a USB-connector package. The goal was to design a small layout. But I couldn't find through-hole (THT) ATtiny84/44 components. I chose to keep all other components as (THT) while switching the ATtiny44 to (SMD).
  2. I tried to make the PCB single-layer with a 1x6 THT ISP header but it was challenging with a small layout . I decided to switch to a 2x3 pin header in SMD form. This adjustment allowed for a more manageable design. Note: This is a quick solution but not correct. You must create a custom pin header package (THT) because, at the end, I didnt find a pin header (SMD) and I put holes in the footprint.(^_^)
  3. During the fabrication step, I found a problem with the custom USB package. that was triggered by the modifications made during the first trial. When attempting to mirror the PCB for fabrication (vcc&gnd). I edited the custom package again to be suitable for this case, or you can replace it with a USB socket.

References