Serial OK in breadboard but not in wired circuit

Hi all.

Firstly, this is my first ever post and I'm already asking for some guidance/support, apologies for being a nuisance! I've been trying to figure this issue out for about a month now, at it every single day, have read everything I can find on the net but completely stumped. I feel like I'm all out of options that don't risk wasting people's time, so I've decided to finally post here for help.

My "original" issue

I've built myself a little soundboard with an Arduino Uno R3 on a breadboard using an LM386 audio amplifier IC and what seems to be a generic SD Card module (labelled "LC Studio") from my local electronics shop (Jaycar, in Melbourne, Australia). It works well enough in the breadboard and I am trying to get it built on a soldered prototyping board. I'm now on the third... maybe fourth board as I've consistently failed and started fresh. Keep in mind I do not want to use the entire Arduino, just the Atmega328p chip.

My current issue

I want to debug the project using the Arduino IDE / Create Serial Monitor (or PuTTY etc, don't mind which). If I take my Atmega328p and place it on a solderless breadboard then hook up my FTDI USB to Serial breakout board in the "standard" configuration, I can communicate no worries with the chip and even upload sketches with the DTR pin doing it's thing.

Note: By "standard" configuration I mean that I have reset/DTR through 10k resistor to +5V and .01uF cap, 16MHz crystal between X1 and X2 with 22pF caps from each one to ground, both grounds on Atmega328p to ground rails and both VCC and AVCC to +5V rails.

However, when I move my Atmega328p back to my soldered board (using IC cradle.. thingo.. not sure what they're called sorry) and try to replicate that setup, Arduino Create / Windows Device Manager both recognise the chip, the serial monitor opens up without any complaints, but nothing comes through to my PC. I get that dreaded "not in sync" error which takes ages to retry 10 times. I'm confident my crystal is good - again, it works fine in the breadboard out of circuit.

Note: I should mention I had no electronics experience at all just 6 months ago, so I'm very, very new to this. I'm very confident the issue will be with my wiring somewhere or somehow.

Current configurations

First of all, I have another Atmega328p with the ArduinoISP sketch on it which I've used successfully via ISP pins to burn the Arduino Uno bootloader on to the chip I'm using for this project.

Whilst testing serials comms I'm just using the example sketch under Basics > DigitalReadSerial. Code is as follows:

/*
  DigitalReadSerial

  Reads a digital input on pin 2, prints the result to the Serial Monitor

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/DigitalReadSerial
*/

// digital pin 2 has a pushbutton attached to it. Give it a name:
int pushButton = 2;

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  // make the pushbutton's pin an input:
  pinMode(pushButton, INPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input pin:
  int buttonState = digitalRead(pushButton);
  // print out the state of the button:
  Serial.println(buttonState);
  delay(1);        // delay in between reads for stability
}

I don't have any experience with creating Fritzing models but I gave it a shot, hopefully it's not too messy but please let me know if anything is unclear. Crystal caps are 22pF, other ceramics are all 0.1uF and electo's are 100uF except 220uF going into the speaker.

Note: Ignore the fact that there's no audio source. That usually comes from an SD card module but is omitted from the circuit currently whilst trying to figure out my serial comms issues.

Where I think I've gone wrong

I'm not confident in how I've wired up my battery to switch to regulator to board. I'm using a 12V rocker switch which is meant to illuminate when ON but doesn't. I assume that's due to only having a 9V battery, but I'm not too worried about that part, as long as I can get the rest working.

That said, I can measure exactly 5V anywhere in circuit when the switch is on. My speakers give me a bit of crackle when I turn the potentiometer etc so the board seems to be powered okay. I've trued letting the 5V output of the FTDI USB converter go direct to the power rails with the battery disconnected as well, but didn't have any luck there.

Is there anyone who might be able to help me figure this one out? Fritzing file and JPG attached for reference.

Edit (Nov 3, 2019)
Now that my account is unbanned (thanks again Bob) I've embedded the image to this post. I've also gone and removed the switch, battery and LM7805 from the circuit entirely and instead connected the 5V output and ground pins from the FTDI module into the power rails of the main project board. No change to the result though unfortunately.

Cheers,
Lee.

JeffBot.zip (13.8 KB)

"However, when I move my Atmega328p back to my soldered board (using IC cradle.. thingo.. not sure what they're called sorry) and try to replicate that setup, Arduino Create / Windows Device Manager both recognise the chip, the serial monitor opens up without any complaints, but nothing comes through to my PC. I get that dreaded "not in sync" error which takes ages to retry 10 times. I'm confident my crystal is good - again, it works fine in the breadboard out of circuit."

So, if I am reading this correctly, the Fritzing .jpg you have posted is the setup that works using the breadboard. What does your circuit look like on the soldered board. I usually have less trouble with a soldered board than trying to get all the leads making contact on the solderless breadboard.

A picture of your prototype might help.

Just some guessing: make sure your notch is correct when you plug in the Atmega328P. I have an Arduino Clone with the 28 pin DIp socket mounted backwards in the Uno. Never causes trouble until you start swapping IC's.

Pins 0 and 1 should only have the leads from your FTDI.