Custom Arduino Board WITH Serial Communication With PC

Hello,

Working on a virtual cockpit project i need to make a custom arduino board to read switch data and send it via Serial on the FSX host pc for a special program to read the Serial data and control FSX. I know and have built a custom arduino board on a PCB designed and ordered from EasyEDA but I'm programming it with the ArduinoISP or an other arduino UNO directly hooked on the pins needed for programming. With this method used the custom Arduino cannot have Serial communication with the PC host. How can i establish the Serial communication with the PC using USB?

Bootload the '328P as an Uno.
Add a header for a USB/Serial adapter module, or mount one on the board.
FTDI Basic or equivalent, you can see how I did the same for a '1284P board here, onboard with MIKROE483 from Mouse.com, and offboard with an FDTI Basic clone from tinyosshop.com

Why NOT?

You are tying up the ICSP (MOSI,MISO), but that does not use D0 (RX) or D1 (TX), so the UART is free, and you can parallel SPI devices and use an ENABLE pin to select the device. So, what's the issue?

So the MIKROE483 is like an IC module that does the Serial-to-USB converstion? And i can buy one and connect it to arduino with provided schematics like you did on the first photo... Also can you provide me with off-board module models for the job like the one on the second photo? And can i actually program the arduino through one of those modules? Thanks for the info!

123Splat:
Why NOT?

You are tying up the ICSP (MOSI,MISO), but that does not use D0 (RX) or D1 (TX), so the UART is free, and you can parallel SPI devices and use an ENABLE pin to select the device. So, what's the issue?

The issue is i do not know how to connect the arduino to the PC. I know that actuall arduino boards use a second atmega chip to do the job so i obviously cannot just connect two wires to the USB cable! I didn't quite understand what you said about connecting parallel SPI devices. I'm not a newby but I'm also not that experienced.

"the MIKROE483 is like an IC module that does the Serial-to-USB converstion"
Yes.

Much easier to put on a board vs the FT232 with its very closely spaced pins. It has the connector, resistor, caps needed, jumper to select 3.3V or 5V IO levels, so all you need to is include LEDs to show TX & RX activity if you want that.

Oh it's a regular module. Thank you very much for the info I will look it up. I really don't about the LEDs so it's exactly what i need!

For SPI, all devices connect to SCK, MISO, MOSI in parallel. Each device then gets a unique slave select pin.
The Master pulls one slave select low, sends out & receives a burst of data (8 bits at a time minimum, can be longer), the selected slave accepts and/or sends data, the rest do nothing.
Examples
Send one byte:

digitalWrite (slaveSelectPin1, LOW);
SPI.transfer(dateTo1);
digitalWrite ( (slaveSelectPin1, HIGH);

Receive one byte:

digitalWrite (slaveSelectPin1, LOW);
dataFrom1 = SPI.transfer(0);
digitalWrite ( (slaveSelectPin1, HIGH);

Send and Receive at the same time, often times this is a 2 byte transfer to send a command/register and then get a byte back

digitalWrite (slaveSelectPin1, LOW);
SPI.transfer(read_write_address);
dataBack  = SPI.transfer(0); // 0 is not used by the slave in this example.
digitalWrite ( (slaveSelectPin1, HIGH);

Ok I'm asking a lot of questions but the connection with the MIKROE483 is Rx to Tx, Tx to Rx, Gnd to Gnd and Vcc to 5V? What do the CTS, RTS and the rest pins do?

Connect DTR to the boards Reset pin thru a 0.1uF cap (100nF) to create a Reset pulse during serial uploads.
The rest do not get connected.
You can see the pins to connect to here as I used it in a '1284P design (the module is mounted in a socket in this picture, which I don't recommend, it's not very stable and becomes unplugged too easily with USB cable movement).