Sunday, November 22, 2015

Network Control of X10 - take 2

I posted an earlier version of this, but it was based on the Atmega328 and an Ethernet module.

This version is based on the ESP8266 which provides the microprocessor and connection to the network via WiFi.

I've been having a ball with the ESP8266. It's cheap, programs with the Arduino IDE, and it just works. I've already created a product with it that connects my Geiger Kits to the internet.

So what is it?
The ESP8266 puts up a webpage (like the above) on your local network. The page has buttons for the X10 devices that you want to control. When a button is pressed the ESP8266 drives a CM17A and turns your device on or off. The page also displays any sensor readings that are connected to the ESP8266. So if you are into X10 home automation, this is a cool gadget.

Hardware-wise it's an ESP12 variant of the ESP8266. It's connected to the CM17A through a level shifter. The level shifter is needed because the ESP8266 is a 3.3V device and the CM17A requires 5V to operate. (Since the CM17A is powered by the difference between RTS and DTR strong pullup resistors must be used on the high side - 330Ω.)

You can also attach an I2C OLED display to the ESP8266 which will show the X10 commands that were received.

Here is the complete setup. I used the ESP8266 development board I created for the GK-WiFi kit (available here).

The software is finished (as far as I'm concerned) and is available here.

Friday, January 30, 2015

Life Clock - Redo

Add caption
I created the Life Clock in 2008. Originally it was a "3 board stack"  with one being ATmega, RTC, and EEPROM and another with the MAX7221 chips that the bicolored matrix plugs into.

I really liked how it came out, but I thought I'd update it and add some features.

During that process I discovered a great little bicolor matrix kit from Jollifactory which provides the led matrix and a driver board. It's well priced, and really simplifies construction.

The matrix kit is available on Tindie here and shown below. It's  especially nice that multiple matrices can be chained together to make a larger display. If you're interested in led matrix projects it's a good way to go.

I then made a new PCB to hold the ATmega, RTC, EEPROM, piezo and IR sensor. It stacks on one of the Jollifactory matrix boards and provides a complete Life Clock. More matrices can be added if desired. The PCB looks like this:

A kit is now available here and also on Tindie .

Below is a video showing the current LifeClock software on 1-3 Jollifactory matrices.

The new software supports from 1 to at least, 4 Jollifactory matrices. The original LedControl library was modified to use hardware SPI instead of shiftout. This much faster lib is necessary if multiple matrices are used. As shown in the video, the LifeClock now has the following features:
  • Displays the time, hourly chime, alarm, and auto DST set.
  • Plays Conway's Game of Life in 3 colors.
  • Shows the phase of the moon, days to next full moon, and name of full moon.
  • Displays the time of sunrise and sunset.
  • Displays reminders for birthdays, etc.
  • Time setting controlled by a NEC mini-remote.
  • Optionally, a GPS can be added to sync the time automatically.
  • Fonts, messages, and reminders stored in external EEPROM.
[7/1/15 update] A more affordable "mini" version of the Life Clock is now available here.  It uses smaller single color matrix displays .

Saturday, January 24, 2015

Network Control of X10

I really love remote control!
This project allows you to control your X10 devices from any web browser.

The Arduino is used as a web server which puts up a page with controls for House Code, Unit Code, and Command. 

The response is sent back to the Arduino which sends out the X10 commands wirelessly through the CM17A module.

So far it's just on my local network but it appears to be working pretty well.

Still a few things I'd like to change, but the current  Arduino source code is available here.