Monday, February 25, 2013

Raspberry Pi (Model B 512MB)

Raspberry Pi

Quite a few friends and co workers have picked up one in the past year.  I figure it was time for me to check this neat little device out.  It's basically a 700mhz ARM11 based computer than can run linux and a few other things.  The Broadcom BCM2835 is pretty capable at 3D (xbox 1 levels) and hardware video decoding (1080p h.264) though the cpu is dog slow (300mhz pentium II levels).  If you go in with proper expectations for basically what is a $35 computer you'll come out pleasantly surprised.

I'm going to basically walk through everything I did to get things up and running, all the gotchas I ran into, and all the fun things I got working.

- I picked up mine here in the USA from element14 model B 512MB for $35.  They were a pleasure to deal with.  I got it in about 3 weeks from ordering.  Yes, things are still back ordered even after a year but not as bad.  I also picked up this very nice clear enclosure for around $7.  Shipping was very reasonable.  If you don't want to wait amazon has a few sellers with prime for around $50 so you pay about a $15 premium.  My goal was to put this together as cheap as possible and try to use as many parts as I had lying around.
- You will need some SDHC cards (class 10 preferably since you want some fast ones) for persistent storage.  Everything boots off of SDHC so it's easy enough to try different images and builds.  I picked up two 16gb sony class 10 sdhc cards for around $8 each.  16GB seems to be plenty.
- Things I used that I already had:
- micro usb cable for power.
- USB charger with at least 700ma output.  I found some logitech one I had lying around that put out 1A so it worked fine.
- ethernet cable (always have a stack of extras from monoprice)
- hdmi cable (always have a stack of extras from monoprice)
- logitech cordless mediaboard .  Luckily this keyboard mouse dongle didn't draw too much power and worked fine with the Raspberry Pi (raspi) otherwise you might need a powered usb hub.
- here is what the lights mean:

PWR = 5V input power present
OK = SD card access indicator
FDX = Ethernet Full Duplex connection
LNK = Ethernet connection present
10M = 100 Mbps Ethernet connection

Total cost: $65 (including shipping)

I highly recommend you buy the additional codecs (about $5) if you plan to use this thing at all as a media player.  Do it early since it can take a few days to receive the codes by email.  You'll have to get at least raspbian up and running though to grab your serial number.

Raspbian "wheezy"
- This is the official linux (debian) distro for the raspi.  Grab it here.  Follow the pdf quick start guide.  It's pretty straight forward.  The link for Win32 Disk Imager is out of date.  You might also want to grab SD Formatter first and format the sd card before writing the image.  In Rasp-config make sure you set your keyboard to usa.  By default it is UK so @ and " are swapped.  In fact I would go through all the options.  I would change memory split to 128mb for gpu and change the password for user pi.  I also disabled overscan.  After a reboot or two you should be up and running.
sudo halt (properly shut down before unplugging)
sudo reboot
startx (start up lxde window environment)
- I had some intermittent hdmi issues but this seemed to fix it:
cd /boot
sudo nano config.txt
made the following changes:
- Mounting Network shares.  Just make sure you properly escape spaces in your share name when editing fstab.
- Here is a nice beginners guide.  You will want to do your updates:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo rpi-update (update the firmware).
- I also installed tightvnc and have it auto start from that guide.  Tight vnc from windows worked pretty well. I also tried ssh with putty which worked fine too.  Handy if something goes horribly wrong and you need to remote in and shutdown the raspi nicely.
- Install libreoffice from the official pi store.
sudo apt-get install hunspell (get spell checking working)
- Install Minecraft.  It runs pretty well though draw distances are very short.
- Install chromium.   There is no flash support since flash for arm linux was never developed.  Browsing is painfully slow for the most part.  Don't even try gmail unless you use the basic html version.
- pretty good email client:
sudo apt-get install claws-mail (it will be under internet in lxde)
- Install quake 3 arena:
I grabbed the pak files from
The binary in that zip didn't work for me.  I had to compile it myself as documented in the first link.  It takes about an hour.  It runs incredibly smooth at 1080p.  I was quite impressed.
- Tried retroPi.  Building from source takes a day.  I found it a bit of a confusing mess and haven't quite gotten anything to work with it.  I would probably hold off on this.
- installed XBMC on raspbian.  It works for the most part.  There are some quirks like I can't actually type with the keyboard though keyboard navigation works.  I just can't type to enter stuff like share credentials.  I had to use the mouse and on screen keyboard.  I can't figure out how to shutdown back to the command line.  I can basically shutdown the raspi or reboot it.  1080p mkv's are stuttery.  Good thing there is a better way to run XBMC (see below).
- Installed vlc but not really worth it since it doesn't support hardware acceleration. OMXplayer is an included command line video player that supports hw acceleration but I didn't mess with it.  The idea of a command line video player sounds painful to use.
- You can also backup your sd card to an image file using win32 disk imager especially if you've spent several hours tweaking things.

- This is an image which you can expand using raspi-config:
It works pretty well.  I loaded a few roms but you have to stick to the older games because of the limited cpu.

- After researching a bit this is supposed to be the most optimized version of xbmc for raspi.  I installed this on a 2GB sd card.  You really don't need much space:
- It works quite well out of the box.  I mounted the sd card in windows and modified the config.txt file (use notepad++) with my codec serial codes to enable vc1 and mpeg hw decoding.  This is very handy if you play mpg/mpeg2/wmv files.  It works great with hdhomerun recorded mpeg2 .ts files.  They play back very smoothly.
- Go under settings | appearance and make sure you have the right region set so the clock is right.
- Enable air play.  I was able to air play youtube from my iphone 5.  Performance was good.
- Other plugins work quite well like youtube and even  Dig a little and you'll find all sorts of umm less official plugins, and you can even get pandora working.
- Everything played great off of network shares with full 5.1 bitstream audio output.  For mkv h.264, .ts, mpeg, avi, xvid everything played very smoothly even 1080p mkv.  The UI is a bit sluggish but actual playback was great.  Codec support is a bit more hit and miss though.  One wmv I tried had static sound, same with a flv. DVD ISO did NOT work for me even with the mpeg2 codec enabled.  But for the major codecs and containers it seems to do pretty well.
- photos and mp3s worked fine.
- subtitles are handled well
- the official xbmc remote app for iOS works pretty well.
- As a pure media player it's about 90% there.

WD TV Live vs XBMC Android MK808 vs openELEC XBMC Raspi
- WD TV Live still is hands down the best for streaming media but this raspi is close.  XBMC on android MK808 has broader codec support but the lack of 5.1 kills it.  Also, raspi plays hdhomerun hd mpeg2 files better than the  mk808.  Raspi is also friendly with plugins since the internal player actually supports hw decoding.  The UI is definitely more sluggish.  The biggest drawback of wd tv live is it only does media.  MK808 and especially the Raspi are mini computers that can do quite a bit more.  WDTV integrates nicely with harmony remote so it has the highest WAF.  I personally have no regrets owning all 3.  They each really have their own strengths and weaknesses.
- There's just something nice about buying the raspi.  First, the build quality seems better than these chinese mk808s.  The raspi just feels more solid, stable, and behaves more predictably than the mk808 though the mk808 really is a lot faster, fast enough for everyday use.

Killawatt numbers:
- power usage openelec: 2w idle.  3w while playing 1080p mkv.
- power usage raspbian: 2w idle at command line.  3w with cpu at max while running chromium in LXDE.

Highly recommended.  I had a blast over the weekend getting my linux on and just digging in to see what this tiny cheap computer could do.  For general purpose computing I think it's a bit limited.  For light office work it's fine but browsing is really too painfully slow to be practical.  I did install lynx (text based browser) and at least that was fast but yeah not that practical.  openELEC was a pleasant surprise performance/compatibility wise.  Emulation is relegated to very old retro stuff but works more or less.  For $35 I can't really ask for much more.  It's definitely a fun toy to tinker with.  Definitely good if you want to teach somebody computers and maybe a bit of programming.  I probably won't use it much as a everyday computer but would work pretty well as a media streamer.

Sunday, February 24, 2013

Amazon Kindle Paperwhite

Amazon Kindle Paperwhite

I never really felt the need to have an e ink based reader.  I've been doing long form reading on mobile devices for a long time starting with the pea green soup 160 x 160 screen on the palm III.  From there I moved up to an ipaq pocketpc and then finally the iPhone.  I've always been quite comfortable reading novels on iPhone sized devices.  I just liked how light and small it was; how very easy it was to hold it in one hand.  Staring at LCD screens for long periods of time doesn't really bother me.

The biggest issue I've always had with e ink readers was the requirement of a light source.  That's because I like to do most of my reading in bed, and I wouldn't want a light on that disturbed my wife.  Having some sort of external mini book light sounded ridiculous to me.  What was this the 80's?  So when the Nook Simple Touch With GlowLight was released I started to take notice of e ink again but still didn't really see the need for one.

So when my younger son mentioned he preferred "primitive" paper books over reading on his iPad I figured something had to be done.  It was time to consider an e ink device again because that is supposedly the closest thing you could get to paper without actually having paper (I'm all about reducing clutter these days since we recently moved).  Also, it's a new toy I could check out but no this wasn't for me.  This was for my son to help encourage him to read more.  Yeah that's the reason!  Time to go shopping.

My research began with looking at the 3 most notable e ink readers with a built in light.

Nook GlowLight: $120.  It was the first one out and so is a bit behind in technology.  It has a lower 800x600 resolution screen but supports epub which is my preferred ebook format.  I already have quite a collection of epub files in dropbox.  The way the lighting is implement also is less even and older tech than the other devices.

Kobo Glo: $130 (best buy).  This has the latest tech in screen and resolution 768x1024.  It also uses newer methods of lighting the screen that produces better and more even results.  It's a tad bit pricier though.  It has epub support and incredible flexibility on customizing the look with the ability to adjust justification and even the weight and sharpness of the font.  Kobo is definitely a lesser known brand compared to the other two.  Battery is NOT replaceable.

Amazon Kindle Paperwhite: $120 with special offers.  I don't mind the ads that much since you only see them on the home screen or when the device is off.  You will never see them while reading.  Besides,  you can always pay the $20 extra later if you want to opt out of the ads.  It has the same great tech as the Kobo Glo and the same resolution.  It has a layer called the light guide which spreads the light more evenly and only lets out light down toward the screen beneath it where the guide lets it.  What it lacks are some of the customization options.  I really wish it had a way to set justification though there are some work arounds I'll discuss later.  It doesn't support epub which was a bit of an issue for me but not insurmountable.  Kindle uses the mobi format.  One odd thing is you can't actually completely turn off the light while reading.  You can adjust the brightness really low though.  The only time the light is completely off is when you "turn off" the device (while it displays ads).  It has 2Gb of non expandable internal memory which should be plenty (about 1000 books).  Battery doesn't seem too difficult to replace.

Why e ink:
- Most paper like reading experience.  Works great in sunlight
- With the light models now it works great in the dark too.
- Incredible battery life.  Kindle is advertised at 8 weeks with 30 min per day.  That comes out to around 28 hrs of battery life.  Power is only needed to paint the pixels (and for the light).  Image is retained after that without power.
- Light doesn't shine directly toward you so it should cause less eye strain.
- Size and weight is like that of a typical paperback.
- Cheaper than a 7" tablet.  No distractions.

Some disadvantages:
- Painting/refreshing the screen is a bit slow which can be distracting to some.  It doesn't bother me at all.  Forget about ever displaying video on one of these screens.
- No color so I wouldn't want to read comics, manga, magazines, or PDFs on this thing.  A 10" tablet is much better for that.
- No distractions.  They are designed to do just one thing and one thing really well though they do have some limited web browsing capabilities.  The paperwhite even dropped the audio capabilities.  There is no headphone jack so that means no text to speech either.

I went with the Kindle for a few reasons.  Amazon is probably the biggest name in books so you have a lot of support and a large library of ebooks to choose from.  They own audible too so their whisper sync works across your kindle, kindle apps on iOS/android/pc/mac, and also compatible audio books.  This allows you to read on any device and stop and pickup where you left off on any other device and even between listening to the audio book and then later reading where you left off.  It works well and is really convenient.  It's well supported by most libraries though most libraries do epub too.  You get some advantages being a Prime member like the ability to borrow books for free.

I also picked up this screen protector for $15 for 3 and the official leather case for a crazy $40 (UPDATE: Try this cheaper $7-9 alternative).  The case is really nice though if over priced.  The kindle snaps in snug and the magnetic cover turns the Kindle on and off like the smart cover on the iPad.  It just feels really good in your hands.  You might also want to pick up a usb charger since one is not included.  I didn't since I have plenty of usb chargers.  The screen protector is probably overkill in my quest to make this thing as child proof as possible.  It's also cut pretty close to the edge so it's very difficult to position correctly as there is almost no leeway.  Having the screen sunken in a bit and having to work within the edge of the bezel makes things just that much more difficult.  Here are some tips I always follow when putting on screen protectors.

I highly recommend calibre which lets you basically convert between many ebook formats.  I used this to convert my epub collection into mobi.  This usually works quite well preserving all images and formatting.  Converting from other formats like word or pdf gets you more mixed results.  I personally don't care for the gui or the library aspects of calibre.  Luckily calibre supports conversion by command line.  I wrote some hand batch files to help simplify the process.

Save this into a .cmd file then drop a shortcut into your send to folder.  Now you can just right click on any epub file from file explorer and select the shortcut from send to and it will convert the file to mobi in the same directory.  This one is good for converting epub to mobi.

"C:\Program Files (x86)\Calibre2\ebook-convert.exe" %1 ""

This one does some formatting to help cleanup conversion from PDFs (note: I prefer left justified):
"C:\Program Files (x86)\Calibre2\ebook-convert.exe" %1 "" --change-justification=left --remove-paragraph-spacing --title="%~n1" --title-sort="%~n1" --pretty-print --remove-paragraph-spacing-indent-size=.5

Run this one from a cmd prompt and it will batch convert all files in the current directory:
for /r %%i in (*) do "C:\Program Files (x86)\Calibre2\ebook-convert.exe" "%%i" ""

Do NOT convert to the newer KF8 format since for some absurd reason the kindle personal document service cloud storage doesn't support it!

There are a few ways to load books onto the Kindle. You can always tether and go through usb. Of course you can easily download any books purchased through Amazon over the cloud.  You can also use the buit in browser and hit  Click on any .mobi file and choose download it and it will appear in your device's library.  The final and most convenient and feature rich way is to use Amazon's personal document service which gives you 5GB to upload your own content which is a LOT of books.  Storing your own books in amazon cloud lets any kindle app/device easily download it from the cloud tab from within the app.  Also, this is the only way to get whisper sync to work across apps/devices with your own books.  To upload your books you could always use the custom email address which is provided with every kindle device/app.  It works but there is a bit of a lag before it gets processed.  My preferred way of bulk uploading is using their Send to Kindle windows (or mac) program which integrates nicely with file explorer.  Just select multiple files (up to 25 at a time) in file explorer and right click | send to kindle.  You can login to the amazon web site to manage your documents.  One thing I noticed that is lacking is a bulk delete.  It's very tedious if you want to delete many books out of your personal documents.  Luckily there is a handy bookmarklet that works great.

Highly recommended.  The kindle really is great for long form reading being easier on the eyes and just the right weight and form factor.  It's light on your wallet too.  Whisper sync really is great letting you read on your tablet, phone, or the paperwhite and just seamlessly pick up right where you left off.  Amazon also has a pretty good selection of free books and many public libraries support the Kindle.  I recently finished the game Spec Ops The Line which I found really quite good.  It was a very underrated game in my opinion.  I might have to write a review on it someday.  Anyways, the story got me interested in reading Heart of Darkness which I never had.  Well, it's free on amazon so it was simple enough to grab it right from their store.  It informed me of the free audio book on audible so I grabbed that too.  So now I can listen to it in the car with the audible app on my iPhone during my commute and continue reading at home on my iPad, iPhone, or Kindle and pick up right where I left off. It really is hard to beat that kind of convenience.

Tuesday, February 12, 2013

Easyblue Bluetooth Keyboard and Mouse Dongle

- I picked this up at amazon for about $35 shipped.
- It's a BKM (Bluetooth keyboard mouse switch)
- This is an interesting device that fits a particular situation.  It's a small usb dongle.  When you attach it to a PC through usb it loads some standard HID drivers that are built into windows and also creates a small 4MB flash drive which has a windows/mac tray app. The device also has bluetooth that connects to your tablet or smartphone (iOS or android).  Once you pair the EasyBlue with your mobile device you are set.  Now you can use your existing desktop keyboard to control your pc or your mobile device by toggling between the two with a hotkey (ctrl + up is the default but can be changed in the tray app).  It works seamlessly and super fast.  There is ZERO delay switching between pc and mobile device.
- This does NOT add bluetooth to a pc.  The pc side is only an HID device and flash drive.  The mobile side is all bluetooth.
- So basically you get all the advantages of a bluetooth keyboard (and mouse for android) without having a separate keyboard taking up valuable desk space.
- First thing I did was update the firmware and software to 2.0 from the manufacturer's site.  It's all in korean but it wasn't too hard to figure out (let google translate it).
- It has a small hole to put on a keyring.
- The tray app has a lot of settings like custom hot key, custom keymap, toggle tray notifications, toggle the LED light, etc.
- You can cut and paste text (ctrl c, ctrl v) between the pc and mobile device.  This is great for urls and such.
- Works even when inside citrix receiver with the easyblue attached to your host pc.

Highly recommended.  It's a convenient space saving device.  Sure, there are times when you need a portable bluetooth keyboard but this sure is handy if you need to iMessage somebody.  Now, if only apple would let you map enter to "send" in the iMessage app (or you can try this kludge which actually does work).