Swapping a Atmega328 + FTDI FT203X for a ATmega32u4 feasability

I'm working on finalizing the 3rd revision of a display controller for Sure 3208 and 3216 LED displays. In the first revision, I used an FTDI FT232RL chip + an Atmega328p. I then rev'd that to an FT230X chip, as it was cheaper than the FT232. For the 3rd Rev, I swapped the ATmega328 TQFP package for an MLF to save space, but can I do away with the FTDI chip as well?

Here is what I currently do:

  • 1.) Assemble board, with FTDI chip connecting to ATmega RX/TX lines
  • 2.) Connect USBtiny programmer to 6pin header on board and select "Arduino Uno" from the boards menu
  • 3.) Select "Burn bootloader using USBtiny" from the menu.

This basically turns my board into an arduino clone of sorts, allowing me to then upload code from Arduino app over usb, not using the header/programmer.

I recently discovered the Arduino Leonardo which uses the ATMega32u4 chip, which integrates a USB controller, thus doing away with the FTDI solution. Am I right in my thinking that I could remove all the USB parts (thereby reducing BOM count) by swapping the 328 for the 32u4, and then following the same procedure above, except this time selecting "Leonardo" from the board menu? I'm trying to reduce space on the board as much as possible to fit a bluetooth module at the top, so if I can combine the FTDI and Atmel chips into one, this would greatly save space/complexity on my board, and allow me to add the bluetooth module instead of having to use a seperate board that would plug in.

Yes the 32u4 would eliminate the FTDI.

Additionally the 32u4 doesn't consume the hardware UART communication, so you can have hardware serial and USB communication at the same time.

thanks. I was looking at the arduino lenorado schematics, and it seems that i can save at least 3-4 parts off the BOM by swapping to the 32u4. The only thing that might concern me is how the bootloader in the Leonardo works.. seems it opens a serial connection at 2400 baud, then drops it, which causes the processor to reset. This differs from the way the bootloader on the 328 works, but as long as it's stable, I can live with that. I may just put a reset switch in place to be safe in case it can't reset itself.

I'm trying to make this as simple to assemble as possible, since I'm going to be open-sourcing it on github when I'm done, along with all my other projects.