"stk500_recv(): programmer is not responding" when uploading, bootloader is OK

I assembled a custom arduino board on a PCB with ATMega328AU. After burning the bootloader successfully through the IDE (I had to create a new entry with different device signature in avrdude.conf, but I managed it), the LED on pin 13 started blinking, which I think is a sign of the bootloader working. However, when I try to upload a program via FTDI I get the following message from the Arduino IDE:

...
avrdude: Version 5.11, compiled on Sep  2 2011 at 18:52:52
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/etc/avrdude.conf"
         User configuration file is "/Users/Hristo/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/tty.usbserial-A100RXYR
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding

avrdude done.  Thank you.

I can sucessfully connect to the ATMega using another Arduino as ISP and avrdude:

Hristos-MacBook-Pro:atmega Hristo$ $AVR/bin/avrdude -C /Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/etc/avrdude.conf -p m328au -P /dev/tty.usbserial-A700e1JH -c avrisp -b 19200

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.06s

avrdude: Device signature = 0x1e9514

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

What could the "programmer is not responding" message mean and how can I solve this in order to upload my Arduino programs?

Thanks!

P.S. My ATMega is connected to a 16MHz crystal. I am using Arduino 1.0.2.

Overriding Baud Rate : 57600

Which bootloader did you install?

Is the processor on your custom board running at 16 MHz?

To upload the boot loader, I created a custom entry in the boards.txt:

##############################################################

atmega328a.name=Arduino with ATMega328-AU

atmega328a.upload.protocol=stk500
atmega328a.upload.maximum_size=30720
atmega328a.upload.speed=57600

atmega328a.bootloader.low_fuses=0xFF
atmega328a.bootloader.high_fuses=0xDA
atmega328a.bootloader.extended_fuses=0x05
atmega328a.bootloader.path=atmega
atmega328a.bootloader.file=ATmegaBOOT_168_atmega328.hex
atmega328a.bootloader.unlock_bits=0x3F
atmega328a.bootloader.lock_bits=0x0F

atmega328a.build.mcu=m328au #defined in avrdude.config
atmega328a.build.f_cpu=16000000L
atmega328a.build.core=arduino
atmega328a.build.variant=standard

I use a 16MHz crystal, so I believe it is running at 16MHz.

Everything looks correct which probably means auto-reset is not working. Try a manual reset. Hold the reset button, click Upload, at the moment the status changes to Uploading, release the reset button.

I did try manual resetting the board, but it didn't work. I see the red LED on the FTDI flashing, but not the green one.

Do you know for a fact the FTDI adapter works?

If you have never seen it work, try a loop-back test...
http://forum.arduino.cc/index.php?topic=73748.0