I can't speak for the OP but so far I'm sticking with the two chip solution. What you've said is completely true and will work, but I'm working toward selling my designs so I have to worry about licensing, copyright etc.The last time I checked the base Leonardo USB code (LUFA) didn't have any usage/licensing restrictions but I've never seen a definitive answer if it's OK to use the Caterina bootloader for commercial works, and it's been discussed before that the Arduino team doesn't want others reusing their USB VID/PID. Getting my own USB vendor ID etc and having to write my own Windows INF file etc. seemed like more trouble than it was worth.I would, however, love to be proven wrong....
There's three pieces to this puzzle. I believe you're only taking about one of them.First, there's the USB vendor ID & product ID. When you plug a USB device into your computer it sends the VID/PID; your computer uses this to figure out what driver to load etc. The old boards used the FTDI chip and FTDI's license says it's OK for you to use their chips (and thus their Vendor ID) in your stuff. Your device can be anything, but ultimately your computer is going to load a FTDI driver to communicate with it. The new boards (Uno, Leonardo, etc.) do their own USB thing, so the Arduino team got their own Vendor ID. They've said it's not permitted to use their VID in your commercial product: http://learn.adafruit.com/arduino-tips-tricks-and-techniques/arduino-uno-faq (see "How does the new '8u2 affect Arduino-derivatives"). Second, there's the USB code. This is LUFA which, as you say, is OK to use for commercial purposes. We agree here.Third, there's the bootloader code, which lets you upload new code to the chip via USB. For the Leonardo this is Arduino's Caterina code (https://github.com/arduino/Arduino/tree/master/hardware/arduino/bootloaders/caterina). When I looked into this last fall I couldn't find anything official as to whether this code's OK to reuse commercially or not; I just looked again and still can't find anything definitive one way or the other. You could make a design that doesn't use a bootloader to get around this, but I like the idea of USB programmability so end users can do firmware upgrades with something simple like XLoader instead of requiring them to ship boxes back to me, or buying a hardware programmer.Like I said earlier this is just my understanding of how this works; it would be great if I'm wrong.
Looking further, the Optiboot bootloader seems to be distributable, given attribution, could you not just use that?
While I was able to successfully get my project to work by loading the UNO bootloader when I used the ftdi module, I have not yet finished laying out my recent rev with a 32u4, so dont know if this would work yet.
The FT230X says that the IO pins are 3v3, but 5V tolerant. Looking at the datasheet, it doesn't say if the TXD/RXD are, only CBUS and DBUS...can you safely interface the RX pin to a 5V uC?