I couldn't help but be a little intrigued by all Raspberry Pi hype. A computer smaller than a deck of playing cards, able to run Linux/ChromeOs/etc. and costing only $25-35 (depending on the model), sure sounded interesting. There are no end to computing projects I have in mind to undertake, so this seemed the perfect platform for them, particularly when the Raspberry Pi community is so friendly and supportive.
Well, having had my Raspberry Pi (model 2) for a week now I can certainly say that it's cool alright, but I'm increasingly convinced that its use in the desktop-related computing projects I had in mind is severely limited. The official Raspberry Pi Debian release runs, and includes a resource friendly web browser and other resource friendly apps, but attempting to run anything else is painful. One project I am working on uses JonDo, the magnificent privacy proxy, so I tried to see if the JonDo client would work with Raspberry Pi. It does install, and run, but it is painfully slow as to be utterly unusable (perhaps because of the Java overhead or perhaps because of the encryption demands). So much for that.
The thing I love most about the Raspberry Pi so far has less to do with it and more to do with the discontinued Motorola Lapdock. A couple years ago some people at Motorola and elsewhere thought that what people really wanted was a way to use their phone as a laptop and I remember all the hype surrounding the "lapdock" which would let you do just that. Unfortunately, at a price of $500 people really didn't want it, opting instead for cheaper $250 netbooks and $250-600 iOS/Android tablets. Sad for Motorola but great for anyone now because these over-produced lapdocks have been hitting the deep discount sales sites for the last year or so, currently selling them for $49! What you get for $49 is a fabulously elegantly, slim 10" display with keyboard, touch pad, and built-in rechargeable battery back! I seriously know of no better tech deal ever! Now, the cool part is that rather than use some proprietary connectors the lapdock uses separate micro HDMI and micro USB connections, and being universal standards you can connect a Raspberry Pi or anything else you want up to these connectors! I bought a second Motorola Lapdock to use as part of my emergency computer repair tool kit, with this thing and a few cables I've got a mobile keyboard/mouse/monitor I can hook up to any down server or computer with questionable peripherals.
In the case of Raspberry Pi this means that for $49 (Motorola Lapdock) + $35 (Raspberry Pi model 2) + $10 (cost of cables) you have a $94 laptop. Admittedly it's a pretty underwhelming laptop in a field where vastly more powerful laptops can be had for just over $200, but still... If you're buying a Raspberry Pi for anything other than experimenting then you're doing it wrong.
Watch the video above to learn what cables you need and how to modify them; the girl in the video throws me off a bit, I think it's the Ferdinand the Bull nose ring and reddish hair. Also, check out this cool modification to learn how to add a super capacitor to your Raspberry Pi as a great little backup battery/brownout protector (which is particularly useful with the lapdock).
If you are new to Nook Color operating system and install options, I strongly recommend reading this guide to picking your Nook Color operating system and installer. And if you want something even better and easier than the Froyo install documented below, check out my more recent Complete Guide to Installing CyanogenMod 7 (CM7) on the Nook.
I recently stumbled onto the most amazing tablet I've seen yet, amazing not because it rivals Apple's iPad or Motorola's Xoom in features but because it blows them away in price (about $250), utility (it's screen is just big enough to be comfortable, just small enough to fit easily in a jacket pocket), and style (it's got a quirky, rugged charm that grows on you). The Barnes & Noble Nook Color was not intended to be a tablet, it was intended to be an e-reader, but some clever folks have figured out how to unleash its potential by unlocking and/or replacing its limited version of Google's Android OS, and by doing so they have created what I think is one of the best tablets out there. It may lack a forward and rear facing camera, it may lack a microphone, but by god is this thing a pleasure to own. And now I'm going to share with you the lessons I learned in a brutal, sleepless weekend trying to get up to speed with the Nook Color modding community and what they could do. If you have a Nook Color and you follow through with the steps outlined in this guide, in a matter of an hour or two you'll have a very stable, highly functional, overclocked Android tablet running Android 2.2 (aka Froyo); more recent versions, 2.3 (Eclair) and 3.0 (Honeycomb), have not yet been sufficiently tailored to be reliable on the Nook Color. Your new Froyo Nook Color will be almost as stable a store bought tablet at half the price, while running at 1.1 GHz, 40% faster than the original Color Nook and about the same speed as other much more expensive tablets like the Samsung Galaxy Tab.
The approach documented here is to run the OS on a bootable microSD card rather than replace the original Nook Color firmware. I like this approach because the performance I'll experience is roughly similar to that using the built-in memory, and I can still access the original device in its original form if I like, for the e-reader features, should I choose to use them. And if the device proves itself defective in time, the device is still "original".
Step 0: Buy a Nook and a High Speed microSD Card
Before we begin you'll need the hardware, specifically:
- Barnes & Noble Nook Color $249
- Buy a microSD card $7 - 15
You want to make sure you get a microSD card that is fast, but stay away from the class 10 rated cards! I can recommend the PNY class 4 microSD cards because of the three I've purchased all perform at class 10 speeds (they all write at ~12 MB/s and read at ~84 MB/s) and they actually work well in the Nook Color. The class 10 Patriot LX SD cards I bought behaved very badly, making my system very unstable; the kernel would freak out randomly and every app would start to crash as the filesystem became read only. My experience was not unique, people using all makes of class 10 cards have had problems getting them to work reliable (if at all) with the Nook Color.
Step 1: Make Android Froyo SD card
Simply follow the painless guide on NookDevs and within a few minutes you'll have a bootable microSD with Froyo on it that you can stick in your Nook Color:
You'll only be using a fraction of the total size of the card at this point, we'll cover accessing the rest of it later.
Step 2: Android Debug Bridge
To add the initial, critical apps (e.g., Google's Market, app store) and do the required customization you will need to install the Android Debug Bridge (ADB) tools as well as the necessary USB drivers, and a Java JDK if you don't have one:
The process isn't fun, but you only have to do it once.
Make sure to change your Windows PATH variable to include the platform-tools folder (where adb.exe is located). I have found that some adb commands will not accept the path to a file as a parameter, and will tell you the file does not exist even though it does (very frustrating and confusing). By including the platform-tools directory you can run adb from the directory where the file in question is so that you have no such problems.
Step 3: Basic Froyo Customization
It is now time to do the basic mods of your vanilla Froyo install to make the Nook Color a fully functional (and usable) tablet. Here again we rely on the great:
Walk through this document doing all the items listed. Be careful to note the text indicating which steps are not required because your version of Froyo already includes those enhancements. Also, I recommend against doing the Adobe Flash step listed on this page, as it did not appear to do anything for me. Below I list apps you should add to your device and Adobe Flash will be covered there.
Ignore the section on overclocking, we'll tackle that separately down below.
Softkeys Versus Remapped Volume Keys
The reason you want to map the hardware keys is because the Nook Color is missing two critical physical buttons that you desperately need, Menu and Back. If you don't map the hardware keys (in the section Remapping Volume Buttons to MENU and BACK Buttons) you can use the Softkeys app, which will make virtual buttons appear on screen when you need them by clicking an always-on-top virtual button. Personally I think you'd be silly to use Softkeys, since these keys are so needed. Adjusting your volume is far less critical; I separately add a widget to the home screen to easily adjust volume.
Slow to Start
When you first run your new Froyo install you may initially feel the OS is painfully slow. Not to worry! Services are still starting up and various caches are being created. After an hour or two of use the responsiveness will be much improved.
I haven't read about this happening for anyone else, but on my Nook Color the battery indicator went crazy at some point during the upgrading, artificially reading 53% when the battery was nearly full, and at another time reading -20435%. I left the device plugged into the wall over night and when I turned it on in the morning the battery was reading properly, and has been ever since.
Step 4: Adding Important Apps
Now it's time to install a bunch of apps (almost all of them free) to get the most out of your Froyo experience. The list of apps I was recommending got rather long so it now has its own page. I strongly recommend you go now and install all of these Must Have Apps for your Nook Color.
Obviously you can add more apps beyond those, but you walking that list you will cover the basics and be in good shape to proceed.
Froyo seems to have a serious peculiarity where downloading apps in the Market may go very, very, very slowly. I experienced this with my class 10 performing but class 4 rated PNY cards, but others reported no such problems when they used a class 6 card. When I installed Gingerbread / CM 7 instead of Froyo the problem was completely absent.
Step 5: Backup Your Progress
Now we back up the progress we've made so far, so that if something goes wrong in the next step (replacing the kernel) we can just revert and try again.
Shut down your Nook Color. Remove the microSD card and plug it into your computer's card reader.
If you're a Windows user, use the free software Image Writer to create the backup image, if you're on anything else you can use "dd".
The backup might take 5 - 15 minutes, depending on the size and speed of your card.
Step 6 : Upgrade the kernel!
If you don't know what the kernel (aka ROM) is, it's the core OS code upon which everything else depends. And we're now going to replace your stock Froyo kernel with a greatly enhanced version. The main reason to do this is to allow overclocking of your Nook Color, but it also fixes things like volume issues with the headphones, solves touch screen problems, and adds Bluetooth support!
The first thing to do is to download the kernel you need. We're going to use Dalingrin's OC (overclocking) kernel. Follow the link in Dalingrin's kernel announcement thread for the “Froyo and CM7 kernel”. Then choose the most recent dated folder, navigate the hellishly confusing minefield that is the Mediafire download hosting site, and get the download you need which will be called “update-froyo-dalingrin-OC-sd-MMDDYY.zip” (where the MMDDYY is replaced with the date of the recent version).
Unzip this file to a folder you can easily get to in a DOS window. FYI, the only file we will actually be needing in the zip is the “uImage” file, which is the new kernel.
The installation path given in the discussion thread isn't right for our Nook Color with Froyo SD. So, instead of what they say, do this:
> adb shell mount -t vfat /dev/block/mmcblk1p1 /sdcard
> adb push uImage /mnt/sdcard/uImage
And immediately after this, clear the Dalvik Cache (it's a cache of JIT binaries):
> adb shell
# rm -rf /data/dalvik-cache/*
Your Nook Color will shut down and when it comes back it will be running the latest kernel!
If something goes wrong and your device won't boot or in some other way seems seriously screwed up, just shut down, pop out the microSD card and use Image Writer to restore the image you previously backed up. Dealing with any problems is beyond the scope of this article, your best bet for support would be the people in this thread. And don't forget, we're doing all this on the microSD, you can always pop-out the microSD and your original Nook Color is still there.
If you experience subsequent WiFi problems (such as wifi refusing to stay on, where it loops trying to turn it on then going off) clear your Dalvik Cache with the adb shell and rm -rf /data/dalvik-cache/* reboot approach I listed above! Or buy the pro version of Titanium Backup which includes a cache cleaning feature.
ClockworkMod Recovery is a system which facilitates kernel upgrades and prevents you from getting into a situation where you would need to revert to a previous backup of your kernel/ROM. Serious kernel upgraders would be better off using that approach, but if you're just doing it once, or every once in a while, the above approach should suffice. Unfortunately, for some reason it won't work properly on my (and presumably this) installation of Froyo to an SD card. When I try to back up ROMs it crashes the Nook Color, and when I try to go into ClockworkMod Recovery (from the app or from cold boot and the Power + Nook button combo it ignores me); it does however sometimes randomly drop me into ClockworkMod Recovery after a spontaneous Nook Color crash.
Step 7: Overclocking
Go into the CPU Tuner app you installed and adjust the upper limits of the CPU to 1100 MHz. I set the upper limit to 1100 MHz for only the Performance, Good, and Normal profiles. I made sure the lower limit was 300 MHz for all profiles. Most people report no problems overclocking their Nook Color. If you have problems, you can always revert your CPU Tuner settings.
Step 8: Repartitioning your Virtual SD Card
The final task is to expand the partition containing your virtual SD card. At the moment you are using only 2 GB of your real microSD card, because that was the size of the image we used to write the original Froyo card. The rest of the microSD card is currently wasted, and we want to add that the partition that is used for your virtual microSD card. Repartitioning while preserving your data requires special software that can expand a Linux partition. One such product for a Windows user is EASUS Partition Master, which is under $20. Simply shutdown your Nook Color, move the microSD card into the PC's card reader and use that software to expand the sdcard partition to occupy the rest of the card; if anyone knows of a good free alternative, let me know!
Hopefully my time wasted figuring all this out will be your time saved and enjoying a truly fantastic tablet experience.
While your Nook Color may not compete with the iPad 2 in terms of power and features, you'll probably find you use it more than you would an iPad 2 because it's compact enough to always be with you.
The wifi turn of/off loop (mentioned above) can be pretty irritating; the solution involves rebooting and clearing the Dalvik Cache. It didn't happen to me at all yesterday, but did three times today. A solution I'm now trying is using the "Green Power FREE battery saver" app.
Bluetooth is available in the Nook Color, meaning you can use Bluetooth keyboards, GPS dongles, and audio devices! But... the Bluetooth features are not available as yet in the Froyo kernel. The features are available in the CM7 kernel. Since I ran the CM7 kernel accidentally a few days ago on my Froyo install without seeming complaint I'm wondering if perhaps switching to the CM7 kernel would give my Froyo Bluetooth support. I'm guessing running the CM7 kernel on a Froyo install would lead to subtly serious problems in the long run. I've got a great iGo Stowaway Ultra-Slim Bluetooth keyboard ready to use, so this deserves more investigating.
CyanogenMod 7 Early Experience
Just today I got a new class 10 microSD card in the mail and decided that I'd give CyanogenMod 7 (CM7) a try since "verygreen" had a great description on how to install CM7 to SD card and it sure looked easy. And, well, it was! Within a couple hours I'd installed CM7, ported all my apps (and data) over (with Titanium Backup's help), installed Dalingrin's OC latest kernel! I wanted to explore CM7 because people are getting Bluetooth working on it, and I wanted that. Also, others were talking about how it was "better". So far all I can say is it feels much faster! The major slowness of Market downloads/etc. I experienced with Froyo on a class 4 card were totally gone on CM7. Also, a pretty cool Softkeys like set of buttons is in the status bar at the top as part of CM7, though unless you want to remap the hardware keys you still need something when apps go fullscreen. This time I tried Button Savior which I like a lot better than Softkeys. I elected not to remap the hardware keys this time, since the status bar solution means I'm fine 85% of the time, it's just when fullscreen is employed that I need virtual buttons, and Button Savior's solution is elegant enough for that. Had a few hiccups during the process, but nothing that you'll probably experience. I did get BT working with my iGo Stowaway keyboard, which is awesome! (The secret is, turn off wifi, reboot, then turn on BT, then turn wifi back on.) The Dalvik Cache got screwed up at one point and everything was doing force closes. I manually deleted the cache and rebooted, since then things behaved. Also ran ClockwordMod's permission fix feature, just in case. ClockworkMod still won't back up my ROM. Everything so far seems great, except video... Video framerates are like 8-10 fps, across the board in every app and even as you scroll windows in the OS. I'm sure this will get fixed soon, but just be aware that's what you'll have right now if you jump over to this. Froyo had perfect video playback, but no BT.
Here are some photos from my sweet CM7 RC4 setup (with iGo Stowaway Bluetooth keyboard)!