HomeNet is a new way of thinking about home automation and "Smart Houses": DIY, Open, Free, and Collaborative. It's ideas that can be adapted to run on a variety of hardware platforms from simple Arduino microcontrollers to PCs and can all be shared on the internet.

The goal is to create a open platform for creating the next generation of smart house.


Currently there are 4 parts to HomeNet: Sensor Nodes, Internet Nodes, Web Interface and the HomeNet Protocol.

The Sensors nodes are based on Open Source hardware platform Arduino. While you can use a standard Arduino, most of the code was designed for a cheaper alternative called JeeNode that also incorporates a low cost wireless transmitter. The Jeenode has four modular ports that allow you to connect many different devices and allows for HomeNet to handle all of the complication of send and retrieving information from them.

At the core of a HomeNet node is a modular packet processing system that can read, process and send small data packets over Serial (RS-232) and the JeeNodes?'s HopeRF RFM12b wireless module. In the future, more methods will be supported like I2C, RS-485, and other wireless chips. SensorNode

The Internet Node is the Sensor Network's link to the Internet so you can access it from anywhere. These could be in the form of sensor node connected to a PC or it could be a node with a built in Ethernet card. The current PC base station code was written in Processing as a "Proof of Concept". It can be adapted to send data to a service like Pachube or in the future, the third part of HomeNet... InternetNode

The third part of HomeNet is the Web Interface. Still in the planning stages, It will be the users gateway to HomeNet. It will automatically setup and graph data it receives from base station and save the user the hassle of setup each node when you connect devices already in the HomeNet Database. The website will also help generate the code needed for the nodes to ease the setup process for inexperienced programmers. WebInterface

The glue that links the nodes together is the HomeNet Packet Protocol, A simple messaging system for sharing information over a variety of buses. A HomeNet Packet is light weight with a 8 byte header and 2 byte checksum at the end. This balances features with overhead (tcp/ip has 40 byte header).



HomeNet was created by me, Matthew Doll as part of my architecture Master's Project at the University of South Florida. As you can probably tell, this isn't your typical Architecture Thesis. I am very interested in how people live and interact with technology. Technology in our homes is increasing every year and I think we should have a say about how that happens. I want things in my house to be open and hackable.

I first started programming when I learned PHP about 10 years ago. I've been programing websites on and off since. Since starting on my architecture degree 3 years ago, I hadn't been doing much programing. Then USF hired a new professor, Mark Weston, who introduced me to the world of Arduino and I fell in love with physical computing.

I started out my thesis looking at existing home automation/ home networking technologies but I got frustrated that all the coolest stuff was too expensive and that not much was open source and would be easy to use with Arduino. There are also a lot of patent/licensing issues with using existing technologies so I decided to create something from scratch that would be free of these problems

The HomeNet Packet format is inspired by the packets of Internet0, a home automation protocol created at MIT. They too were frustrated by the lack of open home network protocol and created one based on the packets that computers use over a LAN: TCP/IP; I found their protocol robust but still wasn't as simple as I would like. I broke away from having direct compatibility with TCP/IP and simplified things to make things easier. I shrunk the node address length to from 32 bits to 12bit to save memory but this still supports - up to 4096 nodes. Most nodes will be behind some sort of gateway/firewall and do not need direct access to the internet. Internet Nodes will have dual address: a local HomeNet address and a remote Internet Address and can translate data between protocols.