The FTDI SmartBasic makes it easy for Arduino Uno users to program their board even if they have something else connected to board only hardware serial port. Normally, if the UARTT is connected to another piece of hardware, the port can’t be used for programming and you’ll get an error message. This is particularly painful while debugging code, because you have to keep plugging and unplugging the hardware back in to the Arduino Uno.
The SmartBasic effectively adds a switch so that the Arduino can control whether it’s connected to the additional hardware or the USB port for programming. It’s simple to integrate. You just plug three things into the SmartBasic: the Uno board, your additional hardware, and the computer you’re using to write code. Then connect a wire from the select pin on the SmartBasic to one of the pins on your Arduino Uno.