The Blog

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.

Facelift!

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 globalscientificsupply.com (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.

One Arduino Sketch To Rule Them All

It's been awhile since I've posted anything on the website, but I've been busy with other projects... and the most recent Arduino related project.

This newest project isn't shield, but rather a sketch that is designed to let you upload a single sketch to your arduino, configure the arduino and let it do it's thing.

Introducing macro's for your arduino!

Basically, these are going to be macros that read an input and do something to an output. So far you can take a digital measurement and make a digital pin do something based on that input. ie. if digital pin 2 is low than turn pin 13 high. If pin 2 goes high turn pin 13 off. In addition, you can also do things with analog readings as well. They are a bit more complicated, but the code is almost done (I'll be releasing the alpha when that part is done).

On the analog side of macros you'll be able to take an analog reading and compare it (greater than, less than, or equal to) and do something to a digital pin. (or TLC5940, PCF8574)

I'm not stopping there though. Right now I plan on integrating a RTC, TLC5940, onewire temp sensors, PCF8574 into macro's as well.

So you'd be able to say to your arduino, turn pin 13 on when temp > 78 or when hour == 8 turn pcf8574 pin 2 on.

The best part is that macros are store in the arduino eeprom (1024 bytes in a 328) so you'll be able to store hundreds of them (if you need that many). Pin modes (input/output) are also store in eeprom and changeable via commands (pin states can also be controlled by serial commands)

Implications?

Well, this code is going to be the successor to my aquarium project code. That code requires you to have a certain setup (namely mine) for it to work. With this new code you send some serial strings (for now, but I plan on integrating wifi and ethernet) to the arduino which programs the pins and macros and you've got your own custom setup.

Since the code is going to probably be bigger than 30kb I'm also implementing something interesting. In the beginning of the sketch you uncomment the 'modules' of the code you'll be using. Code is wrapped in #ifdef so if you comment out a module it won't be compiled in... which means lower size with the ability to control your shields. For example, if you want to use ethernet instead of serial you can uncomment #define ETHERNETCONTROL 1 and comment #define SERIALCONTROL 1 and the serial portion of code won't be loaded into the sketch, but ethernet will.

The code allows for different control types to be easily integrated. Basically, you re-implement the serial side of things, but things like pinMode, pinStatus, and macro setup are generic functions. So with ethernet to change pinmode you would get the pin # and mode (0/1) and pass it to setPinMode. It's as easy as that to add in different control options. Of course, wrap them in #ifdef and define a variable to enable/disable that code and you're off.

If you're interested in becoming a tester send me an email. Complete serial control of the arduino itself should be finished in a few days with other shield support coming shortly.

A dedicated project page will be up with the release of alpha code.

Oh, and I need a name for it so suggestions are welcome.

Iphone Controlled Arduino PWM Icicle Lights

The Arduino PWM Icicle lights are nearing completion (the code is done at least). All that's left to do now is get them hooked up with some wire and make a nice string of them (leave the easiest part until last). It took me quite a bit less time than I originally thought to code everything which I always like. I'll attribute that to using the excellent jQTouch library.

If you haven't checked out the first post you can view it here: Arduino PWM Icicle Lights

Not much has changed since that video other than the fact that they can now be controlled wirelessly. To accomplish that I've used an Xbee shield on the Arduino and an Xbee Explorer (from Sparkfun) to link the Arduino to the computer.

I'm using xampp on the computer to give me apache and a php extension which allows me to write the serial port (it's not open source, but I plan on porting the code to an open source extension I found... the extension I'm using is here).

Update: I've rewritten the serial control file. It's linux only at the moment. It should be pretty easy to port it to use serproxy, but I couldn't get that to work.

The code for the webapp I'm using can be found here

At the left you can see a screenshot of the webapp. It uses jQtouch (which is pretty simple to use), jquery for form submission.

Video Demo

 

Arduino Code

Can be found here

Pages