Skip to main content


The imp002 is no longer available

Sana is an infrared remote control interface. This design is intended to allow a wide range of non-connected remote control devices to be controlled via the Internet. This provides a wide range of application opportunities; from a simple universal TV remote that is never lost or out of batteries, to intelligent climate control and automation. Because Sana talks to client devices over the existing IR remote-control interface, no modification to the client device is required to allow it to become an Internet-connected device.


  • IR Transmitter (Low-side FET driver for external tethered IR LEDs)
    • Single output channel with landings for three separate connectors; allows Sana to be connected to multiple receivers simultaneously
    • Capable of sending codes at any commonly-used IR carrier frequency (most commonly 38kHz or 56kHz)
    • Timing is defined in software, so Sana can switch between devices that use different protocols on the fly
  • IR Receiver (Vishay TSOP6238TT)
    • Capable of learning codes from existing IR remotes in the field
  • 433MHz Transmitter Module
  • TMP112 Digital Temperature Sensor
  • Includes interrupt-driven thermostat mode, allowing Sana to operate as an Internet-connected thermostat Analog Temperature Sensor (Thermistor)



Power Supply and Enclosure

Sana is designed to be paired with an AC power supply board, called Sophie. Sophie is a very straightforward design: it is simply an integrated AC-to-5V-DC power supply tailored to fit the Bud Industries PPB-11861 enclosure, with an on-board 3.3V LDO to provide a clean supply rail for the Sana board. Sophie also includes the opto components (bicolor LED and phototransistor for BlinkUp) for the Sana board. The Sana design includes landings for opto components on-board, so Sana can be used in absence of Sophie.


Transmitting IR Codes

Sana uses the imp’s built-in SPI interface and PWM output to produce IR codes. The PWM output is configured to produce a carrier signal at the carrier frequency for a given device. Given a binary string and timing definitions for a given receiving device, the imp then generates a pulse train and sends it over the SPI bus. A simple AND gate modulates the carrier with the IR pulse train, and uses the resulting signal to drive a FET, gating power to an external IR LED.

Receiving IR Codes

Sana uses a Vishay TSOP6238TT IR Receiver / Demodulator IC to 'listen' for new IR codes from other IR transmitting devices. This is useful for discovering existing codes from a device’s original remote control. The TSOP6238TT includes an integrated IR Phototransistor and input filter, and can learn codes from any 38kHz carrier device.

The example firmware includes the IR Receiver example class, which demonstrates how to use the TSOP6238TT or similar part to decode IR signals with the imp.

Because the receiver will be called as soon as the receive pin changes state, the device does not require a 'listen' mode or learn button. Simply point the remote or other transmitting device at the IR receiver and send a code to initiate the receive/decode process.

433MHz Transmitter

Sana includes 433MHz ASK transmitter module for transmitting arbitrary signals to generic 433MHz devices. This is useful for controlling some generic home automation devices, such as plug-top switches. Pulse trains are generated and sent to the 433MHz transmitter in the same manner as is used for the IR transmitter.

Device Firmware and Example Code

Revision-controlled example firmware for the Sana board is available on the electric imp github examples page.. The Sana firmware includes several modular classes:

Hardware Design Files