Arduino Pro Mini parts + programming ATmega

Hello guys,
I have few questions for you and I'd be really grateful if someone could answer them :slight_smile:
I've been programming arduino for few months and I know all the basics. I even started my small little project and few friends are interested in buying it. So I decided to pay some company to make me couple of PCBs according to my schematics. I don't really want to solder all these LEDs, resistors, etc. every time, so making a custom PCB with ATmega and my components seems pretty reasonable.
My project is based on Arduino Pro Mini, so I had to base the schematics on it.

And now the questions:

Here are the Pro Mini schematics. U2 is a voltage regulator, but what about other elements (JP1, JP2, JP7)? What are they? And also, are all of the connections necessary on the ATmega? I think resonator (PB6 and PB7) is necessary, but what about all the others? Do I have to connect reset to DTR and have all these capacitors and resistors? What is AREF pin and why is it connected to GND, and why through a capacitor (C1)? Why there's VCC connected to GND through a capacitor (C3), on the bottom left from the ATmega? What does it mean and is it even necessary? I'm a little bit lost in all these information, but I'm trying as hard as I can to understand all of this.

And now about programming ATmega:
So far I've been programming Arduino using IDE, and sending the code using TX, RX and RST pins. I've been doing some researches and here is what I managed to understand: I won't have an arduino bootloader on the ATmega bought in a shop, so I need to send the program differently. I need USB or LPT programmer and connect it to RST, MOSI (D11), SCK (D13), MISO (D12) and GND on the ATmega. I also need application which would send hex file (compiled for ATmega168, which I'm going to use*) to my ATmega, like this one http://dybkowski.net/content/en/node/15
I'm going to make my own programmer through LPT port and connect specific LPT pins directly to ATmega pins (14 > RESET; 16 > MOSI; 17 > SCK; 10 > MISO; 25 > GND). My computer is not equipped with LPT port, and I'm going to use standard LPT > USB converter. Won't this cause any problems?
Are all these information correct? Does it work that way or I misunderstood something? Is that application (link above) good for sending programs to ATmega? Please correct me if I wrote something wrong

*I know Pro Mini uses ATmega328 now, but 168 is cheaper and will work just fine with my project.

Sorry for my English.

P.S. The only elements on arduino are ATmega, resonator, voltage regulator, resistors, capacitors and LEDs, right? Or are there any others?

JP1 etc are the connectors on the edges of the board.

You need a crystal or a resonator or the processor won't clock.

DTR is connected via the capacitor to enable automatic bootloader action - otherwise you will have to press the reset button on every sketch upload...

The AREF is analog reference pin and it needs decoupling so analogRead() is not picking up lots of noise. If you aren't ever using analogRead() it could be omitted.

The other capacitors are supply decoupling and are required - the 0.1uF ones must be ceramic and physically close to the processor.

I also need application which would send hex file

It's called avrdude, you have it if you have the Arduino software installed!

Thank you very much for instant reply.
So, I will have to connect 14th LPT pin where DTR is now, right? Or can I connect it directly to RST and omit the capacitor and VCC? Unfortunately my electronic skills are very low so I have to ask every detail...

I know about avrdude, but I've never used it. I found this program http://dybkowski.net/content/en/node/15 and it has pretty nice GUI and looks simple, so I'd rather use it instead of avrdude. Will this program be okay for uploading hex files or I need to use avrdude?

I am using AnalogRead(); so AREF has to stay as it is.

Can't help with the programming software - have only used avrdude via the Arduino software.

If you are connecting to RST anyway you don't need to worry about emulating DTR and the capacitor - that's a kludge for programming via the Rx/Tx pins with the Arduino bootloader. If you want to be able to program the Arduino way you should copy all the JP1 stuff including the DTR capacitor.

MarkT:
If you are connecting to RST anyway you don't need to worry about emulating DTR and the capacitor - that's a kludge for programming via the Rx/Tx pins with the Arduino bootloader.

Great, thank you very much for your help. So the final question - VCC also doesn't have to be connected to RST, right? Because on the arduino schematic it's connected to VCC through 10k resistor and DTR through 0.1uF capacitor, so both these connections can be omitted and I can leave RST pin on ATmega "open", right?

You should pull it up to Vcc with a resistor, or you will have random resets.