The Blog

Status of Arduarium Project

For those who are following I just wanted to give a status update. This isn't an easy update for me to write simply because I've had to make some very hard choices in the last few days. Most of them are due to financials being strung a little bit too tight and the return simply isn't coming back on time and money.

First, the good news. The Arduarium Controller is fully designed and ready to go. Still waiting on some backordered Arduino Headers, but they are fully assembled and ready to rock. The MacroDuino code that's been written to run the controller is pretty great. There's already been some great feedback about additional features to add. Add to that the fact the my Ethernet shield finally came in that means it's time to take the controller to remote monitoring and controlling.

Now for the bad news. Despite my best efforts to develop an EC circuit that is reliable there's still no luck. The problem lies in the fact that you basically need a scope to set the darn thing up and you can't really leave it in the tank. It always needs re-calibration and simply isn't stable so it is being tabled. If anyone is interested I can post the schematics up.

I will also not be selling any enclosures for the Controller nor will I be making an AC board. It's not all bad though because I am designing an enclosure and you can get it printed up at ponoko. At the moment I simply can't afford to design and print enough volume to be able to sell it at a profit.

As for the AC board, the solution I've come up with is to simply use an PCF8574 breakout hooked up to a relay board. There will be an enclosure designed for that as well.

For those that think the project is dead fear not. I've simply had to make some decisions about what I will support and what I won't be supporting. Few realize how much time and money goes into designing something from the ground up. With the recent Arduarium Board release I had to buy a whole bunch of stock which simply isn't selling as well as I thought it might. It's put me in a position where I have to choose either to shut it down or cut it back to something more manageable.

Before I sign off I want to let everyone know that the Ethernet portion of the code is coming along quite nicely. Expect a web app demo sometime soon.

New Products, Arduarium & MacroDuino Updates

I have exciting news for everyone. For many of you who started following my work oh so long ago (2+ years now!) you know that I started this website as a hobby. During that time I was off and on again with other projects although my love of electronics kept me coming back. There was a couple times when I almost gave up, but the people who emailed for my help kept me going through the tough times. Now I'm happy to announce.... is my full time job! If you asked me 2 years ago I would have said that it was a pipe dream. There were already several large players in the open source electronics world and who thought I could take them on??? Certainly not me. That was before I realized that my unique take on shield design and programming was different than pretty much everyone else... and people loved what I was doing.

Moving forward my core vision remains the same... make electronics for the people that are user configurable. Of course, I always build to solve a problem I want solved first, but that user configurable part is soo nice to have (ie. BNC Sensor shield lets you select which analog pin and which CS pin to use). For those who have supported me in the past (and those who will support me in the future) I say thank you!!!! I'm honored that my solution to my problem also fixes your problem as well.

All that aside, there's a huge update. The I2C HD44780 LCD/Keypad Backpack is now available as a PCB or Assembled. You can find the full documentation here (including the Arduino library and sample code).

I've been using it with the USB hookup (though there are headers for jumper wire hookup) and it's the nicest thing I've used in awhile. There's nothing quite like modifying a USB cable and plugging it in and everything just works.


Arduarium Controller Basic

The Basic boards are in, assembled and everything works! The first batch will be going on sale as soon as the double high headers come in (they were on backorder). If you're interested sign up for the newsletter as they will be the first to be notified when the boards are available (hopefully sometime next week).

Here's a video to give you some idea of what's been going on

MacroDuino Code

It's amazing what you can accomplish in 3 full days of coding. The MacroDuino code now supports multiple DS18B20 sensors and you can setup macros based on temperature readings. There is support for 9 temperature sensors and you can display 3 different temperatures on an LCD screen.

The Serial Control module for the code is almost finsihed (it's a bit embarassing to release the code as it is so I'm going to clean it up before releasing it).

For those just learning about the code think of it as a little operating system for the arduino. You have your control interfaces (which can be serial, ethernet, etc.) which control the control and macro functions.

Here's a small list of the things you can now do:

  • Set a digital pin to change state based on a reading (digital, analog, RTC or DS18B20)
  • Find 1Wire devices using a single command (addresses stored in eeprom so you can poll them by number)
  • Display time, temperatures and pH on an LCD screen (you can turn on and off any of the elements as well as change their position all through serial commands ... ethernet control is coming soon)
  • Hook up multiple 1Wire sensors and be able to query individual ones (addresses stored in eeprom so you just say... give me temp of sensor 1)
  • Control the RTC (setting time, printing time etc.)
  • Hook up the I2C HD44780 LCD/Keypad Backpack and print to it

That's just a small sampling (go to Projects -> MacroDuino Code to look at all you can do). Here's the most important part... this program is 40kb and yet I can still get it to fit on an Arduino with an Atmega 328.

The reason we can do that is because you don't actually need all the functions so you can turn them off and on by just changing variables at the top of the code. So, if you want to have serial control, ds18b20 and a ds1307 you just enable those parts of the code and turn off the rest which trims the code down to 20kb or so.

The best part is I'm just getting started with this code. Next up is integrating a PCF8574 port expander. That means you'll be able to use time, analog or digital readings and temperature to control each individual output of the port expander... and you can set it up via whatever communication protocol you want (serial and ethernet are being worked on at the moment).

Arduarium Controller Basic Overview Demo Video 1

A demo video showing the Arduarium Controller Basic. I can't explain how nice it is to have everything hook up via USB. Makes my life a whole lot easier.

The Arduino is loaded up with the MacroDuino code. It's been updated to include some LCD functions (you see one in the video). Over the next week I'll be adding in most of the display and configuration functionality.

As a refresher, the MacroDuino code will be able to do this (and much more):

  • Timer On/Off Macros
  • Timer Fade In/Out Macros (fade time 1 hour)
  • Analog Macros (do something when analog value hits a certain value)
  • Digital Macros (do something when digital pin changes)
  • Configure what's displayed on LCD (time, temp, pH, ORP etc.)
  • Serial port control
  • Ethernet Control (either/or serial or ethernet)
  • I2C LCD/Keypad Display and control
  • 1Wire temp sensors
  • Eventual touchscreen support



Weekly Update For 2011-04-29

Another week is over already? I guess that happens when on Monday you feel like it's Thursday alread. This week was probably one of the most challenging weeks I've had in quite some time. I got the Arduarium Controller Basic prototype boards in and found out I made a critical error on the schematic. Of course, coming to that conclusioin took 3 hours of fiddling around. It's a good thing they were just for prototypes. Now that those issues have been worked out and the rest of the board tested and found to be in great working condition the order for a production run went out today.

For those who are wanting to see what the Arduarium Controller Basic board is going to look like assembled... feast your eyes (note the open hardware logo :-) ):

The second picture doesn't quite do it justice because it's missing the RJ-45 jack and some of the IC's were ripped off (from the schematic mistake so I could test the rest of the board).

A couple things to note from this version and the production version. The mounting holes have been changed to 3.2mm diameter since that's what the Arduino's are and it makes it easier to remember.

Secondly, I also added in 2 LED's as power monitors for the positive and negative rails. Other than that the boards are exactly the same.

I can't tell you how cool it is to plug in an I2C or 1Wire device into a USB port. It's so much easier and cleaner than jumper wires.

I2C LCD/Keypad Backpack

The backpack has finally been sent on a production run. I've had a prototype board for quite some time now and finally worked out the last bug in the Arduino library. It was actually ordered today as well and I'll be putting documentation and the Arduino library up on the site in the next few days. It's much cheaper than the ByVac one that I started out with (roughly 50% cheaper in fact).

Arduarium Controller Basic Enclosure

The enclosure has been sourced from digikey since they're very reliable and I like dealing with them. It's a bit more expensive than other places, but I'm a big fan of the reliability and timeliness of my orders.

A big shout out goes to herring_fish on the forum who has been making 3D mockups of everything! It looks seriously amazing and you should check them out here.

The parts for the enclosure were ordered today and thats the project for next week. What sucks is I can't exactly finish it because I can't find an ethernet shield in stock anywhere! Ugh, it's quite hilarious that everybody is sold out at the same time though.

Hacking My Roomba

Enough talk about aquariums though. For those interested in what's coming down the Practical Maker pipeline there's going to be a Roomba Shield. Not sure exactly what will be on it, but it's going to turn my Scooba (which doesn't have any of the cool features of the vacuum one) into something that has a schedule and much more. Stay tuned for more info on that.

Website Email Issues

I've been having some issues with the website sending emails for the past 2 weeks or so (just noticed it a few days ago). I think in tightening up the security I restricted php from sending email.

The good news is that the issue is now fixed and emails are working correctly now. If you've tried to send an email in the past two weeks and didn't get a reply it's not that I'm ignoring you! If you could re-send the email again I'll get it this time.

Again, I apologize for this and hope it didn't cause anyone any inconvenience.

Weekly Update For 2011-04-21

Wow! What an exciting and exhausting week it's been so far! There's been progress on several different projects this week and things are shaping up quite nicely. For those that are following the projects here's what happened this week at Practical Maker.


I finally completed the facelift to Practical Maker. It's been a long time coming and I think it turned out quite well. The focus has been put on a clean layout and lots of pictures and video. The store also got a layout change which makes it quite a bit cleaner as well.

I2C LCD/Keypad Backpack

I have to admit the reason for not finishing this project earlier was a bug in the Arduino library that I couldn't figure out. When I left off for some reason I couldn't get the keypad push to print to the screen. Turns out leaving it alone for awhile was the right thing to do because last night I finished it in only a few minutes! You can check out the beginning of the documentation (plus a demo video) here.

EC Shield

The EC shield was also something I had put on the back burner for awhile because I could find a cheap probe. A couple suggestions surfaced as to where to buy them. There was a company in China that had them very cheap, but they wanted to charge me $90 for shipping and processing fees so they're out. Another member suggested (who have them for ~$50). This may turn out to be where I buy them from.

Arduarium Controller Basic

With the recent aquaponics interest in the Arduarium Controller I decided to offer two different versions. One with EC and one without. Since I'm very confident in the circuits used in the Basic controller board it's been sent off to fab. The EC circuit still needs testing and hopefully it will be sent out to fab within a couple weeks.

Today the digikey order came in with all the parts for the Basic controller module. When the Beta opens there will probably be about 10 people who can get in (finances are the limiting factor here since each board costs quite a bit to make).

The hot topic on my mind this week was how to control the controller though. Most people want Wifi or Ethernet and it's pretty split down the middle. The only problem in my mind is that Wifi shields for the Arduino are very expensive and they don't work as well as I'd like them too. So today I've come up with a solution.

The Arduarium controller will be outfitted with the official ethernet shield. This will allow everyone who wants ethernet control easy setup. For those that want wifi the cheapest solution is to actually buy a WRT54G (~$30 on eBay). That puts the total at $70 rather than $90 for a wifi shield that will do what we want.

The WRT54G router is flashed with DD-WRT which does a couple cool things (I'll have a tutorial up on how to do that! It's really easy so don't worry!). First, it will allow you to hook the router up as a client bridge to your current wifi network. Secondly, it means the controller can just plug into the ethernet port and it's good to go! This is a rather elegant and inexpensive solution (in my opinion). I've used DD-WRT for quite a few years and it's very reliable and pretty simple to get setup.

Before I sign off I just wanted to thank everyone for the support they're bringing to the project. Without you none of this would be happening so I am forever grateful.

I guess I should get back to working on the MacroDuino code so the controller will actually do something when it gets here.

Arduarium Controller Basic/Ultimate PCB Layouts

At long last the Arduarium Controller is starting to take shape. As previously stated there is going to be two different versions (Basic and Ultimate). The only difference between the two is that the ultimate will include an EC circuit so you can measure salinity.

Below are the pictures of the PCB's. The basic version is 95% completed and will be going to fab shortly. All of the circuits on it have been thoroughly tested (which is why the Ultimate version won't be coming out until several weeks after the Basic version).

Basic Version

Ultimate Version

If you take a quick look at the boards you'll see that I've included the open hardware logo (the official one that was recently chosen).

Aside from that the only difference between the two boards is the extra BNC connector on the Ultimate board for the EC probe (still working out the connection on the probe though as I'm still trying to source a decently priced one).

Anyways, hope you enjoy it!


Spam Fighting and a Facelift

What a grueling couple of days. It seems as though the spam bots have gotten quite a bit better and can now correctly answer math questions. After removing several hundred pieces of spam from the website I'm happy to report that the level of spam submissions should decrease because I've implemented a new captcha system!

In case you haven't noticed the website has gotten a facelift as well! After 2 years of the same old boring theme I've started using a theme called Acquia Prosper (for Drupal). It's quite snazzy and I like the level of customization I can have with it. Although I did quite a bit today the entire facelift will probably take awhile as I pore over the site with a fine tooth comb and make things look "just right".

Combine the facelift with some CSS3 and you also get a website that loads less images (I'm using CSS gradients for some things). Can you spot where I've started using CSS3?

As always, I appreciate the support I get from everyone who contacts me and I hope you like the direction the website is taking!

Breakout Board Shield Updated To V0.4

Good news for those people who like to have a general purpose shield to hook stuff up to their Arduino! I'm in the middle of updating the Breakout Board Shield to V0.4! For those who don't know what the Breakout Board Shield is it's simply a shield that makes it easy to hook breakout boards up to your Arduino using only jumper wires.

As before there are hookups for standard protocols as well as a couple changes.

There are 4X I2C hookups as well as 4X Onewire hookups. In addition, digital pins 2 - 11 are pinned out and there are also 2X SPI hookups.

Both the onewire hookup and SPI hookup have selectable data and CS pins (all you need to do is change a jumper).

The I2C and Onewire hookups both have the data lines pulled high with 4.7K resistors.

The big change in this shield is that Analog inputs 0 - 3 are pinned out.

As always, I'm committed to making my shields interoperable with other shields. That means that all the pinouts are on 90 degree headers which makes stacking easy. Any of the digital SPI and Onewire pinouts are also user selectable.

There is still some re-routing to do and final checkovers, but I expect to have these boards sent to fab shortly.

MacroDuino Gets Timer Macros, RTC Macros

Just a quick update for anyone following the MacroDuino Project. I've been working hard and have added in support for timer based macros as well as RTC macros (DS1307 only).

The timer based macros basically let you watch for a digital pin state change, or analog reading (less than, greater than, equal to) and it will turn on your action for x number of seconds (255 max right now). When the timer is up it will turn it back off.

The RTC macros let you perform an action between hour:minute start and hour:minute stop. You will need 2 macros for each action. For example:

Turn pin 11 on starting at 8:30 until 16:30

Turn pin 11 off starting at 16:31 until 23:59

Basically you need to set every time during the day to have the pin doing something.

I'll be uploading the code and adding in documentation to the MacroDuino Project page shortly.