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.
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.
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.
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.
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.
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