Improving Bluetooth Keyboard Performance

I have a Microsoft Bluetooth Mobile Keyboard 6000.  It’s a small, ergonomic keyboard that runs on AAA batteries.  I like everything about this keyboard except for the fact that it disconnects frequently (after about 10 seconds of inactivity), making it almost impossible to use.

As it happens, Windows 7 turns off the Bluetooth radio when it is not in use.  Unfortunately, the algorithm is too strict and the Bluetooth radio turns off a little too quickly.  This makes using a Bluetooth keyboard quite frustrating.  Thankfully, there is an easy fix.

Continue reading

Control iTunes with an SP-800 Presentation Remote

Apple has made it easy to control multiple sets of speakers from iTunes (airplay).  And it has always been possible to wire your house the old fashioned way — with wires.  If you have the money, you could even splurge on a sonos system.

So, with music blasting in every room, how do you control it?  More and more, the answer is “download an app for your smartphone”.  But some people would rather have a dedicated device with a simple interface than add one more task to a device already bursting with apps and distractions.  Those same people might prefer the tactile experience of physical buttons to the flat, unyielding surface of a touchscreen.  To those people I say, “Buy a presentation remote!”

Most presentation remotes work wirelessly with a USB dongle.  The effective distance varies, but there are some out there with ranges over 100ft, line-of-sight.  They come in a variety of shapes and styles, so you can choose which button layout you like best.  And most importantly, you don’t have to feel guilty about leaving one behind when you leave the house.

After doing some research, I purchased a Satechi SP-800 presentation remote.  It comes in 3 colors (red, blue, and black), has a green laser pointer, and has a 100-ft range, line of sight.  It even has a mouse mode, for when you’re too far away from the desk.

Satechi SP-800

Out of the box.

The SP-800

In the hand.

This remote has all the buttons to control all the important functions of iTunes (or any media player). It sends those button presses as keyboard keys, which is great because that allows them to be intercepted and remapped using AutoHotKey (or any other key re-mapper).

Below, I’ve created a table showing each key sent by the remote, the desired action, and the corresponding key on both Mac and Windows.

Key Sent     Desired Action     Mac              Windows 

page up      volume up          command-up       ctrl-up
page down    volume down        command-down     ctrl-down
F5/Esc       play/pause         spacebar         spacebar
b            stop               spacebar         spacebar
up           previous track     command-left     ctrl-left
down         next track         command-right    ctrl-right

The following AutoHotKey script will send those commands to iTunes, but only if iTunes is the active window.  This way the remote will still work properly when using PowerPoint.

#IfWinActive iTunes

 ;volume up
 PgUp::^Volume_Up

 ;volume down
 PgDn::^Volume_Down

 ;play/pause
 F5::
 Esc::
 b::
 Send {Space}
 return

 ;previous song
 Up::^Left

 ;next song
 Down::^Right

#IfWinActive

But what happens if iTunes is not the active window?  It won’t be able to receive any of these commands.  To solve this we need to add some extra functionality:

  • Play/Pause Button
    • If iTunes is not open, open it.
    • If iTunes is not the active window, switch to it.
    • If iTunes is active, play/pause.

This is achievable by remapping the F5 button, even when iTunes is not open.  Unfortunately this breaks PowerPoint compatibility.  Only do this if you don’t plan on using your computer to give presentations.

Here is my AutoHotKey script that achieves the above functionality:
#IfWinActive iTunes

 ;volume up
 PgUp::^Volume_Up

 ;volume down
 PgDn::^Volume_Down

 ;play/pause
 ;F5::
 Esc::
 b::
 Send {Space}
 return

 ;previous song
 Up::^Left

 ;next song
 Down::^Right

#IfWinActive

F5::
 IfWinExist, iTunes
 {
   WinActivate
   Send {Space}
   return
 }
 else
 {
   Run, iTunes
   WinWait, iTunes
   WinActivate, iTunes
   Send {Space}
   return
}
If you don’t use Page Up and Page Down very often, you can set those to permanently adjust the volume, even when iTunes is not open.  To do that, simply move those lines outside of the #IfWinActive block.
;
; iTunes Control
;

;volume up
PgUp::^Volume_Up

;volume down
PgDn::^Volume_Down

#IfWinActive iTunes

 ;play/pause
 ; F5:: ;F5 is used to launch iTunes
 Esc::
 b::
 Send {Space}
 return

 ;previous song
 Up::^Left

 ;next song
 Down::^Right

#IfWinActive

F5::
 IfWinExist, iTunes
 {
   WinActivate
   Send {Space}
   return
 } 
 else
 {
   Run, iTunes
   WinWait, iTunes
   WinActivate, iTunes
   Send {Space}
   return
 }

Now I can control iTunes wirelessly from the next room.  Unfortunately, the remote is not powerful enough to operate through 2 walls, so I can’t control iTunes from across the house.  Oh well.

 

HP Omni Teardown

The HP Omni 220 Quad is a beautiful All-in-One PC.
HP Omni 220 Quad

Fortunately HP made the Omni easy to open up and upgrade. Two screws hold the back in place. Once those are loosened, a little bit of careful lifting exposes the interior.  You’ll hear some popping noises.  It’s OK; those are the plastic tabs popping loose from the aluminum frame.

Cover Removed

Despite the fact that it’s immensely easier to open up than an Apple product, you still have to follow some basic precautions.  Place a towel down to protect the screen.  And always ground yourself or otherwise remove any static buildup.

HP actually posts videos of how to open up the computer and perform some routine tasks.  You can find these videos at support.hp.com.

After removing the stand, the VESA mount, and the metal enclosure, now the heart of the machine is finally visible.

Component Layout

The interior is dominated by a huge heat sink, copper conductors, and a fan.  It’s clear that the designers considered cooling to be an important issue.  Air enters through vents along the bottom and through a larger vent over the hard drive.  Air escapes out the top after passing across the heat sink.

Because the hard drive and DVD drive rest inside housings, it is trivial to upgrade these components.  Similarly, the RAM is easy to access.  The wireless card and TV tuner plug into Mini PICe slots, but because they have cables running from them they pose a slightly greater challenge to upgrade.  The processor and video card are also accessible, but with the specs on these components, I doubt there will ever be a need to upgrade them.

And finally, the specs.

Mobo:          Pegatron IPISB-NK (LavacaB) w/ Intel H61 Chipset
Frontside Bus: 5GB/s
Processor:     Intel Core i7-2600S 2.8GHz Quad-Core w/ 8MB Cache
RAM:           8GB (2x 4GB) 200-pin DDR3-1333
Graphics:      nVidia GeForce GT 540M w/ 2GB VRAM
Audio:         Intel HD Audio IDT 92HD91
Wireless Card: Broadcom 802.11 b/g/n 2x2 w/ Bluetooth
Hard Disk:     1.5TB 7200-rpm SATA
DVD Drive:     4x SuperMulti Slim Tray Blu-ray Player
TV Tuner:      AVerMedia A13
WebCam:        HP High Definition 1MP WebCam
Display:       21.5in, 1920x1080 LCD, Matte

 

Converting Win7 from MBR to GPT, Part 2

This is the second part of a 2-part series on converting Windows 7 from MBR to GPT.  Here we delve into the actual conversion process.  This is not for the faint of heart; be sure you have an adequate backup.  It helps if you are comfortable using the command line and changing BIOS/UEFI settings.

Basically, the process involves converting the partition table to GPT, creating a UEFI System partition, and populating that partition with the appropriate files.

  1. Copy Windows Boot Files
  2. Boot into Linux (Parted Magic).
  3. Use gdisk to convert the HD from MBR to GPT.
  4. Use GParted to create a UEFI System partition.
  5. Set up the UEFI System partition.
  6. Use the Windows 7 install CD to repair the boot process.

Continue reading

Converting Win7 from MBR to GPT, Part 1

The HP Omni 220 Quad has UEFI but comes installed with Windows 7 in legacy BIOS mode. Why? Who knows.  But we can fix that.

This is the first part of a 2-part series describing how to convert a 64-bit Windows 7 install from MBR to GPT, allowing the OS to take full advantage of UEFI’s advanced features.  This post provides some background on BIOS, UEFI, MBR, and GPT.  It also describes how to backup your Windows install, in case anything goes wrong.

Continue reading

HP Omni 220 Quad

My new computer is an HP All-in-One. Like the iMac, all the electronics are housed inside the monitor. Tangled mess of cables? Gone. Bulky tower that always gets in the way? Gone. With a wireless keyboard and mouse, there’s only one cord running to the computer (the power cord).  The only thing that stands between me and a fully-mobile workstation is the high price of a UPS.  As it is, I’m tethered only by the length of my extension cord.

Continue reading

Goals

For a long time now I have been tinkering with computers and electronics.  In 1998 I installed ZipSlack on my parents’ Windows 95 computer (200MHz Pentium).  All of the information I needed to install Linux (and I needed a lot of information) was freely available on the internet.  I searched, printed, and read everything I could find with a ravenous appetite.

Since that first command-line adventure, I have had many projects.  But each project always begins with research, and for that I am eternally grateful.  I could never have achieve all that I have without the help of others and the freely-available knowledge-base that is the internet.

So I have decided to give back.  I will use this blog to publish my home projects.  If you are reading this, I hope you found something that helps you.