How to Connect a FT232RL Programmer to the Arduino ATMEGA328 for Uploading Sketches

Published

Introduction: How to Connect a FT232RL Programmer to the Arduino ATMEGA328 for Uploading Sketches

About: I like to make stuff in my free time. Especially programming, cooking, electronics etc. Lately I'm making tutorials about stuff I made the last few years.

In this mini Instructable you will learn how to connect the FT232RL chip to the ATMEGA328 microcontroller to upload sketches.

You can see an Instructable on this stand-alone microcontroller here.

Step 1: Parts List

1 x FT232RL chip (got mine here)

1 x ATMEGA328P-PU microcontroller (got mine here)

Wires

USB cable

0.1 uf capacitor

Step 2: Connections for Uploading Sketches

This instructable was made in a hurry and I think the connections in the image are wrong. Should be RX -> pin 3 and TX to pin 2.

FT232RL -> ATMEGA328

DTR via 0.1 uf capacitor > pin 1

RX -> pin 3

TX -> pin 2

VCC -> pin 7

GND -> pin 8

ATMEGA328

Pin 7 (+) -> pin 20 (+)

To upload sketches is the same as usual.

Make sure you select the right port.

If your ATMEGA328 is running at 8Mhz select “Tools → Board” and select “Atmega 328 on a breadboard (8MHz internal clock)”.

If your ATMEGA328 is running at 16Mhz select “Tools → Board” and select “Arduino Uno”.

Step 3: Tip

I have soldered the capacitor and the wires to my FT232RL chip so now it's very easy to use.

It is good practise to solder male or female header pins to pin 1, 2, 3 and to + and - so you can still upload and change the program on the microcontroller without having to remove the chip.

Step 4: Final Note

This mini Instructable was a response to a comment made in another Instructable named “$2 Arduino. The ATMEGA328 as a stand-alone. Easy, cheap and very small. A complete guide. “

Did you like this Instructable, click the Favorite button and subscribe.

See you in the next Instructable.

Thanks,

Tom Heylen

Share

    Recommendations

    • Planter Challenge

      Planter Challenge
    • Oil Contest

      Oil Contest
    • Clocks Contest

      Clocks Contest
    user

    We have a be nice policy.
    Please be positive and constructive.

    Tips

    Questions

    6 Comments

    feddar1-6-x.zip, 1-5-x.zip or 1-0-x.zip). I tried all 3 and none work.

    I have managed to bootload using your other instructible, but that's it. This is what I get when I try to upload:

    Warning: Board breadboard:avr:atmega328bb doesn't define a 'build.board' preference. Auto-set to: AVR_ATMEGA328BB

    Sketch uses 928 bytes (3%) of program storage space. Maximum is 30,720 bytes.
    Global variables use 9 bytes of dynamic memory.
    /Users/fed/Library/Arduino15/packages/arduino/tools/avrdude/6.0.1-arduino5/bin/avrdude -C/Users/fed/Library/Arduino15/packages/arduino/tools/avrdude/6.0.1-arduino5/etc/avrdude.conf -v -patmega328p -carduino -P/dev/cu.usbserial-A50285BI -b57600 -D -Uflash:w:/var/folders/lb/5zdjdm6153jcx_5nq32tt7gw0000gn/T/buildd5ae82e677127ac286f51de66781d807.tmp/Blink.ino.hex:i

    avrdude: Version 6.0.1, compiled on Apr 14 2015 at 16:30:25
    Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
    Copyright (c) 2007-2009 Joerg Wunsch

    System wide configuration file is "/Users/fed/Library/Arduino15/packages/arduino/tools/avrdude/6.0.1-arduino5/etc/avrdude.conf"
    User configuration file is "/Users/fed/.avrduderc"
    User configuration file does not exist or is not a regular file, skipping

    Using Port : /dev/cu.usbserial-A50285BI
    Using Programmer : arduino
    Overriding Baud Rate : 57600
    AVR Part : ATmega328P
    Chip Erase delay : 9000 us
    PAGEL : PD7
    BS2 : PC2
    RESET disposition : dedicated
    RETRY pulse : SCK
    serial program mode : yes
    parallel program mode : yes
    Timeout : 200
    StabDelay : 100
    CmdexeDelay : 25
    SyncLoops : 32
    ByteDelay : 0
    PollIndex : 3
    PollValue : 0x53
    Memory Detail :

    Block Poll Page Polled
    Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
    ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
    eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
    flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff
    lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
    hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
    efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
    lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
    calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
    signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00

    Programmer Type : Arduino
    Description : Arduino
    Hardware Version: 2
    Firmware Version: 1.16
    Vtarget : 0.0 V
    Varef : 0.0 V
    Oscillator : Off
    SCK period : 0.1 us

    avrdude: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.00s

    avrdude: Device signature = 0x1e950f
    avrdude: reading input file "/var/folders/lb/5zdjdm6153jcx_5nq32tt7gw0000gn/T/buildd5ae82e677127ac286f51de66781d807.tmp/Blink.ino.hex"
    avrdude: writing flash (928 bytes):

    Writing | ###########################################avrdude: stk500_recv(): programmer is not responding
    Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

    What are we running on the computer on the other side of the USB connection, the arduino isp?

    I used the wrong library and struggled few hours ( 1-6-x.zip, 1-5-x.zip or 1-0-x.zip). Arduino IDE window caption display the current library as "1.0.5", then I select 1-0-x.zip, and follow the steps to burn bootloader, then upload sketch. Now all is working ok. Thank you.

    thank you sooooo much

    Awesome, especially male or female header pins to pin 1, 2, 3, vcc, gnd. Thank you.