Saturday, May 28, 2011

Oh oh oh! Ardiuno just got here!

The Arduino arrived this week with lots of little bitty pieces.  Lots. of. pieces.  Never fear!  I managed to create a completely useless binary dice game!


Ok, somehow, I still need to turn this into a completely awesome aquarium controller.  Seeing as my LCD touchscreen came in, I'm going to deviate from the tutorial's recommended exercises of adding more LEDs (boring) or a tilt sensor (less boring, but not helpful) and hook up the LCD screen to output the roll of the dice.  A little progress is better then no progress!

Sunday, May 22, 2011

First Design Considerations

I've been mulling over some ideas for the aquarium controller.  Modularity is the key consideration here.   I want the "aquarium controller" to tell time, receive data and push data (chances are, its going to take a temperature reading also, but design will most certainly morph over time) and not much else.  The lcd touchscreen display will operate just like the iphone app, android app and reefnook interface, through an api.  The main controller shouldn't care what this interface looks like or where it resides as long as it speaks the same language.  The benefit this gives the user is that mobile/web interfaces are first class citizens and just as powerful as if you were operating the controller through its own interface.  It's 2011 folks, the web isn't going away.  I spent eleventy-million dollars on my aquarium last year, its time for controller technology to catch up.

Further modularity:  Gone should be the days of buying an ORP add-on, PH add-on, conductivity add-on, etc.  All of these probes connect to the same BNC socket.  We should be able to buy little black boxes and a probe.  Hook the black box up to the controller, tell the controller that it is a PH probe, plug in the probe and start monitoring ph.  The controller should be able to initialize these "black boxes" as any sort of monitoring tool.  I should be able to buy a calcium probe, reconfigure my black box to monitor calcium and switch my ph probe for a calcium probe.

Here is a quick crappy diagram of the displays interacting through an api.  This same idea should be applicable to the probe/monitor boxes.


This is all I have for now, just some ideas that have been banging around.  Nothing is set in stone and 100% liable to change.  Please reach out if you have any ideas, experiences, etc. to share.

Lofty Goals: Building an Arduino Based Aquarium Controller

While visiting a friend this week, who is quite an accomplished hardware hacker, I was inspired to learn about the Arduino controllers with the end-goal of creating a modular, internet-loving, fully-featured web controller (If you are going to dream, you might as well dream big). I have an extensive background in programming with a teeny-weeny, itsy-bitsy background in hardware engineering. This is going to be a challenging project, no doubt. Luckily, the hardware-hacking arduino community seems to be awesome.

I've listed a few links that I have found on arduino-based aquarium controllers in the right nav bar under Further Reading. I plan to stand on the shoulders of these giants to build a modular reef controller that loves, nay... requires a life giving connection to the internet, along with all of the freedom that implies.

On friday, I ordered an arduino kit from adafruit.com to start working through the tutorials found on ladyada.net. On saturday, I just couldn't stand looking at incredible gadgets and set the goal of my first iteration of the project to:
  • Keep track of time
  • Monitor temperature
  • Output to display


So I picked up a few extra goodies:

On to the purpose of this blog: Document Everything.  I thought it would be extremely helpful to the community at large for me, as a complete beginner-level-hardware-hacker, to document each step I take to a hopefully functioning custom controller.  As I reach each milestone, I'll break blog posts that are associated into step-by-step pages, so the information will be easier to navigate.  The firmware will be open-source and hosted at github.

And finally, help! :)  Any comments, ideas, links, howto's, tutorials, etc. are all welcome.  Even jeers, rotten tomatoes and AEFW.