electron14 » June 6, 2014

Daily Archives: June 6, 2014

Arduino Engineering Neutrino

NeutrinoWeather 1.0 – Design

Published by:

UPDATE: Over the weekend I made a minor tweak to NeutrinoWeather 1.0, rev’ing it to 1.1. This adds a 100uF cap to buffer the coin cell’s power output, which should extend life. I also designed NeutrinoWeather 2.0, which takes a stab at integrating the wireless onto the board rather than breaking it out into a pluggable module. I almost ditched that idea until I came across an awesome little antenna from Molex (for those who don’t know, a custom designed antenna technically requires FCC approval. A PCB antenna would probably be ok for personal use, but to give/sell to others without proper approval would probably be a no-no). It’s supposed to be better than the average pcb antenna, so we’ll see. 2.0 adds .2″ to the width of the board, but 1.8″ x 1.0″ is still pretty good, I think.

Original:

I’ve had this idea for awhile that I’d put temperature sensors in every room of the house. These would drive the HVAC based on an overall average, or on the room you choose at the moment, or whatever. Perhaps eventually they’d control dampers in the ducts. To be an ideal sensor (for me), it needs to be small, low maintenance, double as a hygrometer, be inexpensive, and be capable of going unnoticed. Most importantly, it needs to work, and this means having easy feedback that it’s doing its thing.

To these ends, I began looking for solutions and ran across Nathan Chantrell’s TinyTX project. It ultimately didn’t fit the bill, but it gave me some ideas. I ultimately designed my own small wireless temperature and humidity sensor device that can be hidden away on a shelf or dropped into a tiny project box and mounted via “Command Strip”. It has LED indicators that are capable of notifying the user that it is successfully sending radio updates (or not) and a low battery indicator. It also has three jumpers that allow the user to set one of eight radio addresses per-device (in binary), so the user can deploy up to seven transmitters and a receiver, without having to hardcode the addresses and flash each one. It will run off a single CR2450 coin cell (purchasable online in 5 or 10 pack for under $.50 each), and my hope is that each one will last at least 18 months. I thought about making a device that would hang off of a wall outlet, but such a device is far less flexible, and more difficult to make aesthetically pleasing for a homebrew project.

Screen Shot 2014-06-06 at 9.33.37 PM

For wireless, it utilizes the nRF24L01+ module that I’ve mentioned in the past, attaching via header on the back side. This will radio in to the raspberry pi base station, where I’ll control the HVAC via relays and serve up the controls via web interface.

The LEDs are high-output, low power. I expect to blink them for just a few milliseconds every time a measurement is made, and I’ve included a resistor to limit the current to just a few mA. Green for ‘radio transfer succeeded’ and red for failure. Amber will indicate low battery, less noticeable than a smoke alarm chirp I suppose. Of course, all of this notification can and will probably be done via the data, but there’s something about onboard indicators that make a product feel polished and complete.

As a bonus, I added a barometer onto the package, mostly just because I could. In all, the device measures 1.6″ wide and 1.0″ tall. With the wireless module and battery attached, it should end up about 8-10mm thick.

I’ve dubbed this tiny microcontroller platform ‘Neutrino’, since it both fits in with the particle theme of my blog and rhymes with Arduino. I named this particular one ‘NeutrinoWeather’, and hope to build several other Neutrino devices based on the same microcontroller on front, coin cell on back design. I toyed a bit with making a flexible design that exposed all of the pins via headers, but opted for the smaller single purpose design because 1) it’s cheap and easy to get small boards made, and 2) if I want to build something on a board that requires jumper wires, I’ve already got quite a few ATMega328 and ATTiny microcontroller boards floating around, and 3) If I do use jumper wires, it’s probably just intended as a prototype anyway.

I drew up the prototype in Eagle, the defacto hobbyist PCB making software. I tried to use Fritzing this time around, and while I found it a bit more intuitive and liked the visuals, I had a few issues (it crashed once, defining/editing packages via SVG seemed more difficult, and much simple and limited feature set) so I switched back to Eagle. It is advertised as beta software, after all. The board prototype has been shipped off to manufacturing, and with any luck I’ll be able to write an update in a couple of weeks and cover the code it will be running.

Screen Shot 2014-06-06 at 9.34.28 PM