Arduarium Controller Ultimate Documentation

The Arduarium Controller Ultimate has been designed to take care of everything that you may be interested in with an aquarium, aquaponics setup, hydroponics setup etc. Expandability, function and cost have been the three largest factors that were considered when designing this board.

What's come out of the design process is a shield that costs under $120 (barely). If you include a relay board, Port Expander Shield, Arduino, and ethernet shield you have an amazing controller for ~$250 that does more than controllers that are multiple times more expensive.

You can also find additional posts about this shield here: posts tagged with Arduarium Controller

Here's a quick list of what you can do with the Arduarium Controller Ultimate (running MacroDuino code):

  • read pH
  • read ORP
  • read conductivity (in any unit you want)
  • 4 PWM outputs (can be used to control relays or as PWM inputs for LED lighting)
  • RTC
  • LCD output (with configurable display options)
  • read 5 DS18B20 temperature sensors
  • perform actions based on temperature readings (turning relays on/off etc.)
  • perform actions based on digital readings (turning relays on/off etc.)
  • perform actions based on analog readings (turning relays on/off etc.)
  • perform actions based on pH
  • perform actions based on ORP
  • perform actions based on EC (electrical conductivity)
  • perform actions based on time
  • log data to pachube (requires ethernet shield)
  • simulate storm conditions (PWM outputs - WIP)
  • simulatre moon cycles (WIP)
  • remote control with the webapp via local network or internet (internet control requires you forward a port on your router to port 80 on your arduino, MacroDuino docs has info on how to do this)
  • attach float switches to the 2 analog inputs for ATO etc.
  • plus more... will post as I think of them

Specifications:

  • 1x I2C hookup (USB A)
  • 1x 1Wire hookup (USB A)
  • 4x PWM outputs (RJ45)
  • 2x Analog inputs (USB A)
  • DS1307 RTC
  • 2x BNC (pH or ORP)
  • 1x EC hookup
  • Runs on the MacroDuino code (which includes a webapp)

Code

Please check out the MacroDuino code for software to run this shield.

I2C

The I2C USB hookup will allow you to plug in any I2C device that you wish. Currently, it's being used to hook up an LCD display, but there will be a breakout board that will let you hook up 5 I2C devices at the same time.

1Wire

The 1Wire USB hookup allows you to connect 1Wire devices to the board. Currently, it's being used to hook up DS18B20 temperature sensors to the board. If you require more than 1 1Wire device there will be a breakout board that will allow you to hook up to 5 devices to the same USB port.

PWM

The nice thing about the PWM outputs is that they can also be used as digital inputs/outputs as well. This port is primarily designed to give you 4 lighting channels (daylights, moonlights, MH, etc). The PWM is useful for people with LED setups, or who want to control a small number of relays (<4).

Analog

The analog inputs are for float sensor hookups or reading any analog values you want. Although there are only two, you can increase that number by using resistors in series with the switches (there's an LCD shield that uses buttons in this way). Analog pins 0 and 1 are pinned out as well as Vcc and GND so you can hook up your analog sensor however you wish.

pH and ORP

pH and ORP use two analog inputs on the arduino. They are easily configurable and each one can actually be used for pH or ORP meaning you could measure 2x pH or 2x ORP or 1x pH & 1x ORP.

LCD/Keypad

Although not part of the controller itself it's just as important. The LCD/Keypad will be a display for the controller. It's designed to be a satellite box that you can put on the front somewhere. A USB A-B cable will be all that's required to hook it up.

Ethernet

There is full support for the official Ethernet Shield in the MacroDuino code. It allows you to access every function that currently exists in the MacroDuino code (from controlling pins to sending data to pachube).

Parts Needed:

Eagle Files

Can be downloaded here.

License

Released under the TAPR Open Hardware License

Comments

Finally the Ultimate are here :) It would be perfect for me if are possible to use a touch screen Thanks for your great job. P.S. the eagle files are of the basic board

You should actually be able to attach another arduino via i2c and use the touch screen with that (touch screen library is too big for MacroDuino to handle).

I'll be uploading the schematics to github shortly.

interesting... i wait for the schematics, cos i have an arduino mega 2560 and for use the controller i need to buy another one, so i can use the one i have for the touchscreen. Or maybe i can modify something to make the controller board compatible whit the 2560?

I didn't get them up today, hopefully tomorrow. To make this compatible with the mega you'd need to jumper the i2c pins to the i2c pins on the mega. I'll try and look up a post that shows you how to do this.

Ultimate schematics have been uploaded to github.

You do not have to make two arduino's work together through i2c, at the following link is a triplewide Extendershield.. http://www.liquidware.com/shop/show/TEX/TripleWide+ExtenderShield+X grtz, Michael Van Varenberg

You could do that, but with the MacroDuino code there isn't enough room for code to run a touchscreen.

can this control power outlets? 

Anyone who can get the EC part working???

 

 

Hi, were you able to get the EC to work?

Hi there,

Where to get the salinity sensor and temperature sensor for aquarium purpose?

 

The temperature sensors are DS18B20's and as for salinity sensors... I haven't found a good place to source them from yet.

@Motti, I have been able to get EC working. It's still really delicate and I'm hoping to improve the code to get better readings.

I still have some problems with the EC.. Rise/fall pulses don't look too good when used in marine water.. Have changed the 555 to a 7555 that can run at higher frequency with only some improvement. I have bought a probe for EC to get more stable readings. Pumps and so on also affects readings including Ph measurements so here I disconnect power to the circuits.

Thank you for the answer, I noticed that in the part list it says that the required capacitor is 1000uf at 6.3v and on the PCB it says 100uf and 25v. Which one is it? Also i noticed a 100R resistor which isn't on the part list. Thanks, motti

You can use either or. Recommended is 100ufx25v. The 100r resistor can also be replaced with a 1k resistor.

Hello Andrew, I finally got some time to assemble the Arduarium. When I opened the package of components from Digikey I found out that the TC1121CPA-ND was marked obsolete and there was no replace ment part. I was wondering if we could use ADM660ANZ-ND instead. Thanks, Robert

@Robert, You'd have to check the datasheets to make sure they're pin compatible. I stocked up on TC1121's when I saw they were marked obsolete and haven't gotten around to updating my schematics yet.

Hi,

Has there been any recent updates to the schematics? I see that there are some obsolete parts.

Larry

 

Hi Larry,

There are updated schematics that I'll be releasing shortly, but they're not quite ready yet. For the TC1121 you can replace with an ADM660 and cut off pins 5,6.

Do you have wireing guidelines for the USB interface connections for Temperature, LCD and PWM? So far I've not come across any documentation that outlines how these should be correctly connected.

F

which pcb is the latsest verson ? i see some with 3 usb and some with 2 and idk if pic is wrong or wat

 

The latest version is the one with 2 USB ports (1 1wire and 1 i2c).

Hello Andrew, Can you tell us what the JP1 and JP15 on the new board are for? I'm also interested to find out if you have an example available for using the MacroDuino code with Ethernet enabled in stead of Serial only. Tom

Hi Tom, JP1 and JP15 allow you to use the board with the newer style Leonardo pinout. ie. If you jump them to the 'LEO' side you can use SDA/SCL on the left hand side of the board. As for an example with ethernet, I don't at the moment. It's fairly simple though. All you need to do is listen for the url, parse the url and pass that on to the control function. This is all coming eventually, but slowly.

Add new comment