Maker Faire 2013 OpenSprinkler Booth Call for Help

Hi All, OpenSprinkler will have a booth at the Bay Area Maker Faire again this year. Due to a number of reasons, I cannot make it myself, but Aaron Newcomb from California has generously volunteered to host the booth for me. He will be showing demonstrations with the OpenSprinkler controller. There will also be flyers and promotional materials distributed there.

In order to make this a success, we would like to have a few more people to help. If you are going or planning to go to the Maker Faire and can help at the booth even for just a couple of hours, that would be great and much appreciated. I am happy to send free gifts to you. Anyone who can help at the booth for at least 4 hours either Saturday or Sunday will additionally get a free Maker entry pass. This is covered by the exhibit.

If you are interested in helping, please respond to this forum post by Aaron, or email me. Thanks!


Bay Area Maker Faire Web Badge

Noise Coupling Issue with DS1307 RTC

Recently a random crashing issue has surfaced on the forum regarding some of the OpenSprinkler 2.0 development boards that we sent out a few weeks ago. The background is that we have started shipping a development version of 2.0 for any recent order of the assembled OpenSprinkler. The symptom is that some of the units started crashing and losing network connection, and this seems to be always correlated with the timing running crazy off the charts. Initially I thought this issue may have been caused by a bad RTC crystal, which leads to incorrect timing, and which in turn causes the controller to get stuck. Then at some point I realized all the problematic cases happened on a particular PCB version dated Nov 2012. This helped me narrow down the search range. After a thorough comparison to the more recent version, I discovered that the problem is actually caused by a noise coupling issue with DS1307 RTC. Specifically, according to the datasheet (right image below), the region around traces between the 32.768kHz crystal and DS1307 should be shielded by a ground trace. If this is not implemented, the crystal may pick up noise from nearby traces and cause the clock to run significantly off the charts. When I designed OpenSprinkler PCBs, I had not paid attention to this recommended layout at all. Jeese, why did’t I read the datasheet carefully!

IMG_2704ds1307_recommended_layout

After discovering the issue, I panicked a little bit. Since I didn’t know about the issue previously, and there are hundreds of boards in production at SeeedStudios, am I screwed? It turns out that the situation is not as bad as I thought. First of all, I usually add a ground plane to fill the empty spaces between traces. As a result, on most PCB versions, there is indeed a ground plane around the traces from the crystal to the RTC. Below are examples of the traces on OpenSprinkler 1.4s, the more recent version 2.0, and the version in production at SeeedStudios:

pcbtrace20pcbtrace14

pcbtrace20_new

Although they don’t match the recommended layout exactly, they are pretty good at shielding the crystal pins from picking up noise. You know, I have always questioned about those ground planes and wondered whether it’s worth my effort of adding them. Well, in this case it did save me from potentially deep trouble.

Now, in comparison, on the Nov 2012 version of 2.0, the ground plane is missing around that region (probably because there is not enough space between the traces to allow a ground plane). As a result, here is the PCB image:

pcbtrace20_alpha

Not only it is missing the ground plane in that region, but also there are all kinds of signal traces nearby, which makes is extra easy to pick up noise. This is bad, bad, bad. Now, that being said, even with the careless design, it’s not like you are guaranteed to have the problem. It more of a reliability thing: it increase the chance of noise coupling, but in many cases the issue probably doesn’t show up. In fact I was trying to reproduce the problem today on a particular PCB version that has no ground plane. After testing 8 of these, one showed a problem of extremely fast clock (5x faster than normal). And it turned out that I forgot to cut the crystal leads, which make them act like antenna to happily pick up noise. After cutting the leads, the clock went back to normal speed. This probably explains why the problem didn’t surface earlier even though I have never paid attention to the PCB trace around RTC previously.

The DIY version 1.42u is also missing the ground traces around that region. So I won’t be surprised if users have encountered a clock speed problem (although so far I have not received any report of it). In case this happens, an easy thing to try is to re-solder the 32.768kHz crystal and try to push it down to the PCB holes as much as you can. This will help reduce the length of the crystal pins and in turn reduce the chance of picking up noise. Another possibility is to simply solder the crystal directly onto the IC pins,

So overall this is a very valuable learning experience for me. I am grateful to those who reported the issue on the forum, and helped me figure out the problem as quickly as I can. There are about 10 of those Nov 2012 assembled boards out there, and I am happy to replace them for free. With that, it’s now time for me to revisit the datasheets. Never overlook them again!

The Cost of Development

During the process of cleaning up my workshop today, I collected all the OpenSprinkler prototype boards that have had design mistakes or were built and failed in the past, and looks at this whole box of lovely PCBs:

IMG_2671

Probably no less than 30 boards in the box. It’s quite shocking to realize how many there are. By far getting prototype PCBs has been the most time-consuming and costly part of the development process. First of all, each round of prototype PCBs costs about $50 and takes 9 to 12 days of lead time (using the fastest shipping option), from places like SeeedStudio or Smart-Prototyping. The cost is not dramatic, but the lead time is quite significant unless if I am willing to pay hundreds of dollars to order from US-based services. Also, these boards are unfortunately complex enough that home DIY PCBs are no longer a viable solution.

Then, no matter how careful I am in designing the PCB, there are always a couple of unforeseen issues that had to be discovered when I actually start assembling. For example, a component might be too far away from the enclosure cutout, a component footprint might be wrong, two components might be too close to each other, the pin headers were placed in the wrong orientation, and sometimes I forget to add a ground plane. Because these issues are only discovered after one round of PCBs have arrived (then I will fix the issues, refine the design, and order another round), they make the development process sequential and cause the overall time and cost to quickly add up. The good thing is that over time I learn from lessons and accumulate tips to help me maximally avoid potential mistakes. Still, it’s inevitable to produce design issues, which can only be fixed by putting in more money and time.

When I get the finalized PCB, however, I often feel proud, as if it’s a work of art which has been refined and polished and is ready to be seen by the public. Then I get a sense of achievement. That’s the joy of working on electronic circuits 🙂

OpenSprinkler Pi v1.02 Released

I’ve made a minor update to OpenSprinkler Pi (OSPi), and the new version v1.02 has improved design of the separation pillars in order to make use of the screw holes available on Raspberry Pi rev. 2. See the picture below:
IMG_2669_a
This way, the Raspberry Pi rev. 2 can be more securely attached to the OSPi even with just two screws.

If you own a Raspberry Pi rev. 1 instead, don’t worry, you can still attach it to OSPi using the two edge screws (see the picture on the right below), in the same way as the original OSPi. To do so, you will need to move one of the separation pillars. See the picture on the left below (sorry, the arrow is pointing in the reverse direction).

IMG_2670_aIMG_2666_a

So in sum, the updated version OSPi v1.02 allows you to make better use of the screws holes available on RPi rev. 2 while still being compatible with RPi rev. 1.

OpenSprinkler Orders Delayed

There has been an unexpected delay in the enclosure processing: the order was supposed to arrive by Monday this week but is now pushed back to Friday next week. As a result, all orders that include an OpenSprinkler enclosure will be delayed. I am really sorry about the delay. It is unfortunate and unexpected. The way we currently order enclosures is through Electronic Precepts (http://electronicprecepts.com/): they order in bulk from Serpac and machine custom cutouts for us. While on vacation last week, I sent an inquiry email and learned that there will be a delay due to machine down time. Initially I was told it would come today, but the latest status is that it’s more likely to come Friday next week. I know the folks who have ordered OpenSprinkler / OpenSprinkler Pi have been waiting eagerly for their orders to arrive. Sorry about that! I wish I had control over the enclosure processing. Meanwhile if you want to cancel the order, or want to receive the board first and enclosure later in a separate package, feel free to let me know. Thanks for understanding!

OpenSprinkler March 2013 Update

Tomorrow we will be flying south to Peru for a one-week spring vacation (yes, that’s right!) I am very excited about the trip, and am looking forward to visiting Machu Picchu 🙂 Before I go off and get lost in exploring the ancient world, some quick updates about what’s happening recently:

  • OpenSprinkler Pi is back in stock as of last week, and about 50 have already been shipped out. One user on the Rayshobby forum, Ric, pointed out that the original Python demo code only worked for RPi rev. 1. It turns out, as Ric discovered, that RPi rev. 2 has changes the pin numbers of a few GPIO. So if you own a rev. 2, you should update your code from GitHub, and follow the instructions in README.txt to modify a pin number in your Python code. Thanks Ric for finding this out!.
  • OpenSprinkler 1.4u will be the last DIY, all through-hole version. As soon as it sells out (there are only a couple of them left in stock), we will discontinue the DIY kits. The main reason is that the support overhead for DIY kits has gradually become too high for me. Although we don’t officially provide any assembly support for DIY kits, when users get into trouble and can’t fix problems themselves, I hate to see them go and have to jump in to help, sometimes even asking them to send the kits back to me so I can fix soldering mistakes for them. This is simply not sustainable any more. One way to solve the issue is to have a community of people to help each other, but i don’t see that happening on OpenSprinkler any time soon. So the only solution is to let go the DIY version. Sorry folks!
  • We will be going to the Bay Area Maker Faire again this year. I’ve just submitted the proposal to Maker Faire and hopefully it will be accepted. If you are planning to be there too, feel free to come by, hang out with us and watch demos 🙂
  • Since we are going off for vacation, we won’t be shipping packages until Monday March 25. Meanwhile I will still be checking emails, although probably no more than once a day.

All right, time to pack and prepare for the trip tomorrow. Thanks for reading this post!

Machu_Picchu

Custom OpenSprinkler Enclosure — Part II

Today I received the 3D printed prototype enclosure from Seeed. It was supposed to arrive on last Friday but due to a snow (which affected nothing) DHL didn’t deliver that day. In any case, I got it today, and it is beautiful! Check out the pictures below:

IMG_2424IMG_2425

IMG_2426

A couple of quick notes:

  • The new enclosure will use opaque material (instead of transparent plastic as the current enclosure). So there is now a cutout for the LCD on the top. This will give it a more professional look.
  • The designer at Seeed recommended a clever design that uses a single set of 4 screws to simultaneously fix the top and bottom pieces together, and the PCB in the middle. This reduces the number of screws and provides more PCB space.
  • There is now a cutout for the expansion board connector which makes it easy to plug in cables without opening the enclosure.

Overall I am very satisfied with the prototype. There is still some verification I have to do to make sure the PCB and components fit well with the enclosure. Hopefully I will place the mold order soon!

Custom OpenSprinkler Enclosure using Injection Modeling

As mentioned in a previous post, I have been working with SeeedStudios to design a custom OpenSprinkler enclosure. Thus far I have been using an off-the-shelf Serpac WM-032C clear plastic enclosure, and I have Electronic Precepts to machine the cutouts. It was a good start and really easy to design, but the cost can quickly add up as I order more from them. Over time, it’s make more and more sense to design a custom enclosure using injection molding, in order to reduce the per unit cost.

The initial design has been finalized and a 3D printed prototype is on its way to me. I am very excited because this will be the first injection-molded OpenSprinkler enclosure! It’s a pretty heavy one-time cost (the mold costs about $5,000 to make), but it’s fun and I think it’s worth the investment. I am supposed to receive the prototype today, but a snow prevented DHL from delivering today. So I have to look forward to Monday. But below I attached some pictures Seeed sent me. They are enough to enjoy for a while 🙂 More pictures will come after I receive it on Monday.

opensprinkler 1opensprinkler 2

opensprinkler 3opensprinkler 4

OpenSprinkler Pi Back in Stock

OpenSprinkler Pi (OSPi) v1.0 is back in stock and available for shipping now. The kit includes one assembled and tested OSPi board, separation pillars, terminal blocks, 8-pin and 3-pin connection cables, and optional enclosure. You need to provide your own Raspberry Pi, and 24VAC sprinkler transformer. The board controls 8 zones, and can connect to standard OpenSprinkler zone expansion board to enable additional zones. Grab it now before it goes out of stock again!

IMG_2416

I would really like to give a big thumb-up to smart-prototyping.com. This is the first time I ordered PCBs from them (I got the link from dangerousprototypes.com), and I wasn’t sure what to expect. The order was placed on Feb 26 right after the initial batch of OSPi sold out. I selected DHL shipping (about $30) since I need it to be quick. On Feb 28 I decided to place a smaller order for the new zone expansion board prototype PCB, and I selected economy air shipping (about $4) since I don’t care how fast it comes. Then on March 5, exactly one week after placing first order, I noticed it got shipped out. I happily received the package on March 7. This is a total turn around time (from ordering to delivery) of only 9 days! What’s more surprising is that when I opened the package, I found my second order is also included. They must have figured out that since both orders are going to the same address, and both were ready upon shipping of the first order, why not put them together and use the fastest shipping. Clever! I am really impressed by their processing speed and the super-fast shipping time. Also, the PCB quality is very good, and their price is even cheaper than SeeedStudios. Highly recommended, and will definitely order from them again!

IMG_2415

OpenSprinkler Pi (OSPi) 1.0 — a sprinkler / irrigation extension board for Raspberry Pi


Hi, I am glad to announce the arrival of OpenSprinkler Pi (OSPi) 1.0 — a sprinkler or irrigation extension board for Raspberry Pi that provides direct access and control of sprinkler valves. This post serves as a quick introduction to the hardware and software setups. A more dedicated webpage will be available soon. First off, a picture of the board:

ospi_header

and a video introduction:



Background

Since the beginning of Raspi, there have been many published DIY projects on how to use Raspi for home automation need. I bought a Raspi a few months ago, and have been quite happy with it since then, but I at that point I had not thought about designing an OpenSprinkler extension board for it. The idea of OSPi first came when I noticed that several OpenSprinkler users were setting up Raspi to work with OpenSprinkler. There are many good reasons to do so, for example, to enable logging, to customize the default Javascript files, and to allow more advanced features such as weather-based and learning-based control. At one point I started thinking: wouldn’t it be nice to design an extension board for Raspi, so that it can directly talk to sprinkler valves through the GPIO pins, without an additional layer of microcontorller and Ethernet controller? This has been on my todo list for quite a while, until one day I was playing with Raspi, and I suddenly that the I can actually fit a Raspi inside the existing OpenSprinkler enclosure. As soon as I figured this out, I couldn’t resist ordering a small batch of prototype PCBs right away.






The content below has been updated and moved to a dedicated product page for OSPi at http://pi.opensprinkler.com.