Here are instructions on how to overclock your Motorola Droid. I learned how to do this through various forum posts and a blog posts, some of which were a confusing mess of information and misinformation. My goals is to summarize what I have learned in one place, to act as a more-or-less definitive guide.

SetCPU

  1. Root your Droid. (Note that I rooted my Droid before 2.1 came out, so I have not followed the instructions that I have linked to, and cannot comment upon them.)
  2. Install ROM Manager from the Android Market. This app, and the ClockworkMod Recovery it comes with, make flashing ROMs a lot simpler than the process used to root your phone.
  3. Flash ClockworkMod Recovery via ROM Manager. (You don’t need the paid version for this tutorial.)
    1. Launch the ROM Manager.
    2. Click the first option: “Flash ClockwordMod Recovery.”
    1. Grant the app root access (and check “Always Allow”) when it asks you.
    1. A popup will ask you to confirm your phone model. Just click on “Motorola Droid (CDMA)”.
    2. This will download and install the ClockworkMod recovery image. Just wait a couple minutes. There’s no need to reboot your phone afterwards.
  4. Install the latest stable CyanogenMod via ROM Manager.
    1. In ROM Manager, click the “Download ROM” option, then click “CyanogenMod”, then click the latest stable release. As of this writing, the latest stable release for the Droid is 5.0.6.2.
    2. A popup will appear. Check the box next to “Google Apps” and click “OK”.
    3. ROM Manager will then download the ROMs for Cyanogen and Google Apps. When the downloads are complete, ROM Manager will alert you for more options prior to installation.
    4. When the downloads are complete, a “ROM Pre-Installation” popup will appear. Check the option to “Backup Existing ROM” just to be safe. If you are doing this for the first time, or are changing themes, check “Wipe Data and Cache”; you may leave it unchecked if you are upgrading to a new version of the same ROM. Click “OK”.
    5. The phone will then reboot into recovery, back up your current ROM to the SD card, install CyanogenMod, and then reboot when it is done. The first boot into the new ROM might take a little longer than normal. Don’t worry.
  5. Set up your phone again.
    1. You will need to sign into Google again and re-download all your apps. (Yes, this is a pain, but you did just reinstall everything on your phone!) You can re-download your apps after overclocking, if you wish. You will not have to pay again for any paid applications you purchased from the Android Market. You will not have problems “reactivating” your phone.
    2. If Google apps, such as Google Maps, are missing, that means that you didn’t check “Google Apps” when you downloaded the ROM. You will have to install Rom Manager and then reinstall CyanogenMod with Google Apps to fix this.
  6. Install the bekit kernel, which allows you to overclock your CPU.
    1. Open ROM Manager.
    2. Click “Download Rom”, then “CyanogenMod”, then “bekit Kernals (0.8.3)”.
    3. Choose your bekit kernel from the popup that appears. I recommend “5 Slot 800MHz 0.8.3 *Low Voltage*” (which I use for this tutorial) or “5 Slot 1.0 GHz 0.8.3 *Low Voltage*”. A “slot” is an operating frequency. 5-slot means that there are 5 speed settings at which you can set your CPU. 7-slot kernals have 2 more speed settings. I don’t see much need to set the CPU to a whole bunch of different frequencies, so 5-slot kernals are good enough for me. You should stick to the “Low Voltage” kernels (scroll down in the list to find them) to avoid overheating your CPU or decreasing battery life more than necessary.
    4. The kernel install process through the ROM Manager works similarly to the CyanogenMod ROM install process. When the kernel download is complete, a “ROM Pre-Installation” popup will appear. Check “Backup Existing ROM” if this is your first time changing kernels, or if you don’t have a recent backup. Do not check “Wipe Data and Cache”. Click “OK”.
    5. The phone will reboot into recovery, back up your current ROM to the SD card (if you selected that option), install the new kernel, and then reboot when it is done.
  7. Purchase and install SetCPU from the Android Market. It costs $1.99 as of this writing, and is totally worth it. Read more about SetCPU here.
  8. Set up SetCPU’s global settings.
    1. Launch SetCPU.
    2. Click the “Autodetect Speeds” button. Grant the app root access (and check “Always Allow”) when it asks you.
    3. SetCPU will display the maximum and minimum CPU speeds your kernel supports. Using the “5 Slot 800MHz 0.8.3 *Low Voltage*” bekit kernel, you should see 800MHz max and 250 MHz min.
    4. Adjust the sliders on SetCPU’s main screen to set the global minimum and maximum CPU speeds. I tend to leave the minimum as 250MHz and the maximum as 800MHz. Remember that the stock Motorola Droid CPU is underclocked from 600MHz to 550 MHz, so 250MHz is actually underclocking (better for battery life) and 800MHz is overclocking (better for performance).
    5. Set the CPU Governor. I recommend using default CPU Governor: “ondemand.” This means that the CPU will scale up when the phone is busy (i.e., when you are using it) and will scale down when the phone is idle (i.e., sleeping). The “conservative” CPU Governor scales speeds up more slowly than “ondemand” does; I find that it makes games a little laggy. The “performance” CPU Governor simply always uses the maximum speed setting; this seems unnecessary for a device that spends most of the time sleeping.
    6. Check “Set on Boot”. The only reasons not to have “Set on Boot” checked is if you are flashing a new ROM, or if you are overclocking by a lot (say, to 1.2 GHz) and are concerned about stability.
  9. Set up SetCPU Profiles. (This step is optional, but recommended.)
    1. In SetCPU, click the “Profiles” button. A popup will appear.
    2. Check “Profiles On” in the popup.
    3. To update a profile, click on its “Enabled” checkbox, click the “Modify” button, set the CPU speed sliders and CPU Governors in the popup, and click the “Apply” button. My recommended profile settings (for my 800MHz kernel) follow.
    4. Enable the “Charging” profile. Set to 550 Max, 250 Min, ondemand. You don’t want to overclock while charging, because the battery is already hotter while charging, and you don’t want to overheat your phone.
    5. Enable the “Sleep/Standby” profile. Set to 550 Max, 400 Min, ondemand. You can set the minimum speed to 250MHz, but I like 400MHz, because the phone wakes up a little faster.
    6. Enable the “Battery Profiles”, which will be in use most of the time you actually are using the phone. You have to set up all 3 profiles for them to work. I like to set them to scale back the CPU speed as the battery is depleted.
      1. Enable a “Power < 100%” profile. Set to 800 Max, 400 Min, ondemand, if battery is under 100%.
      2. Enable a “Power < 50%” profile. Set to 600 Max, 400 Min, ondemand, if battery is under 50%. This steps down the CPU a bit to eke out more battery life.
      3. Enable a “Power < 15%” profile. Set to 550 Max, 250 Min, ondemand, if battery is under 15%. This steps down the CPU a bit more to eke out more battery life.
    7. Leave the “Failsafe Profile” as is, and enabled. This profile kicks in when the phone starts to overheat. I’ve never had my phone overheat for any reason. SetCPU reports the battery temperature of my phone as 30° C to 40° C, which is well under the danger zone for this CPU (which starts, I believe, at 50°C).

After all this, your phone will be overclocked during use and underclocked at rest. I find that a little overclocking makes the Droid a lot more pleasant to use, and doesn’t hamper battery life much, and doesn’t affect stability at all. The whole process will cost you about $2 for SetCPU. If you love ROM Manager, buy that app, too, and support the developers. The premium version of ROM Manager unlocks a lot of ROMs and themes, and provides notifications if an update is available for your ROM.