user58942: Is it possible to program chips like the Arduino uno's Atmega328P directly with USB serial from your computer?
Where can i find information on the protocols/standards to do such a thing? 
More specifically, I want to be able to make a custom pcb for my Attiny85 chips with a usb connector. I would prefer not to use the arduino IDE.
Is it possible to program this chip like so?

user42539: 
Is it possible to program chips like the Arduino uno's Atmega328P directly with USB serial from your computer?

Put a bootloader on the chip first, then an offboard USB/Serial adapter can be used for the serial programming.   That's basically what a ProMini is - a bootloaded '328P (in SMD form) with a resonator & decoupling caps and a small voltage regulator - and a header to accept an FTDI Basic for programming serially.  If you notice the Black and Green colors next to the FTDI header, those are to match the wire colors on the the FTDI cables that were originally used, before seperate USB cable and FTDI modules became more popular.
https://www.sparkfun.com/products/9718

Instead of the 6-pin FTDI header, you could make an adapter board to go from FTDI to a USB-A 5-pin connector, then on your board have a USB-B-Mini or USB-B-Micro 5-pin connector to bring in the FTDI's 5V, Gnd, DTR, Tx, and Rx signals.
USB wouldn't be coming in directly, but you would have the spacing advantage of the small USB connector, and could program serially from a PC USB port.
Too bad you don't want to use the Arduino IDE, there are supported core codes to add to the IDE for the Attiny85 and other chips like that. Attiny85 with bootloader could then be serially programmed with an offboard USB/Serial adapter.
https://github.com/SpenceKonde/ATTinyCore

ATtinyCore Universal
This core supports the following processors - essentially every ATtiny processor that makes sense to use with Arduino. Click the processor name for part-specific information:
ATtiny2313, 4313
ATtiny24, 44, 84 (With or without Optiboot bootloader)
ATtiny25, 45, 85 (With or without Optiboot bootloader)
ATtiny261, 461, 861 (With or without Optiboot bootloader)
ATTiny87, 167 (with or without Optiboot bootloader)
ATTiny48, 88 (With or without Optiboot bootloader)
ATTiny441, 841 (With or without Optiboot bootloader)
ATTiny1634 (With or without Optiboot bootloader)
ATTiny828 (With or without Optiboot bootloader)
ATtiny43 (no bootloader)


user4143: 
Is it possible to program chips like the Arduino uno's Atmega328P directly with USB serial from your computer?

The bare chip? Generally, no.
Some chips that include USB hardware also may include a DFU bootloader in ROM. If your chosen chip has this, then yes you can - you just need to wire it up and use a suitable DFU firmware upload program to install your compiled code into the chip.
However chips that don't have USB will never have a USB DFU bootloader in them. In such cases is is your responsibility to create (or otherwise obtain) a suitable bootloader that you will install into the chip. 
Digispark and Adafruit both do that.  They take a chip that doesn't have USB and install software that tries to (poorly) emulate USB over GPIO pins1.
For chips that do not have actual USB hardware in them it is far more common to use a UART-based bootloader - simply because this is a much lighter and more "correct" way of doing it. 
If you want to use a direct USB connection for your device you should be selecting a chip that has USB built into it (AVR "U" series2, most PIC32, many ARM-based chips) which will allow you to have proper USB communication instead of slow HID and custom (non-standard) protocols only3.
Note that at no point does your choice of bootloader, or method of communication with the bootloader, tie you in to using the Arduino IDE.  The IDE just compiles the code then runs an external program that communicates with the bootloader (different bootloaders need different programs to communicate with them). How you compile the software is up to you. How you execute the bootloader upload program is up to you. 


Personally I think that's a horrible idea and should NEVER be done. I'm a purist though.
Such as the ATMega32U4 used on the Leonardo and Micro boards. 
VUSB can only (barely) run fast enough for USB 1.1. That means only HID protocols are officially supported (keyboard and mouse), and anything else is non-standard and requires special supporting software to work with it.


58942: <p>Is it possible to program chips like the Arduino uno's Atmega328P directly with USB serial from your computer?<br>
Where can i find information on the protocols/standards to do such a thing? </p>

<p>More specifically, I want to be able to make a custom pcb for my Attiny85 chips with a usb connector. I would prefer not to use the arduino IDE.<br>
Is it possible to program this chip like so?</p>
 42539: <blockquote>
<p>Is it possible to program chips like the Arduino uno's Atmega328P directly with USB serial from your computer?</p>
</blockquote>
<p>Put a bootloader on the chip first, then an offboard USB/Serial adapter can be used for the serial programming.   That's basically what a ProMini is - a bootloaded '328P (in SMD form) with a resonator &amp; decoupling caps and a small voltage regulator - and a header to accept an FTDI Basic for programming serially.  If you notice the Black and Green colors next to the FTDI header, those are to match the wire colors on the the FTDI cables that were originally used, before seperate USB cable and FTDI modules became more popular.<br />
<a href="https://www.sparkfun.com/products/9718" rel="nofollow noreferrer">https://www.sparkfun.com/products/9718</a>
<a href="https://i.stack.imgur.com/atLEm.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/atLEm.jpg" alt="enter image description here" /></a></p>
<p>Instead of the 6-pin FTDI header, you could make an adapter board to go from FTDI to a USB-A 5-pin connector, then on your board have a USB-B-Mini or USB-B-Micro 5-pin connector to bring in the FTDI's 5V, Gnd, DTR, Tx, and Rx signals.</p>
<p>USB wouldn't be coming in directly, but you would have the spacing advantage of the small USB connector, and could program serially from a PC USB port.</p>
<p>Too bad you don't want to use the Arduino IDE, there are supported core codes to add to the IDE for the Attiny85 and other chips like that. Attiny85 with bootloader could then be serially programmed with an offboard USB/Serial adapter.</p>
<p><a href="https://github.com/SpenceKonde/ATTinyCore" rel="nofollow noreferrer">https://github.com/SpenceKonde/ATTinyCore</a></p>
<blockquote>
<p>ATtinyCore Universal</p>
<p>This core supports the following processors - essentially every ATtiny processor that makes sense to use with Arduino. Click the processor name for part-specific information:</p>
<p>ATtiny2313, 4313</p>
<p>ATtiny24, 44, 84 (With or without Optiboot bootloader)</p>
<p>ATtiny25, 45, 85 (With or without Optiboot bootloader)</p>
<p>ATtiny261, 461, 861 (With or without Optiboot bootloader)</p>
<p>ATTiny87, 167 (with or without Optiboot bootloader)</p>
<p>ATTiny48, 88 (With or without Optiboot bootloader)</p>
<p>ATTiny441, 841 (With or without Optiboot bootloader)</p>
<p>ATTiny1634 (With or without Optiboot bootloader)</p>
<p>ATTiny828 (With or without Optiboot bootloader)</p>
<p>ATtiny43 (no bootloader)</p>
</blockquote>
 4143: <blockquote>
  <p>Is it possible to program chips like the Arduino uno's Atmega328P directly with USB serial from your computer?</p>
</blockquote>

<p>The bare chip? Generally, no.</p>

<p><em>Some</em> chips that include USB hardware also may include a DFU bootloader in ROM. If your chosen chip has this, then yes you can - you just need to wire it up and use a suitable DFU firmware upload program to install your compiled code into the chip.</p>

<p>However chips that don't have USB will <em>never</em> have a USB DFU bootloader in them. In such cases is is <em>your</em> responsibility to create (or otherwise obtain) a suitable bootloader that <em>you</em> will install into the chip. </p>

<p>Digispark and Adafruit both do that.  They take a chip that doesn't have USB and install software that tries to (poorly) emulate USB over GPIO pins<sup>1</sup>.</p>

<p>For chips that do not have actual USB hardware in them it is far more common to use a UART-based bootloader - simply because this is a much lighter and more "correct" way of doing it. </p>

<p>If you want to use a direct USB connection for your device you should be selecting a chip that has USB built into it (AVR "U" series<sup>2</sup>, most PIC32, many ARM-based chips) which will allow you to have <em>proper</em> USB communication instead of slow HID and custom (non-standard) protocols only<sup>3</sup>.</p>

<p>Note that at no point does your choice of bootloader, or method of communication with the bootloader, tie you in to using the Arduino IDE.  The IDE just compiles the code then runs an external program that communicates with the bootloader (different bootloaders need different programs to communicate with them). How you compile the software is up to you. How you execute the bootloader upload program is up to you. </p>

<hr>

<ol>
<li>Personally I think that's a <em>horrible</em> idea and should <em>NEVER</em> be done. I'm a purist though.</li>
<li>Such as the ATMega32U4 used on the Leonardo and Micro boards. </li>
<li>VUSB can only (barely) run fast enough for USB 1.1. That means only HID protocols are officially supported (keyboard and mouse), and anything else is non-standard and requires special supporting software to work with it.</li>
</ol>
