« Back to home

ARM Based Sensor Nodes

One idea I have had in the back of my mind for a long time is a framework for small, low power wireless sensors that are easy to build up and deploy around the house and garden.

Some of my first experiments were based around an ATmega CPU and the NRF24L01 wireless transceiver. This is hardly a unique idea, projects like this one and this one have been around for a while.

More recently I moved to using an ARM processor as the CPU core instead of an AVR, going as far to start building up a prototype based around the XMC1100 processor. A few months ago I found out that Silicon Labs were running a low power design competition so I decided to enter.

One of the nice things about competitions (apart from the opportunity to win of course) is that they impose a fixed deadline which forces you to re-evaluate your design and project plan to make sure you have something deliverable by a certain date. In my case this generally means ripping out a lot more blue-sky features and minimising the number of experiments and side tracks that might tempt me.

Processor Breakout

In the first phase of the competition Silicon Labs were nice enough to send me a EFM32 Zero Gecko starter kit.

Zero Gecko Starter Kit

Rather than spend time designing and debugging my own processor board it seemed like it would be quicker and easier to make use of this board. I did want to work with a board that had the same footprint as the final product so I designed a simple breakout board - a PCB with the same dimensions and headers as the final version but with a set of jumper cables that I can connect to the headers on the Zero Gecko.

SensNode Processor Breakout

My overall plan for the sensors involves having the NRF24L01 module on the same board as the processor so the breakout includes one as well.

A Simple Sensor

Having a simulator CPU board with the right dimensions meant that I could design the sensor board to match. Once I do get a full CPU board designed and built I can test it with a known working sensor.

Sensor Board

In terms of a sensor I wanted something simple but stil complex enough to be a good real world test. I settled on something that would be useful in a garden or pot plant. It includes the following sensors:

  • Si7020 Temperature and Humidity Sensor.
  • TSL2561T Ambient Light Sensor.
  • A conductive soil moisture sensor consisting of two metal probes and a resistor divider circuit.

This is enough to provide useful information but not too complex to develop and support - a good test of the sensor concept.

Milling and Soldering

If you limit yourself to through hole components or pre-built modules in projects you are severely restricting your choices. I did the same thing myself, believing that design boards for and then hand soldering surface mount components was not something that could be easily done in a home workspace. Recently though I have pushed myself to see if I could actually do it (a process I have written about previously).

This effort has paid off in this project, the two boards I talked about above were milled on my CNC router at home and I hand soldered all the surface mount parts on the sensor board with little difficulty.

Surface Mount Montage

I have had the chance to practice my SMT soldering skills over the past few months and, although I wouldn't claim to be good at it, I am certainly capable of building up usable boards with relatively fine pitch components now.

It helped save a lot of time in this case - milled boards are not good enough for deployment but as a prototyping platform they are fine. I avoided the three week turn around time it normally takes me to get boards fabricated externally which saved a lot of time (and gives me the opportunity to do additional iterations if needed).

Milled Boards

Having the ability to mill or etch your own boards gives you a lot more flexibility as a hobbiest and being able to hand solder surface mount parts is becoming essential. If you have been putting off trying it you should review your stance - although your first few attempts may not be that successful (some of mine looked like blobs of solder with a small black ceramic rectangle in the middle) it doesn't take long to improve your technique.

Next Steps

At the time of writing there are about two weeks left before the competition deadline - the hardware is now ready so most of that time will be spent on cleaning up the software and analysing the power usage.

Beyond the competition date though there is still a lot of work to do to get the system up and running to the point where I can start deploying sensors around the house. I will be putting all the source code and hardware designs up on GitHub once they are in a more stable state.