Friday, August 24, 2012

WiNode - a technical summary

WiNode is the first standalone wireless sensor device from Nanode Ltd.  It is aimed at wireless sensing and control applications, and has a number of features not found on other devices. WiNode can form part of smart wireless sensor networks and be used in conjunction with a Wireless - Ethernet gateway such as Nanode RF.

Main Features

ATmega328 with RFM12B wireless transceiver operating at 433MHz or 868MHz

Motor driver IC for driving 2 dc motors, 4 relays or even a loudspeaker. Accessible via screw terminals.

4 general purpose analogue inputs with voltage scaling networks. Accessible via screw terminals.
Could be used for current transformers or opto-reflective pulse counters (gas meter).

microSD card – for datalogging or file storage. Can be used to store audio files for playback via loudspeaker.

32K battery backed SRAM – retains data during a power outage

Real Time Clock and Calendar with alarm wake-up function

At the core of Winode is the combination of the Atmel ATmega328 microcontroller and the Hope RF RFM12B wireless module. This is a tried and tested pair, used in designs by JeeLabs and Open Energy Monitor.  The code library to support the RFM12 is that written for the Jeenode – so ensuring 100% compatibility.

The new WiNode 4.0 design corrects a number of shortfalls in the earlier version and offers a compact yet versatile platform for wireless sensor application development.

WiNode is built on a compact 58mm x 66mm (2.3” x 2.6”) pcb, and retains the Arduino style shield connectors, allowing expansion by means of Arduino shields. However 100% compatibility cannot be guaranteed as WiNode uses several of the digital I/O pins for its own purposes. However for those wishing to add circuitry to WiNode, a prototyping shield on extended pin headers works well.

WiNode offers several additional hardware functions, not generally found on other Arduino-like platforms. These offer a range of functions considered to be useful to typical wireless sensor, actuator and control applications.

External Connections

Along the right hand edge of the pcb is a strip of 10 screw terminals.  This is where most of the interfacing to sensors and actuators would be made using simple wired connections.  These screw terminals offer four analogue inputs and four high current (2A max) motor or relay drivers.

Motor Drives

The WiNode has an on-board dual H-bridge motor driver – which can be driven with PWM for driving inductive loads such as motors relays, solenoids and even loudspeakers for audio applications.  Up to four relays, two reversing small dc motors or one stepper motor can be connected to these outputs.  The motor drive outputs are marked M1 – M4 on the underside of the pcb.  The motor drive channels are Digital 5, Digital 6, Digital 10 and Digital 11 – however restrictions apply on D 10 and D11 when accessing devices on the SPI bus.

Relays and solenoids can be driven, allowing the possibility of using WiNode for applications such as a wireless central heating controller, garden irrigation system, or solar PV monitoring system.  The dc motor outputs, used in conjunction with analogue inputs would allow WiNode to form the basis of a two-axis PV tracking controller – using dc motors for drive and potentiometers to read off the position.

Analogue Inputs

The analogue inputs are fitted with 10K input resistors, and a choice of potential divider resistor array.  Using the 4K7 array provided allows voltages up to 10.32V to be measured – or almost exactly 10mV per ADC count.  Fitting a 3.3K resistor array allows up to 13.3V to be read – making WiNode compatible with 12V battery systems.  The choice of this resistor array is left to the individual user, if the array is omitted, the analogue inputs will have a full scale of 3.3V – as WiNode operates at 3V3. The analogue input terminals are marked AI0 – AI3 on the underside of the pcb.  Analogue inputs AI0 and  AI1 have 160Hz low pass filters fitted (10K and 100nF) to reduce noise and transients. These may be omitted if not needed or if fast ADC sampling is required.
Power Supply

The screw terminals also provide connection to the power supply. This allows a dc supply of up to 12V to be connected.  If operating at 12V, the 7805 voltage regulator should be fitted with a heatsink – as should the 754410 motor driver IC. The external voltage input is marked Vin and 0V on the underside of the pcb.

If an unregulated external dc power supply is not desired, WiNode may be powered from a nominal 5V supply (eg USB) via pins 1 (0V) and 3 (+5V) of the 6 pin FTDI header. This supply is further regulated down to 3V3 to power the whole pcb – so WiNode could be powered from a small solar panel with a nominal 5V  250mA output.

Real Time Clock

WiNode is fitted with a Microchip MCP79411 real time clock/calendar.  This is a small 8 pin surface mount package soldered to the underside of the pcb.   The MCP79411 also contains an EEprom area where non volatile data such as Node ID, MAC address etc could be stored.  The MCP79411 also has an “alarm” output which can be used to generate a wake up interrupt or regular square wave output – interrupting the microcontroller on Digital input 3.  The WiNode pcb also allows a DIP version of the Dallas/Maxim DS1307 RTC to be fitted as an alternative to the MCP79411.  The RTC is battery backed by a 0.22F supercapacitor.

32K External SRAM

This is a static RAM connected to the microcontroller via the SPI bus.  It can be chip selected using Digital output 8.  The supercapacitor provides battery backup for this device.  The SRAM can be used for applications requiring temporary storage of moderate amounts of data, such as an audio sampling buffer (4 seconds of audio at 8kHz sampling frequency), or for short term datalogging.  The SRAM can also be used for program storage if the WiNode is programmed using Arduino TinyBASIC. Library routines to make the most of this external SRAM are currently under development.

Micro SD card

For applications requiring datalogging, or accessing files, a microSD socket has been included on the underside of the pcb.  One recent application of WiNode was as a programmable sound generator, where audio files were stored in the SD card, and played back through a loudspeaker, driven by one half of the motor driver H-bridge IC. If this option is desired, then additional 10uF electrolytic capacitors and 1 ohm resistors should be fitted to provide low pass filtering of the audio output.
Unfortunately, due to hardware restrictions, motor output 3 is not available when writing data to the SD card.

Summary of I/O Usage on WiNode 4

Dig 0  Serial Rx  to FTDI header
Dig 1  Serial Tx  to FTDI header
Dig 2  Interrupt from RFM12 wireless transceiver
Dig 3  Interrupt from RTC square wave or alarm wakeup
Dig 4  microSD chip select
Dig 5  PWM_2 output (M2) from motor drive IC
Dig 6  PWM_1 output (M1) from motor drive IC  - Green LED
Dig 7  Enable line for motor drive IC – held normally low to inhibit drive.
Dig 8  Chip select line for 32K SRAM
Dig 9  Unused
Dig 10  Chip select line for RFM12B wireless transceiver – also motor PWM_4 (M4)
Dig 11  MOSI signal for SPI bus  – also motor PWM_3  (M3)
Dig 12  MISO signal for SPI bus
Dig 13  SCLK signal for SPI bus
AN0   Analogue input 0 (filtered)
AN1   Analogue input 1 (filtered)
AN2   Analogue input 2
AN3   Analogue input 3
AN4   I2C data (SDA) for Real Time Clock
AN5   I2C clock (SCL) for Real Time Clock

No comments: