I have a few projects coming up that I hope to start blogging about, but to kick the series off I am going to document an older build (~5 years old). I have always wanted a “proper” home theater with a decent projector, nice screen, and immersive sound. That has, of course, taken a back seat to so many other priorities but I at least I have a screen to show for it.
I went for something I thought was straight forward: a wood frame and cloth screen. What I ended up with was something that was probably over-engineered/overkill for my use case but something I am happy with either way. It started with a couple drawings in my project notebook with an emphasis on preventing any sagging in the screen over time. The screen had to be supported from the sides due to a double-wide window being located behind the screen.
I decided on a 128” screen early on, mostly because the projector I was looking at supported the size and it looked like it would fill the wall well. All in, it probably cost around $250 to build, including all the extra hardware bits I could probably do without.
A while back I created a few git utilities which I am sure are available in other packages but I had the immediate need and boredom to create. Those are git-stp (Git: Stash, Test, Pop) and git-wipit (Git: WIP it good, WIP it real good!).
The first utility, git-stp, grew out of a need to continually stash particular changes, run a test framework around the commited changes, and pop the stash back if everything was OK. This was to ensure that each commit I made was green in isolation, a requirement of our team at the time.
The second utility, git-wipit, was created because I found myself writing quick WIP (Work In Progress) commits during the day before meetings, lunch, leaving, etc. Instead of wasting the energy to stage and commit all changes, I decided to shorten the effort to two words: git wipit. The utility also allows for pushing commits off to a branch based on the current branch name (i.e. if you are on feature-12345 it would then create wip/feature-12345 for you) or a name you specify (wip/<user-provided-name>).
Some time after the first iteration of the Raspberry Pi Laptop, the Raspberry Pi Foundation suddenly released the Raspberry Pi 2, a backwards compatible quad-core upgrade to the original Raspberry Pi. I knew, just by the specs alone, I had to get one and use it as part of my lapdock setup. I believed it would solve all the issues I had with the original RPi model B. See below for the final build and read on for how it came together.
First things first, I had to look into the power consumption of the new devices. I figured that with a quad core processor and more ram it had to be consuming more power. A bit of google-fu and a few links from my brother I was able to find a great article which details out everything I needed to know. Thanks to the wonderful re-engineering of the built-in PSU they were actually able to LOWER the power consumption of the newest revision (when compared to my original RPi B). With this in mind, I sourced it from Element 14 day of release and purchased as quickly as I could since stock was being snapped up. A short time later, the beautiful new Raspberry Pi 2 arrived at my doorstep.
Given my inability to go slow when getting something new, I ripped the new packaging open and started assembling. I knew from research that back-powering would not work anymore due to protections introduced in the RPi model B+ USB layout. That was fine, I can always just re-create the Y-cable I made during my first iteration. I reluctantly set aside the new hardware and headed down to the basement for more Shoddy Soldering™. A short time and two attempts later I came out with a newer, less shoddy version of the original Y cable I made during my first iteration. It worked, the pi booted, and I had a running system again. Except wait… What is that rainbow square thing in the top right corner?
Turns out that in the redesign of the RPi B+ they introduced an undervoltage warning which would display on the screen if the RPi received below 4.65V. Apparently, my little lapdock has been undervolting the raspberry pi since day one and I just didn’t know it. It does explain one occurrence of SD card corruption I experienced (combined with having overclocked the original RPi B). I figured since the original ran so well even with the un-known under-voltage it received and the fact that the new model uses less energy I would just live with it and see if I experienced any issues. It is currently 3 months into the new build and so far I have not seen any noticeable issues in the build.
Minus the rainbow square I mentioned above (which I know I can turn off if I cared to) the new Raspberry Pi 2 is like night and day as a desktop operating system. The quad-core processor and double the ram makes the machine feel more responsive than I have ever felt it be. I am now able to use Chromium directly rather than a special made browser. I am able to load up any website, including youtube (albeit on 360p video) and watch random videos. I am even able to solidly use the Cloud9 web based IDE inside chrome on the RPi (I wrote this site and write every post with Cloud9). I think that finally, with the Raspberry Pi 2, the platform has become a solid contender for a desktop replacement. Sure, I can’t load up steam and play my library of games, but it does just about everything else I need.
Coming soon I will be going to New York City for an extended period of time (hopefully) and I plan on using this setup as my primary rig. I should be writing about my experiences on here soon.
Somewhere around four years ago I had an unfortunate accident with my old HP 510 laptop which resulted in a thumb going through the LCD screen. This left me without a laptop, which was not too bad as I still had a perfectly fine desktop and an iPad. The only problem with this setup is that the desktop isn’t really portable and the iPad leaves a little to be desired in applications and multitasking. I did try sporadically for a while to get by with the iPad alone, following in the footsteps of people like Mark O’Connor, but it really just didn’t work well for me.
I had it in my head for a while during this time to try to do something interesting with the Raspberry Pi as all I had previously done was make it into another media center. I thought a laptop built around it would be great, but really didn’t find any good and cheap ways to achieve it. That was until I found the Lapdock series of netbook-like devices normally powered by smartphones. The lucky part to me is that the lapdock was a commercial flop leaving a lot of stock in the secondary market for cheap. I found a couple examples of people successfully using them with the RPi and figured, why not. I started doing some research and built the parts list for my own build.
Raspberry Pi Model B
Micro-USB Female to Male extender
Micro-USB Male to USB Male cable
Micro-HDMI male to HDMI Male cable
Micro-HDMI Female to Female coupler
(Bought Later) USB Male to USB Male coupler
With all the parts having arrived I got right down to building as quickly as I could because I am impatient. First things first, I tested to see if the lapdock even worked. It was rather easy as all it took was the HDMI coupler and Micro-HDMI to HDMI cable to get the video working and plugging rPi into a wall-wart power source. After a few attempts at order of operations on what to connect I had it working. Next was to work on my power and data cable.
The first iteration of the power/data cable was made using the Micro-USB Female to Male extender and a spare charger cable designed for a phone. I split the extender cable at the male end and the charger cable in half. On the extender half of the cable, I stripped around 1 inch away from the shielding and stripped the individual USB wires bare at about 1/4 - 1/2 an inch. I did the same for the Micro-HDMI male end of the charger cable but only to the power and ground wires (Red and Black). On the regular USB male end of the charger cable I stripped back only the data wires (Green and White). Now, I simply soldered the exposed color coded wires on the extender to their counterparts on the two ends of the charger cable. The final wire allowed me to splt the data lines to the USB port of the rPi and the power lines to the normal power input of the rPi.
Now to contain all the wires since I left them long I used an altoids tin and a little bit of scrap wood from the shop. By screwing the altoids tin to the thin block of wood it allowed me to have it be able to stow in the phone slot of the lapdock. A little bit of velcro and a pressure fit case for the Raspberry Pi and I had it attached to the back of the Lapdock. Everything came together fairly nicely.
Testing and Tweaking
Initial testing showed no audio, which was what many other earlier creators of Raspberry Pi Lapdocks found. The solution was simple enough, just a flipped setting in the RPi’s configuration file: /boot/config.txt. Simply find the line for hdmi_drive and set it to two as seen below. This tells the Raspberry pi to force HDMI mode on the HDMI port as opposed to audioless DVI mode.
I also experienced an issue where the keyboard and trackpad would intermittently disconnect/reconnect. Light debugging left me to believe it was due to my soldering skills (or lack there of) and the special cable I created. After a little research I discovered the Raspberry Pi B allowed for back-powering through the USB ports. Knowing this, I found the USB Male to USB Male coupler I mentioned in the materials list and did a straight connection from the Lapdock to the Raspberry Pi. This solved all connectivity issues I was having.
After getting all the hardware together it, the setup worked about as well as I think I could have expected for the Raspberry Pi. I did end up overclocking the RPi to eek out as much performance as I could, but at the end of the day it is still a Raspberry Pi and has its limitations. Finding a web browser that worked well was the biggest issue. I ended up getting in as early as I could on the Collabora Web webkit based browser and it worked the best out of any I could find. Still had to use a script to pull youtube videos, but hey, it covered most of my needs.
Soon, hopefully, I will have another post up with my rebuild of the laptop with the Raspberry Pi 2 and my impressions of it.