Tag Archives: IBM

Capacitive sensing with ancient keyboards

The Model M keyboard is a designation for a group of computer keyboards manufactured by IBM, Lexmark, Unicomp and MaxiSwitch, starting in 1984.

According to Wikipedia, the many variations of the keyboard have their own distinct characteristics, with the vast majority boasting a buckling spring key design and many having fully swappable keycaps.

As the venerable M keyboards are understandably ancient, there really is no easy method of connecting the device to a modern system. This unfortunate fact prompted a modder by the name of xwhatsit to ultimately build his own controller.

According to Hackaday’s Brian Benchoff, the beam spring keyboards use capacitive switches.

“With 122 keys, the usual method of reading capacitance – putting a capacitor in an oscillator – would be far too slow to be of any use in a keyboard. There is another method of reading capacitance: measuring the current going through the capacitive switch. This can easily be accomplished with an LM339 comparator,” he explained.

“xwhatsit‘s keyboard controller uses this capacitive sensing circuit to read the four rows of keys, with a few shift registers taking care of the columns. Atmel’s ATMega32u2 MCU is the brains of the outfit, running LUFA to translate the key presses to USB.”

Interested in learning more? Well, you’re in luck, because xwhatsit is selling Atmel based controllers for the Model M as well as the Model F using the same basic circuit.

Atmel powers Waspmote Mote Runner for the IoT

IBM and Libelium have teamed up to offer an Atmel-powered IPv6 development platform for sensor networks and the rapidly evolving Internet of Things (IoT).

“Integrating IBM’s Mote Runner SDK on top of Libelium’s Waspmote sensor platform [creates] a unique and powerful tool for developers and researchers interested in 6LoWPAN / IPv6 connectivity for the Internet of Things,” explained Libelium CTO David Gascón.

Key Waspmote Mote Runner specs include Atmel’s ATmega1281 microcontroller (14 MHz frequency), Atmel’s RF212/RF231, 8KB SRAM, 4KB EEPROM, 128KB Flash, -10ºC, +65ºC temperature range and an RTC (32KHz) clock.

As we’ve previously discussed on Bits & Pieces, 6LoWPAN is an acronym for IPv6 over Low power Wireless Personal Area Network. This protocol offers encapsulation and header compression mechanisms that allow IPv6 packets to be sent to and received over IEEE 802.15.4 based networks.

There are two primary node types:

End Node – These nodes, which offer integrated sensors, are used to gather the information and send to the GW. Essentially, they create a mesh network among them, forwarding the packets of other nodes in order to facilitate the flow of information to the GW. Each End Node is equipped with a 6LoWPAN radio, sensors and a battery.

Gateway (GW) – This node takes the information sent by the End Nodes and relays it to the Tunnelling IPv4 / IPv6 server via the Ethernet IPv4 interface. Each GW Node is equipped with a 6LoWPAN radio, Ethernet interface and a battery.

In the diagram below, Libelium illustrates how the Waspmote Mote Runner 6LoWPAN / IPv6 Network operates.

  1. The sensor nodes use the 6LoWPAN protocol over the 802.15.4 link layer to create a mesh network which interconnects any device in the network with the Gateway (GW).
  2. Once the GW takes the 6LoWPAN packets, it changes the IP header to IPv4 while maintaining the UDP transport layer.
  3. It then sends the information to the IPv4 / IPv6 Tunneling machine, subsequently changing the header to a proper IPv6 format and sending the data to IPv6 Servers located on the Internet.

There are currently three Waspmote Mote Runner 6LoWPAN / IPv6 Radios targeted at a wide variety of markets and applications including sensors, events, smart cities, smart parking, agriculture, radiation detection, GPS, prototyping sensors and smart metering.


Interested in learning more about the Atmel-powered Waspmote Mote Runner platform? You can check out the product’s official page here for additional information.