Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
HexaBus - the Kraken of Home Automation!
If you just got your Hexabus hardware, please have a look at the article "Setting up your Hexabus" on how to set it up.
Interested in buying hardware? Register to be notified as soon as we have devices available for sale.
Our open-source wireless home automation system is now (almost) available. The facts:
- Devices communicate using 6LoWPAN on 868MHz.
- Each device has a globally unique IPv6 address
- Communication can be routed to, from, and through existing IP networks (WLAN, Internet, ...)
- No central control instance!
- Inputs to the network are broadcast, each device decides what to do based on its internal programming.
- Control programs can be created on a PC and uploaded to devices wirelessly.
- Embedded devices running Contiki, a nice little operating system with support for networking (UDP, TCP, ICMP, ...) and processes.
- Network traffic is encrypted using AES128, implemented in hardware.
- Both hardware and software are open source and provide excellent interfaces for hacking (both hardware and software).
Have a look at the article "Setting up your Hexabus" on how to set up your own Hexabus.
- 05.12.2012 - Test setup with Hexabus Compiler and shiny new network routing has been installed.
- 06.12.2011 - The hardware has been delivered.
- 08.09.2011 - Production of the hardware has begun.
Contact the developers
We have two mailing lists:
- HexaBus Announce: Very low traffic
- HexaBus Development: The main communication channel for developers.
You can follow Hexabus on Twitter: @6bus!
Some of us also hang out on IRC - join #hexabus on hackint.
If you want to add information here, by all means feel free to do so. But please read the article on "Editing" first.
programming and communicating with a Hexabus network from your PC
- Basic PC tools -- Tools for the PC for direct device control and packet viewing.
- Hexabus Compiler -- Short description of how to use the Hexabus compiler and Assembler.
- Hexabus Assembler -- The Hexabus Assembler, low-level language to program a single Hexabus device.
- Programming with Libhexabus -- Make your own Hexabus compatible PC programs.
- Packages -- binary distributions of hexabus
interfacing the Hexabus with other devices
- 3rdpartysoftware -- Collection of links to Hexabus software made by other people.
- iomega iconnect -- Notes on installing Hexabus software on an iomega iconnect.
- RaspberryPi -- Notes on installing Hexabus software on the Raspberry Pi.
- TP Link TL MR3020 as 6LoWPAN access point -- Notes on making an inexpensive energy-efficient router.
- Routing Hexabus Packets -- Setup necessary for multicast routing (connecting Hexabus to other IP networks)
- Tcpdumpsniffing -- Watching what's going on in your Hexabus using tcpdump.
- Wiresharksniffing -- Watching what's going on in your Hexabus using Wireshark.
- Connect PC Directly -- Connect your PC directly to Hexabus.
- Hexabus virtual machine -- How to connect to Hexabus from a VM.
useful(?) things built using Hexabus hardware
- Hexagl0w -- A colorful light orb powered by Hexabus.
- Energy-Meter----Persistent-Storage -- Store energy meter readings through a power outage.
- Hexabus autooff -- Hexabus device used to cut stand-by power consumption.
- Hexabus temperature sensor -- Measure temperature using Hexabus and a DS18S20 temperature sensor.
- Optocouplers on the hexabusplug -- Galvanically separating Hexabus boards and the devices they control.
- Proposed Hexabus Devices -- List of things that could be done with Hexabus.
- Reading switch like devices using hexapush -- Input for your Hexabus network.
- Using a S0 Meter -- Connecting a Hexabus board to an S0 energy meter.
- Using analogread -- Measure analog things (voltages) using Hexabus.
- Using the BMP085 Pressure Sensor -- Build a Hexabus barometer.
- Using the HYT321 humidity sensor -- Build a Hexabus hygrometer.
- Using the IR Receiver -- Control Hexbaus devices using a TV remote control.
- Using the Presence Detector -- Connect one or more PIR sensors to your Hexabus.
- Switching things using hexonoff -- Control more than one device from one Hexabus board.
documents you need for development and hardware hacking
- Debian for Hexabus Firmware Development -- very short notes on how to setup a Debian 7.6 minimal system for Hexabus firmware development.
- Compiling Firmware -- how to compile the firmware for the Hexabus plug (new build system autumn 2014)
- Compiling and uploading Firmware -- short instructions on how to build your own firmware image and install it on Hexabus hardware.
- Bootloader Documentation -- Hexabus Device Bootloader: It starts Contiki and can be used to upgrade the firmware.
- Changing the device MAC address -- Has to be done on development boards before using them!
- Debugging -- Notes about the memdbg Contiki app, and GDB+JTAG.
- HexaBus Plug -- Description and pictures of the Hexabus Plug.
- Hexabusplugserialinterface -- Connecting a serial interface for debugging purposes.
- Hexabususbstick -- Description and pictures of the Hexabus USB Stick.
- Make Your Own Hexabus Device -- How to add functionality to the firmware (custom endpoints etc.).
- Supply Modification the Low Voltage board -- Modifying the power supply to 3.3V so that more hardware components (DS18S20, ...) can be attached directly.
- Hexabus Hackers' Cheat Sheet
More documentation can be found here:
- Description of the first and second prototype (over at the mySmartGrid wiki):
- Home of the Contiki Operating System
- Helpful hints about hacking Contiki applications: http://senstools.gforge.inria.fr/doku.php?id=contiki:examples
- Beej's Guide to Network Programming
protcol definition and design
- Currently used EIDs -- Official list of EIDs and their purposes.
- New Hexabus Packet Format -- Description of the network packet format.
- New Hexabus Protocol -- Description of the network protocol.
- The Date and Time Service -- Control Hexabus devices based on what time it is.
- State Machines -- They run the home automation programs!
- Uploading Protocol -- The protocol used for uploading state machines.
If you want to dive deeper into the inner workings of the Hexabus, this PDF is a good starting point.
keeping track of things
- Hexabus hardware distributed to testers -- List of Hexabus devices and who has them.
- MAC Addresses -- MAC addresses of Hexabus development boards.
- Hexabus Concepts -- Brain dump from the network protocol development.
- Fieldtest -- Field test done at Chaos Communication Camp 2011.
- Routing tests -- Documentation from the routing software development.
- OpenWRT Guide -- old guide on how to set up an OpenWRT router for use with Hexabus.