Wireless Recycled Reef Controller

   Home   |   Recent Edits   |   Search   |   Edit this page

GettingStarted -|- NewS -|- HOWTos -|- DownLoads -|- SoftWare -|- Input Output -|- X-10_Control -|- Bugs/Features -|- ABout

WRRC - Wireless Recycled Reef Controller is an automation computer for measurement and control of a reef tank. Although the target is for a marine reef tank, most of the functions can be used for home automation as well.

WRRC is built on a Linksys WRT54G router (there are other similar platforms that should work with more / less hardware functionality as well) using Open Source Software and Open Source Hardware Designs where available.

Update 2/19/07
This project has been around for quite some time, and I've had much time to think about it. I think the project is a great idea, but building it on the WRT54G has proven a hurdle in itself. I personally am not highly skilled in cross-compiling code to run on a quite limited platform such as the WRT54G. Given this, and the constant evolution of the OWFS software that it is built upon, I've decided to concentrate on a full-featured platform (IE a regular, or small form-factor PC) to allow me the most robust toolset with the least number of external hardware constraints.

I've recently moved to the Small_Form_Factor hardware to help find a common ground to allow this project to continue. I am using a Compaq/HP E-PC that measures aproximately 3.75"x10"x12". While the E-PC is larger and more power-hungry (at 44w for the E-PC vs 6w for the WRT54TG?), I get a much more robust environment in return (with a full linux distro installed as a LAMP_server). MySQL provides a much better RDBMS as the heart of the data collection, and the monitor/control scripts can be written in Perl instead of simple shell scripts for far better features & flexability. Granted there is a size & electricity to feature & robustness trade-off, but IMO, I'm OK with that for now. I am by no means giving up on the WRT54G platform, but think development is much better suited to a full machine over the limited platform, and eventually I'd love to see it condensed down to fit on the WRT54G or else the similar Linksys NSLU2

All the 1-Wire sensors are completely independant of the platform, so any standard 1-wire device will work identically on any platform the controller is running on. For this reason, I don't think there's any problem with developing on a full box, and eventually porting to a smaller platform.

Although in the initial phase, the project is a DIY project, the goal is to create a powerful and user friendly alternative for a commercial product. Even if you're not a computer expert, you're welcome to try out the project during development cycle, most of the pieces are in place to at least monitor your environment. I also believe that the project is not that difficult to use even at it's most basic form. With more input I can get ideas for improvements and that will be your contribution to the project. You might even find that after using WRRC, it may not be as difficult as it seemed initially.

Note to End Users The goal is to make a system that you configure easily from a Web Page. Most of the Hardware will easily be DIY or you can get kits or complete product from a Vendor. Everything is Open Source and Open Hardware, nothing is hidden so you can improve everything if you want to, otherwise just enjoy everything the Open Source Community provides to you.

For Comments, Help (including Helping me and me helping you), Suggestions please use this thread:

Latest News:

  • 5/19/05 Stuff still going on. Working on fitting the pH probe into the system. Input circuit is the challenge now. More info in the pH_Sensors page.
  • Also working on an LCD interface for displaying current tank info. Have some LCD's to play with and will be using the DS2438 8-channel switch to control the LCD's more info on the OWLCD page.
  • Any board fabricators out there? I'd like some pricing for this:
    Seems to be a lower cost entry for X10 control and use a DS9097U? for monitoring.
  • New Packages Up. Detailed instructions to follow.
    Rough Install Notes
  • Bug Tracking / Feature Request Online now:
  • Slow down in development. I want to move the base firmware to the new OpenWRT experimental build. Some of the good/important reasons for this is:
    - everything is flashed based now on the file system. So even system files can be updated.
    - all current WRT linksys routers are supported, including WRT54G and WRT54GS, all revisions.
    - more packages available including one for mounting Windows shares

    Unfortunately to move to the new firmware, I have to compile OWFS and Fuse (the lower level software) for the new kernel it uses. I'm playing around with compilation. I also found a bug in the package manager tool, so I need to fix that and develop an upgrade plan.
  • Working on new firmware and Web Inteface

  • X10 Web interface almost complete. You assign the house codes you want to use, it will loop through only through those house codes to display. Each status is a Hyperlink to toggle (see the red On in the screenshot below). I haven't worked on the back end script to do the actual toggle yet, but the simple way would be to just modify the status loop script to hard code the opposite action rather than use cgi to pass the parameters.

    I want to integrate the other interfaces for Package Manager and Firmware upgrade into the new inteface. At that point I can release the new interface and just do updates for New Admin and Status screens.

    See screenshot below.
  • Started work on the Web Interface. It is sort of templates based.
    To create a dynamic all you have to do is:
    cat top.tmpl
    cat nav.tmpl
    cat main-start.tmpl
    # Dynamic Shell code and HTML can go here
    # It will be placed in the main section (green)
    # Finish up the page
    cat main-end.tmpl
    cat right-links.tmpl
    cat bottom.tmpl

    That's it. Here is what it looks like. This Page is displaying the X10 Modules Status. I have to work on making each module a Toggle Link to turn on and off, but not too hard. It should just be a for loop.

  • GettingStarted has been updated. Nicely Outlined from the person that rewrote most of it.
  • Added some sample scripting notes for Wish
    I'm still learning it, and just figured out to use Non Blocking commands instead. Really Powerful set of tools. You can even watch the X10 bus for events and trigger actions.
  • Wish X10 packages are up. Update packages list via the web interface, then install/upgrade. You will need both DEVS and the WISH packages. I've matched the version numbers to .03, but can't see DEVS needing to be upgraded any time soon.

    Notes: The devs have been moved to /wrrc/x10
    scripts to start either Powerlink - /wrrc/bin/wrrc-pld.sh start
    or CM11a - /wrrc/bin/wrrc-cm11.sh start

    To stop, same command replace with stop.

    I didn't make it auto start on reboot yet, but you can symlink it to your init.d directory:

    ln -s /wrrc/bin/wrrc-.sh /etc/init.d/S99wish

    To use Wish you will need to subsitute /dev/x10 with /wrrc/x10 for the device files.
  • X10 is working!!!! I got a Powerlinc II serial interface off eBay to use on serial port 0 (port 1 in windows world). Played with my Wish X10 package a bit, found a problem with the kernel module on the current package. I have a fix, and now X10 works!!!! Will have a new WISH package up shortly.


  • Page Hits: 79626