ATMEGA como FTDI e executando um sketch também

Não consegui encontrar um Titulo que explica-se o que quero.
Queria montar com um ATMEGA328, um sistema que tenha 2 botões e 3 leds, e que ele fizesse também a parte de comunicação serial através da USB com o PC.
Esse ATMEGA8 ou até mesmo um ATMEGA328, não vai precisar ter bootloader, então não espero precisar fazer upload pela USB, vou usar um gravador ISP.
Sei que para ele funcionar como um chip FTDI ele precisa de cristal de no mínimo 12Mhz.
Não encontrei nenhum exemplo em linguagem do Arduino que permitiria fazer isso.
Procurando encontrei o METABOARD, mas ela não usa os pinos 1 e 2 do ATMEGA, então não usa a UART para comunicação.
O sketch que vou usar é apenas para monitorar os dois botões, acender e apagar os leds e mandar o status dele para o PC pela serial, então usar um
ATMEGA para a conversão SERIAL-USB, e outro para fazer algo tão simples, acho um desperdício.
Se alguém puder dar um NORTE, fico agradecido.

Se pesquisares pelo fórum (há muito pouco tempo, tipo duas semanas) houve um utilizador que implementou o protocolo USB num ATmega8. (Vê aqui http://www.seriallink.com.br/lab/Arduino/AVRCDC_FTDiClone_DIY_SerialLink.html)

Não o fez com o Arduino, mas tinha indicacões bastante boas sobre como o fazer. O problema... segundo me lembra é que ele fez o driver para instalar no PC... ou seja, não era o protocolo FTDI o que implica que se o driver não instalar no computador estás lixado na mesma.

Nada como experimentar, acho... :\ Já agora porque tens de usar a UART para comunicacão? O protocolo USB não é sequer remotamente parecido com o Série... logo não consegues usar uma UART para criar um driver USB.

Dito isto, porque não usar um daqueles novos chips Atmel (ou Arduino Leonardo) com um ATmega32U (o mesmo que faz o USB do UNO)? É apenas um chip e tem USB nativo.
Já pensaste nessa hipótese? Na net encontras clones dessa placa bastante baratos... e o driver é bem suportado. O problema é apenas o formato não ser amigável para placa perfurada.

Sei que para ele funcionar como um chip FTDI ele precisa de cristal de no mínimo 12Mhz.

Com que fundamento dizes isto?
Estas te a referir ao chip FTDI ou ao Atmega?
Imagina se configuras os FUSES para usar oscilador interno.Com isso deixas de poder usar a porta Serie?
A minha resposta é não. Apenas tens de configurar correctamente o registo UBRR para a nova frequência de relógio que usas.
Vê se isto te pode ajudar.Basicamente isto virtualiza uma porta USB e usa um driver generico.
Nunca utilizei mas vale a pena ver.
http://www.obdev.at/products/vusb/index.html

Os 12 MHz é para garantir que um AVR sem usb nativo consegue emular o protocolo USB.

A UART e UBBR são para o caso do chip estar ligado a outro que faça a conversão UART -USB.

Ok agora entendi a afirmação do colega.De facto não sabia da necessidade mínima da velocidade de clock para suportar a USB, que faz todo o sentido para assegurar a especificação da USB.

bubulindo:
Se pesquisares pelo fórum (há muito pouco tempo, tipo duas semanas) houve um utilizador que implementou o protocolo USB num ATmega8. (Vê aqui http://www.seriallink.com.br/lab/Arduino/AVRCDC_FTDiClone_DIY_SerialLink.html)

Ele pegou um HEX e mandou para o ATMEGA, não foi um sketch feito na IDE do Arduino.
Sobre o V-SUB, eu já estava a par dele, vou tentar usar de outra forma, que é usar esta biblioteca http://code.rancidbacon.com/ProjectLogArduinoUSB
e ignorar o RX TX com UART do ATMEGA328.
Não vou ter processamento massivo de dados via serial, então deve atender.
Obrigado.

Tens aqui o código fonte:

http://www.recursion.jp/avrcdc/download.html

bubulindo:
Tens aqui o código fonte:

http://www.recursion.jp/avrcdc/download.html

Obrigado bubulindo, vou ver se converto para a linguagem da IDE do arduino, para poder implementar o que preciso.