A USB adapter for the Apple Newton keyboard

Back in the pre-smartphone days, the Apple Newton was the first device in the PDA category.  Newtons were only sold for five years between 1993 and 1998, when Steve Jobs pulled the plug on the program.  Although Apple frequently took a ribbing for problems with the Newton’s handwriting recognition feature, its main problem with achieving market dominance was Newton’s high cost.  Although it beat the wildly successful Palm Pilot to market, Newton could not compete on price.

One of Newton’s accessories was a very compact keyboard (just a hair over 10 inches wide).  I had one rattling around in my spare parts bin and it was the perfect size to use with the SunFounder Display and Raspberry Pi one-piece computer that I recently assembled.

Only one problem, no way to plug it in.  The Newton keyboard outputs a serial data stream and the RasPi (like most other modern computers) requires a USB keyboard.  Further complicating matters, the Newton keyboard does not produce ASCII characters.  Like the legacy IBM XT and AT keyboards, the Newt keyboard outputs a unique scan code for each key.  One code is sent when the key is pressed and another gets sent when the key is released.

I was surprised to find that nobody currently sells a pre-built adapter to do the serial to USB conversion.  (Such adapters exist for IBM keyboards, but are not pin or code compatible with the Newt keyboard).  The only homebrew solution I could locate was from a guy in Japan who posted this video but little else in the way of details.

I was able to piece together the following information from various sources:

  • The Newton keyboard runs at 5V (technically 4.5 volts) and produces a 5V TTL compatible signal
  • Baud rate is 9600-N-8-1
  • We can connect it to a microcontroller using three pins:  pin 2 – +5V, pin 8 – signal, shield – ground
  • The key scan codes are similar but not identical to those use by IBM AT keyboards

To make the Newt keyboard impersonate a USB keyboard, I would need to remap the serial data to USB.  This job calls for a small, cheap, 5V tolerant microcontroller having both serial and USB interfaces.

The Teensy 2.0 board is perfect for this purpose.  It can impersonate all kinds of HID devices like mice, keyboards, joysticks, etc. and it is compatible with the Arduino IDE, which comes with a great keyboard library that can do all the heavy lifting.

If you want to build your own adapter and are familiar with building Arduino projects, feel free to grab the sketch here.  Pinouts are in the readme file and you can install the Teensy (or MC board of your choice) within the Newton keyboard or in an external enclosure.

If you’d like step-by-step directions for my build, please continue reading.

Bill of Materials

  • Teensy 2.0 microcontroller development board (there are several Teensy versions;  make sure you use one that operates at 5 volts).
  • An 8-pin mini-DIN M/F or F/F cable like this one from Cables to Go.  We will be cutting off the female end to connect to the Newton keyboard.  Any similar legacy Apple serial cable would work
  • A suitable enclosure for the Teensy.  Note that there is plenty of room inside the Newton keyboard case.  If you don’t mind opening it up, you can mount the Teensy board inside.
  • A short USB A to mini B cable to connect your computer to the Teensy board

Hardware Assembly

  1. Cut off the female end of your serial cable leaving at least a couple inches of wire.
  2. If you are using the Cables to Go cable, solder the brown  wire to VCC (+5 Volts), the purple wire to D2, and the uninsulated shield to GND (ground) as shown above.  Use a piece of shrink wrap tube or tape to cover the shield wire so it doesn’t short anything on the Teensy.

    If you are using a different mini-DIN connector, use a multimeter to find the wires attached to pins 2, 8 and the connector outer case.  Pin 2 gets soldered to VCC and pin 8 gets soldered to D2.  Looking at the female connector that you will plug the keyboard into, pin 8 is on the upper left.  Here is my sketch of the connector that will surely end up hanging in the Louvre:

  3. Connect the keyboard to the connector you just soldered on and connect a USB cable to the Teensy.  Mount it either inside the keyboard case or in a suitable enclosure.

Programming the Teensy

  1. Install the latest Arduino IDE, if necessary.  It can be downloaded here.
  2. Download and install Teensyduino, which is an add-on for the Arduino software that adds Teensy support to it.
  3. Download the Apple Newton Keyboard to USB Converter library  (Mac users:  please Ctrl-click and choose Save As to prevent the ZIP file from automatically unpacking)
  4. Launch Arduino and install from the ZIP file by selecting
    Sketch–>Include Library–>Add .ZIP Library
  5. Open the Sketch named NewtonKeyboardToUSB, which is located in the folder Arduino/libraries/newtonKeyboard/examples
  6. Upload the sketch to the Teensy.  If this is the first time you are uploading a sketch from the Arduino IDE, you will need to
  7. Your computer should immediately recognize that a new keyboard has been plugged in

Further improvements

There are lots of digital inputs and outputs available on the Teensy.  It might be nice to use one of the outputs to drive an LED that indicates Caps Lock state.  Or perhaps it would be useful to assign some inputs to keyboard macros.

 

A nice display for Raspberry Pi

I needed a compact computer setup for my cramped electronics workbench.  The SunFounder 10.1 inch display is both space- and cost-efficient.  Instead of using molded parts for the case, SunFounder uses laser cut acrylic sheets, presumably to keep the cost of production down.  A Raspberry Pi computer can be mounted behind the screen.

Although it has a few minor quirks, the SunFounder screen represents a great value.  Recent price on Amazon was $110.99.  Add a $25 RasPi, keyboard and mouse and you’ve got a very capable little one-piece computer for under $150.

What I like about this display:

  • 1280 X 800 pixel resolution is more than adequate for running a browser or a few terminal sessions
  • As claimed, the IPS LCD screen has a very wide viewing angle.  I also found the color saturation and contrast to be excellent
  • Built-in speaker
  • It has VGA and composite inputs in addition to HDMI

And a few deficiencies:

  • The monitor arrived with several loose screws.  Seems whoever assembled my unit didn’t have a screwdriver that day
  • I needed to dremel one of the acrylic plates that holds the RasPi in place to make it fit properly
  • An onboard source of power for the RasPi would be welcomed.  I suspect that a 5V connector that taps internal power could be added for less than the IR remote control that comes with the display.  What possible use is a remote anyway?  I can’t envision ever being more than arm’s length away for a screen that’s only 10 inches wide.

    My kludgy solution was to velcro an extension cord to the back, connecting separate power bricks for the display and RasPi:

  • Out of the box, I was getting no sound from the display.  The printed instructions that came with the it said to run raspi-config and choose the option to force audio out through HDMI.  But that did not work because the computer was detecting the SunFounder screen’s interface as DVI, which is not audio capable.  The solution was to add the line hdmi_drive=2 in config.txt to force HDMI mode.

These minor nits aside, for the price of a cheap Chromebook, the combination of the Raspberry Pi and SunFounder display provide several features that are useful on my workbench and would not be available on other similarly priced platforms like a  built-in serial port, gpio pins and the ability to display HDMI, VGA or composite video.

Next project, a perfect companion for this setup:  let’s dust off an Apple Newton keyboard and add USB connectivity to it.

Repairing an iMac Power Supply

A 24″ iMac that wouldn’t start up came in for repair.   Pressing the power button got the fan to briefly run then shut off.  It never reached the point where there was a happy (or sad) chime.  The owner’s first inclination was to toss the computer after we wiped the hard disk but I told him we could probably get it running for the cost of a new power supply (around $75).

Using the always great disassembly instructions at ifixit.com, I got the front bezel off the iMac and checked the logic board diagnostic LEDs.  LED 1 was on and LED 2 came on briefly when I tried to start the computer, indicating that the logic board was probably fine and the problem was with the power supply.

Several disassembly steps later I had the power supply board out of the iMac.  From a quick visual inspection, I could see that some of the  2200 µF capacitors were leaking a bit and one had developed a considerable bulge at the base.  Maybe we could do a cheap repair here?

I clipped the four suspicious caps out (to get an accurate measurement) and checked them with my Fluke 179 multimeter–quick side story:  this DMM is so rugged that it survived a total loss house fire with only minor cosmetic damage.  All the capacitors were out of spec but interestingly the one that looked the worst actually measured closest to good.

Easy peasy fix, right?  LOL, not exactly.  This board uses lead free solder, which is a total pain to remove.  Even with my trusty Hako soldering iron cranked up to 800º, the PCB’s heavy copper traces made it a challenge to keep the solder molten long enough to suck it up with a desoldering tool.  An hour of determined effort and cussing later I had the old caps out and the through holes cleaned out.  (I needed to ream most of the holes to get the last bits of lead free solder out).  Four new shiny black capacitors installed without any drama.

Shiny new capacitorsAll LEDS Normal

I reinstalled the power supply module and the iMac started normally with 4 LEDs lit on the logic board.  I also installed a new button battery while the iMac was open.  Total cost of repair: under $2 🙂

If I were to attempt a similar repair again I wouldn’t bother with trying to remove any components from the circuit board because of the lead free solder.  The job wouldn’t look as pretty, but it would be a lot easier to just leave the old leads in place and solder new parts onto them.

Controlling devices with Indigo and Amazon Echo (Alexa)

A recently added plugin for the superb  Indigo Smart Home Software platform enables voice control of devices like lights, thermostats, fans, shades and garage doors–to name just a few–via an Amazon Echo DotEcho or Fire TV.  It works seamlessly with the Lutron RadioRA 2 plugin that I developed and is also presumed compatible with the Lutron Caseta Smart Bridge Pro (although this has not been formally tested yet).

The plugin works by emulating a Philips Hue bridge.  Setup is easy.  Just install the plugin and select the Plugins->Alexa-Hue Bridge->Manage Devices… menu item.  Choose the devices you wish to control (up to 27) and then tell Alexa to discover your devices either by saying that or by using the Alexa app.

The 27 device limit is set by Amazon’s Alexa implementation, however, if you reach that limit, you can set up a Device Group in the Virtual Devices interface to group devices are typically controlled together into a single device.

Alexa currently recognizes only “turn on”, “turn off”, and “dim” commands, however, it’s possible to control devices that don’t natively support on/off/dim by creating virtual devices.  For example, I created a virtual device called “heat” that controls a RA 2 thermostat.  When I get a chill and say “Alexa, turn heat on”, it invokes an Indigo Action group that sets the nearest thermostat to 74 degrees.  “Alexa, turn heat off” sets the thermostat back to 68 degrees.

If you’re already running Indigo, I highly recommend adding a modestly priced Echo Dot to seamlessly add voice control to your automation setup.

Thoughts on the Apple Watch

I’ve been living with an Apple Watch for a month now (stainless steel case/Milanese loop band).  Overall, I think it’s great.  The most common criticism that I hear about Apple Watch is that there is no “killer app” that creates a compelling new product category.  This is absolutely true.  However, the real value of Apple Watch is the cumulative effect of its numerous and sometimes subtle features.

It’s the little things that count

Right off the bat, it’s easy to appreciate that the Watch is a beautifully crafted piece of jewelry (photos of the Milanese band don’t do it justice;  you need to see it sparkle in sunlight).  But it takes several days of wearing Apple Watch to get a full appreciation for its capabilities.

The best features of the Watch are not activated by direct user interaction but just seem to happen at appropriate times.  Case in point:  the first time I used the Map app on my iPhone to get driving directions I was pleasantly surprised to learn that I didn’t need to see or hear the phone to know when to turn.  The watch tapped my wrist with three double taps when I needed to turn left and with a steady series of twelve taps for right.

The Activity app won’t turn me into a marathon winner overnight but it succeeds in prodding me to do a little bit extra every day.  It sets daily goals for moving, exercise and standing.  Several evenings I found myself just short of goal right before bedtime and made up the difference with a quick exercise session.  This wouldn’t happened if the watch wasn’t giving me frequent encouragement (including virtual “awards”) to hit all my daily goals.

The Watch reminds me to stand if I’ve been sitting too long.  And it provides a weekly and periodic activity reports that encourage me to stay on top of my goals.  The cumulative effect of these little “nudges” should be a lighter, healthier me.

Size matters

It’s been reported that around 70% of the Apple Watches sold to date are the larger 42mm models.  I think the majority of the people people buying these are wrong for the following reasons:

  1. On all but the largest wrists, the 42mm case looks dorky.  There, I said it.  The 38mm watch has a more conventional size and looks elegant on both men and ladies.  But Apple doesn’t always make it easy for men with larger wrists to get a 38mm model that fits.  For example, if you’re a man in the market for a stainless steel Watch with the elegant Milanese loop band, you need to step up to the 42mm case (for an extra $50) if your wrist is larger than 180mm.  Apple should offer a large Milanese band option for the 38mm Watch.  Bigger guys who want a 38mm case with a stainless band will need to shell out an extra $300 to step up to the Link Bracelet.
  2. Yes, the larger watch has slightly better battery life.  But this is irrelevant because neither model will make it through two full days on a charge.  Whether you have a 38mm or 42mm watch, you will still need to take it off every night for charging.
  3. The larger screen doesn’t really offer much in terms of better ergonomics or readability.  I haven’t experienced any problems with the 38mm Watch recognizing exactly which object I’m trying to tap.

Some room for improvement

My main nit with the Apple Watch is that I need to rotate my wrist slightly more to activate it than I would to glance at a conventional watch.  It would be great if there was a user configurable sensitivity setting for the “Activate on Wrist Raise” feature.    With 40% power remaining after a typical day, I wouldn’t mind if the Watch sacrificed a little battery life to activate less conservatively.

According to Apple, the Watch and iPhone that it’s paired with are supposed to be able to communicate over a trusted WiFi network when they are out of Bluetooth range.  This doesn’t seem to work reliably in my house but it might have something to do with having multiple Ubiquiti long range access points installed (although this setup is seamless with all the other WiFi devices I use).

I’d prefer a thinner case, but to Apple’s credit, the Watch looks svelte next to most smart watches.  (Curiously, it looks thinner on my wrist than off).  I have no doubt that Apple will figure out a way to slim subsequent models down as they have done with every other device.

Apple should sell a proper charging stand for the Watch.  However, the Nomad Stand is an attractive option (albeit a tad expensive at $70 for a piece of twisted aluminum).

Minor gripes aside, the Apple Watch is a fabulous first generation product and I highly recommend it.