How to Install FTDI Drivers
In this tutorial, we'll show you how to install FTDI drivers on multiple operating systems. Although this tutorial was written using Windows 7, Mac OS X 10.6, and Ubuntu 13.04, the process should be very similar, if not exactly the same, for other versions/variations of these operating systems.
Before you begin this tutorial, you should have the Arduino IDE installed on your computer. Check out our Installing Arduino tutorial for a step by step guide.
Here are some other tutorials and concepts you may want to familiarize yourself with before reading this tutorial:
- What is an Arduino?
- Serial Communication
- RS-232 vs TTL Serial Communication
- Logic Levels
- Connector Basics
Alright, let's get to work! You can visit the next section to learn more about the FTDI Basic and why you need the FTDI drivers, or you can skip straight to the operating system of your choice!
Meet the FT232RL
The FT232RL is one of the more commonly used ICs used to convert USB signals to UART signals. This process is very handy in that it allows you communicate with and upload code to an Arduino or other microcontroller without the need for an external programmer. SparkFun carries a board called the FTDI Basic that conveniently breaks out the necessary pins on the FT232RL to perform these actions.
There are a few different flavors of the FTDI Basic:
If you are using a 5 volt device, you will need the 5 volt FTDI. If you have a 3.3 volt device, you guessed it, use a 3.3 volt FTDI. LilyPad boards all operate on 3.3V.
We also carry a complete breakout board for the FT232RL should you need access to more pins than the FTDI Basic provides.
Here is a list of some SparkFun products that require the use of an FTDI Basic, come with an FTDI Basic, or have an FT232RL chip on board:
- Arduino Pro 5V and 3.3V
- Arduino Pro Mini 5V and 3.3V
- Mega Pro 5V and 3.3V
- Mega Pro Mini
- LilyPad Main Board
- LilyPad Simple Board
- Arduino FIO
- Protosnap - Pro Mini
- Protosnap - LilyPad Development Board
- Protosnap - LilyPad Development Board Simple
There are also some legacy Arduino boards that use the FT232RL. The Arduino Diecimila and Duemilanove main boards along with the original Arduino Mega all use the FT232RL IC. If you have one of these older versions, you'll want to use the FDTI drivers as well. For a complete list of all Arduino boards, check out this page. Newer versions of Arduino boards, such as the Uno, use a different communication IC, and they will not be covered in this tutorial.
Now that you know why the FTDI Basic is important and what products it is used for, let's learn how to install the drivers.
Windows - Quick and Easy
By default, windows does not have FTDI drivers installed. If you plug in your FTDI, open the Arduino IDE, go to 'Tools -> Serial Ports', and see nothing, you need the drivers! Let's go get them!
Download a copy of the v2.12.28 FTDI VCP Driver Executable here:
Windows FTDI VCP Driver Executable - v2.12.28 (CDM21228_Setup.exe)
Otherwise, visit FTDI's VCP Drivers page for the latest download of the Windows FTDI Driver executable and clicking on the Window's "Available as a setup executable" link. Make sure to unzip the executable before proceeding to the next step.
Choose 'Run' once it is has finished downloading, or find the file you just downloaded "CDM21228_Setup.exe" and double-click it to run it.Note: At the time of this tutorial, the images were referencing the old “v2.12.00” FTDI VCP driver executable. The installation process will be the same regardless of the version number.
Choose 'Extract' and continue through the installation until it finishes.
If everything was successful, you should see some nice green check marks, indicating success!Note: You may need administrator privileges on your machine in order for this to run properly. If things didn't work out, try the next section of this tutorial: Windows - In Depth.
Open up the Arduino IDE, and go to 'Tools -> Serial Port'. If you now have a COM port, congratulations! Again, if something went wrong, either retry this tutorial or give Windows - In Depth a try!
Windows - In Depth
Plug in your FTDI using a USB cable. Windows doesn't have the correct drivers, so let’s find them!
Navigate to the FTDI website, and choose the 'VCP' (Virtual Com Port) option near the bottom.
Now choose either the 32 bit version or the 64 bit version. Not sure which you have? The next steps will go over how to find that information. If you already know which version you are running, you may skip the next two steps.
Open the start menu, right-click on 'Computer,' and left-click on 'Properties'.
Look under 'System type,' to see which version you have.
Now go back to the FTDI site, right-click on the correct version, and save it to your computer. Remember where the files are saved. We'll need them in the next step.
Navigate to the folder containing the files. They will be inside of a .zip file, so you'll need to extract them. Right-Click on the .zip file, and choose 'Extract All...' When the next window appears, as shown above, pay attention to where it is extracting the files. Make sure that 'Show extracted files when complete' is checked, and click 'Extract'.
When the extraction is complete, the folder is opened. Again, take note of this folder location. This is the one containing the drivers.
We're almost there! Open the start menu, right-click on 'Computer', and left-click on 'Manage'. You will need administrator rights to do this. If you aren't an administrator on your computer, talk to the person who is and have them enter their credentials.
Left-click on 'Device Manager' in the leftmost column. Here is where we see the offending hardware. It has an exclamation mark next to it.
Right-click on 'FT232R USB UART,' and left-click 'Update Driver Software...'
Now choose 'Browse my computer for driver software'.
Left-click 'Browse,' and navigate to the location of the extracted files. Choose the extracted folder. There is no need to search any further in the folder. Then left-click 'OK'.
Make sure 'Include subfolders' is checked (very important!), and left-click 'Next'.
After a moment, you will see a success message! Left-click 'Close'.
The Device Manager page will refresh and you will see a new item with an exclamation mark named 'USB Serial Port'. You will need to install a second driver for the same device. Follow the steps 1-15, as before, and use the same driver folder too!
Once those steps are complete, you will see another success message! Left-click 'Close'.
The Device Manager Page will refresh again and show 'USB Serial Port (COMxx),' where xx = some number. Congratulations, you now have the proper FTDI drivers and can begin to use your device!
You can determine what COM port an FTDI device enumerated to by opening the device manager and browsing the "Ports (COM & LPT)" tree.
Most of the time, when you install Arduino on Mac OS X, the drivers are installed automatically. However, if there was a problem with the installation and you don't see any options that include 'usbserial' under the 'Tools -> Serial Port' menu, then you will need to install the drivers. You may also need to install the full FTDI drivers if you are running OSX 10.10 or later. The factory drivers are not complete.
a.) OS X 10.9 (Mavericks) or above: Download this driver. Locate the file FTDIUSBSerialDriver_v2_4.2.dmg file that was downloaded to your computer, and double click on it to open \ run it.
You may need to visit FTDI’s VCP Drivers page for the latest download of the Mac OS X FTDI Driver. Click on the link for the "Mac OS X 10.9 and above" driver's version. The image below shows version 2.4.2 so you would need to click on **2.4.2* to download the latest driver. If there is an update to the drivers by FTDI, the version number will change but it should be in the same location on the table.
b.) OS X 10.8 (Mountain Lion) or lower: Download this driver. Locate the file FTDIUSBSerialDriver_v2_2_18.dmg file that was downloaded to your computer, and double click on it to open \ run it.
If you are using the driver for OS X 10.8 (Mountain Lion) or older, you will see two files. Open up the driver file that corresponds with your operating system. For most users, it will be the second file:Note: If you are not sure which version of OS X you have, click on the apple icon in the upper-left corner of your screen and choose 'About This Mac'. You will then see Version 10.X.Y -- use the 10.X to determine your system version.
Continue through the installation, and wait for it to finish. Then click 'Close.'
Now open the Arduino IDE. Under 'Tools -> Serial Port' you will now see a 'usbserial' option. Congratulations, you're all set!
You can determine what COM port an FTDI device enumerated to by opening the Mac OS X's "System Information" in Lion or later (or "System Profiler" in Snow Leopard and earlier versions of Mac OS). This is similar to the device manager used on Windows OS. Browse the Hardware > USB tree to determine what COM port the FTDI enumerated on.
On newer versions of OS X, when you double-click the install packages inside the FTDI disk image, you may be presented with a very Windows-esque type error about not being able to open the files because they are not from an identified developers. This is very similar to the unsigned driver issue in Windows 8.
To get around this, simply right-click the package you want to install, or press CTRL + click, if you don't have a right-click. Then select open from the menu.
You will then be given another window asking if you are certain. Click Open, and proceed with the installation as stated above.
For a more permanent fix, you can follow these instructions. **However, this method is not suggested as it leaves your computer vulnerable. **
Open your System Preferences.
Once open, click the Security & Privacy icon.
Under the General tab, you should see a section about allowing the running of downloaded applications from specific sources. In preveious version of OS X, the defualt was set to Anywhere. However, the defualt setting is now Mac App Store and identified developers.
To use the FTDI drivers, you'll need to set this back to Anywhere. First, you may need to click on the little lock icon and enter your admin password to make these changes.
Once unlocked, click the Anywhere option. Another obnoxious window may appear asking you if you're sure you want to allow this. Click Allow from Anywhere. Or, you can follow the directions in this window, if you don't want to make your Mac "less secure."
You should now be able to install the FTDI drivers.
With Mac OS 10.9 (Mavericks) and later, Apple has built their own version of the FTDI VCP driver into the operating system (AN134). However, there seems to be some conflict between drivers from FTDIchip.com and the ones inherent to Apple. Luckily, there is a solution to this problem, and it comes from FTDI directly.
If you are trying to use the FTDI VCP Driver in your applications, it will not work due to a conflict between the VCP and D2XX drivers. In order to get around this, the Apple supplied Driver must be uninstalled. Plug in the FTDI device in question, and type the following command in a Terminal window:
sudo kextunload –b com.apple.driver.AppleUSBFTDI <ret>
If the above doesn't work, you may have better luck using this script from FTDI.
Clicking on this file will bring up the Script Editor on all Macs. The script can be run by clicking on the run icon (black triangle). Again, make sure your FTDI device is connected.
You can make this script into a clickable icon by exporting the script as an application. In the Script Editor, select Export… from the File pull down menu:
In the Export dialog, select Application as the File Format. You can choose any name for the application.
You should now have an automated Apple Script icon to use on your Mac. With the Apple supplied Drivers uninstalled, you may return to the top of this section and install the FTDI VCP Driver as needed. Repeat this process for any other FTDI devices you are using. You may need to repeat this every time you restart your computer.
If you receive this error, it means that the driver has been uninstalled already, and you will need to install the FTDI VCP Driver, as stated above.
Plug in the FTDI device to a USB cable.
When you download the Arduino IDE in Linux, the download comes with the FTDI drivers bundled with the IDE. However, if you just open Arduino from the desktop, you'll notice that, if you click on 'Tools', the 'Serial Port' option is grayed out.
Linux includes the drivers necessary to use Arduino, and no additional install is needed. However, permissions might need to be configured. For current instructions on how to set up these permissions, visit this page.
An alternative method is to run Arduino as root in the terminal with the following command:
However, this method is encouraged only if you know what you are doing and should only be used as a last resort. You will also need to enter your administrative password to run as root.
Arduino should open, and this time the 'Serial Port' menu is available.
The FTDI device will show up under this menu. It should be named /dev/ttyUSB0. The number may vary depending on how many USB devices you have plugged into your computer. That's all.
Resources and Going Further
Now that you've successfully got your FTDI up and running, it's time to incorporate it into your own project!
For more hardware specifications, check out the resource below:
SparkFun USB to Serial UART Boards Hookup Guide
February 18, 2016
For more information about the drivers, check out the resources below:
- In-depth FTDI Installation Guides - In-depth guides to install an FTDI for any OS.
- Latest FTDI Virtual COM PORT (VCP) Drivers - The latest VCP Drivers found on FTDI's website.
- SparkFun's USB Serial Driver Quick Install Tutorial - A condensed version of our "How to Install FTDI Drivers" tutorial.
Check out these tutorials to dive even deeper into the world of microcontrollers!
- Installing an Arduino Library - How do I install a custom Arduino library? It's easy!
- Learn how to use a breadboard to interface your Arduino with circuits built by you.
- Learn the basics of e-textiles with this great tutorial
- Looking for something with a little more power than the Arduino? Check out the pcDuino getting started guide.