Announcing OpenSprinkler Pre-Release v2.0s (assembled version)

After a few weeks of shipping these ‘underground’, I am finally happy to spread the words around: the OpenSprinkler Pre-Release v2.0s is officially available for sale! Note that this is the SMT assembled version — we don’t have DIY 2.0 yet. As usual, the first question to ask is what’s new in this version?

  • Upgraded MCU: OpenSprinkler 2.0 uses ATmega644, which is twice as much as ATmega328 in all aspects (i.e. flash memory size, GPIO pins, RAM, EEPROM, perhaps price as well 🙂 ). This makes it possible to add new features that I have planned ahead (e.g. weather-based control, logging, interfacing with wireless devices etc.) We will no longer be constrained by the flash memory size, well, at least for a while.
  • Upgraded Switching Regulator: the switching regulator (for 24VAC->5VDC conversion) has been upgraded from MC34063 to LM2596, which is less noisy and capable of outputting higher current. As more users are powering WiFi adapters through OpenSprinkler’s USB port, it’s important to make the power conversion section robust. The same circuitry is now also used in OpenSprinkler Pi. Details about this change can be found in this blog post.
  • Added microSD Card Slot: microSD card is useful for expanding the storage size of a microcontroller. This s great for a lot of purposes, such as logging, storing a lot of sprinkler programs, Javascript files etc. A standard microSD card shares the SPI interface and requires only one extra GPIO pin to operate. Hence adding microSD card support is a no brainer!
  • Expansion Board Detection: this allows the main controller to automatically detect the number of zone expansion boards linked to the controller. Not so crucial, but neat. The implementation is actually quite simple: it uses a pull-up resistor on the main controller and one pull-down resistor on each expansion board to form a voltage divider. By checking the voltage using an analog pin, the mcu can easily calculate how many boards are linked.
  • Other Features: given the plentiful GPIO pins available on ATmega644, I’ve added support to adjust LCD contrast and backlight (using two PWM pins), a set of pin headers for plugging in an off-the-shelf RF transmitter (for interfacing with wireless devices). The other un-used pins are made available in the pinout area (including three analog pins, two interrupt pins, two digital pins, as well as TXD, RXD, SDA and SCL).

OK, that’s quite a detailed list of new features. Here is an annotated diagram of the actual hardware:

os20_component_diagram

Also, just for fun, a diagram that shows each module of the circuit and where they are located on the PCB:

os20_module_diagram

The reason I call this the Pre-Release 2.0 is that the official 2.0 will use the injection molded enclosures I blogged about in this post. While that is already in production at SeeedStudio, I can’t give a reliable estimate of how long it will take for the final products to arrive. There have already been multiple delays, so I won’t be surprised if there are more… Other than the difference in the enclosure design, the pre-release 2.0 hardware is the same as the final 2.0.

If you are wondering what I mean by ‘shipping these underground’ at the beginning of the post — we’ve been automatically upgrading the recent orders of assembled OpenSprinkler v1.4s to v2.0s. Why not make it public? Well, there are several reasons. The first is that due to the Maker Faire and the vacation after that, I haven’t had time to finish the documentations, and I’m reluctant to officially release a product when the documentations are not ready yet. Second, I’ve been experimenting with minor changes of the 2.0 design, and we’ve been shipping several small batches, each with slight different hardware design. This is an important process to get user feedback, and to iron out all engineering issues before the official release. Finally, as many users have been waiting for 2.0, I don’t want to suddenly get into an overload situation, where the number of orders exceed our capacity to process them.

In terms of software, OpenSprinkler 2.0 is currently flashed with firmware 2.0.0, which is functionally the same as firmware 1.8.3, except for the additional options such as LCD contrast and backlight, and the support for a higher number of expansion boards and programs. More exciting firmware features will be gradually added over time. Also, starting from firmware 2.0.0, the source code can be compiled in Arduino 1.x (latest stable version is 1.0.5), and this is also the recommended Arduino version to compile OpenSprinkler code. I will continue to provide a VirtualBox image which has everything needed for compilation set up and ready to go.

The final bit of news: if you are interested in DIY 2.0, unfortunately that won’t be available for at least a couple of months. The delay is partly because the new injection molded enclosures are not ready yet (there is no space in the current enclosure to fit all through-hole components), and partly because there are a few design decisions I haven’t ironed out yet. So at least for a couple of months we will keep offering DIY 1.42u for anyone who wants to build OpenSprinkler from scratch.

So much for the announcement of OpenSprinkler Pre-Release 2.0. Feel free to leave your comments and suggestions below, or at the Rayshobby Forum. Thanks!

11 thoughts on “Announcing OpenSprinkler Pre-Release v2.0s (assembled version)

  • June 17, 2013 at 6:14 pm
    Permalink

    Exciting news! Good looking work! Question for you, next to the triacs are a series of 3 holes. Is there something that is meant to plug into them? What are they for?

    • June 17, 2013 at 8:58 pm
      Permalink

      Those holes are reserved for fitting a MOV per channel (across the first and third hole), or modifying the circuit to control DC devices (by desoldering the triac and solder a transistor / MOSFET to the three holes).

  • June 22, 2013 at 7:18 pm
    Permalink

    Does the 2.0 firmware include provisions for the temp/humidity sensor to be dropped in good to go or does it still require extra work?

    • June 22, 2013 at 8:38 pm
      Permalink

      Well, different temp/humidity sensors have different pinouts. Also most likely you will place the sensor outside of the enclosure, so I didn’t design any pinouts for directly plugging in a temp/humidity sensor. You can use any analog pin available in the general pinout area to interface with a temp/humidity sensor.

  • July 15, 2013 at 12:45 am
    Permalink

    How many expansion modules will the 2.0 version support? I need at least 32 stations and would like 36 or more, as I currently have 3, 12-station timers.

    Looks cool!

    • July 15, 2013 at 12:48 am
      Permalink

      The firmware supports up to 48 stations (1 master + 5 expansion boards). It can go even higher by slightly modifying the firmware (at the cost of reducing the total number of programs).

  • July 15, 2013 at 12:50 am
    Permalink

    Just found it in the documentation! But, you beat me to it with your respose!

    …and firmware 2.0.0 supports up to 5 expansion boards

    Thanks…Russ

  • July 30, 2013 at 9:57 am
    Permalink

    I just built a Rev 1. Worked right away. It is alive on the Internet!

    Now I am looking at a Pool Controller and your hw & sw looks a good place to start. I see the Rev 1 is essentially full, so I would use Rev 2. I would use 4 triac outputs: Pool pump, Solar Diverter valve(2), Water topup and Lights, 4 unused! Then I need two temperature and three external buttons: 1 hour water, Toggle pump, Toggle diverter. So three analog looks good for 2 temp and 3 buttons.

    In your design, could you swap a used analog pin for an unused digital one and have the possibility of 4 analog, noting that analog pins can be set to digital. Analog are more general purpose. Is there a downside?

    What are your ideas for getting at these ‘Pinout’ pins? Put a right-angle SIP header at the top of the board?

    Have you thought a Proto ‘Shield’ picking up Pinout, pass-through SIP for the LCD, extending to bottom mounting screws, having same 2 & 8-pin green external screw terminals and .1 proto matrix above the triacs below. Push the LCD almost against the lid.

    It would be expensive & messy to try to do the above with standard Arduino + Shields. Rev 2 can make a good general purpose micro especially starting with your software bundle. Raspberry Pi looks too complicated for simple controllers with boot-to-ram, Linux, etc. Too much to go wrong.

    Can I build Rev 2 software with Arduino Windows and not mess with VirtualBox, Linux, etc?

    • August 1, 2013 at 4:30 pm
      Permalink

      @robinh:
      1) All analog pins can be used as digital I/O pins. You can find more information in the Arduino instructions. However, not all digital pins have analog reading capability: only the pins marked Ax (where x is a number) can be used for analog reading.
      2) For pinouts, you can either use a straight pin header, and use jumper wires to make connections to an external circuit, or you can solder a wire
      3) No shield compatibility: the circuit is not designed as a shield and cannot fit a standard shield.
      4) Yes, you can build rev 2 software in Windows and you don’t have to mess with VirtualBox and Linux.

Leave a Reply