Home Automation Software for the X10 FireCracker kit
FireCracker Information
BottleRocket Overview
Downloading BottleRocket

BottleRocket is currently available only via the web. I definitely recommend always getting the latest version, as there are still bugs being worked out and new features put in (and vice-versa). Note that the current "native" BottleRocket command names are very likely to change in the near future (I like to keep backwards compatability, but as the package is still new, things will probably change a lot). The next version will also support a lot of x10-amh style arguments, and things may move over to that format.

Version 0.04c is the latest. If you're still below 0.04, please upgrade as there have been security fixes (as well as lots of new features) added. 0.04a fixes some problems with usage information being misleading, a fix to br_cmd.h where an extern variable was misnamed, and code cleanups. (Thanks to Christian Gafton for sending in patches).

This version adds better timing (ideas taken from "firecracker" by Chris Yokum), include fixes for Solaris, and possibly support for machines without DTR (rewiring the line to TX will be necessary; no promises it works). Also, people experiencing IO errors should try adding -DUSE_CLOCAL in the DEFS section in the Makefile after running configure (Note: you cannot use a device connected through the pass-through at the same time if you do this)... If anyone tries this, please let me know if it works. There are probably also a few other minor fixes; I've been playing with this one on and off for a little while.

Also, there's now a super-alpha level patch to the tree with a BottleRocket Perl module; it's on the betas page (yes, I use "betas" quite loosely). If you decide to play with this, I suggest you get the 0.05b2 source tree and make it from there. 0.05b2 still has the segfault problem in br (this won't affect the perl module) but I'll get a new version up soon.

Version numbers indicate major new features, letters indicate bug fixes.

Download the current version(0.04c)

BottleRocket version 0.05b3
BottleRocket version 0.04b6
BottleRocket version 0.04b5
BottleRocket version 0.04c
BottleRocket version 0.04b
BottleRocket version 0.04a
BottleRocket version 0.04
BottleRocket version 0.03a
BottleRocket version 0.03
BottleRocket version 0.02b
BottleRocket version 0.02a
BottleRocket version 0.02
BottleRocket version 0.01 (initial release)

RedHat 6.0 RPMs (compliments of Christian Gafton):

Note: The MLUG server was compromised recently; as a result I've temporarily removed the binary RPM (I'm probably being paranoid, but I want to be careful about this.) Should have a new copy up soon.
BottleRocket 0.04 Source RPM

RPM spec file
RedHat 6.0 RPMs (compliments of Doug Schaapveld):

Doug was kind enough to build a spec file for Bottlerocket (to build a new RPM). As soon as I get time I'll build a new rpm with the spec file. In the mean time here the spec file for those that need it.
BottleRocket 0.04 Source RPM

Debian Potato DEB (put together by Ashley Clark):

BottleRocket 0.04c DEB for i386
BottleRocket 0.04c + DEB files in source format (tgz)

Perl Module
BottleRocket Perl module version 0.02

Version 0.04 -> 0.04a patch

Older patches:
Getopt/usage information patch for 0.04
Original patch for 0.04
Patch for 0.02 for command-line tty selection by Jonathan Stroud

If you want to check out the newest stuff, see the betas page. It has the latest fixes, support for other systems, features and (usually) new bugs.
Contributed Source/Utilities

Web Interfaces

GUI Interfaces

Programming Information

If you wish to write your own programs to communicate with the Dynamite interface, check out the specs at this url (Thanks to Joseph Wardell for supplying me with this information).

If you want to use BottleRocket's backend for your own projects, feel free to do so. The source is released under the LGPL license. You're under no obligation to contact me before releasing source based on BottleRocket, although I would appreciate an email just so that I can see what kinds of projects people are doing with this code. My email address is

The backend interface basically consists of one function: x10_br_out(); you pass it an open filedescriptor for the serial port the device is connected to, a device address (unsigned char; top 4 bits are for the housecode of the device, bottom 4 for the device ID) and a command. Check br_cmd.h in the distribution for more info.

People Involved with the Project

These are some of the major contributors to BottleRocket. If I've left your name out, I sincerely apologize; drop me a note and I'll be sure to add you to the list.

Ashley Clark - lots of code including command-line options and x10-amh compatability, bug fixes
David Andersen - added autoconfiguration, info on NetBSD compatability, bug fixes
Jason White - more info on NetBSD, bug fixes
Warner Losh - security, porting info and bug fixes
Tymm Twillman - previous Bottlerocket maintainer
Neil Cherry - current maintainer
Other Home Automation Resources

There are quite a few home automation resources on the web. Perhaps one of the most definitive for Linux is Neil Cherry's site. I haven't been checking many of the other HA sites for a while, so I don't have any other urls to post yet 8) But if you have a link you'd like me to put here, email it to me and I'll put it up.

BottleRocket Changelog

Since the initial release, a lot of changes have happened. I'll do my best to recount them by version number.

To Do List

There are still lots of things that need to be done. I plan on adding an /etc/x10_users file to specify users that are allowed to use the program, a configuration file (where the port to be used can be set, aliases can be set for device addresses, timing parameters can be tweaked, etc.), possibly a daemon mode allowing actions to be scheduled for certain times, improved compatability with other programs... and lots of other nifty things.

How to Contact Me

To contact me please send me email to: (I'm the current maintainer but not the original author). Feel free to contact me with any questions, bug reports, requests for features, bug fixes, code (!). If I'm a bit slow to reply, I apologize, but I tend to be really busy. If you don't hear from me within several days, please email again.