When I set out to make the remote temperature sensor, I envisioned a beautifully enclosed device that plugged into the wall and worked seamlessly. I had my BOM, my components, and my idea. What could go wrong?
A lot actually…
Initially, I wanted to use this project as an excuse to work with Zigbee, a wireless protocol that is very popular in “Internet of Things” applications. We use it at Keen Home, which was actually the inspiration for this project in the first place: I wanted to temperature sensor to work with our Smart Vents.
I already knew which chip our team used for wireless communication in the Smart Vent, so I figured I could go with that. But after speaking with one of my colleagues about my plan, I switched my focus to XBee and Mesh Bee.
I spoke with Andy before buying any XBee modules, and am glad I did. I’ve never worked with Zigbee, but apparently it’s kind of hard. Not that I’m afraid of hard, but for a two week project, maybe not the most feasible.
He suggested the RFM69 and RFM95/RFM96 series of modules. Like Zigbee, they are low power mesh radios, but they also have insanely long range. 540 meters according to some. Sounds good to me.
Adafruit has a great tutorial for using these radios as well as a breakout board for them.
Initially I made the tactical error of buying just the RFM95 modules from a nearby electronics store, thinking I could just pin them onto a breadboard. Nope.
I ordered the breakout boards from Adafruit, but because I was running up against the assignment deadline, I needed to start thinking about my schematic and board design.
I followed the sample schematic’s URL to the website it is hosted on and was blown away to discover Nathan Chantrell‘s Open Source Hardware blog. I don’t know who Nathan is, but he has some incredible project posts and tutorials, including one for creating a mini-Arduino with an integrated RFM series radio!
The tutorial is incredibly thorough and helped me walk through all of the components I needed and those I didn’t. Nathan packed a lot of header pins for expansion onto these boards and used a lot of vias to complete the circuit. This is actually one of the beauties of the chip he used, the Atmega 328P-AU, which I also used based on his recommendation. In my case though, I didn’t need so many short-circuit hazards.
I assumed I only needed two sets of header pins: the FTDI pins for programming and power pins, but after speaking with a classmate about the difficulty of loading the bootloader without dedicated ICSP pins I added those as well.
Partially because I’m still pretty bad at this and partially because of the processor pinout for the board. I created a ton of vias to ensure no crossing routes. I ran out of time for the assignment before I could work out the board. This turned out to be a good thing. I can cut at least two pins from the ICSP headers and all those vias would have messed up my processor and radio module soldering.
I basically need to start over again, but working on this project gave me another idea. Because no one device that used the RFM series radios is useful on its own, a second device is always needed. Other than the Keen Home Smart Vent, I didn’t have or need another device to work with the temperature sensor. Perhaps a better approach would be to make two devices that go together, like a pressure sensor and a light.
Thus, Ambient Furniture was born. More on that next time.