Go Down

Topic: FT230XS as cheap replacement to FT232RL? (Read 1 time) previous topic - next topic

PolkaDot

Has anyone used FTDI's FT230XS chip as the serial interface for a breadboarded arduino?
Basically it's half the price and as far as I can tell would serve the same functionality. Datasheet shows some extra RC at the USB side, but otherwise a drop-in replacement?

Thanks!

magagna

I've done two designs now using the FT230x and it works great. The Arduino Duemilanove design has the FT232RL's DTR connected to the ATMega's reset for reprogramming and the FT230x doesn't have that, but happily AVRDude also pulses RTS so you can connect that pin the same way and all is well.

Good luck!
http://en.wiktionary.org/wiki/magagna <-- My last name.  Pretty apt.

evanrich

For a board i'm working on, I first used an FT232RL, because it was easy to solder, easy to get to the D+/D- pins, and worked.   But it was huge, so I Redesigned my board for a 2nd Rev to use the FT230XQ (QFN), which saved even more space.  

My third Rev I removed the FT230X, all the parts associated, and replacing the ATMega328p I was using with a MLF32 ATMega32u4...basically a Arduino Leonardo, which is basically a Arduino Uno..with USB on chip.   Have you considered this?  I saved a ton of space on the board, which was tiny already at 0.8"x1.3", but now I've saved even more.  My BOM count has dropped by a few parts as well.  If you don't want to go this route, then I'd stay with the FT230X, as it's a few $ cheaper, and smaller than the FT232, so you'll save layout space.
My first major project (looking for people who would like to help contribute) Bluetooth Sure 32x16 LED Displays!: https://github.com/evanric

magagna

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....
http://en.wiktionary.org/wiki/magagna <-- My last name.  Pretty apt.

evanrich


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....



Unless I understand you wrong,  there should be no worries about licensing, etc.   Unless you're trying to use the atmega32u4 for a keyboard device or host controller, which the LUFA USB bootloader is for commercial and open source usage, as long as you follow the license...only paid if you want to not have to attribute it back to the creator.   The arduino leonardo on the other hand, I'm not sure about

See the LUFA site:http://www.fourwalledcubicle.com/LUFA.php

I get what you're saying, but going with one chip is faster, uses less power, and saves space/cost:)
My first major project (looking for people who would like to help contribute) Bluetooth Sure 32x16 LED Displays!: https://github.com/evanric

magagna

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.
http://en.wiktionary.org/wiki/magagna <-- My last name.  Pretty apt.

evanrich

#6
May 10, 2013, 08:20 pm Last Edit: May 10, 2013, 11:03 pm by evanrich Reason: 1

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.



Ahh makes sense.  Forgive my ignorance, as I know next to nothing about bootloaders and such, I had assumed that LUFA WAS the bootloader, meaning that is all you would need to drop on and load a sketch.  Looking further, the Optiboot bootloader seems to be distributable, given attribution, could you not just use that?   Again forgive my ignorance if this is something else.  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.

learn something new every day :)


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?
My first major project (looking for people who would like to help contribute) Bluetooth Sure 32x16 LED Displays!: https://github.com/evanric

magagna

Quote
Looking further, the Optiboot bootloader seems to be distributable, given attribution, could you not just use that?


You can definitely use OptiBoot for commercial work with a ATMega328; a lot of projects have done that. The Arduino team itself actually used to maintain their own bootloader (with the Duemilanove & older boards) and switched to OptiBoot with the Uno.

I don't think you'd be able to use OptiBoot directly as a bootloader on an ATMega32u4. It programs the user memory from the hardware serial UART; at a bare minimum you'd have to patch it to read data from a USB virtual serial port etc. That may be possible, but is outside my area of expertise....

Quote
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.


For personal projects or non-commercial devices yes you should absolutely be able to do this on your own; you can download the Leonardo bootloader hex file from github and there's plenty of posts in the Microcontrollers section of this forum of people using blank ATMega32U4s for Leonardo clones, exactly as you describe. I just don't believe you can legally sell your own stuff with the Caterina (Leonardo) booatloader and the Arduino team's USB vendor ID & product ID.

Quote
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?


No problems at all so far. I copied the datasheet's "6.2 Self Powered Configuration" and "7.5 LED interface" schematics for the FT230x support components, and the Uno's connection -- 1K resistors on RX & TX between FT230x and ATMega328, reset connected with with a) 100nf cap to the FT230x's CTS, b) 10K pullup, and c) reversed diode to +5v.

I apologize for hijacking this thread and like I said before I'm not 100% certain on this. If anyone knows for sure I'd love to hear it!
http://en.wiktionary.org/wiki/magagna <-- My last name.  Pretty apt.

48X24X48X

I'm currently using FT231XS (instead of FT230XS) on a selling product and it works great. The pins (including the TXD & RXD) are 5V  tolerant, an FTDI engineer clarified this to me. You don't have to worry on the USB VID & PID by using the FT-X series! And it's still cheap even after combining them with the ATMega328!

Go Up